Integrar GitLab e Trello no post-commit (client side) ou post-receive (server side).

Commit e push efetivados terão seus dados disponibilizados nos cards do Trello.

Instalar NodeJS

Fedora

sudo dnf --nogpg install node

Cygwin

Realizar download para Windows e instalar: http://nodejs.org/

Instalar pacotes do NodeJS necessários para o hook

Fedora

sudo npm install -g node-trello

npm install node-trello

sudo npm install -g colors

npm install colors

Cygwin

npm install -g node-trello
npm install -g colors

Obter a chave do Trello

Acessar: https://trello.com/1/appKey/generate

Obter o token para o hook acessar o Trello

CHAVE_TRELLO - valor obtido no passo anterior

Acessar

https://trello.com/1/connect?key=**CHAVE_TRELLO**&name=git-hook&expiration=never&response_type=token&scope=read,write

trello token

Obter o ID do quadro do Trello

  • Abrir o quadro no trello
  • Colocar .json no final da URL
  • Enter!

No início do json vai ter o ID do quadro:

{"id":"**57beXXXXXXXXXXXXXXXXXXXX**","name":"TechThingsCool", .....

Exibir os IDs dos cards

  • Abrir o quadro no trello
  • Colocar o Javascript abaixo na barra de endereço do browser
  • Enter!
javascript:!function(){var o=$(".card-short-id");o.each(function(){$(this).text($(this).text().replace("","").replace("","").replace("N.º ", ""))});o.hasClass("hide")?o.removeClass("hide").css({"font-weight":"normal","font-size":".9em","margin-right":"5px",padding:"2.3px 6px",background:$("body").css("background-color"),"border-radius":"10px",color:"yellow"}):o.addClass("hide")}();

Hook post-commit ou post-receive?

Se desejar que a atualização dos cards do Trello seja:

  • a cada commit E no lado cliente, use o hook post-commit
  • após o push E no lado servidor, use o hook post-receive

Abaixo as duas abordagens.

Hook post-commit (git client com cygwin/Fedora)

Desse modo a cada commit o Trello será atualizado. A execução ocorre no lado cliente.

Obter os arquivos post-commit e post-to-trello-post-commit em

https://drive.google.com/open?id=0B80EagoWEV2xdFFxbFg3aXE1RHM

  • Colocar na pasta .git/hooks do projeto
  • Os arquivos devem ser executáveis: chmod +x
  • No script post-to-trello-post-commit substituir os valores: CHAVE_TRELLO, TOKEN_TRELLO, GIT_REPO_LINK, TRELLO_QUADRO_ID

Testando a integração

Efetuar um commit com a mensagem no formato: #CARD_ID Minha mensagem

Exemplo

git commit -m "#7 Teste integração: Trello e GitLab. post-commit."

resultado post-commit

card trello comentado

Obs: pode ser necessário ajustar export NODE_PATH do script/hook post-commit, devendo apontar para o local onde se encontra os módulos do NodeJS.

Hook post-receive (git server no Fedora)

Desse modo o Trello será atualizado apenas no push. Cada commit no push pode apontar para cards diferentes. A execução ocorre no lado servidor.

Obter os arquivos post-receive e post-to-trello-post-receive em

https://drive.google.com/open?id=0B80EagoWEV2xM1N4OV9fSVEteUU

  • Colocar na pasta /var/opt/gitlab/git-data/repositories/<group>/<project>.git/custom_hooks/
  • Os arquivos devem ser executáveis: chmod +x
  • No script post-to-trello-post-receive substituir os valores: CHAVE_TRELLO, TOKEN_TRELLO, GIT_REPO_LINK, TRELLO_QUADRO_ID

Testando a integração

  • Efetuar mais de um commit com a mensagem no formato: #CARD_ID Minha mensagem
  • Realizar o push
  • Observar o log e o Trello (ver imagens acima!)

Referências