コミット メッセージを Twitter に投稿するための git post-commit フックを作成しています。サーバーにフックを設定しました。これは、 を呼び出したときにのみ実行されることを意味しますgit push
。
Python から git とやり取りするために、私は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)
好きなだけコミットを取得できるので、コミットの数がわかっていればそれを使用できます。
編集:私はテストしていましたが、実行するgit push
と、このフックはプッシュしたばかりのコミットではなく、最後のコミットからヘッドを取得するようです。サーバーにプッシュしたばかりのコミットからメッセージを取得するコミット後フックを作成するにはどうすればよいですか?
EDIT 2 :私は実際に post-commit フックではなく update フックを使用していますが、それはサーバーで使用する正しいフックですか?