Tag Archives: productivity

How to connect Github and Asana

This blog post complements the WordCamp Vancouver 2014 Talk I gave called How to build your own robot.

I was working on a new website with a new collaborator who was literally 5,000 mile away for a client was 300 miles away. With all this long distance I’ve been using both Asana and GitHub to keep the team organized.

I wanted to but hadn’t tried to sync the commit message from GitHub to tasks in Asana. I was originally inspired by the svn-bot that appears in the WordPress core IRC chat.

While I had never set up this before both services make it quite easy.

You can set up the connection on your own Asana user account. But then all of the commits from everyone on the project will be attributed to you. What Asana support suggested was that I make a new user and call it git commit or commit. I took this one step further and gave my user the Octocat Icon. Once you have set up this user go into the account settings and grab the API Key.

The GitHub Sync is repo based and not user based and is located under the webhooks and services. Put the Asana API Key in the Auth token. You can also restrict it to just one branch if you like.

So whenever anyone commits to the repo all he have to do is grab the URL of the task from Asana and put it in the description of the GitHub commit and it will appear in Asana under the user Git Commit.

This method isn’t application specific any way you want to commit to Github will work.  You can also add multiple tasks and the commit will be tracked in both tasks.

The git-bot will publish who made the commit, which branch and the account and repo name it also links back to the GitHub commit.

This really helped in both a contractor and client setting. Assigning tasks to contractors was easy and feedback on the commit as well.  When the client found a bug on the beta launch of the site they recorded it on Asana and they knew when it was fixed. This really worked well in both regards as anyone involved could see the progress of the project.

The condensed workflow:

  1. Create / get assigned Task in Asana
  2. Code away upload via FTP
  3. Commit the code with the Asana task url in the description of the commit.
  4. See the commit in the Asana.

Couple side notes:

  • We weren’t using any auto deployment on upload.  ( FTPloy, Beanstalk, Dandelion )
  • I didn’t want to track every single commit on Asana, just ones which either completed the task or which required review by another team member.

If my writings have helped you out, you can buy me a coffee or a beer via paypal:

Slides from WordCamp Talk: