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
Host 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 > General > 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 email@example.com:RepoOrg/RepoName.git - cd RepoName.git - git push --mirror firstname.lastname@example.org:RepoOrg/RepoName.git
Now, the pipeline automatically mirrors any Bitbucket pushes to GitHub!
Do you need to solve any of these problems?
|Display PDF documents in a Web app|
|Use PDF Forms in a web browser|
|Convert PDF Documents to an image|
|Work with PDF Documents in Java|
Are you a Developer working with PDF files?
|Learn more about PDF file format|