mergify icon indicating copy to clipboard operation
mergify copied to clipboard

Allow dismiss_reviews only on non-rebase updates

Open Sidnioulz opened this issue 2 years ago • 2 comments

Expected Behavior

An option for dismiss_review's when that only triggers when commits are added to a PR's head, but not when it is rebased (in other words, only accounting for changes made on commits not on the target branch).

Why? We use approvals on A/B branches to indicate that they have been reviewed, before triggering a release, which then allows other tools to run the A/B test down the line. We then want the reviews to be dismissed if the PR is updated with new changes, but we still want the branch to keep being released and used when the main branch is updated, so that it stays up to date.

With approvals dismissed on rebase, it's necessary to manually reapprove. If approvals could be dismissed only on non-rebase changes, our model could be implemented.

Actual Behavior

Not possible at the moment. Rebases trigger dismiss_review.

Steps to Reproduce the Problem

  1. Create config with dismiss_reviews and when set to either allowed value
  2. Open a PR, approve it
  3. Rebase the PR, notice approvals are gone

Specifications

  • Pull Request URL: ø
  • Mergify Config URL: ø

Sidnioulz avatar Nov 10 '22 14:11 Sidnioulz

The main issue is that rebasing a branch changes all the sha1, so there's no way to know if the rebase introduced new commits, new content or not.

jd avatar Nov 10 '22 14:11 jd

Would it be acceptable to have it heuristics based? Do you have access to new/old diffs and messages, or only hashes, in this code path?

Sidnioulz avatar Nov 10 '22 14:11 Sidnioulz