Я делаю крючок git post-commit, чтобы публиковать сообщения о фиксации в Twitter. Я настроил ловушку на сервере, что означает, что она запускается только тогда, когда я вызываю git push
.
Для взаимодействия с git из python я использую GitPython. В моем коде я использую repo.head.commit.message
для получения последнего сообщения фиксации. Это означает, что если я нажму несколько коммитов, он получит только последний.
Это то, что у меня есть до сих пор.
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
Как я могу получить все коммиты из push? Или, как я могу получить количество коммитов, которые были отправлены?
repo.iter_commits('master', max_count=5)
может получить столько коммитов, сколько я хочу, поэтому, если бы я знал, сколько коммитов было, я мог бы это использовать.
EDIT: я тестировал, и когда я запускаю git push
, кажется, что этот хук получает заголовок из последнего коммита, а не из того, который я только что нажал. Как мне сделать хук после фиксации, который получает сообщения от коммитов, которые я только что отправил на сервер?
РЕДАКТИРОВАТЬ 2: на самом деле я использую хук обновления, а не хук после фиксации, это правильный хук для использования на сервере?