I wanted to raise an issue that the mobile team has recently discovered during development of the Wiki Loves Monuments mobile app [1] on github.
Wikimedia has a github account with currently 18 members [2]. Every single one of these can merge to master on any of the projects.
The mobile team early on decided on a rule that no one can merge their own code to ensure that we maintain code quality by ensuring that all commits have been reviewed by at least once person.
This breaks down when people outside the mobile team who don't know this rule need to commit code to our repository. We've had two instances recently. One was a bad commit which reverted a change made by an earlier commit and another could have been improved as it cleaned up a file that wasn't actually being used and could have just been removed all together. These things could have been prevented/improved by our review system on github. Even I have been caught out by merging my own code in a situation where I thought someone was a simple change but turned out not to be.
Is this something we need to enforce ourselves (i.e. is there a way to reject merges where the author is the same) or could we simply agree and document somewhere that anyone with wikimedia account access on github should not merge any changes to a project they have made themselves?
[1] https://github.com/wikimedia/WLMMobile [2] https://github.com/wikimedia
I think documentation of how our current model works would be useful - not just as documentation for people contributing to the mobile projects but for other projects moving to GitHub as well (I see a few i18n ones there now!)
Indeed, this is by design on GitHub.
These kind of rules need to be socially applied and controlled. There is no way to prevent it mechanically through GitHub. Common agreement between developers, prior to granting access, of course.
-- Krinkle
wikitech-l@lists.wikimedia.org