by zanker

zanker /github-trello

Manage Trello cards through Github commit messages

429 Stars 66 Forks Last release: Not found MIT License 36 Commits 7 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Allows you to manage or reference your Trello board through commits to Github. Tag a commit with "Closes 1234" to have a card automatically archived, or "Card 1234" to have the commit sent to the card.


Commit messages are searched for

(case|card|close|archive|fix)e?s? \D?([0-9]+)
to find the card short id. Case/card resolve to
configuration, close/fix resolve to
, and
will just archive the card regardless.

The commit message is added as a comment to the card as well.



trello-web --help
for a list of arguments for starting the server. If your domain name is and the server is listening on port 4000, then set the posthook URL on Github to

On the first run, it will create an empty configuration file for you that you will need to configure based on how you want it to manage.

You will need to get your api key and OAuth token with read/write access that won't expire for this to work. You can either use your own account, or create a separate deployment one for this.

Go to
to get your key, then go to,write&expiration=never&key=[your-key-here]
with the key Trello gave you. Authorize the request and then add the token and key to your trello.yml file.

You can get the board id from the URL, for example in
the board id is

There are 3 actions you can configure to decide what happens to a card,

for case/card,
for close/fix.
requires an additional hookin to your deployment that you can read below.

You can find out list ids at the following url :


If you are moving your cards to a new list (such as "Live") after deployment, then you must use the

option in
. Unlike
, you must also specify the repo name for

You indicate a deploy happened through sending a POST request to[repo-name]
. An example of a Capistrano deployment script:
require "net/https"
Capistrano::Configuration.instance(:must_exist).load do
  after "deploy:update" do
    uri = URI("")

http =, uri.port)
http.use_ssl = uri.scheme == "https"
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.request_post(uri.path, "")

end end

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.