We launched Atlassian Connect for Bitbucket at AtlasCamp, July 2015. Atlassian Connect for Bitbucket provides an integration architecture that embeds your add-ons right within the Bitbucket UI creating a more unified workflow. We re-engineered Bitbucket into a platform that helps remove the interrupt-driven workflow and brings all the information to ship software in one place. Many developers have already built add-ons for Bitbucket and we know some of you are in the process of building one, too.
We’re pleased to announce that we are running a two-day Atlassian Connect for Bitbucket bootcamp on Tuesday, September 29 through Wednesday, September 30 at our San Francisco office. This is your opportunity to get our help in accelerating your integration and bringing it to life. You’ll have the unique opportunity to get in-depth information from our Bitbucket team as well as 1:1 advice on building kick-ass integrations directly from Atlassian engineers. Tuesday night you’ll also get networking time with the team over beer and pizza. Why not come hang out with the Bitbucket team for a couple of days and make your integration a reality? Here’s an outline of some of the topics we’re going to cover to help you get going on your integration:
Technical training sessions on:
Overview of Atlassian Connect for Bitbucket
Bitbucket UX and design considerations
Security best practices
Bitbucket REST APIs
Hack time & 1:1s with Bitbucket engineering
Evening networking with the Bitbucket team over beer and pizza
More hack time
Demos in the afternoon
We have limited space for this event so you’ll need to pitch us your integration idea. We’re accepting and reviewing applications until September 18th. Learn more about Atlassian Connect for Bitbucket and send us your application soon. Experience with Atlassian technology is a plus, but the best Bitbucket integration ideas will be accepted regardless of prior work. As a bonus, the add-ons you hack on during the bootcamp are also eligible for Atlassian’s Codegeist competition, where we’re giving away prizes totaling more than $100,000.
We recently added four new features to make it easier for you and your team to collaborate on code using Bitbucket:
File-level code comments
In addition to comments on images and binary files, you can now leave comments at the file level for code and text files. This makes it easier to have a high-level discussion that applies to the entire file.
Improved commit message handling
The commits history, compare view, and pull request pages now display full commit messages when listing commits. Commit message text after the first line is displayed in gray text, providing better context. And you can mouse over the commit message to see it in full. No need to click on the individual commits to see the full commit messages.
Pull request links in the terminal
The Bitbucket CLI provides links (as URLs) right in your terminal to create and view pull requests when creating and updating remote branches with Git and Mercurial. Quickly copy and paste the URL in the browser to update the pull request.
Pull request form auto-fill
The create pull request form now automatically fills in the description field based on the incoming branch’s commit messages.
For branches with one commit, the commit message is the title. For branches with multiple commits, the branch name is the title, and the commit messages pre-fill the description. This saves you the hassle of typing a title and a description for every pull request.
This guest post is written by Ori Pekelmen, VP of Inbound Marketing at Platform.sh. Ori is a start-up guy, with a tech background, who enjoys evangelizing new technologies, organizing events such as Paris DataGeeks, and helping tech teams succeed.
What if you could go beyond code review in a pull request and actually play with the new feature you’re working on, without the hassle of deploying to your machine? What if you could easily share a feature spike with your clients for early feedback, before it’s actually shipped? The new Platform.sh integration with Bitbucket makes it simple to stage pull requests and feature branches on-the-fly without any additional effort. Interested? Read on.
Platform.sh is a second generation PaaS powered by a highly available grid of micro containers. You push code, and we automatically put everything into production. We deploy databases and configure the lot with no sysadmin work, none, zero. It’s fully automated and happens almost instantly. Platform.sh removes the middle-man between your code and your deployment.
One of the earliest features we implemented was a simple Bitbucket integration. We love the Atlassian suite of tools and use it quite a lot internally since we like dogfooding as much as anyone else.
A pleasant surprise
But we felt the integration could be better. Our developers wouldn’t get feedback inside the Bitbucket UI on how the deployments went, and switching tools constantly made them feel they lost context.
In March 2015, Fred Plais, our CEO, and I went to San Francisco for a series of meetings, one of which was with the Atlassian Bitbucket Team. We showed them “screen captures” of our ideas behind a good integration between Platform.sh and Bitbucket. There was some grinning around the table that we didn’t immediately understand. A couple of weeks later the team got back to us with an unexpected question, “The screen captures you showed us were precisely the kind of integration we’ve been working on. Can you be ready in 6 weeks?”
Two months ago, and on time, Platform.sh was fortunate enough to be among the first Bitbucket Connect Add-Ons, and shipped https://platform.sh/bitbucket.
What? There are people in 2015 that have feature branches without a live test cluster?
It’s never been easier to deploy an application directly from a Git repo, never before was collaboration, testing, and development so seamless.
And judging by our client’s response, we got something right. Some of our clients just immediately got used to the idea that every branch becomes clickable in the Bitbucket UI, giving access to a staging environment, just for that branch.
“I’ve been managing Bettrack’s code with GIT since day one […] when I installed the Platform.sh add-on on Bitbucket, I was […] blown away by how seamless the integration is. This integration just saves me so much time! When I make changes in my code, I can see the outcome right away. I decide when I want to go live, and that’s as simple as pressing a button. That’s just so powerful! The need to react to market forces is very important and Platform.sh with Bitbucket have dramatically improved not just the site but Bettracks as a business”, said Scott Hooker, owner of Bettracks, a betting website for football fans.
This is how feature branches should always have been, testable but in isolation. This integration simply makes the idea of feature branches, feature complete.
Follow the simple wizard that allows you to setup a Platform.sh project, which will be integrated with your Bitbucket repository.
From there, there’s nothing much to do. Every Git branch gets a clickable staging URL.
All this is possible because Bitbucket’s Atlassian Connect framework provides much deeper integration than what is offered by standard REST APIs and webhooks.
From the Platform.sh side you just add a simple YAML file at the root of the repository and your application is ready to be deployed. Having the deployment configuration checked into your repository not only makes it simple to deploy, but it also means that it is tracked over time as your application evolves. And the integration works the other way around, too. You can log in to Platform.sh with your Bitbucket account to get detailed feedback on deployments and the state of your environments.
You can even manage a micro service oriented architecture as a single entity (with every service as a separate Bitbucket private repository) and still get “magic” testing environments for every branch.
And Platform.sh is not just for staging.
Robust hosting and batteries included
Platform.sh is not a makeshift solution. It is a robust, mature, hosting environment. Platform.sh enterprise includes white glove support and 99.99% guaranteed availability for the price of traditional managed hosting.
And it is not only extremely scalable, but also very versatile. By adding a single property to a configuration file, you can immediately get an instance of Postgres, MariaDb, Redis, Solr, ElasticSearch, etc. with no external add-ons and no external points-of-failure. You can manage your entire infrastructure right there, in your Bitbucket account. And when you backup your cluster, you get a consistent snapshot of everything.
Simple is more
Deep integration with code management and hosting is a big leap forward. It allows even small and medium sites to go full-on-continuous-everything like a Google or a Facebook which translates to reduced lead times with huge cost savings.
Platform.sh and Bitbucket integration gives you all the DevOps features with none of the hassles. You are not locked into complex software and architectures that might not exist in a couple of years. You run your stack unmodified, and a couple of YAML files makes it “continuous-everything on the cloud.”
Currently Platform.sh supports any PHP application. If you are using Nodejs, Ruby or Python, stay tuned on Twitter for some exciting news in the future. If you have any feedback about the add-on, let us know by leaving a comment on this blog post.
This guest post is written by Alexander Kuznetsov, co-founder of StiltSoft. Alexander has seven years of experience as a software developer, including five years in developing add-ons for Atlassian platforms. He’s also the runner-up of 2012 Codegeist, Atlassian’s add-on development competition, for the add-on he built called, “Awesome Graphs for Stash.”
We at StiltSoft, Atlassian verified vendor and expert, create add-ons for various Atlassian applications. Our team is always eager to provide developers with the handy tools they need so they can focus more on the important stuff, deliver on their work commitments with fewer efforts and enjoy the process at the same time.
One of our products is Awesome Graphs for Stash. It provides graphs and charts to visualize the contribution statistics in Git repositories, evaluate a team’s performance and get useful data for planning and analysis.
We have watched Bitbucket evolve at a rapid pace and couldn’t wait for the opportunity to make Awesome Graphs available in the cloud. We were very excited when he heard about Atlassian Connect for Bitbucket. The Atlassian Connect framework made it possible to build the add-on and make Awesome Graphs available for 3 million developers on Bitbucket.
Awesome Graphs for Bitbucket
Our goal currently is to make the graphs and charts of Awesome Graphs for Stash available in Bitbucket so that Bitbucket developers can visualize the statistics of their repositories, keep track of what the contributors have done, get analytical data for running retrospectives and plan their future work while making informed decisions.
It is always very inspiring to watch your projects evolve by checking graphs from time to time. You can track your progress, see the work that has been done and feel accomplished.
We released the first version of Awesome Graphs for Bitbucket in June with Commits and Punchcard. That’s only the beginning and more graphs are coming in the next couple of months.
Why should you use Awesome Graphs?
The Commits tab shows the number of commits made over the last year grouped by week on a given repository. The interactive scatter chart below the bar chart displays detailed daily commits for the week selected on the bar chart. This allows you to get a summarized history of each repository and understand when most of the work was done.
The Punchcard tab helps you figure out which hours of the week have been the most productive for your team by showing commit frequency on each day of the week and time starting from the first commit in the repository. This helps you plan your day’s activities so that you are not distracted and completely focused during the most productive hours. Most importantly, you can use the insights to improve the performance and efficiency of your team.
Wanna see it in action?
You can try Awesome Graphs for Bitbucket by installing the add-on from the Find new add-ons section of Bitbucket. You can start using it as soon as the installation is completed. Navigate to the Graphs section on the left-hand sidebar to view commits and punchcard graphs of the current repository.
Bitbucket just added different levels of access to its APIs, enabling add-on and integration developers to request read, write, or admin access to repos, issues, wikis, and snippets. For Bitbucket users this means that add-ons and integrations now only get the level of access they actually need.
Our previous OAuth1 implementation provided only all-or-nothing access to resources. As a developer building integrations or add-ons, you had less control. Additionally, some operations that were not possible via OAuth 1, such as cloning, are now possible via OAuth2, enabling a new set of add-on and integration functionalities.
How do I use OAuth2?
OAuth2 is available within webhooks, REST APIs, and Atlassian Connect for Bitbucket. When you register your application (add-on or integration) with Bitbucket you become an “OAuth consumer”. OAuth 1 consumers that have been previously instantiated have been grandfathered into all-access. However, all new consumers will now need to specify the scopes requested, with a much more granular set of scopes available now for both OAuth options.
How does it impact me if I am a Bitbucket user?
You have complete control and visibility over what levels of access are granted to resources and repositories when you plan to use a certain integration or add-on. You may choose to grant access via a page similar to the one shown below:
You can also revoke access easily via “OAuth” under “Access Management” on your Settings page as shown below:
Please upgrade to OAuth2
We encourage all developers of Bitbucket integrations and add-ons to upgrade the authentication mechanism they’re using to scopes and OAuth2 wherever possible.
This guest post is written by Ivan Storck, Director of Developer Relations at Aerobatic. Ivan has been programming, teaching, and leading startups for 20 years. He founded two training companies, a web hosting company, and taught at the University of Washington.
At Aerobatic, our mission is to empower front-end developers to innovate faster – less time spent thinking about infrastructure, more time spent developing amazing customer-facing experiences; less time spent building and maintaining custom toolchains, more time spent innovating with clients; less time switching contexts between disparate tools, more time spent coding in a seamless flow.
In this post, I’ll show you how to build a form that posts notifications to HipChat using the Aerobatic add-on for Bitbucket. It’s simple, and no server-side code will be required.
Do you have the time to be a full-stack developer?
Lately, however, I have been asking the question, do I need to know all of this? Do I even have the time? What do I enjoy the most? The answer is that I love to create online products that are beautiful, useable, and technically well-crafted. The front-end is a big enough world for me to do that. But I don’t want to lose control of the back-end, or need to team up with others to get simple apps done. Realistically, my back-end needs can be simple, and similar to many other people.
Many of you may host your static sites on Amazon S3, and manually configure CloudFront CDN via the (confusingly large) Amazon Web Services interface. But this gives you no chance at a back-end. Others code a simple node server and publish it to a PaaS provider, but this means you write boilerplate back-end with a basic REST API yet again. Maybe you even have a puppet/chef/Docker script to spin up your own virtual server, but then you’re stuck upgrading it whenever a security patch is released. What if you didn’t have to worry about all this stuff? And if you didn’t understand any of the jargon in this paragraph, doesn’t that kind of prove my point?
The Aerobatic add-on for Bitbucket
Whether you have a Jekyll blog, a static site documenting your open-source project, or a full-featured web app built with a framework such as AngularJS, Ember, or React, you can now edit your code, push your changes to Bitbucket, and your site will be deployed automatically. Assets are automatically hosted on a content delivery network (CDN) so that your site visitors will see the site faster. You can also have a custom domain point to your Aerobatic site with a DNS CNAME record.
Express Request Proxy
Expanding our core hosting service for Bitbucket developers, Aerobatic is happy to introduce a custom webhook plugin for static site apps called Express Request Proxy. This means that you can call APIs on the internet without worrying about cross-origin resource sharing (CORS) policies or leaking secret keys to the client. You can even contribute your own plugins to the 4Front open-source project, which powers our back-end.
The Express Request Proxy plugin is a high performance, intelligent proxy that supports proxying AJAX requests to remote HTTP endpoints. In addition to simple pass-through proxying, it also supports caching, parameter injection (to query string, path, and body), as well as response transforms. In the package.json virtual router setup, you can define one or more instances of the proxy plugin.
The Express Request Proxy is available now in the Aerobatic Bitbucket add-on. Other plugins that will soon be supported include custom error pages, form processing, authentication, and more.
Post to HipChat from your web app with Aerobatic
I’ll walk you through using the Aerobatic Express Request Proxy to set up an integration with HipChat (a popular chat app). We will create a simple web app. It has a form that posts a message to a HipChat room using the HipChat API.
HTML page – index.html
Below I set up a basic index.html with a form, include main.js, and the simple Skeleton CSS framework.
<title>Send a Support Message to a HipChat Room</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<h1>Send a message</h1>
Use the form below to send a message to our HipChat room. Include your
email and someone will contact you as soon as possible.
Configuring the environment variables for secrets
You need to get an access token from HipChat. This token should be kept secret. It’s not something you want to check into Bitbucket for the public to see. Even if you have a private repo, it should not be kept in a file, in case you decide to open-source the repo later. The Aerobatic plugin for Bitbucket has the ability to store environment variables, which is a good place to store authorization secrets.
This guest post is written by Dan Silivestru, CEO & Co-Founder of bitHound. Dan is a seasoned entrepreneur with over 15 years of experience in the field of software and technology. Previously, Dan was co-founder and CTO at tinyHippos, acquired by BlackBerry in 2011. Dan spent two years as an Executive in Residence (EIR) at Communitech, applying his expertise to mentor and advise startups. In late 2013, Dan co-founded bitHound Inc., a code insights startup in Kitchener, Ontario.
At bitHound we are passionate about helping developers better understand their code so that they can build great software. Building software involves making many decisions that can ultimately affect your outcome. By gaining insights into the impact of those decisions, bitHound helps developers deliver in a more reliable and secure fashion.
The development process and bitHound
Having spent our entire careers building software and working as developers, CTOs, and everything in between, we’ve lived the pain associated with building and delivering great software. We asked ourselves, “What if we could look at all of the data we generate: the code we write, the comments we make, the dependencies we use, and provide real, objective insights into the health of the software we’re creating?” And so bitHound was born.
What we do at bitHound
Our insights arm you with the information you need to make educated decisions about whether or not your code is ready for production. These insights include vulnerabilities in your npm packages, developer identified tech debt, your most problematic files in your codebase, and more.
Earlier this year, we introduced support for Bitbucket on bitHound. The response from the Bitbucket community was overwhelmingly positive so when we were approached by Atlassian to build an add-on for the new Atlassian Connect for Bitbucket platform, we immediately got on board.
Atlassian Connect for Bitbucket
bitHound strives to work with developers in their existing workflows, delivering insights when needed. With our add-on for Atlassian Connect for Bitbucket, we can deliver on that promise. Review bitHound insights right in your repository without leaving Bitbucket.
Atlassian sees the pain point developers face with constant switching between tools that never seem to integrate seamlessly. As such, we are really excited they’ve brought Atlassian Connect for Bitbucket to market so bitHound can become part of that ecosystem to help developers build remarkable software.
Get started with the bitHound add-on
If you’re interested in getting started with the bitHound add-on, simply go to your Bitbucket settings and look for bitHound in the Find new add-ons section.
We’re thrilled about this integration. Stay tuned for more to come!
Bitbucket webhooks are used by teams every day to test, analyze, deploy, and distribute great software to millions of people.
As Bitbucket webhooks are one of our most popular integration points, we’ve had the opportunity to gather lots of feedback regarding our webhook payloads, usage, and integrations.
We’ve listened to the community (check out public issues #7775, #5938, #4467, #6545 + more) and collaborated with CI vendors to make crucial improvements to this process.
We’re proud to announce the new Bitbucket webhooks.
The new webhooks can be accessed in your repository administration settings as shown in the image above. The webhooks provide a host of improvements over the previous, and soon-to-be deprecated “POST and Pull Request POST” hooks, which have now been renamed to “Services”.
Let’s look at some of the improvements and attributes of the new webhooks.
Fuller, more descriptive payload
Bitbucket webhooks now send more comprehensive information in the payload. For example, a repo:push event now includes detailed payload information about each and every reference that was updated:
We’ve added fine-grained control over the events you want to receive hooks for, such as repository, issue, and pull request events:
You can now troubleshoot malfunctioning webhooks more easily by reviewing the recent requests, including status codes and response times:
The new Bitbucket webhooks have been written from the ground up as a Connect add-on using our Atlassian Connect for Bitbucket platform, leveraging the same APIs for building powerful add-ons for extending Bitbucket.
This is just the beginning. We’ve got more features on the way, such as viewing request details (headers, event payloads, etc.), retrying requests, advanced queuing, and much more.
If you’re currently integrating with the old webhooks (renamed to “Services”), these will be deprecated soon. Please visit our payload documentation for the new payload descriptions.
Take the new Bitbucket webhooks for a spin – you can configure them in your repository settings. Are you inspired to build new, exciting integrations? Clone our webhook-listener demo project to quickly get started with Bitbucket webhooks.
More than 3 million developers and 450,000 teams use Bitbucket to manage and collaborate on source code. But code collaboration is only a fraction of what software teams do on a daily basis to ship software.
Nowadays, shipping great software involves constant context switching using tools that don’t integrate tightly. Even when integrations are made, toolchains have to be painstakingly maintained on an ongoing basis with reams of messy bespoke integration code that has to be regularly re-written.
This is a challenge that development teams face every day. Most integration architectures available right now in the software industry only partially solve the problem. They only provide simple integration points that prevent teams from creating deeper integrations and a more unified workflow.
Not your average platform
To solve this problem, we’ve re-engineered Bitbucket into a platform that helps remove the interrupt-driven workflow and brings all the information to ship software in one place. Atlassian Connect for Bitbucket provides an integration architecture that embeds your add-ons right within the product UI creating a more unified workflow.
Here is a demo of code search enabled by the add-on built by Sourcegraph:
Why build using Atlassian Connect for Bitbucket?
If you’re still wondering why you should build an add-on using Atlassian Connect for Bitbucket, here are three reasons:
Atlassian Connect is a next generation extensibility framework, providing much deeper integration than what is offered by standard REST APIs and webhooks.
Add-ons are straightforward to implement. You can build an add-on in any language, on any stack, using any interface.
You also can distribute your great add-ons to more than three million developers and 450,000 teams using Bitbucket.
Add-ons available for early preview
We couldn’t launch an integration platform without the help of the community. Here are previews of add-ons currently available on Bitbucket:
Cloud IDE: Codeanywhere, Codio
Code quality: bitHound, Codacy
Code search: Sourcegraph
Code analytics: StiltSoft
Deployment: Aerobatic, CloudCannon, Platform.sh
Crash and exception handling: Rollbar
Rapid integration: Wittified
If you are currently a user of Bitbucket and want to take a sneak peak, click on your avatar, select “Manage Account”, and simply install these new add-ons by selecting “Find new add-ons” from the left menu.
Get started with Atlassian Connect for Bitbucket
It is now super-easy to extend Bitbucket so that you have the best workflow for your team. Click here for documentation to get started with Atlassian Connect for Bitbucket.
We look forward to seeing what exciting and interesting add-ons you build using Atlassian Connect for Bitbucket. Imagine the possibilities – happy developing!
We’ll be replacing our main bitbucket.org SSL certificate on May 8 at 00:00 UTC. The new certificate is signed with SHA-2, so Chrome and Firefox users will no longer see certificate warnings when they load any Bitbucket page.
Most users won’t notice the change, and won’t have to take any action. However, if you’re using Mercurial over HTTPS, you may see this error message:
abort: certificate for bitbucket.org has unexpected fingerprint