Bitbucket is a Git hosting platform developed by Atlassian. Like GitHub and GitLab, it allows developers to store, manage, and collaborate on code — but with tighter integration into Atlassian’s suite of tools like Jira and Confluence.
In this guide, we’ll walk through how to integrate Bitbucket with Bruno to enable version-controlled API development using Bruno’s built-in Git UI (a premium feature). By the end, you’ll have your API collection stored in a Bitbucket repo and fully synced with your local Bruno environment.
Before jumping into the setup, let’s quickly cover the “why” behind this workflow.
A Version Control System (VCS) tracks and manages changes to files over time. For software development, that means you can:
View the history of changes to your code or API definitions
Revert to earlier versions when something breaks
Collaborate with others without overwriting work
Review changes through diffs and pull requests
Bruno is the only API client that stores collections/folders/requests as files on your local filesystem, allowing for native Git-based workflows. This gives you a huge advantage in versioning, collaboration, and ultimately feeling confident in your source of truth.
A Git hosting platform helps you to deploy your local working directory (repository) to the cloud. It's helpful for organization to collaborate, automate, and maintain clean str
In the competitive landscape of Git hosting services, Bitbucket stands as a strong contender alongside two giants:
Bruno is an open-source, fast, and Git-friendly API client. Unlike some other API clients that store collections in proprietary formats or hidden cloud databases, Bruno stores your API requests as simple, human-readable .bru files directly on your local filesystem. This design choice makes Bruno exceptionally well-suited for Git-based version control.
When you save a request in Bruno, it creates a .bru
file. When you modify it, the .bru
file changes. This means you can commit, push, pull, and manage your API definitions just like your source code.
Bruno's Team Collaboration Feature: Bruno enhances team collaboration over API development by providing in-app Git UI functionality. This feature allows teams to:
This functionality is part of Bruno's commercial offering, aimed at streamlining workflows for professional teams. It bridges the gap between your API client and your version control system, making API development a truly collaborative and version-controlled process.
If you don't already have one, create a new Git repository in Bitbucket. This is where your Bruno API collection will live.
After creation, Bitbucket will provide you with the Git URL
git@bitbucket.org:your_team/my-api-collection.git
or
git@bitbucket.org:your_team/my-api-collection.git
To interact with your Bitbucket repository from your local machine and Bruno, you need to authenticate securely. There are two primary methods: SSH Keys (recommended for convenience and security) or App Passwords (for HTTPS connections).
SSH keys provide a more secure and convenient way to authenticate, as you don't have to enter your password repeatedly.
ssh-keygen -t rsa -b 4096 -C your_email@example.comb -f ~/.ssh/id_rsa_bitbucket
Press Enter to accept the default file location (`~/.ssh/id_rsa`).
You can optionally set a passphrase for added security (you'll need to enter it once per session).ssh-add ~/.ssh/id_rsa_bitbucket
If you used a different file name, specify that path.cat ~/.ssh/id_rsa_bitbucket.pub
Copy the entire output, starting with `ssh-rsa` and ending with your email.ssh -T git@bitbucket.org
You should see a message like "authenticated via ssh key" and "You can use Git to connect to Bitbucket."Now, tell Bruno to link this local directory (API Collection) to the the Bitbucket repo.
3. Add Remotes:
Go to remotes and add the origin (link copied previously).
Bruno offers an integrated Git UI for seamless version control operations. This is typically available as part of Bruno's premium features designed for teams.
Check out the official documentation to learn more about Bruno’s Git UI functionality and how to use all its available operations effectively.
After pushing your changes from Bruno, go back to your Bitbucket repository in your web browser. You should see your .bru
files and any other changes reflected in the repository's file browser and commit history.
By integrating Bruno with Bitbucket, you elevate your API development from a standalone process to a fully version-controlled, collaborative workflow. This ensures that your API definitions are as well-managed as your code, enabling better team synchronization, clearer history tracking, and a more robust development lifecycle.
Want to learn more? Come join us on the Bruno Discord!