Skip to content
Snippets Groups Projects

Add structured error parsing for user_cherry_pick

Merged John Cai requested to merge jc-structured-errors-for-cherry-pick into master
All threads resolved!
Files
4
@@ -464,6 +464,21 @@ def call_cherry_pick_or_revert(rpc, user:, commit:, branch_name:, message:, star
)
handle_cherry_pick_or_revert_response(response)
rescue GRPC::BadStatus => e
detailed_error = decode_detailed_error(e)
case detailed_error&.error
when :access_check
access_check_error = detailed_error.access_check
# These messages were returned from internal/allowed API calls
raise Gitlab::Git::PreReceiveError.new(fallback_message: access_check_error.error_message)
when :cherry_pick_conflict
raise Gitlab::Git::Repository::CreateTreeError, "index conflict"
when :target_branch_diverged
+5
raise Gitlab::Git::CommitError, "branch diverged"
else
raise e
end
end
def handle_cherry_pick_or_revert_response(response)
Loading