I maintain several modules on drupal.org. Having spent years doing things "the drupal way" (remember CVS?) I'd like to make my life a bit easier and use GitHub.
While there may be political reasons this could be undesirable, are there any technical reasons? I imagine one-way syncing could be as simple as a cron job that does a fast-forward push from a github repo to the corresponding drupal.org repo.
Is that all there is to it? Are there existing tools to facilitate this?
Technically, this post on SO covers pushing/pulling from multiple git remotes. In your case, it sounds like you'd set up 2 remotes (git.drupal.org & github.com), pull/push from github.com as needed, then push to git.drupal.org when you're ready to publish updates.
As far as the politics, checkout this thread on g.d.o. It might contain some thoughts/insights from other people who are in the same situation you're in.
The maintainers of the RESTful module were talking recently about their reasons and experience developing the module entirely on Github:
Hope it helps,
You could consider the http://hubdrop.org/ service
It makes a lot of sense to use GitHub if you want to publish experimental code. The modules that you'll never plan to publish as a full project.
When you manage a contributed module, everyone is free to participate. Besides, drupal.org has tight integration with git.drupal.org, so you really have to use it.
I do not think it would be better if you move your code over to GitHub and ask others to participate there. Besides, I'm really happy with the version control systems now we have and how they have advanced over time.
However, if you maintain any other Drupal addons, for example, an configuration file for an IDE, a site migration script, proof of concepts, or something like that, I think github would fit better. Also, there is a requirement to publish your code under GPL if you want to use drupal.org git.
I also maintain some modules, and I add github remote handler in addition to the drupal.org one. When you push your code, you can simply push it to GitHub the same way.