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