Better support for multiple SSH keys

By on October 26, 2016

Alongside your professional “day job” Bitbucket account, you may just have a personal Bitbucket account where you’re building silent iPhone 7 games, hacking on the first killer VR app, or training TensorFlow to write one for you. To access both accounts from one computer, you’ve either had to use HTTPS for repositories belonging to your second account, or mangle your SSH config in order to provide the right key for the right clone. All whilst wondering why your repository’s SSH URL is prefixed with the seemingly redundant or

Moonlighters, I have good news for you! You can now prefix your repository URL with your Bitbucket username to easily use different SSH keys with different accounts. Simply clone from and Bitbucket will use the correct key proffered by your SSH agent.

To update a local repository to specify your username in the clone URL:

# determine your Git clone URL
$ git remote -v
origin (fetch)
origin (push)

# replace git@ with your-username@
$ git remote set-url origin

If you haven’t already, you can easily generate a second SSH key for your alternate account:

# generate and add a new SSH key
$ ssh-keygen -f ~/.ssh/your-username
$ ssh-add ~/.ssh/your-username

(You’ll also need to add the contents of ~/.ssh/ as a new Bitbucket SSH key.)

ssh-add adds the key to your local SSH agent, which Git and Mercurial will use automatically when interacting with a remote repository over SSH.
During key exchange, your SSH agent offers all the keys that may be appropriate for a particular host. Using git@ as a prefix means Bitbucket doesn’t know which user you’re attempting to authenticate as – so it accepts the first key that it recognizes. If this key belongs to your professional account, and you’re attempting to access a personal repository (or vice versa), you’re outta luck. Using your-username@ as a prefix allows Bitbucket to filter down which SSH keys should be accepted for a particular request.

If you have but a single Bitbucket account – no need to do anything. For backwards compatibility (and supporting things like deployment keys) git@ and hg@ will continue to work for the foreseeable future.

Happy moonlighting!

Bitbucket Pipelines is now generally available

By on October 25, 2016

The fastest growing companies in the world today aren’t product companies, they’re service companies. Where we used to buy cars, we now hail a ride from a ridesharing app, and where we used to buy physical music, we now stream online. Agile and DevOps methodologies are increasingly popular today as software development teams strive to improve their velocity to keep up with this demand, and these teams are breaking down silos in order for their various engineering, support, and IT orgs to operate better together.

Continuous Delivery in particular is allowing teams to automate many of the tasks associated with building, testing, and deploying their services. This automation allows teams to meet customer demand for frequent releases while improving the quality of their services, and we’re proud to announce that Bitbucket Pipelines is now generally available to help all teams build, test, and deploy using continuous delivery, all within Bitbucket Cloud.

Configuration as code

If you missed the launch of the beta earlier this year, Bitbucket Pipelines is built right within Bitbucket Cloud, giving you end-to-end visibility from coding to deployment. With Bitbucket Pipelines there’s no CI server to setup, user management to configure, or repositories to synchronize. And where your build configuration files might be hosted separately from your code, Pipelines keeps everything together in Bitbucket. Better still, your configuration files are managed and versioned, allowing for your team to view, edit, and review to ensure quality like the rest of your code.


Bitbucket native

Gone are the days of having to switch between different systems to work out the status of your builds or why they’ve failed – Pipelines brings the status of builds into your repository. You can see the status of your branches and commits everywhere in Bitbucket, giving you crucial visibility on the status of your builds when you branch and before you merge.



It’s easy to get started too – all you need to do is commit a single configuration file into your repository and you’re good to go. Your configuration can be as simple or as complex as you need and with Pipelines utilizing Docker containers, you have the flexibility to choose from a wide variety of languages.

Infinite scale

Estimating capacity for your builds is a fine balancing act. Underestimate and you risk builds queuing up, resulting in idle time for your developers; overestimate and you’re wasting money on extra capacity. Bitbucket Pipelines scales instantly, helping you avoid queues by scaling up on demand when you need it. And with Pipelines you don’t have to pay for idle time, saving you money by charging for just what you use.


Whether you want to deploy, test, monitor, analyze code, or store artifacts, complete any workflow with the tool of your choice by bringing your favorite services to Bitbucket Pipelines. We’re working with many industry leaders to ensure there’s continued support for the tools and technologies your team needs to build and ship software. Current integrations include AWS, Google, Microsoft, npm, Puppet, Rollbar, Sauce Labs, Sentry, SourceClear, TestFairy, and many more. Check out our integrations page for the full list of integrations.

Pay for what you use

Best of all, Bitbucket Pipelines utilizes a unique pay-as-you-go model for pricing. Never pay for containers and getting charged for the days, weeks, or even months when a given repository is idle; get started with continuous delivery for as little as 1 cent per minute. Based off of average use during the beta, that’s less than a cup of coffee a month for each developer!

With Bitbucket Pipelines we want to help all teams deliver better software faster, and we’re excited about the future of Continuous Delivery within Bitbucket. Try Bitbucket Pipelines and accelerate your team’s releases today.


Sign up for Bitbucket

Scaling in Bitbucket Cloud: new features and reliability numbers

By on October 12, 2016

More and more applications are moving to the cloud. It is growing so rapidly that revenue from public cloud platforms, business services, and SAAS will grow 22%, reaching $236 billion by 2020 according to Forrester*. But why? The flexibility to scale cloud capacity, decreased hardware costs, automatic software updates and the ability to access critical information anytime, from anywhere makes a powerful business case for cloud.

The second wave of adoption will be moving the full software development workflow to the cloud for the same reason applications moved: accelerating business velocity. Having your apps and your CD pipeline in the cloud in one integrated platform reduces the need to switch between tools, cuts down on complexity, and gives companies a big competitive advantage by enabling rapid agile delivery. We are committed to meet teams where ever they are on their cloud journey, which is why we built Pipelines, LFS and Mirroring in Bitbucket.

New Features: Pipelines, Git LFS, Smart Mirroring and more

To help both our on-premise and SaaS customers scale in the cloud, today we’re announcing new features focused security, collaboration, and performance:

Bitbucket media file viewer

Premium Features- now in a free trial: Some teams require granular admin controls, security, and auditing capabilities. For them, we’re introducing a new Premium plan that is available for all users as a free trial for a limited time including the following features:

Security and reliability improvements in Bitbucket Cloud

Source code in the cloud used to be unthinkable due to security and reliability concerns, but the momentum has shifted. Today, if you build for the cloud, you should build in the cloud. Bitbucket has seen a massive trend in this direction with a 142% compounded annual growth rate over the last 3 years among professional software teams moving their source code to the cloud.

Over the last we’ve made major investments in upgrading our hardware, improving monitoring and alerting, reconfiguring internal and external network infrastructure, and revised database queries and configurations. We’re proud to see these investments paying off with 99.98% uptime in June, 100% in July, 99.98% in August, and 99.98% in September.

We’ve also launched a slew of security updates over the last year to ensure your company’s most precious asset is safe. 2 factor authentication (2FA), Universal Second Factor(U2F), improved SSH to accept ECDSA and ed25519 user keys, and added HTTPS to our hosted sites are just the beginning.

Pay only for what you need with per user pricing

Most companies use SaaS so they can scale easily in the cloud and pay only for what they use. In our current model, unless you have exactly 10, 25, 50 or 100 users, you can end up paying for seats you don’t use. In the new pricing model (price-per-user) you only pay for the users who are actually part of your team. The Standard plan includes the Bitbucket you love at $2/user/month. The Premium plan at $5/user/month is for teams that require granular admin controls, security and auditing. Bitbucket Cloud will still be free for small teams of up to 5 users. More details can be found here.

Get started

At Bitbucket, we invest heavily in both our cloud and on-prem platforms so we can meet teams whereever they are, whether hosting their source code using Bitbucket Server behind the firewall or in the public cloud, or making the full move of their source code to Bitbucket Cloud.

We hope you enjoy Bitbucket’s new features. Let’s start shipping more awesome things together.

Sign up for Bitbucket

*The Public Cloud Services Market Will Grow Rapidly To $236 Billion In 2020, a September 2016 Forrester report

Have more specific questions about this post? Reach out to us on Twitter to get the information you need

Safer branching

By on October 6, 2016

A comic in which a developer commits directly to master, temporarily breaking the build. Another developer has the misfortune to fetch master whilst broken, and creates a feature branch from the broken commit. This causes confusion later on when the tests fail in an area of the code that they had not modified on the branch. Had the developer created the branch via the Bitbucket UI, they would have been warned that the branch they were creating a commit from was currently failing the tests.

Try Bitbucket Pipelines

Bitbucket blog update

By on October 4, 2016

Dear Readers,

Bitbucket team here with a quick update on how we are managing the Bitbucket blog. Starting Friday, October 7th, we will be turning off commenting on the blog.

It’s not that we don’t want to talk to you – we do! We noticed that sometimes blog comments go unanswered for weeks because a comment get posted on a really old blog post. We want to make sure that you are able to get answers to the comments and questions you have on the right channels and by the right people. Here are the places for you to chat with us on anything from product questions, support requests, reporting bugs, and requesting features:

Customer support

For any technical issues, please visit our support center.

Feature requests and bug reporting

If you would like to request a new feature or file a bug, please visit our public issue tracker. Here you can see what other Bitbucket customers have requested, follow requests and issues, and even create a new one yourself.

Atlassian Answers

Have any open questions about how to use Bitbucket, Git, or integrate with another product like Microsoft Azure? Visit Atlassian Answers where you will find questions submitted and answered by the user community, ecosystem developers, and Bitbucket staff.

Finally, get social with us! Join us in our enthusiasm for Bitbucket, spooning or software development best practices on Twitter.

Thank you for reading our blog, and for all the feedback you’ve given us over the years. Talk to you soon!

Try new merge strategies in Bitbucket Server 4.9 and more

By on September 8, 2016

Bitbucket Server 4.9 and Bitbucket Data Center 4.9 bring strategy to the forefront of how teams work with their source code. Learn about three new features and how your team and business can set up new strategies to help teams work the way they want to work.

Make disaster recovery part of your business plan

For mission-critical tools like Bitbucket Data Center, disaster recovery (DR) is more than just a feature, it’s a strategy. Why? Because if the main instance goes down (aka a disaster) teams need a tool that allows them to continue working with their data. This is where DR comes into play. It provides Bitbucket Data Center customers the ability to replicate the state of their primary instances to a “cold standby” instance at an offsite location. So if your primary instance goes down, Bitbucket Data Center can cut over to the standby.

A “cold standby” is one example of a disaster recovery plan (DRP) in which the standby Bitbucket instances are cold and the file server, database and Elasticsearch instances are warm, in order for the replication to occur.

Since your standby site contains cloned Bitbucket indexes and a copy of your production database – think critical plugins – your team can quickly get back up and running. At Atlassian we use this model because we have instances in different geographies, so if a primary instance goes down in Sydney we can cut over to the disaster recovery standby instance in San Francisco with minimal downtime.

The addition of DR to Bitbucket Data Center gives teams and businesses the toolset to set up a proactive strategy for when things go wrong, so the prospect of developers sitting around with nothing to do becomes a non-issue. Instead admins and IT can focus on the reason for the downtime – no small feat – while source code work moves forward.

For more details on DR and a reference DR deployment, see our updated documentation.

Choose how your pull requests get merged using merge strategies

While DR and zero downtime backup help teams and business with downtime strategies, Bitbucket Server 4.9 introduces a new feature specific to workflow and code review strategies called merge strategies. Its complement merge checks have been in Bitbucket Server for a while, but merge strategies give users and teams control over how pull requests get merged rather than controlling if a pull request can be merged.

Different teams desire different things when it comes to how they track the history of their repositories. Bitbucket has traditionally been opinionated about applying a merge commit when closing a pull request, but there are good reasons not to always do this. For example, some teams have a different view on what constitutes a clean history and want to use fast forward only or squash merge strategies.



