On Tue, May 5, 2015 at 1:05 AM, Amir Ladsgroup ladsgroup@gmail.com wrote:
Hey, Github has a huge community of developers that collaborating with them can be beneficial for us and them but Wikimedia codes are in gerrit (and in future in phabricator) and our bug tracker is in phabrictor. sometimes It feels we are in another planet. Wikimedia has a mirror in github but we close pull requests immediately and we barely check issues raised there. Also there is a big notice in github[1], "if you want to help, do it our way". Suddenly I got an idea that if we can synchronize github activities with gerrit and phabricator, it would help us by letting others help in their own way. It made me so excited that I wrote a bot yesterday to automatically duplicates patches of pull requests in gerrit and makes a comment in the pull request stating we made a patch in gerrit. I did a test in pywikibot and it worked well [2][3].
Note that the bot doesn't create a pull request for every gerrit patch but it creates a gerrit patch for every (open) pull requests.
But before I go on we need to discuss on several important aspects of this idea: 1- Is it really necessary to do this? Do you agree we need something like that? 2-I think a bot to duplicate pull requests is not the best idea since it creates them under the bot account and not under original user account. We can create a plugin for phabrictor to do that but issues like privacy would bother us. (using OAuth wouldn't be a bad idea) What do you think? What do you suggest? 3- Even if we create a plugin, still a bot to synchronize comments and code reviews is needed. I wrote my original code in a way that I can expand this to do this job too, but do you agree we need to do this? 4- We can also expand this bot to create a phabricator task for each issue that has been created (except pull requests). Is it okay?
I published my code in [4].
[1]: https://github.com/wikimedia/pywikibot-core "Github mirror of "pywikibot/core" - our actual code is hosted with Gerrit (please see https://www.mediawiki.org/wiki/Developer_access for contributing" [2]: https://github.com/wikimedia/pywikibot-core/pull/5 [3]: https://gerrit.wikimedia.org/r/208906 [4]: https://github.com/Ladsgroup/sync_github_bot
I think this is a cool idea. What I like about this is the general idea of trying to lower the barriers to contribution while still preserving a single source of truth and reviewer workflow.
RobLa and I talked a couple of times in the past about the potential usefulness of something similar. I'm actually more interested in seeing tools built to bridge GitHub and Phabricator than GitHub and Gerrit however. Gerrit's days as the Wikimedia code review system are numbered and Phabricator will be the next system we use.
Facebook uses a bot to transfer pull requests from GitHub [5] to their Phabricator instance [6] for HHVM. Having a system like this for the Wikimedia projects would be nice. It would be interesting to see something similar built to transfer GitHub issues to Phabricator as well possibly with an additional status change on the GitHub side when the associated Phabricator task was resolved.
[5]: https://github.com/facebook/hhvm/pull/4924#issuecomment-76651483 [6]: https://reviews.facebook.net/D34215
Bryan