Sometimes, in software development, you come across missing implementations in paid tools that you can’t possibly comprehend. One of those I recently hit was the fact that Bamboo’s Rest API does not provide information about the state of a build agent. WTF, right? As we had a few failing or hanging agents in the past I wanted to see what they were doing using our Dashing dashboard. There is a plugin that allows you to query the state of every agent but it was not reliable enough to use in production. So once again I had no other choice than to write a scraper to get the information I needed.
I’m still amazed at how awesome Ruby is whenever I feel the need to create another Dashing widget. Thanks to Steven Van Bael I learned about Nokogiri and this was the ideal widget to put it to use. It took me about one hour to create and now, every 10 seconds the agent information is correctly updated. So whenever my friends at operations decide to reboot our build server, I know. I’m watching you, boys!
{% gist 6df1ffd1ae5ae522ab45c8783ab85ea5 %}