Now a repo admin can define the default merge strategy and specify what alternative strategies are allowed for selection at merge time. That means the person merging each pull request can have full control over strategy used. An example where this can be handy is when you’re using a Gitflow branching model. You might set the default to squash on merge, but allow “no-ff” to be used so that proper merge commit occur between release branches. This detail in a team’s workflow, much like the default reviewers feature, gives teams unique features to work the way they want.

Import repositories from other hosting services

Lastly, starting a new project that requires a migration of repositories in bulk from one product to another or of repos from one server to another server should be frictionless. So instead of writing scripts or importing repos one at a time, the new import repository feature for both Bitbucket Server and Bitbucket Data Center allows for bulk imports to give teams the ability to try out real or demo data.

This is especially important when you’re just getting started with Git and Bitbucket Server, or wanting to pull in code from an existing project from Bitbucket Cloud,, GitHub Enterprise, or individually from any HTTP-based Git host. It is quick, easy, and gives teams the flexibility to work with data where they want to.

import repositories into bitbucket

All of the new features released in Bitbucket Server 4.9 and Bitbucket Data Center 4.9 help teams collaborate with strategies in place. The addition of DR to Bitbucket Data Center is important to any team’s daily activities. Your tools are business and/or mission-critical, so work can’t be stopped during a disaster or downtime. And in the world of pull requests, different teams and different repositories may want to use different merge strategies.

The addition of merge strategies to your pull request workflow gives teams the flexibility needed to set up a merge strategy. It is with these types of features that Bitbucket Server and Bitbucket Data Center can help your team and business think about strategy at the team level and up to help teams work better together.

Try Bitbucket Server 4.9

Check out the release notes for more information on these new features and the other improvements we’ve made in 4.9.

In case you missed it

Since Bitbucket 4.5 we’ve continued to improve our pull request experience, add new features, and more. Check out to see what has been added:

Bitbucket Cloud: 5 million developers and 900,000 teams

By on September 7, 2016

A sincere thank you to the 5 million developers, 900,000 teams and countless amazing projects that were developed by our users with Bitbucket over the last year. Everything our users do inspires everything we do – from offering free unlimited private repositories for small teams to building the security features our larger teams need to take their ideas from the first keystroke to production. We strive to make it easy for teams to get started and then scale with Bitbucket as their team grows, and the 5-million developer milestone prompted us to take a look back and reflect on everything that’s happened in the past year.

5 million developers, 900,000 teams

To put it all in context, here’s a little bit of Bitbucket history. Bitbucket launched in 2008 with support for Mercurial repos, followed by Git support in October 2011. Since then, we’ve seen a massive adoption amongst the developer community. Through the help of our users spreading the word and building features that cater to professional teams, we have seen rapid growth of developers and teams in Bitbucket over the last 3 years.

Many of us on the Bitbucket team remember the day we reached 1 million users and how amazing that felt. So needless to say, reaching 5 million blew us away.

Bitbucket developer growth             Bitbucket team growth

We are excited that more and more teams continue to trust us with their source code and build innovative software with Bitbucket.

Some cool stuff is #BuiltwithBitbucket

And let’s not forget all the cool stuff these teams have been building. We believe your day-to-day coding has a bigger impact in the world than you give yourself credit for so we asked our users to tell us what they built over the last year. The responses came in droves: Mobile games, musical scores, apps that help you figure out how many diapers you will need for your child, online education, cancer research… the list goes on.

Atlassian’s mission is to empower teams to advance the world through software so we were both humbled and proud to see what the developer community is contributing to the world. It was incredibly cool to see the use cases we never would have thought of and see that our users are using Bitbucket to make an impact on someone’s day out there with what they are coding.


Keep telling us what you are building using #BuiltwithBitbucket. We absolutely love to hear it and show you off.

New features

Behind the scenes, the Bitbucket Cloud team releases on a weekly basis to get new features to our users and solve some common needs: code review, strong integrations, an easy to use UI, security and more. Here are a selection of the most popular features we released over the last year:

