-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Low
-
None
-
Affects Version/s: 9.4.16, 10.1.4
-
Component/s: Pull Request - Merge
-
None
-
1
-
Severity 3 - Minor
-
5
Issue Summary
There is currently a rare race condition for pull requests where one can unapprove a pull request while it is in the process of actively merging. This can result in a PR becoming merged without any approvals, despite there being a merge check mandating approvals on the PR.
This behavior results in user and admin confusion, as time must be spent determining whether the PR was actually approved when the merge was initiated and whether any related merge checks were actually being correctly enforced.
Steps to Reproduce
- Create a pull request on a large repository with longer merge times (such as one with large numbers of cascading merges), then configure the repository to have a merge check where PRs must have at least one approval.
- Add a reviewer to the PR, then have them approve it, thus fulfilling the merge check.
- Merge the pull request, either manually or through the merge queue
- Quickly, during the merge, have the approver from step 2 attempt to rescind their approval
Expected Results
The reviewer is blocked from attempting to rescind their approval and is given an error similar to what they would receive if they attempted to do so after the PR had fully been merged.
Actual Results
The action completes, resulting in the PR having no approvals at the time when the merge is completed, despite the required approvals merge check being in place.
Workaround
Currently, there is no known workaround for this behavior. A workaround will be added here when available