Cool Tools for Git

Handy extensions that enhanced and integrated various Git related services at a previous company.

Contents

Key Points

  • Browser extensions that enhanced and integrated Jira, Bitbucket, and Team City websites to display better information, add inter-site links, and improve overall workflow.
  • A desktop program which improved the setting up of local environments, usually during code reviews. It reduced a frequent 5+ min workflow to under 20s.
  • They were built for internal use at a previous company had 100s of installs across various teams.

Background

Continue article: Why build these?

Features

Extensions were modularised and added functionality for specific use cases. Some were more applicable for architects, whilst others were tailored for code reviewers etc. Devs simply chose what they wanted.

Here were some popular ones:

Bildebeest

Like a Wildebeest, this tool was all about speed and power. We also liked naming tools after animals.

Bildebeest (builder beast) was a desktop app used to build apps quickly when testing code locally. It was written in Python and integrated with Jira and Bitbucket.

Often you needed to download and build code from multiple repos. It took many dozens of clicks to find a branch, download it, and build it - and that was just for one app! With Bildebeest you simply clicked a button in Jira or Bitbucket, then Bildebeest would fetch all of necessary code and build the apps asynchronously. This reduced a 5+ minute workflow down to under 20s - activated by a single click.

BILDEBEEST IS AWESOME!!

  • An actual quote from a colleague

The idea sounds simple but this app had to utilise many technologies in order to work. Once it was working though it was just magic!

Web Tools

A dead branch finder in Bitbucket which identified deletable branches based on dozens of criteria. It integrated with Jira and found branches that were old, merged, completed etc.


Added critical info to Jira to help architects track and merge branches during release.


Integrated Bitbucket and Team City to display whether tests had passed for a given branch. Team City's own implementation of this did not work with our setup.


Improved Jira integration in Bitbucket. This example shows a new Jira status and link when viewing branches.


Added dozens of links in Team City to go to Bitbucket and Jira pages.


Improved the look of tests that timed out in Team City.

The Tech

Web Tools

  • Written in JS and deployed through Tampermonkey.
  • Scripts were linked to internal Bitbucket urls which meant code changes were automatically deployed to users.
  • Future work was planned to integrate all scripts into a standalone browser extension.
  • Jira and Bitbucket extensions made use of the Atlassian User Interface to ensure UI changes were visually consistent.

Bildebeest

  • Written in Python and directly integrated with Git, Jira, and Bitbucket services.
  • Secured auth details via the operating system credential manager.
  • Distributed to users via an internal tooling platform.
  • Functioned as a system tray app which users simply clicked on to activate.