diff options
Diffstat (limited to 'git_hooks_handle.go')
-rw-r--r-- | git_hooks_handle.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/git_hooks_handle.go b/git_hooks_handle.go index 9dc3ed6..24f8077 100644 --- a/git_hooks_handle.go +++ b/git_hooks_handle.go @@ -139,7 +139,7 @@ func hooks_handle_connection(conn net.Conn) { } else { // Existing contrib branch var existing_merge_request_user_id int err = database.QueryRow(ctx, - "SELECT creator FROM merge_requests WHERE source_ref = $1 AND repo_id = $2", + "SELECT COALESCE(creator, 0) FROM merge_requests WHERE source_ref = $1 AND repo_id = $2", strings.TrimPrefix(ref_name, "refs/heads/contrib/"), pack_to_hook.repo_id, ).Scan(&existing_merge_request_user_id) if err != nil { @@ -150,6 +150,11 @@ func hooks_handle_connection(conn net.Conn) { } return 1 } + if existing_merge_request_user_id == 0 { + all_ok = false + fmt.Fprintln(ssh_stderr, "Rejecting push to merge request with no owner", ref_name) + continue + } if existing_merge_request_user_id != pack_to_hook.user_id { all_ok = false |