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.com
as theHost address
and 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.yml
file 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 |