BitSyncHub is a service to automatically mirror Bitbucket Mercurial repositories on GitHub. It is used by adding a POST service to your repository at Bitbucket, and adding github.com/bitsynchub as a contributor to your GitHub project. I wrote it to be able to mirror hgapi on GitHub, mainly to make it possible to use Travis CI.
- Is it free? For public projects on Bitbucket, yes.
- Can I give you my monies anyway?
- It seems slow? The service will only handle one repository at a time, to keep server load down. I might increase this in the future.
- How does it work? BitSyncHub clones your repository, creates bookmarks for branch mappings, and then uses hggit to push changes to GitHub.
- Couldn't you use bithubsync's access for evil? Yes. I won't, though.
- What technology do you use? A custom WSGI app behind a Lighttpd server, UWSGI, Python 3.3, Celery, MongoDB (for Celery), Mercurial, and hggit.
- Why isn't BitSyncHub open source? All in all, it's less than 100 LoC; if you need to do the same thing you can probably figure it out. Or hire me to do it for you...
- Will you implement [feature]? I don't know, ask me. Some things I will add, like GitHub->Bitbucket synch and support for Bitbucket git repositories.
- In your Bitbucket repository, go to Administration (looks like a cogwheel), select 'Services'
- Select POST in the dropdown, and click 'Add service'
- In the URL field for your new service, enter http://www.metallapan.se/services/bitsynchub/?github=<USER>/<REPO> (no spaces, replace <USER> and <REPO> with values that make sense)
- (Unless you already have a mirror) Initialize an empty Github repo at github.com/<USER>/<REPO>
- Add bitsynchub as a contributor to your new Github repo
- Done; this will synch default->master
- To add more branches, add &branches=default:master,mybranch:mybranch to the service URL