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
sudo npm install -g 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
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."
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!)