Je fais un crochet git post-commit pour poster mes messages de commit sur Twitter. J'ai mis en place le crochet sur le serveur, ce qui signifie qu'il ne fonctionne que lorsque j'appelle git push
.Obtenir tous les commits en poussant vers le serveur
Pour interfacer avec git à partir de python, j'utilise GitPython. Dans mon code, j'utilise repo.head.commit.message
pour obtenir le dernier message de validation. Ce qui signifie que si j'appuie sur plusieurs validations, la dernière sera la dernière.
C'est ce que j'ai jusqu'à présent.
class GITHelper:
"This class interacts with GIT for us"
def __init__(self, path):
repo = git.Repo(path)
headcommit = repo.head.commit
self.message = headcommit.message
self.author = headcommit.author.name
Comment puis-je obtenir tous les validations à partir d'un push? Ou, comment puis-je obtenir le nombre de commits qui ont été poussés?
repo.iter_commits('master', max_count=5)
peut obtenir autant de validations que je le souhaite, donc si je savais combien de validations il y avait, je pourrais l'utiliser.
EDIT: Je testais, et quand je lance git push
, il semble que ce crochet obtient la tête de la dernière commit, pas celui que je viens poussais. Comment est-ce que je fais un crochet post-commit qui obtient les messages des commits que j'ai juste poussés au serveur?
EDIT 2: J'utilise actuellement le hook de mise à jour, pas le hook post-commit, est-ce le bon hook à utiliser sur le serveur?
http://twitter.com/isnotrss –