Recently, I needed to sync a Bitbucket repo to GitHub. I wanted to use a tool that only integrates with GitHub, but our repository lives on Bitbucket!
I found other tutorials that mirrored the repository to GitHub, but they didn’t fully solve my problem because a Bitbucket pipeline only clones a single branch as standard.
Thankfully, setting up an automation to fully mirror a Bitbucket repository to GitHub is very easy to do using a Bitbucket pipeline and GitHub deploy key using these instructions:
- On GitHub, create a new repository (import or from scratch).
- On Bitbucket, Enable Pipelines under
Repository settings > Pipelines > Settings. - On Bitbucket, Generate keys under
Repository settings > Pipelines > SSH keys. Copy the public key to clipboard. - On the same page, under Known hosts enter
github.comas theHost addressand then click Fetch followed by Add host. - On GitHub, add the public key under
Settings > Security > Deploy keys > Add deploy key. Tick the checkbox to Allow write access. - On Bitbucket, add the public key under
Repository settings > Security > Access keys > Add key. - Inside the Bitbucket repo, create a
bitbucket-pipelines.ymlfile containing the following:pipelines: default: - step: name: Sync GitHub Mirror image: alpine/git:latest clone: enabled: false script: - git clone --bare git@bitbucket.org:RepoOrg/RepoName.git - cd RepoName.git - git push --mirror git@github.com:RepoOrg/RepoName.git
Now, the pipeline automatically mirrors any Bitbucket pushes to GitHub!
Our software libraries allow you to
| Convert PDF files to HTML |
| Use PDF Forms in a web browser |
| Convert PDF Documents to an image |
| Work with PDF Documents in Java |
| Read and write HEIC and other Image formats in Java |