[squid-dev] Merge bot: Disabling GitHub voting enforcement

Alex Rousskov rousskov at measurement-factory.com
Thu Apr 19 16:27:17 UTC 2018


    The merge bot has successfully completed several pull request
merges. You can see them in a master:

  $ git log --committer=squid-anubis upstream/master

All of those merges were done while watching Anubis log for signs of
problems. We are now comfortable with allowing Anubis to merge (manually
labeled as M-cleared-for-merge) pull requests without us watching the logs.

The following two configuration and behavior changes are required to
proceed to this next merge automation phase. If there are no objections,
I will change GitHub configuration, and repository administrators should
change their behavior as discussed below.

1. GitHub will stop enforcing master review requirements.

GitHub associates reviews with a pull request. Anubis is merging a
staged commit that, from GitHub point of view, is not a part of a pull
request. In its current configuration, GitHub prohibits the bot from
merging the staged commit because, from GitHub point of view, it has not
been reviewed. I plan to disable that check.

Anubis is configured to enforce Squid Project requirements. In fact, the
bot understands official requirements better than GitHub. For example,
GitHub does not understand that the pull request author normally votes
for their own code. GitHub does not even allow voting for own code.
Anubis does count the author as a positive vote.

Unlike GitHub, Anubis follows official requirements related to voting
timeouts. Anubis also adds a minimal waiting period to give developers a
chance to review a pull request. The lack of such a period was already a
problem on the mailing list, but it becomes a lot more pronounced when
things are automated -- there is no human in the loop to pause and give
others a chance to review.

We will continue to use GitHub for voting. It is the vote counting agent
that is changing, not the voting mechanism.

Anubis merge criteria are documented at

while specific configuration options listed at

2. Manual master mergers will be prohibited.

Since we have to disable GitHub voting enforcement, we can no longer
rely on GitHub hiding the Big Green merge button until there are enough
votes. The button will be available (to repository owners and
administrators) in cases where the pull request should NOT be merged!

Please do not merge manually when GitHub does not enforce voting rules.

If you want to merge a pull request, double check that the staged commit
is acceptable and add a M-cleared-for-merge label. The bot should merge
the labeled pull request (after the staged commit passes tests and the
pull request gets enough votes, of course).

If you have any objections to the above two changes, please speak up!
Similarly, if you see problems with bot commits, please post here or
file a bug report with Squid Bugzilla (or in Anubis Issues on GitHub).

Thank you,

P.S. If this phase is successful, the last step would be to remove the
manual pull request labeling requirement -- the bot will automatically
merge any eligible pull request.

More information about the squid-dev mailing list