Automation with Probot 🤖

Extending GitHub with an army of NodeJS powered robots.

Raul Riera
2 min readApr 30, 2018

GitHub is without a doubt the place for Open Source Software. But, lacks a fair deal of “power” features to take your projects to the next level. It’s also true that no company can implement 100% of the features its customer desire. Smart companies will create core functionality required for everyone, and leave the rest to 3rd party vendors, such as us developers.

Probot to the rescue.

I’m pretty sure GitHub is aware of the lack of project management features from its product. There is even a whole section in the market place dedicated to it. Their response? A framework to easily create GitHub apps to extend it to your wildest imagination.

The Probot team has created a fantastic little website that not only shows how to build the robots, but also includes a extensive list of example apps and integrations so you can go from zero to bot very quickly.

Building a good bot

Probot is powered by NodeJS, with zero knowledge about it I decided to dive into the docs and try to fix one of the pain points when managing a project inside GitHub, the lack of duplicating an issue. Surprisingly, getting started is extremely easy, and I got my bot up and running the same day.

I would not go into details how to create a bot, they have done an amazing job writing a small but meaningul documentation website. What I would do, is explain the process I went through when deciding what to create, and how.

  • Finding a pain point: As mentioned before, the lack of duplicating an issue was getting in my way. A small and focused app was just the thing I was looking for.
  • Keep it focused: I could have made an app with a bunch of commands, one for duplicating, one for moving, one for another thing, etc. I decided that I wanted to keep my bots simple and with only one task.
  • Learn from others: Because I had no idea what I was doing, the documentation and the app gallery section where my two tabs opened. I was going back and forward looking how other people did things which help me a lot for adding tests for the bots. You can find a list of bots here.
  • Open source and live: I wanted the bot to be open source, and I also wanted it to be available in GitHub for anyone to integrate in their repos. Glitch, a fantastic “mini heroku like” website for hosting nodejs apps was the perfect fit for the latter.

Conclusion

That is pretty much it, following those 4 steps I managed to create the Duplicator bot, and the Minimum Reviews Count bot. Both of them solving a pain point, focused, open sourced, and self hosted.

Wanna dig around in the source code, or even deploy them yourself using Glitch? Have at it :)

--

--