Bitbucket has announced a plugin system: a new round of wrestling cloud VCS
Bitbucket announced “Atlassian connect for Bitbucket”: the ability to create plug-ins that are embedded in the cloud part of Bitbucket, expanding its interface and adding new features. This is a qualitative breakthrough in the struggle between Bitbucket, Github, Gitlab and TFS: if before we were limited to webhacks and the REST API, now there is an opportunity to finish "for ourselves" and for other developers directly the cloud interface. There are several extensions based on the nodejs SDK for creating plugins and documentation.
Why did they do it?
As the developers of Bitbucket explain in the announcement, one of the problems of modern development is the constant context switching. Yes, we have integration between numerous tools, but this does not save the developer from having to switch between the cloud interface of the version control system, the command line, where he runs the tests, the cloud interface of the continuous integration system and many other con, windows and consoles. The Atlassian Connect platform is designed to make life easier for developers, allows you to complement and build on the existing interface of the cloud system, adding to it the necessary functionality and interfaces of other services. You can see how it looks “live” in this video:
')
How it works?
Technically, everything is implemented as follows. A plugin, or, as Atlassian calls it, Addon is a web server that runs somewhere in the cloud (it must be accessible by Bitbucket via url) and is registered in Bitbucket via HTTP API. When a user enters his profile settings, he has a choice: either install the developed addon by url, or install one of the adons registered in the market. After that, Bitbucket addresses the add-on and requests from the REST API information on extension points — which buttons it wants to add to the interface, which windows to provide, and so on. And when the user gets to the Bitbucket screen, where something needs to be expanded and improved with an addon, then Bitbucket requests the addon for the corresponding parts of the interface as pictures and ifram, embeds them into its interface.
Integration is two-way: not only Bitbucket receives information and interface elements from the addon, but the addon also accesses Bitbucket via the REST API for performing useful actions.
How to try?
Already a dozen ready-made add-ons are available that can be connected in the user profile settings, the “add-ons” section, “manage add-ons” section. You can also start developing your add-ons: for this, documentation is available and based on nodejs sdk, which can be supplied using npm.
What does this give us?
I hope that this Bitbucket initiative will not go unnoticed by the other developers of cloud VCS, and soon we will see extension mechanisms for Github, Gilab, TFS and other platforms. That, in turn, will slightly ease the lives of developers and make it easier to create great software.