Backport of 12014-incremental-es-wiki-updates
Bringing in the DB migration and some light changes for CE classes
This commit is contained in:
parent
ba952d53c5
commit
39ec4d1c28
|
@ -0,0 +1,9 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Git
|
||||||
|
class WikiPushService < ::BaseService
|
||||||
|
def execute
|
||||||
|
# This is used in EE
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -30,15 +30,17 @@ class PostReceive
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def identify_user(post_received)
|
||||||
|
post_received.identify.tap do |user|
|
||||||
|
log("Triggered hook for non-existing user \"#{post_received.identifier}\"") unless user
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def process_project_changes(post_received)
|
def process_project_changes(post_received)
|
||||||
changes = []
|
changes = []
|
||||||
refs = Set.new
|
refs = Set.new
|
||||||
@user = post_received.identify
|
user = identify_user(post_received)
|
||||||
|
return false unless user
|
||||||
unless @user
|
|
||||||
log("Triggered hook for non-existing user \"#{post_received.identifier}\"")
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
post_received.enum_for(:changes_refs).with_index do |(oldrev, newrev, ref), index|
|
post_received.enum_for(:changes_refs).with_index do |(oldrev, newrev, ref), index|
|
||||||
service_klass =
|
service_klass =
|
||||||
|
@ -51,7 +53,7 @@ class PostReceive
|
||||||
if service_klass
|
if service_klass
|
||||||
service_klass.new(
|
service_klass.new(
|
||||||
post_received.project,
|
post_received.project,
|
||||||
@user,
|
user,
|
||||||
oldrev: oldrev,
|
oldrev: oldrev,
|
||||||
newrev: newrev,
|
newrev: newrev,
|
||||||
ref: ref,
|
ref: ref,
|
||||||
|
@ -64,7 +66,7 @@ class PostReceive
|
||||||
refs << ref
|
refs << ref
|
||||||
end
|
end
|
||||||
|
|
||||||
after_project_changes_hooks(post_received, @user, refs.to_a, changes)
|
after_project_changes_hooks(post_received, user, refs.to_a, changes)
|
||||||
end
|
end
|
||||||
|
|
||||||
def after_project_changes_hooks(post_received, user, refs, changes)
|
def after_project_changes_hooks(post_received, user, refs, changes)
|
||||||
|
@ -76,6 +78,11 @@ class PostReceive
|
||||||
post_received.project.touch(:last_activity_at, :last_repository_updated_at)
|
post_received.project.touch(:last_activity_at, :last_repository_updated_at)
|
||||||
post_received.project.wiki.repository.expire_statistics_caches
|
post_received.project.wiki.repository.expire_statistics_caches
|
||||||
ProjectCacheWorker.perform_async(post_received.project.id, [], [:wiki_size])
|
ProjectCacheWorker.perform_async(post_received.project.id, [], [:wiki_size])
|
||||||
|
|
||||||
|
user = identify_user(post_received)
|
||||||
|
return false unless user
|
||||||
|
|
||||||
|
::Git::WikiPushService.new(post_received.project, user, changes: post_received.enum_for(:changes_refs)).execute
|
||||||
end
|
end
|
||||||
|
|
||||||
def log(message)
|
def log(message)
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class AddWikiColumnsToIndexStatus < ActiveRecord::Migration[5.1]
|
||||||
|
include Gitlab::Database::MigrationHelpers
|
||||||
|
|
||||||
|
DOWNTIME = false
|
||||||
|
|
||||||
|
def change
|
||||||
|
add_column :index_statuses, :last_wiki_commit, :binary
|
||||||
|
add_column :index_statuses, :wiki_indexed_at, :datetime_with_timezone
|
||||||
|
end
|
||||||
|
end
|
|
@ -1572,6 +1572,8 @@ ActiveRecord::Schema.define(version: 20190613030606) do
|
||||||
t.string "last_commit"
|
t.string "last_commit"
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
|
t.binary "last_wiki_commit"
|
||||||
|
t.datetime_with_timezone "wiki_indexed_at"
|
||||||
t.index ["project_id"], name: "index_index_statuses_on_project_id", unique: true, using: :btree
|
t.index ["project_id"], name: "index_index_statuses_on_project_id", unique: true, using: :btree
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue