34 votes

Rechercher le nom de la branche Git dans le hook post-mise à jour

J'exécute un programme pour alerter CruiseControl chaque fois qu'une mise à jour est envoyée à notre référentiel distant. J'utilise un hook Git post-mise à jour pour cela.

Ce serait formidable si je pouvais savoir quelle branche avait été engagée afin que je puisse l'utiliser pour informer CruiseControl de la branche à construire. Existe-t-il un moyen d'accéder au nom de la branche dans un hook post-mise à jour?

44voto

patthoyts Points 8978

Le premier paramètre du hook post-mise à jour est la référence de branche dans son intégralité - par exemple, je vois «refs / heads / master» pour une poussée vers «origin master». Ainsi, un exemple de script de hook qui imprime simplement la branche modifiée est:

 #!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref $1)
echo Update pushed to branch $branch
exec git update-server-info
 

Pour illustrer, lorsque ce qui précède est placé dans vos hooks de référentiel distant / fichier post-mise à jour, ce qui suit est imprimé lors de l'exécution d'un push:

 % git push origin master
Counting objects: 5, done
Writing objects: 100% (3/3), 247 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
remote: Update pushed to branch master
To /tmp/xx/a
    e02d9cd..ab14a08  master -> master
 

La nouvelle ligne commençant par «remote:» a été générée par notre script hook.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X