By Tim Pettersen 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 email@example.com or firstname.lastname@example.org.
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 email@example.com 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 firstname.lastname@example.org:kannonboy/flappy-bird-vr.git (fetch)
origin email@example.com:kannonboy/flappy-bird-vr.git (push)
# replace git@ with your-username@
$ git remote set-url origin firstname.lastname@example.org/kannonboy/flappy-bird-vr.git
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/your-username.pub 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.
By Kelvin Yap on October 25, 2016
The fastest growing companies in the world today aren’t product companies, they’re . 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.
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.
I 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.
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 .
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. 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 . Based use during the beta, that’s less than a cup of coffee a month for each !
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
By Justine Davis on October 12, 2016
It is growing so rapidly that revenue from public cloud platforms, business services, and SAAS will grow reaching $236 billion by 2020 according to Forrester*. But why? T
The second wave of adoption will be moving the full software development workflow to the cloud Having your apps and your CD pipeline in the cloud in one integrated platform reduces the need to switch between tools, cuts down on and gives companies a big competitive advantage by enabling rapid agile delivery. We are committed to they are on their cloud journey, which is why we built .
New Features: Pipelines, Git LFS, Smart Mirroring and more
To help both our and customers scale in , today we’re announcing new features focused security, and performance:
- our team can build, test, and deploy from Bitbucket. Pipelines built right within Bitbucket, giving you end-to-end visibility from coding to deployment. With Bitbucket there’s no CI server to setup, user management to configure, or repositories to synchronize.
- Git Large File Storage (LFS) – now out of Beta: Developers using large binary files and rich media can now collaborate on 80+ file types of any size and store all their files in one place. Git LFS stores your large files externally and keeps your actual Git repository lightweight, resulting in faster cloning and fetching times.
- Bitbucket Data Center on AWS: Companies looking to gradually move their infrastructure to a public cloud can still have the control they desire by hosting Data Center on AWS.
Premium Features- now in a free trial: Some teams require . For them, we’re introducing a new Premium plan that is available for all users as a for a limited time including the following features:
- Smart Mirroring – Smart Mirroring can drastically improve read (clone, fetch, pull) performance for distributed teams working with large repositories by making them available locally in your own network.
- Merge checks – To help customize your workflow, you can set checks to control when a pull request can be merged. You can set checks like requiring a minimum number of approvals, requiring tasks to be resolved, enforcing a minimum number of successful builds, and more.
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. . 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.
, improving monitoring and alerting, reconfiguring internal and external network 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.
Pay only for what you need with per user pricing
Most companies use 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 .
At Bitbucket, we invest heavily in both our cloud and platforms so we can meet teams they are, whether hosting their source code using Bitbucket Server behind the firewall or in the public cloud,
We hope you enjoy Bitbucket’s new
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
By Raj Sarkar on October 4, 2016
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:
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.
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!
By Laura Daly 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.com, 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.
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:
- Code search shipped in Bitbucket Server 4.6. You can now search for code directly in the search bar, which includes searching code across all of your projects and repositories. Or you can get more granular to search for code in a specific project or repository. And you have the option to use search operators to get more precise search results and can search for code on the language it’s written in.
- Commit-level review shipped in Bitbucket Server 4.8 to provide per-commit diff views and commenting within pull requests to help reviewers do just that – review individual commits added to a pull request. Highlighting changes at this granular level makes the reviewing experience better for every member on the team and will result in faster pull request turnarounds.
- Default reviewers shipped in Bitbucket Server 4.8 to give teams the option to configure a default set of reviewers that will be pre-populated on the pull request creation form on any given repo. Default reviewers can even be defined by source and target branch, and once it’s set up you can add or remove people from the list as needed.
- Bitbucket Data Center now offers source code collaboration for teams at the 25 user tier. Learn about what features you get when you switch to Bitbucket Data Center including smart mirroring, Git LFS, and more.
- For an entire roll-up of features check out our updated documentation.
By Justine Davis 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.
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.
Behind the scenes, the Bitbucket Cloud team releases on a weekly basis to get new features to our users and : code review, strong integrations, an easy to use UI, and more. H
- : a continuous delivery service built right within Bitbucket Cloud giving you end-to-end visibility from coding to deployment.
- Git Large File Storage (LFS) Beta: improves the handling of large assets so it is easier for your software team to collaborate on not just source code, but rich media and large data with Git.
- Deploy from Bitbucket with AWS, Azure or Digital Ocean: You can deploy to your public cloud from within Bitbucket’s UI, without having to execute scripts or configure deployment plans outside of Bitbucket using Bitbucket Connect add-ons (totaling 54 add-ons and growing)
- Build status API: Save time by knowing when your build is passing and when it is safe to merge changes by viewing build status right in Bitbucket’s UI
- Connect Bitbucket to JIRA Software in 30 seconds: We simplified the experience of connecting Bitbucket Cloud to JIRA Cloud, now you can do it in under 30 seconds.
- Pull request focused dashboard: Personalized dashboard that brings pull requests that need your attention to the front and center, making it faster to find the code review you are looking for.
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.
Sign up for Bitbucket
By Ben Echols 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.
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.
Sign up for Bitbucket
By Tim Pettersen 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:
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:
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 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:
Install Awesome GraphsRead more
Platform.sh 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.
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, Platform.sh now supports Node.js, Ruby, and Python as well!
Install Platform.shRead more
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:
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.
By Alastair Wilkes 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, 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. he 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