It's too easy to forget to triage a PR with the API label, and then
if the PR looks good and is approved the mergify system will merge
it. Move to using an explicit "no-API" label for marking the PR as truly
not having API changes and not requiring a 2nd review.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
This implements the policy first outlined in
https://github.com/ceph/go-ceph/discussions/549
In short: if a PR includes API changes (has the API label) then
either 2 reviews are required or 1 review plus 10 days must pass;
if a PR includes no API changes, then only 1 review is needed.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Tests are running against Ceph Pacific and passing, so this can be
marked as a required CI status.
dpulls handles dependencies between PRs, once the status is marked with
success, the requirements have all been merged. Prevent merging when
dpulls is in a failed state.
Signed-off-by: Niels de Vos <ndevos@redhat.com>
The "extended-review" label indicates that review is likely to take
an extended period of time and for bots to not automatically take
a PR.
This avoid the need to preemptively mark a PR as changes needed or
give a false impression with a "do-not-merge" tag, which has a subtle
lack-of-quality implication.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Enabling Smart-mode for "Strict Merge" causes Mergify to do a rebase of
the PR before merging. The rebase will trigger CI runs again, and
merging will be done only when the CI results are successful.
See-also: https://docs.mergify.io/actions.html#merge
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Unfortunately it is not recommended to use a regular expression to check
for the CI status of multiple tests. In case some tests do not run and
fail to report the status, Mergify will not know something is wrong and
PRs might get merged.
The only way to make sure all status checks have passed successfully, is
to list them all separately.
See-also: https://docs.mergify.io/conditions.html#validating-all-status-check
Signed-off-by: Niels de Vos <ndevos@redhat.com>
These rules for Mergify do the following:
1. dismiss review +1's when a PR is updated
but keep any -1 reviews, so the reviewer needs to confirm the update
addresses the comment(s)
2. merge the PR when there are 2 (or more) positive reviews, and no
negative ones
don't merge when the 'do-not-merge' label is added to the PR
also require that the status checks (CI) has passed
3. in case there are merge conflicts, Mergify will leave a message
asking for a rebase
Documentation: https://docs.mergify.io/configuration.html
Signed-off-by: Niels de Vos <ndevos@redhat.com>