What a beautiful sunny morning! I started my day with 9KM run, then followed by cold shower and a cup of hot coffee. Feel great! 🤘🏽OK, lets get down to business 🙂
I got a new idea for my next open source project (also my August challenge). It is to automate Atlassian add-on management. Just a bit background on Atlassian add-ons – like many other software vendors, Atlassian has its own eco systems (known as Atlassian Market Place) where partners can build 3rd party plugins that can extend Atlassian products’ capabilities (Jira, Confluence, Bitbucket, Bamboo…). Just name a couple of my favourites: Automation for Jira, ScriptRunner for Jira.
Atlassian products have a built in tool that is called UPM (Universal Plugin Manager), which itself is a plugin too (preinstalled). Application admins are able to enable/disable/install/uninstall/update plugins in the UPM interface. Also admins get notified if the plugins have a newer version or there is a compatility issue. A nice tool, isn’t it?
But in real life, it is a bit challenging to keep all plugins in a consistent state across different environments (dev/uat/stage/prod) if solely use the UPM UI. Especially when you manage multiple Atlassian applications, and each application has a few plugins. As human errors are inevitable. The only way I think to achieve that is to source control the plugins metadata, and automate the management process.
I did a quick proof of concept, and it proves this idea is achieve. Here are two key components that used:
- UPM Rest API to query/enable/disable/install/uninstall/update plugins
- Atlassian Market Place Rest API to query the versions/compatibilities/… of plugins
Below is how my POC looks: