We normally use “Squash and merge” for all of our PRs and that is set as the default of for our repos, but occasionally it it preferable to use “Rebase and merge” e.g. when collecting cherry-picked commits for back- or forward-ports between branches. Currently there is just a convention to put
[NO SQUASH] in the PR title but obviously there is nothing to prevent someone accidentally doing a squash merge anyway.
Is it possible for a GH action to control/reject specific kinds of merges, e.g. based on the presence of a
REBASE ONLY label, a merge wound not occur unless it was “Rebase and merge”? Is anyone aware of any existing actions that might already do this?