From the beginning of time, when there was Bitbucket version called Stash there were no possibility to write post- or pre- receive hooks as easy as it can be done using other git hosting platforms. Instead of simply writing bash script which can check code style for new commits you were required to build full blown addon, written in Java.
Also, high five to the Adventure Time fans! I delegate some issues to Morrow. ;)
What it does
It offers easy way of bringing back git server flexibility of using any language (including bash) for writing addons. It's so easy to use, that you can painlessly migrate to the Bitbucket/Stash from any other git hosting platform which was configured with post- and pre-receive hooks.
How I built it
Challenges I ran into
There are numerous challenges which I've come through building addon, and the major ones are: internal Java libraries used by Bitbucket/Stash can't handle network answer longer than 65Kb from hook, which caused hook plugin to silently crash without any output. It was a hell-time debugging that issue. Second one is that Java API documentation for Atlassian Bitbucket is very lacking, and development process looks like trials to blindly make code works as expected without any bugs.
Accomplishments that I'm proud of
Plugin is consistently hitting top of plugins for Atlassian Bitbucket, has more than 1700 active installations, outlived 3 major Bitbucket version update and survived through Stash to Bitbucket namespace change.
What I learned
I've should made it paid in the very beginning. Now it doesn't sounds like morally right thing to do, so it will be left open-sourced.
What's next for External Hooks for Atlassian Bitbucket
I'll expect to see, that Atlassian team integrate native git hooks implementation into Bitbucket sooner or later.