foonathan::blog()

Thoughts from a C++ library developer.

Flexible issue management with Trello and IFTTT

Like many open source developers I use GitHub to publish my work. It comes with a built-in issue tracking system, however, it isn’t that great.

The main issue - no pun intended - I have with it is that there is not an easy way to see all open issues and pull requests on all repositories you have. There is the issue workspace, but it only shows issues I’ve created, where I’m mentioned, or I’m assigned to. This isn’t helpful in my case, so I’ve looked for a different solution. There are also so-called “Projects”, but they are just for one repository - I need one for all.

I finally found a solution: It uses Trello and If This Then That.

BTW: Look to the top left of your screen - I have finally managed to get HTTPS on my website.

Problems I wanted to solve

There are various 3rd party issue trackers for GitHub like Waffle. However, they didn’t work for me as they supported only GitHub issues. Others did too much: I don’t need any agile methodology.

I simply need a glorified to-do list.

In particular:

  1. Automatic tracking of GitHub issues in a list of repositories: I want to see very open issue on all projects in one place so I can see what I need to do.

  2. Manual insertion of items: When I have a feature idea, I don’t want to make it public in case it doesn’t work out. I don’t want to create an issue on the GitHub project just for that.

  3. Usable from mobile devices: This is related to the point above. I have designed entire libraries while commuting and looking out of the train window, so I need easy access to it regardless where I am.

The setup I’ve came up with also solves a bunch of other problems I didn’t realize I had:

  1. I’ve recently setup a Patreon - I’d appreciate your support - where I charge per “productive week”. A productive week is any timespan between a week and a month, it ends after I feel I did enough work. Then I charge my patrons by writing a post where I outline what I did in that productive week. But by the time the week ends, I don’t know it anymore, and have to do a lot of backtracking. So I needed something easy to see what I’ve done.

  2. I am not getting a lot of emails, but people occasionally write me about something. I usually read them immediately but - as most people I assume - am too lazy to reply immediately. But then they get quickly drowned in the constant mailing list posts.

  3. Related to this above: I occasionally get comments on my posts. Disqus notifies me by email, but if I don’t reply immediately, I forget.

But now I have a system where all of this is in the past:

Part 1: Trello

Trello basically provides a to-do list.

You can create different to-do lists - called boards. Items on the to-do list are called cards and you can put them in multiple columns, to group them by status. The cards themselves have all the fancy features you’d expect - due dates, labels, attachments, etc.

For my use cases, I only need one board. I currently have the columns “To Do”, for all things I need to do, “Doing”, for things I’ve started but not yet completed, “Awaiting Response”, for things I’ve started but need to wait for other people to reply (e.g. emails, issues where I need additional info), and “Feature Ideas”, for things I plan to do eventually.

With that problems 2 and 3 are solved.

I quickly realized that I can also solve problem 4: I’ve created a new column “Productive Week” where I place all items I did in the current productive week.

However, the most important problem isn’t solved: Cards are not created automatically when someone files a GitHub issue. There is a so called power-up for Trello providing GitHub integration but that only allows linking GitHub issues and Trello cards.

Enter: if this then that.

Part 2: If this then that

IFTTT is incredible.

It is a free web service that allows you to react to certain triggers with certain actions. Triggers can come from a lot of sources - it is a specific time, someone mentions you on Twitter, you have a new mail, the ISS is at a specific location, … - and there are a lot of actions - send an email, create calender entries, …

Important for me: one trigger is “someone creates an issue or pull request on your GitHub repositories” and one action is “create Trello card”. A quick five minute setup later I have solved problem 1.

Toying around with more triggers and actions I wanted to solve the email problem: “if someone emails you then create a Trello card” is easily possible with IFTTT, but I don’t want a card for every email I got, only those that actually warrant a reply. Sadly filtering isn’t possible with IFTTT.

To circumvent that I simply created a new dummy Gmail address - I will never manually look at the inbox! - and setup IFTTT to create a card for every mail send to it. Now after reading an email I can simply forward it and it ends up in my to-do list just seconds later.

In a similar way I also solved the comment notification problem: Instead of forwarding them manually, I setup an auto forwarder, so I still see them in my regular inbox.

As I created a Gmail account it also comes with the other Google account features like a calendar. One IFTTT applet later and any events I’ve invited my new account to show up in Trello as well.

Conclusion

The setup - while certainly unconventional - works great.

The only really thing I’m missing is that there is currently no IFTTT hook for “GitHub issue is closed”, so I have to manually move the card to the “Productive Week” column. But this is satisfying enough that it doesn’t really matter.

There could be a service out there that does all this for me. However, with IFTTT I have incredible flexibility.

This post was made possible by my Patreon supporters. If you'd like to support me as well, please head over to my Patreon and do so! One dollar per month can make all the difference.