Merge branch 'upload_hook' into 'master'
Fire update hook from GitLab https://gitlab.com/gitlab-org/gitlab-ce/issues/3069 See merge request !1882
This commit is contained in:
commit
13c6096e42
3 changed files with 25 additions and 3 deletions
|
@ -4,6 +4,7 @@ v 8.3.0 (unreleased)
|
|||
- Fix: Assignee selector is empty when 'Unassigned' is selected (Jose Corcuera)
|
||||
- Fix 500 error when update group member permission
|
||||
- Trim leading and trailing whitespace of milestone and issueable titles (Jose Corcuera)
|
||||
- Fire update hook from GitLab
|
||||
|
||||
v 8.2.2
|
||||
- Fix 404 in redirection after removing a project (Stan Hu)
|
||||
|
|
|
@ -571,9 +571,13 @@ class Repository
|
|||
|
||||
# Run GitLab pre-receive hook
|
||||
pre_receive_hook = Gitlab::Git::Hook.new('pre-receive', path_to_repo)
|
||||
status = pre_receive_hook.trigger(gl_id, oldrev, newrev, ref)
|
||||
pre_receive_hook_status = pre_receive_hook.trigger(gl_id, oldrev, newrev, ref)
|
||||
|
||||
if status
|
||||
# Run GitLab update hook
|
||||
update_hook = Gitlab::Git::Hook.new('update', path_to_repo)
|
||||
update_hook_status = update_hook.trigger(gl_id, oldrev, newrev, ref)
|
||||
|
||||
if pre_receive_hook_status && update_hook_status
|
||||
if was_empty
|
||||
# Create branch
|
||||
rugged.references.create(ref, newrev)
|
||||
|
@ -596,7 +600,7 @@ class Repository
|
|||
# Remove tmp ref and return error to user
|
||||
rugged.references.delete(tmp_ref)
|
||||
|
||||
raise PreReceiveError.new('Commit was rejected by pre-receive hook')
|
||||
raise PreReceiveError.new('Commit was rejected by git hook')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -16,6 +16,17 @@ module Gitlab
|
|||
def trigger(gl_id, oldrev, newrev, ref)
|
||||
return true unless exists?
|
||||
|
||||
case name
|
||||
when "pre-receive", "post-receive"
|
||||
call_receive_hook(gl_id, oldrev, newrev, ref)
|
||||
when "update"
|
||||
call_update_hook(gl_id, oldrev, newrev, ref)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def call_receive_hook(gl_id, oldrev, newrev, ref)
|
||||
changes = [oldrev, newrev, ref].join(" ")
|
||||
|
||||
# function will return true if succesful
|
||||
|
@ -54,6 +65,12 @@ module Gitlab
|
|||
|
||||
exit_status
|
||||
end
|
||||
|
||||
def call_update_hook(gl_id, oldrev, newrev, ref)
|
||||
Dir.chdir(repo_path) do
|
||||
system({ 'GL_ID' => gl_id }, path, ref, oldrev, newrev)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue