Provide more details of why a cherry-pick or revert failed
Currently if a cherry-pick or revert fails, we show a generic error message:
{
"message": "Sorry, we cannot cherry-pick this merge request automatically. This merge request may already have been cherry-picked, or a more recent commit may have updated some of its content."
}
Digging deeper into the place where we handle the response from Gitaly, not much more information is available there either:
From: /Users/rspeicher/Code/gitlab/gdk-ee/gitlab-ee/lib/gitlab/gitaly_client/operation_service.rb @ line 451 Gitlab::GitalyClient::OperationService#handle_cherry_pick_or_revert_response:
444: def handle_cherry_pick_or_revert_response(response)
445: if response.pre_receive_error.presence
446: raise Gitlab::Git::PreReceiveError, response.pre_receive_error
447: elsif response.commit_error.presence
448: raise Gitlab::Git::CommitError, response.commit_error
449: elsif response.create_tree_error.presence
450: require 'pry'; binding.pry
=> 451: raise Gitlab::Git::Repository::CreateTreeError, response.create_tree_error
452: end
453:
454: Gitlab::Git::OperationService::BranchUpdate.from_gitaly(response.branch_update)
455: end
[1] pry(#<Gitlab::GitalyClient::OperationService>)> response
=> <Gitaly::UserCherryPickResponse: branch_update: nil, create_tree_error: "Gitlab::Git::Repository::CreateTreeError", commit_error: "", pre_receive_error: "">
Edited by Robert Speicher