Update rebasing to use the new two-phase Gitaly Rebase RPC
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
-
Changelog entry - [-] Documentation created/updated or follow-up review issue created
-
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
- [-] Separation of EE specific content
Performance and testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. - [-] Tested in all supported browsers
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