Cloning another Bitbucket repository in Bitbucket Pipelines
I recently had a use-case where I wanted to clone another Bitbucket repository during a Pipelines execution. Doing this is very simple, but there is a lot of conflicting information online, so I thought I would document the steps here.
Imagine a very simple Pipeline that looks like this:
pipelines: default: - step: script: - git clone firstname.lastname@example.org:ayushsharma/my-submodules.git
The repository that triggers the Pipeline will need permission to clone
Create SSH keys for the main repository
In Bitbucket, go to the repository SSH keys page under
Settings > Pipelines > SSH keys.
Next, click on
Generate keys to let Bitbucket auto-generate a random, secure SSH key-pair. You can also upload a custom key-pair if you want.
Once completed, click
Copy public key. We will need to paste this in the next step.
Add SSH public key in the target repository
Go to the
my-submodules repository. Under
Settings > General > Access keys, you should see the option to add SSH public keys to gain read-only access.
Add key, enter a label, and paste the public key we copied in the previous step.
Our main repository now has read-only permissions to clone
my-submodules from within its Pipelines. After the above configuration, executing a build for the repository will show all-green.