Skip to content

Update rebasing to use the new two-phase Gitaly Rebase RPC

Luke Duncalfe requested to merge 5966-rebase-with-block into master

What does this MR do?

This MR adds support for the new two-phase Gitaly Rebase RPC gitaly!1208 (merged).

The Rebase RPC yields the rebase commit SHA to the client before proceeding with the rebase. This allows Rails to update the merge request's rebase_commit_sha with the SHA before the rebase continues.

With the existing UserRebase RPC the rebase commit SHA is returned only when the call has fully completed, and in some cases, this would be after the Rails PostReceive-triggered worker services had already run. In these situations, the merge request did not yet have its rebase_commit_sha attribute set, causing a bug where approvals would be reset (and possibly other subtle bugs).

Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/5966

Does this MR meet the acceptance criteria?

Conformity

Performance and testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team

Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/5966

Edited by 🤖 GitLab Bot 🤖

Merge request reports