Fire update hook from GitLab
This commit is contained in:
parent
a8e05cec00
commit
ae18ba1632
|
|
@ -7,6 +7,7 @@ v 8.3.0 (unreleased)
|
||||||
- Fix 500 error when update group member permission
|
- Fix 500 error when update group member permission
|
||||||
- Fix: Raw private snippets access workflow
|
- Fix: Raw private snippets access workflow
|
||||||
- Trim leading and trailing whitespace of milestone and issueable titles (Jose Corcuera)
|
- Trim leading and trailing whitespace of milestone and issueable titles (Jose Corcuera)
|
||||||
|
- Fire update hook from GitLab
|
||||||
|
|
||||||
v 8.2.1
|
v 8.2.1
|
||||||
- Forcefully update builds that didn't want to update with state machine
|
- Forcefully update builds that didn't want to update with state machine
|
||||||
|
|
|
||||||
|
|
@ -571,9 +571,13 @@ class Repository
|
||||||
|
|
||||||
# Run GitLab pre-receive hook
|
# Run GitLab pre-receive hook
|
||||||
pre_receive_hook = Gitlab::Git::Hook.new('pre-receive', path_to_repo)
|
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
|
if was_empty
|
||||||
# Create branch
|
# Create branch
|
||||||
rugged.references.create(ref, newrev)
|
rugged.references.create(ref, newrev)
|
||||||
|
|
@ -596,7 +600,7 @@ class Repository
|
||||||
# Remove tmp ref and return error to user
|
# Remove tmp ref and return error to user
|
||||||
rugged.references.delete(tmp_ref)
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,17 @@ module Gitlab
|
||||||
def trigger(gl_id, oldrev, newrev, ref)
|
def trigger(gl_id, oldrev, newrev, ref)
|
||||||
return true unless exists?
|
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(" ")
|
changes = [oldrev, newrev, ref].join(" ")
|
||||||
|
|
||||||
# function will return true if succesful
|
# function will return true if succesful
|
||||||
|
|
@ -54,6 +65,12 @@ module Gitlab
|
||||||
|
|
||||||
exit_status
|
exit_status
|
||||||
end
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue