Posts about Bitbucket

We are introducing major changes to the Jira Cloud, Confluence Cloud, and Bitbucket Cloud APIs to help improve user privacy.

We have an update on our plans to ship breaking changes across Server Products.

We have an update on our plans to ship breaking changes across Server Products.

In the spirit of openness, we wanted to share our plans around upcoming breakingchanges across many Server Products.

In this post, we round up all recent Ecosystem news.

Git(CVE-2017-1000117), Mercurial(CVE-2017-1000115, CVE-2017-1000116) and SVN(CVE-2017-9800) recently released fixes for vulnerabilities in their client-side applications that could lead to remote code execution on the victims machine.

Do you have a problem in your Git history where the same person appears with different usernames or emails? Check out the Git way to solve the problem.

We recently announced that our developer documentation site was undergoing some major updates. As of today, the beta is now fully live on

We're excited to announce the beta release of our redesigned developer site. The new site is available at Come check it out!

Note: This is a repost of our previous announcement. However if you don't have it already, the Bitbucket NPM add-on is now available in the Atlassian Marketplace.

Endless 'in review' columns in agile boards is one of the most common issues raised by software teams (including at Atlassian!) Find out how you can craft your pull requests so that they are approved as quickly as possible.

A lot of news came out of AtlasCamp 2016. I was especially proud of the story about TestFairy's end-to-end integration. I helped TestFairy build the connections between JIRA, HipChat, Bitbucket, Bamboo, and Bitbucket Pipelines to their service for mobile beta testing. I hope to see other integrations follow TestFairy's lead and hyperlink to source code in Bitbucket. Read on to learn how.

(Update: The NPM add-on is now available in the Atlassian Marketplace. See the updated version of this post for more details.)

Have you ever heard of a Foxtrot merge in Git? In this post, guest blogger Sylvie Davis describes what a foxtrot merges are and why you should avoid them.

This week I'll show you how to let Git automatically select the correct SSH keywhen you are using multiple Bitbucket accounts.

This week I'll show you how to connect Bamboo and Bitbucket Cloud.And how this integration will help you build better software faster.

OAuth brings added API security but it is often confusing to interpret the specification in light of a real server, while trying to figure out a new client library. Here is a quick-start guide for Python that cuts through that confusion about Bitbucket Server with a working example.

At Atlassian, one of our design principles is to gracefully reveal depth. As we've iterated on our UX, certain Bitbucket power user features that strayed too far from the happy path have been hidden away behind a dropdown or keyboard shortcut. There they bide their time until an adventurous user stumbles upon it through a capricious key press or mouse click (or someone reads the docs). Here's six of my favourite Bitbucket Cloud features, that you've possibly never heard of:

This week I'll show you how to connect Bamboo and Bitbucket Server.And how this integration will help you build better software faster.

In the past months we've been showing how to extend and integrate with Bitbucket using different languages and technology stacks. For example check out Steve Smith's series on using Clojure. Today is Go's turn.

Back in part 4 of this series we introduced two methods of accessing Bitbucket from our Atlassian Connect add-on, including via the client-side (browser) JavaScript API. However as we've written all of our server-side code in Clojure so far, it's a shame to have switch to another language. In this installment we'll take a look at ClojureScript and how we can integrate it into our project.

In part 4 of this series we added the Bitbucket UI to our add-on. Although there's more tweaks we'll do in later installments, for now we have enough to do an initial test against Bitbucket. In this post we'll show how to do this running from our development machine, and how to build and run a standalone deployment image of our add-on.

In case you missed it, last year we launched our Bitbucket Docker Hub integration as part of the Docker Hub 2.0 launch. We are now pleased to announce the next version of this add-on is now available. If you already have it installed you'll get it automatically. If you haven't already installed it see below for instructions on adding it to your account. Carry on reading for more information on this release.

In part 3 of this series we added REST and JSON capabilities to our add-on. However most Atlassian Connect add-ons will want to add some user-interface elements to the Bitbucket repository too, usually by working with data from the repository. To get this data, the add-on will need to talk to Bitbucket directly. In this installment, we'll look at a couple of ways to do this, including how to authenticate using the handshake information we received in the previous blog post.

I'm a huge fan of Node.js and npm, so I've built a little npm for Bitbucket add-on that adds module metadata, dependency information and download statistics to the npm modules hosted on Bitbucket. What makes the add-on special is that it's built in a slightly peculiar way: it's 100% static HTML & client-side JavaScript. However, it uses a variety of interesting XHR techniques (CORS, window.postMessage, and API proxying) to exhibit some pretty powerful dynamic behaviour.