We’ve made strides over the past year, but we’re not done yet. This year’s roadmap is shaping up nicely with more updates to improve your workflow. To keep up to date with all the most recent updates or get a more in depth scoop on a specific feature you can follow our latest features page.

That’s a wrap

Thanks again to our amazing developer community – we can’t wait to see what you build with Bitbucket next. If you are new to Bitbucket, you can can sign up for free unlimited private repositories here or if you are already a Bitbucket user, check out what’s new.

Sign up for Bitbucket

Peace of mind with branch permissions in Bitbucket Cloud

By on August 29, 2016

Git makes branching easy, which lets your team efficiently tackle all kinds of problems in parallel. You can use the feature branch workflow to safely develop features in isolation from your master branch, or the git-flow workflow to manage support, hotfix, and release branches. However, Git’s flexibility also means it may be easier to make mistakes.

When switching between branches, a developer can easily delete a branch or push changes to the wrong branch, resulting in confusion and wasted time backing out the changes. To avoid this, many teams want to ensure all commits to the master branch go through pull requests, or that only the release manager has access to a deployment branch to prevent bugs. Some companies also use these practices as part of a compliance regime to adhere to SOX, SOC2, or other standards. Today, we are releasing updates to our branch-level access permissions for your projects in Bitbucket Cloud to help you address these development and compliance concerns.

Updates to branch permissions: flexible and powerful

Branch permissions let you lock down critical branches and customize exactly who has access to a branch. Most teams we’ve talked to tend to have one or two branches that need to be restricted, but they don’t want or need to apply the same restrictions to every branch in the repository. The updated branch permission UI makes it easy to:

  • Pick a specific branch to restrict, or set restrictions for all branches matching a pattern.
  • Limit write access to that branch to a set of users or groups.
  • Limit merging to that branch to a set of users or groups.
  • Prevent anyone from deleting or rebasing a branch, even if they have write access.

This means you can lock down your production branch, require everyone to use pull requests to merge to your master branch, and ensure you never lose critical code.

branch permissions

Add Branch Permissions

If you’re ready to get started, sign up for a Bitbucket Cloud account. If you’re already using Bitbucket Cloud, you can add branch permissions from your repository settings menu.

Happy coding!

Sign up for Bitbucket

Six great features we didn’t ship

By on August 16, 2016

Last year at AtlasCamp we shipped a new integration framework named Bitbucket Connect. Unlike traditional REST APIs, Connect allows you to embed new pages and features directly within the Bitbucket UI via securely signed iframes. It’s kind of like OpenSocial, but with less XML and a far deeper integration with Bitbucket’s feature set. We’ve been using Connect internally to build out new features like Bitbucket Pipelines as independent, full-stack microservices. But even cooler than that: Bitbucket fans have been busy shipping their own user-contributed features to the Bitbucket add-on directory!

Here are six of my favorite Bitbucket features that teams outside of Atlassian shipped this year:

Kanban boards for Bitbucket

Two teams have independently built Kanban-style boards for managing your Bitbucket issues. Kanban boards are great for teams, as you can quickly see which team members are assigned to which issues, and what state the issues are in. Boards also allow users to easily update issues as they progress through your workflow.

Bucket Board provides a simple drag-and-drop board with your issues organized into columns by status:

Bucket Board for Bitbucket Cloud

I typically stick to a simple three column layout, but Bucket Board allows you to configure which status columns are visible based on your workflow needs.

Install Bucket BoardRead more

Canvas for Bitbucket is another add-on that provides drag-and-drop boards. It has a few extra features, including BBQL-powered quick filters to restrict which issues are displayed, and the ability to map columns and swimlanes to arbitrary issue attributes:

Canvas for Bitbucket Cloud

You can have both add-ons installed at the same time, so try ’em out and see which one suits your team best.

Install CanvasRead more

Static site hosting

Bitbucket has a slightly hidden feature that allows you to expose a repository’s contents as a static website. A couple of Seattle-based developers decided they could do better, and built Aerobatic: a GitHub Pages-style static site deployment engine on top of Bitbucket.

