Commit 7277c9b0 authored by Nick Thomas's avatar Nick Thomas

Merge branch 'ce-12014-incremental-es-wiki-updates' into 'master'

Backport of 12014-incremental-es-wiki-updates

See merge request gitlab-org/gitlab-ce!29531
parents 5740dccd 39ec4d1c
# 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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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)
......
# 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 ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment