2011-03-18 2 views
2

J'utilise l'avis de Gerrit Code.Gerrit hook API

J'ai un problème avec ça. Il y a quelques crochets avec Gerrit, l'un d'entre eux est:

patchset-created --change <change id> --change-url <change url> 
--project <project name> --branch <branch> --uploader <uploader> 
--commit <sha1> --patchset <patchset id> 

Gerrit appellera si vous appuyez sur un changement de Gerrit.

Le paramètre commit transmis est le numéro de validation sha1, mais ce que je veux, c'est le journal de validation. Par exemple, si je fais git commit -m "id:110", je veux obtenir id:110.

Comment puis-je l'obtenir? Y a-t-il une API que je peux utiliser?

+1

Bonne idée. Mais pourquoi ne pas essayer de souscrire au projet et recevoir des notifications. – yuwang

Répondre

0

J'ai résoudre le problème moi-même. Il semble que gerrit n'a pas de telles API. mais, si le hook créé par patchset est appelé, le paramètre change est utile, s'il fait référence à une clé privée de la table de base de données gerrit, nommée Change, chaque git push à gerrit enregistre cette modification dans la table Change, include le message de validation, donc, vous pouvez utiliser le paramètre change pour interroger la table, alors vous avez obtenu le message de validation du hook!

6

Vous pouvez utiliser git log ou git show, exécuté depuis le référentiel approprié. Votre crochet sera passé le repo via --repository. Le crochet sera appelé à partir d'un répertoire de travail utile (je viens de vérifier dans la semaine dernière, je pense que cd est dans le repo avant d'exécuter le crochet?)

git log $SHA1 ou git show $SHA1 selon les informations que vous voulez.

Cela dit, je préférerais une meilleure solution. Je cherche à ajouter le diff/patchset à l'information, et il n'est pas disponible via l'un des hooks gerrit.