11require 'open3'
22
33class GitlabCustomHook
4+ attr_reader :vars
5+
6+ def initialize ( key_id )
7+ @vars = { 'GL_ID' => key_id }
8+ end
9+
410 def pre_receive ( changes , repo_path )
511 hook = hook_file ( 'pre-receive' , repo_path )
612 return true if hook . nil?
@@ -11,15 +17,15 @@ def pre_receive(changes, repo_path)
1117 def post_receive ( changes , repo_path )
1218 hook = hook_file ( 'post-receive' , repo_path )
1319 return true if hook . nil?
14-
20+
1521 call_receive_hook ( hook , changes )
1622 end
1723
1824 def update ( ref_name , old_value , new_value , repo_path )
1925 hook = hook_file ( 'update' , repo_path )
2026 return true if hook . nil?
2127
22- system ( hook , ref_name , old_value , new_value )
28+ system ( vars , hook , ref_name , old_value , new_value )
2329 end
2430
2531 private
@@ -28,7 +34,7 @@ def call_receive_hook(hook, changes)
2834 # Prepare the hook subprocess. Attach a pipe to its stdin, and merge
2935 # both its stdout and stderr into our own stdout.
3036 stdin_reader , stdin_writer = IO . pipe
31- hook_pid = spawn ( hook , in : stdin_reader , err : :out )
37+ hook_pid = spawn ( vars , hook , in : stdin_reader , err : :out )
3238 stdin_reader . close
3339
3440 # Submit changes to the hook via its stdin.
0 commit comments