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 email@example.com:ayushsharma/my-submodules.git
The repository that triggers the Pipeline will need permission to clone
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.
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.