My Digital Garden

Mirroring Git repository from Bitbucket to Github

Mirroring Git repository from Bitbucket to Github

Steps

  1. On GitHub, create a new repository (import or from scratch).
  2. On Bitbucket, Enable Pipelines under Repository settings > Pipelines > Settings.
  3. On Bitbucket, Generate keys under Repository settings > Pipelines > SSH keys. Copy the public key to clipboard.
  4. On the same page, under Known hosts enter github.com as the Host address and then click Fetch* followed by Add host.
  5. On GitHub, add the public key under Settings > Security > Deploy keys > Add deploy key. Tick the checkbox to Allow write access.
  6. On Bitbucket, add the public key under Repository settings > Security > Access keys > Add key.
  7. 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

See also