Hi all, At Ceph-Dashboard's meetings we have discussed a couple of times how to improve PR review & merge process. Sometimes Pull Requests get stalled with no clear reason: they have positive reviews, perhaps some comments/suggestions, but not clear rejections. And, after a certain moment, the longer they remain open, the harder they seem to get merged (or closed). An idea taken from Ceph-Ansible team would be to 'code' the set of rules that a PR needs to meet in order to be merged and use some tool (e.g.: Mergify <https://mergify.io>) to implement that. This would change the contribution pipeline from a push model (PRs not merged unless manual action taken) to pull model (rules met, PRs get merged unless manual action taken). This PR <https://github.com/ceph/ceph/pull/29496> brings Mergify to Dashboard, with the following set of rules: - PR base branch is 'master' - PR is labeled 'dashboard' - PR title starts with "mgr/dashboard: " - All Jenkins checks pass (except arm64) - 2 review approvals required with no changes-requested or unaddressed comments. All requested reviewers have issued a review (perhaps too strict). - As Dashboard's CODEOWNERS PR <https://github.com/ceph/ceph/pull/29451> is already merged, that means that at least 1 one the approvals must come from a @ceph/dashboard team member. - 'DNM' label not present One downside identified is that Mergify does not allow to specify a message for the merge commit (e.g.: to add "Reviewed-by:" metadata). I'm preparing a PR to Mergify repo <https://github.com/Mergifyio/mergify-engine>, but the GitHub Reviews <https://developer.github.com/v3/pulls/reviews/> API does not easily provide with every reviewer's e-mail (nor the Users API <https://developer.github.com/v3/users/> does), so it needs to be extracted from the Events API <https://developer.github.com/v3/activity/events/> (which is kind of tricky). And this use case seem to be specific to us, right? So, would it be ok to have PR merge commit messages with "Reviewed-By: FirstName LastName <@github_login>" or even with no message at all? BTW, apart from the "merge" action, Mergify provides other actions <https://doc.mergify.io/actions.html> that could be useful to automate other daily manual steps: - Backport the PR to another branch - Add a comment to the PR - Add or remove labels (e.g: if the PR title matches "^mgr/dashboard: ", let's add a "dashboard" label). Any feedback welcome! Kind Regards, Ernesto Puerta He / Him / His Senior Software Engineer, Ceph Red Hat <https://www.redhat.com/> <https://www.redhat.com/>