In part 2 of this series we built upon the foundations we created in part 1 to generate a Connect descriptor. That descriptor specifies, among other things, the API that Bitbucket should call on key events in our repository and add-on lifecycle. In this installment we're going to look at how to specify and serve this API, and how to convert JSON sent to us by Bitbucket into Clojure data-structures.

In part 1 of this series we did the fundamental work of building a Twelve Factor HTTP-stack from the ground using Leiningen, Ring, Compojure, and Immutant. However, that was just the foundations, and now we're ready to start adding the necessary tooling to produce a full Atlassian Connect for Bitbucket application. This will include templating and introduce how to specify and authenticate our Connect add-on via its descriptor.

One the most exciting things about the Atlassian Connect add-on framework, for me at least, is that it removes the need to create add-ons in the language of the hosting application. With the recent release of Bitbucket support for Connect we now have the ability to not-only extend Bitbucket in any way we see fit, but to also do it in whatever language or framework we desire. This opens us up to developing for Atlassian products in Haskell, Scala, Node.js, or anything else that supports the basic protocols of the web.

In What the Web Platform can learn from Node.js, we explored the benefits of narrowly scoped abstractions created by developers for developers. Let's learn how and why you should bring this same style of development to your own web frontend.

As web developers, we've all come to appreciate the layer of sanity that libraries like jQuery slather atop the inconsistencies and awkwardness of what the platform provides. What was once constructing an XMLHTTPRequest object over a handful of lines becomes a single-line invocation of $.ajax, and interaction with the DOM through jQuery rarely involves platform-specific hacks and workarounds.

I've written hundreds of Bash scripts over my career, but I still suck at Bash. I have to look up the syntax for simple logical structures every single time. If I want to do anything fancy with curl or sed, I have to go and look up man pages too. I spend hours brute forcing every possible combination of single and double quotes and escaping and double-escaping every character in my regular expressions until I get something that looks like abstract ASCII art, all while trying to remember the difference between grep and perl regular expressions.

In case you missed it, last month we launched our Bitbucket Docker Hub integration as part of the Docker Hub 2.0 launch. We are now pleased to announce the next version of this add-on is now available. If you already have it installed you'll get it automatically. If you haven't already installed it see below for instructions on adding it to your account. Carry on reading for more information on this release.

Many users have embraced Git for its flexibility as a distributed version control system. In particular, Git’s branching and merging model provides powerful ways to decentralize development workflows. While this flexibility works for the majority of use cases, some aren't handled so elegantly. One of these use cases is the use of Git with large, monolithic repositories, or monorepos. This article explores issues when dealing with monorepos using Git and offers tips to mitigate them.

This week's article will explain how you can trigger a build in Bamboo bycommitting changes in your Bitbucket repository. It's easy to do and will makeyour CI experience so much smoother.

Bitbucket recently released a new add-on module type: the FileView. FileViews allow you to define how files of a particular type are displayed on the Bitbucket source view page. In this post, I'll show you how I built Run, Bucket, Run: a fun, if somewhat inefficient, way to view your source.

As part of the Docker Hub 2.0 launch we're pleased to announce integration of Docker Hub into Atlassian Bitbucket. This brings your Docker workflow together with Bitbucket to save you time and allow you to see source code stats along side your Docker repo in one place.

A few weeks ago, we introduced Atlassian Connect for Bitbucket, an add-on framework that lets you modify the Bitbucket UI. This post is a quick walkthrough on how to build a simple add-on that retrieves data from a repository, does some simple aggregation and displays it to the user.

We have all been there. When we started bitHound I knew we would inevitably be supporting multiple platforms and different environments for analyzing code. However, with several code hosting platforms out there and limited resources available we had to grab one platform to start and do so quickly.

It's been an incredibly busy year here at Bitbucket! We've served more active users, made more improvements, rolled out more features, and fixed more bugs than ever before. To commemorate the year that was, I've visualized our Git log using the Gource log visualization system to give you something to look at while your code is compiling. You can read about how I made the magic happen below the video.

If you're using Git, you're probably using pull requests. They've been around in some form or other since the dawn of DVCS. Back before Bitbucket and GitHub built fancy web UIs, a pull request might've simply been an email from Alice asking you to pull some changes from her repo. If that sounded like a good idea, you could run a few commands to pull the changes into your master branch:

Today, I want to tell you about the results of a hackathon, or as we call it a ShipIt project. It's fun for me to share and I hope you'll find it interesting. At Atlassian we have a big culture of innovation and experimentation. Every quarter, the company stops for 24 hours and employees can pick their own project to scratch their own itch: they form groups, sprint and spike working on new ideas. Sometimes we work on things completely off the wall, sometimes tiny improvements. Several key features included in our products (or even entirely new products) came out of these sprints of innovations.