git-log
Showing HEAD commit logs
Show HEAD commit
$ git log -1
>>> commit = repo[repo.head.target]
>>> commit.message
'commit message'
Traverse commit history
$ git log
>>> last = repo[repo.head.target]
>>> for commit in repo.walk(last.id, pygit2.enums.SortMode.TIME):
>>> print(commit.message) # or some other operation
Show trailers from the last commit
$ git log --format='%(trailers:key=Bug)'
>>> last = repo[repo.head.target]
>>> for commit in repo.walk(last.id, pygit2.enums.SortMode.TIME):
>>> print(commit.message_trailers.get('Bug'))
References
libgit2 discussion about walker behavior. Note that the libgit2’s walker functions differently than
git-log
in some ways.