By Mary Anthony on November 12, 2013
Today, Bitbucket officially launches our 2.0 REST APIs. This release supplies new functionality you can use to automate teams, repositories, branch restrictions, and manage pull requests. In this release you’ll get the ability to:
- Post new or update existing pull requests
- Manage pull request activity by merging or declining pull requests
- Query team membership, list repositories, and followers, as well as who a team is following
- List user profiles, followers, and who a user follows
- Harness the commits resource in a manner similar to Git and Mercurial’s built-in log commands
- Execute full CRUD (create/read/update/delete) actions on a repository’s branch restrictions
We are especially proud of the 2.0 API’s usability. Our API offering has grown over the years while we raced to deliver you a feature-rich API. The 2.0 API is optimized for RESTfulness, discoverability, consistency, performance, and flexibility.
Discoverable resources through links
Every 2.0 endpoint contains a links element that points to related resources. Links give a caller the ability to quickly discover and traverse related objects. We think you’ll find an object’s links perform a “self-documenting” function for every endpoint.
$ curl https://api.bitbucket.org/2.0/users/evzijst
"display_name": "Erik van Zijst",
Links can be actual REST API resources, or they can be informative. In this example, informative resources include the user’s avatar, and the HTML URL for the user’s Bitbucket account.
Many endpoints return collections of objects. To avoid overwhelming clients with excessively large responses, the 2.0 API breaks these returns into manageable pages wrapped in a well-defined structure:
The next and previous links ensure you don’t have to hard code or manually construct any links. Paginated responses always contain a values list and next link (except for the last page of course). All other elements are optional, depending on the underlying data set (backwards navigation is not always supported).
Standardized error responses
For when things don’t work out so well, we’ve standardized the error response layout. The 2.0 API serves a new JSON object along with the appropriate HTTP status code. The JSON object provides a detailed problem description:
"message": "Bad request",
"This field is required."
"detail": "You must specify a valid source branch when creating a pull request.",
Standard ISO-8601 timestamps
Oh, and while we were at it, we made it so the 2.0 API uses standardized ISO-8601 timestamps. This standardization should eliminate the need for custom date parsing patterns.
Interactive REST browser
For details of the specific APIs, visit our documentation or try an API interactively in the REST browser.
By Justen Stepka, Product Manager on November 5, 2013
Last week we announced improvements to make branching easy for everyone on your team, from from the novice, to the most experienced developer. The most recent update to SourceTree for Windows and Mac takes branches one step further: It adds new integrations that make checking out your branches and submitting pull requests back to your team easier than ever.
Did you know that you can clone your repositories into Bitbucket without having to use the command line? Click the Check out in SourceTree clone option in Bitbucket and Stash, and your clone details will automatically be configured in SourceTree for you to instantly download source.
With the new versions of SourceTree, when using the Bitbucket Check out in SourceTree button after creating a new branch, some extra help is given: If you’ve already got a checked-out copy of the repository you’re attempting to clone, SourceTree will show you the existing, and switch the working copy to your newly created branch.
Create pull requests via SourceTree
If your team is like ours, you’ll want to submit a pull request on Bitbucket after finishing up your commits on your local branch – a task that involves pushing your code, navigating to your repository, creating a pull request, selecting the branches, picking your reviewers, and submitting. That’s a lot of clicks.
But with this latest update, you can cut out several steps from your daily dev cycle by creating pull requests straight from SourceTree. Just click on the menu item (Repository > Create pull request) and away you go.
Get SourceTree for free!
If you’re new to Git or Mercurial, or just want a handy tool to make you even faster, download SourceTree for Windows or Mac – it’s free!
By Justen Stepka, Product Manager on October 30, 2013
Bitbucket has just made one of the key strengths of Git – branching – accessible to all users, new or experienced. From the repository header, you can now quickly create a branch and take advantage of feature-based workflows that Git opens up.
In a single click, Bitbucket will create a new branch for you with the option to choose where you want to branch from.
Bitbucket even lets you check out your branch in SourceTree, Atlassian’s free Git client for Mac and Windows, so you can start working on your code faster without having to use the command line.
Branches at a glance
Visualizing branches has never been easier. Quickly identify outstanding work that needs to be merged, or check how up to date your working branch is from the default branch (e.g. master) with the Behind/Ahead function
You can do common tasks such as deleting branches, creating pull requests, or clean up any stale or short-lived branches that may be clogging up your repository with the Delete branch feature. If you’re looking for more details, you can even drill into your branches and commits with branch information available on the branch details view. Organizing branches has never been easier!
Check out Bitbucket for free
Bitbucket is free for individuals and teams of five or less, and includes unlimited repositories. Start a free trial today and get up and running in a matter of minutes!
By Dylan Etkin on October 11, 2013
We are happy to announce that we’ve updated our status.bitbucket.org site to contain a whole heap of improvements.
We understand that when Bitbucket is unavailable that you, our users, can’t get your work done. We take this responsibility very seriously.
To meet our availability goals we monitor all aspects of the Bitbucket service. Our new status site provides deeper insight into this status.
We now provide automated updates to the availability of:
- The website and API
- SSH access to Git and Mercurial
- Git access via HTTPS
- Mercurial access via HTTPS
- Source downloads
One of our values here at Atlassian is Open Company, No Bullshit. To that end we are now publishing some important statistics related to how well Bitbucket is servicing you. The status site now shows:
- Website availability, our uptime as monitored by Pingdom
- The average response time for our website and API
- The average response time for Git access
- The average response time for Mercurial access
Leveraging the community to make it all go
Our new status site is powered by the amazing folks over at statuspage.io. These guys have an awesome product that integrates with all of our existing monitoring tools such as NewRelic and Pingdom.
We were able to get our initial site setup in under 2 hours. They also allow a great level of customization that allowed our designer to make the site look and feel just like home.
By Jeff Park on October 10, 2013
Atlassian HipChat, group chat and IM for teams, recently improved the integration experience with Bitbucket. What does this integration do? It connects a HipChat room to one or more Bitbucket repositories. From there you and your team can stay notified of code activity in real-time via HipChat.
Connect your code and chat
The previous Bitbucket integration involved two tabs, multiple copy-paste steps, and lots of clicking. The goal was to make the integration as simple as possible to connect our chat service with our code hosting service.
With the new HipChat-Bitbucket add-on, all it takes is the following steps to get connected:
- Visit HipChat and login
- Click on “Rooms” tab
- Click on desired room
- Click on “Add-ons”
- Find Bitbucket addon, and click “Install”
- Type the repository name, and click “Add”
No more copy/paste of obscure links, tokens, or IDs. No documentation to read.
This plugin is installable by any room owner and does not need any account admin privileges, so if you own a HipChat room, you can set it up yourself.
Code and chat for FREE
Try the integration out. HipChat and Bitbucket are both free for 5 users.
By Dylan Etkin on October 8, 2013
Bitbucket is growing in leaps and bounds; we passed our one million user mark back in June! Expanding the service means expanding the team, so we’re hiring for a number of SF-based leadership positions:
- R&D Team Lead – Run the team that drives the architectural evolution of Bitbucket.
- DevOps Team Lead – Lead a team to scale the Bitbucket infrastructure.
- Design Lead – Have your designs consumed by millions of users.
- Product Manager – Define and manage features for dev teams building the next great thing.
Bitbucket is a part of Atlassian, one of the “Best Small & Medium Companies to Work for in America.” Our products reach over 25,000 enterprise customers globally, including Pixar, Twitter, Netflix, NASA, and Facebook.
With offices in Sydney, San Francisco, and Amsterdam, we’re growing fast, and we’re building a different kind of software company: one that listens to customers, values innovation, and solves customer problems with brilliant simplicity. You’ll have a direct impact on millions of users as soon as you start! Find out more about life at Atlassian.
Show us your résumé, CV, blog, Bitbucket or GitHub profile, open-source contributions, or stuff you’ve built. To find out more, drop us a line at llocke at atlassian dot com. We want to see your amazing work!
By Justen Stepka, Product Manager on September 16, 2013
With Git, branching has never been easier — especially with the introduction of amazing new workflow capabilities such as git-flow. Some development workflows require that specific developers oversee merges into the master or release branches, while other developers work on bug-fix and feature branches.
Bitbucket’s latest feature, branch restrictions, lets you turn this “gentlemen’s agreement” into a seamless, enforceable process, reducing confusion and time wasted backing out changes that were merged prematurely.
Enforce your workflows
At the heart of branch restrictions is a new repository write permission that allows you to control who can commit to specific branches in a repository. Branch permissions are set on a per-repository basis by specifying a user or group who already has access to a given repository.
Restrictions are based on explicit branch names, or you can use advanced branch permissions to match multiple branches (or tags) using pattern matching. For example, use an * (asterisk) in a rule: “f*r” matches foobar and footer. Establishing naming conventions based on roles or functional area (e.g., “contractor_” or “userauth_”) makes it even easier to set and standardize permissions throughout your organization.
Edit-undo becomes a thing of the past
- If your team is like ours, you want to prevent certain branches from ever being deleted. This is why we’ve added the ability to protect branches from being deleted.
- Rebasing can cause extra merge work for your collaborators during active development. You may want to prevent these problems before they start by preventing rebasing on specific branches.
Simplify your Git repository management
Bitbucket is free individuals and teams of five or less, and includes unlimited repositories. Start a free trial today and get up and running in a matter of minutes!
By Marcus Bertrand, Support Engineer on August 30, 2013
We’ve got two announcements today about services we will be shutting down in the coming weeks. Their use has waned, and it’s time to put them out to pasture.
The Bitbucket Google Group
A few years ago we started this forum to allow our users to interact with each other and the Bitbucket developers. Since that time, much has changed and we’ve added many more avenues for getting help with Bitbucket as well as Atlassian’s other products. To that end, on 1, October 2013 we will permanently set this forum to read-only mode. In its place, we encourage you to use Atlassian Answers for the same questions you’ve always had. Answers has a few advantages over the forums, such as:
- You aren’t talking to an empty room – Of all the questions posted on Answers, over 80 percent receive at least one answer, with almost half that answered within an hour!
- Karma! – Points are awarded to our more active users. This establishes credibility in the community.
- Atlassian swag – As you climb the Karma levels, you get free Atlassian swag like t-shirts, backpacks and jackets.
- Built-in community – Since you’ll be posting in an Atlassian-wide forum, you can get help with topics like deployments, tagging, and other best practices by tapping the knowledge of the greater Atlassian community.
- It’s FREE! – No explanation needed.
To sign up, simply visit https://answers.atlassian.com, click login, then sign up under the login boxes. Once your email is confirmed, you’ll have full access to Answers, not to mention all the Atlassian services linked with Atlassian ID, including: support.atlassian.com (for ALL support, including Bitbucket), jira.atlassian.com for bug reports for Atlassian’s other products, confluence.atlassian.com for leaving comments on our documentation, and more in the future.
Subversion to Mercurial bridge
For some time now, the Subversion to Mercurial bridge we offered hasn’t worked in numerous situations and cases. So, we’ll be shutting it down officially on 1, October 2013. This should only affect a very small group of users in the community, but it is important that they know this is coming.
By Charles on August 27, 2013
We’re planning scheduled maintenance Friday, August 30, 2013 at 03:00:00 UTC lasting no more than one hour. During this maintenance window we will restart our master PostgreSQL database to apply a setting change and upgrade our RabbitMQ server.
Thanks for your patience as we work to improve Bitbucket’s reliability.
By Justen Stepka, Product Manager on August 21, 2013
The Bitbucket team is in the midst of building out some larger features, and recently took an opportunity to conduct another Innovation Week to ship a bunch of new features!
What’s Innovation Week?
Every few iterations we set aside an iteration for developers to work on whatever they desire — feature enhancements, new features, bug fixes, internal dev-speed, performance improvements, whatever they are interested in. Developers can fly solo or form groups to tackle larger projects. The end goal is to have a shippable feature or improvement by the end of the week. Here’s what our engineers shipped this time around:
When we revamped user profiles a few months ago we exposed team member information that wasn’t previously available, and people noticed. This project circles back around and gives users the ability to make their profile pages private.
Improved SSH and deploy key security
SSH and deploy keys are are now immutable. To bolster security even further, Bitbucket will also send notifications when a new SSH key is added to an account.
A few Innovation Weeks ago we added in-page notifications of pull request comments and updates, which gets quite a bit of use within the Bitbucket team. This time around, we built on that work by slicking up the UI and loading new comments in ajaxily to avoid full page pops, speeding the interaction up tremendously for those teams using pull requests.
Pull request POST hook
Now users can set up a POST hook to any pull request action (comment, update, approve, etc). This feature builds on the infrastructure improvements we made during the notifications refactor.
Improved hooks admin interface
Previously called “Services”, we’ve renamed this feature “Hooks” based on user feedback. We’ve also rolled out a new interface that provides a scannable list of integrated services, and hides the complexity until you actually need it.
We had a lot of fun with this Innovation Week, and hope you find some of these features and improvements useful. Does this kind of thing sound fun to you? We’re always looking for great engineers. Check out Atlassian’s career page to learn more.