Github Pull Requests

For code contributors and reviewers, I think the Github Pull Request model is extremely tight. Please read their blog post at https://github.com/blog/712-pull-requests-2-0. Note that Github can optionally associate an issue with a Pull request. I think thats a good starting point for how pull requests and issues play together.

Yep, there's a lot that they've done that we can work with/from. There are some key differences, but that post especially does highlight most of the principles we're going for. Biggest distinction is that Github's pull requests are a restricted/confined conversation to people who have push access to the requesting branch, whereas our conversations are open.

Yes, I'm quite sure. I think you missed my point: it's easy for you to open a pull request. What's not easy is for me to contribute code to the pull request you opened. I can harp on that comment, just like someone did to you, but I can't actually fix it myself, commit the fix & push it somewhere, and have my fix directly interwoven into the pull request.

As far as I'm concerned, Github's done just about the best conceivable job when it comes to facilitating that 1:1 interaction. But it gets awkward fast if you want to actually let multiple people write code together - you have to actually spin up a new repo for that. And if you both already have forks...yeah.

Maybe that's an edge case - but of the last three or four patches I've reviewed, I've really wanted to be able to make tweaks and push them back up into the conversation on top of what the other person has already done. Can't do it with Github, and unless I'm missing something big about how their system is structured, it runs counter to the fundamental structure of their interaction dynamic. We don't have to be limited by that on d.o, so I'd rather not.

One plausible solution is to build a simple service on top of Github. Let's call the new service 'AccessGranted!'. The flow goes like this.

User1 starts a "patch" by forking a Drupal project on Github.

User1 submits a PR to the maintainer

If User1 accepts helpers, she adds the 'AccessGranted!' user as an Admin on her repo

If User2 wants to add commits to the PR, he requests access using a Dreditor-ish button on the PR or by visiting AccessGranted!.com. AccessGranted! is a nice bot and always grants access to the target repo. Now, both Users can collaborate on the PR, using Github's world class code review system.