There is a newer version of this guide on our Knowledge Base.

GitHubDear Kanbanizers,

We are proud to announce that our GitHub integration is out of beta. Below are some details about the integration itself.

Abilities:

1. Track commits as comments in a corresponding Kanban card. (only commit and push events are tracked)
2. Track GitHub project issues as cards in a Kanbanize board
3. Update card details
4. Update card status
5. Log time to card

The integration is in one direction only – from GitHub to Kanbanize.
For example: when an issue is closed, the corresponding Kanbanize card is moved to “Done”, but moving a card to Done will not get the issue closed.

Setup:

1. In Kanbanize, go to Administration -> Integrations -> GitHub -> Configuration

2. Click Configure to setup and copy the URL to use in GitHub.

3. Go to your GitHub project page -> Settings -> Webhooks -> Add webhook

4. Set up the Webhook:

URL – paste the URL generated in Step 2

Trigger:
Pushes – If enabled, all branches and all commits of the project are inspected for Kanbanize card IDs.
Issues and Issue comments – If enabled, GitHub project issues will be tracked in a Kanbanize board.
Check only if the issuesboardid URL parameters is set!

And you are good to go! From now on, every commit message will be processed with the Kanbanize service and your changes will be reflected on the corresponding Kanban card. When a local branch is pushed to a repository all local commits will also be processed one by one.

Usage:

The integration can update Kanbnaize cards through “#” hashtag commands in the message.

Track commits                                                                                 

#taskid / #id – this is a required parameter for the integration to work. You can provide it in one of these three formats:

  • #id 1234 (can be anywhere in the commit message and takes priority if present)
  • #taskid 1234 (can be anywhere in the commit message and takes priority if present)
  • 1234 (must always be the first thing in your commit message)

Examples of commit messages:

  • `Change in the logging module. #id 1234`
  • `Change in the logging module. #taskid 1234`
  • `1234 Change in the logging module.`

Track GitHub project issues                                                             

Upon configuration as per the requirements, when an issue is created a new Kanbanize card will be created. Each issue update will be reflected on the card.

Mapping: 

GitHub issue <-> Kanbanize card
Title <-> Title
Description <-> Description
Assignee <-> Assignee
Labels <-> Tags (if a tag matches an available card type in the Issue tracking board in Kanbanize, the type will be set to the card accordingly)
Milestone <-> Milestone {custom field}

Note: GitHub allows Closing issues via commit messages – if issue tracking is enabled and your commit message is related to a GitHub issue, you don’t have to provide a task id parameter.

Update card details                                                                          

#title, #description, #priority, #assignee (with alias @<username>), #color, #size, #tags, #deadline, #extlink, #type

All these parameters can be changed via the commit message using our API functions.

Examples of commit messages:

  • `Change in the logging module. #taskid 1234 #priority high #color ffaaff #deadline 2014-12-12 @Peter`
  • `1234 Change in the logging module. @Peter`

Move a card                                                                                       

#column, #lane, #boardid, #position, #exceedingreason (if you are to exceed the WIP limit, provide a reason with this parameter)

Examples of commit messages:

  • `1234 #column “In Progress”` – move the card to the “In Progress” column
  • `1234 #column Done #boardid 12 #position 1` – move the card to the “Done” column to the board with id 12
  • `1234 #column “Done.Ready for Deployment” #lane bugs #boardid 12 #position 1` – move the card to the “Ready for Deployment” column to the board with id 12. The card will be placed in top position in the “Bugs” swimlane.

We also support a bunch of move shortcuts that make it all easier

#move “Ready for testing/Platform Team” – Move the task to the “Ready for testing” column and the “Platform Team” swimlane
#move Development/ – Move the task to the Development column
#move “/Platform Team” – Move the task to the Platform Team swimlane

#requested – Move a task to the first column in the Requested section
#inprogress – Move a task to the first column in the In Progress section
#done – Move a task to the first column in the Done section

#<section> first – Move a task to the first column in the section
#<section> 2 – Move a task to the second column in the section
#<section> last – Move a task to the last column in the section
<section> can be any of the following: requested, progress, done

Update card status                                                                             

#block, #editblock, #unblock

Examples of commit messages:

  • 1234 #block “Not enough resources.”
  • 1234 #editblock “Still not enough resources.”
  • 1234 #unblock

Log time to card                                                                                  

#loggedtime – The number of hours you want to log to the task.

Examples of commit messages:

  • `1234 #loggedtime 2`
  • `1234 #loggedtime 0.5`

 

Happy coding with Kanbanize – Kanban Software that Scales your Business

Join our Lean Community!

We publish a new article every week. Get the latest content straight into your inbox!

8 thoughts on “GitHub to Kanbanize Integration

  1. Pingback: Version 4.2 – What’s New? | Kanbanize Blog

  2. Carlos

    I was trying to integrate a board in a git repository and I haven’t could do it.
    In the repository setting “kanbanize domain” I wrote “kanabanize.com” and in “API key” the key which appears in my Kanbanize count.
    Then, when I am doing commits with theses layers in the comentaries, the kanbanize board doesn’t change.
    I proved to change the “kanbanize domain” in Git to “kanbanize.com/ctrl_board/” but the problem persists.
    What would I do to solve it?

    Reply
  3. Tomasz

    @Dimitar Are you going to give a possibility to customise processing behaviour? It would be great if we can define commit message patterns and actions for them.

    For example: “Close #{{:ticketNo}}” => Move ticket {{:ticketNo}} to column “QA verification” matches “This great commit will close #123 and CLOSE #321” and moves tickets #123 and #321 to the given column.

    Reply
    1. Monica Georgieff

      Hi Tomasz,
      I’m not sure if I understand you correctly but I can suggest using runtime policies (in Kanbanize, not Github) to automate some of the things you described in your scenario (for example, “Close #{{:ticketNo}}” => Move ticket {{:ticketNo}} to column “QA verification”) but you will need to, at some point, define the ticketNo or Taskid manually. If, by great commit, you mean activating many things at once we actually encourage committing one thing at a time. I hope I’ve answered at least part of your query! If not – please contact support@kanbanize.com. My fellow Kanbanizers will be happy to take a look if I’ve missed something.

      Reply
      1. Tomasz

        @Monica after a while I have realised your solution is really good for most of the people, it gives a clear pattern and should be considered as an API via commit message 🙂

        In our case we wanted to customise it for our commit message policy, so we have found it easier to create our own Github web hooks and use your standard API to perform certain actions.

        Reply
    1. Alex Novkov

      Hi Sherif,

      The integration was updated about a year ago. We haven’t planned any enhancements in the near future, but we are always open to hearing new ideas. Do you have anything in mind?

      Cheers,
      Alex

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.