Aerobatic for Bitbucket Cloud

Aerobatic supports automatic building of Jekyll sites from any branch in your repository, just like GitHub Pages. Unlike GitHub Pages, they also support Jekyll plugins, Hugo, Wintersmith, and arbitrary npm builds for your site. Aerobatic also have a neat feature where you can serve multiple branches from the same repository on separate subdomains, so you can stage changes to your project’s website before pushing them to production.

Aerobatic do ask a modest fee for their services, but they’ll give you two sites for free (making it a great place to host your personal blog).

Install AerobaticRead more


As you may have gathered, Bitbucket’s core focus is professional teams. As such, we’ve focused our backlog on features like branch permissions, performance, and perfecting the pull request experience; rather than some of the more fun social features like contributor statistics. Statistics are great for open source projects, and are a handy way to quickly see who has contributed to a particular project. However they’re less useful (or sometimes even dangerous, in the wrong hands) in a professional context: LOC, blame, and commit counts aren’t a great way to measure developer productivity.

But if you dig charts, you’re in luck! A small team of developers from Belarus have shipped some pretty sweet looking charts for Bitbucket. Awesome Graphs (a port of a popular Bitbucket Server add-on) gives you contributor statistics, commit volume over time, and a punch card chart showing what times of day your team is committing code:

Awesome Graphs for Bitbucket Cloud

Install Awesome GraphsRead more

PaaS is a PHP PaaS that monitors your Bitbucket repositories and deploys the head of each branch to a separate staging environment for testing. This is handy for quickly sharing your work with clients or teammates. It also means pull request reviewers can simply click a link to do some exploration testing of your new feature, rather than having to pull and deploy your code themselves. PHP PaaS for Bitbucket Cloud

For better or worse, I don’t PHP these days, though last I checked ~20% of Bitbucket repositories where the owner had declared a language were PHP. However if someone was interested in building or integrating a Node.js PaaS with Bitbucket Connect I’d be very interested in chatting 😉 Lucky for me, now supports Node.js, Ruby, and Python as well!

Install Platform.shRead more

File rendering

The team behind Awesome Graphs also shipped File Viewer for Bitbucket: an add-on that uses Bitbucket’s File View API to render PDFs, CSVs, GeoJSON, and 3D models. Their latest update includes experimental support for the powerful AutoDesk Forge viewer, which lets you rotate, measure, and explode 3D objects tracked in your Git repositories:

File Viewer for Bitbucket Cloud

On a slightly more frivolous note, you could also check out this file viewer that renders your source code as a platform game (my high score is 0x0000461c).

Install File ViewerRead more

Try ’em out!

I’m blown away by the high quality of the features that Atlassian didn’t ship on the Bitbucket Connect platform. If these seem useful for your software projects, check out the Bitbucket add-on directory for a more complete listing of the neat features and integrations available for your Bitbucket account. You’ll need to sign up for a free Bitbucket account (if you haven’t already!)

Sign up for Bitbucket

If you’re working on a Bitbucket feature yourself, or just want to get started with Connect, I’d love to hear about it. Drop me a line on Twitter: I’m @kannonboy.

SSH improvements for Bitbucket Cloud

By on August 10, 2016

Following the recent release of U2F support, we’re excited to introduce even more security-related improvements. Over the last few weeks, we rolled out an entirely new SSH stack for Bitbucket Cloud. In addition to our goals of increasing reliability and improving performance, the new infrastructure unlocks some security improvements that many of you been asking for. Today we’re pleased to announce support for the following features:

These improvements are available to all users starting today. The new stack also gives us more visibility into performance of different parts of the SSH process, enabling us to detect performance issues and opportunities for improvement more quickly.

Stay tuned for a follow-up post detailing what we learned from the development and deployment of the new SSH infrastructure. In the meantime, upload your key to get started.

New to Bitbucket Cloud? No problem! Sign up here and enjoy these new features in Bitbucket Cloud.

Sign up for Bitbucket