Python git package get tag и commit - PullRequest
       7

Python git package get tag и commit

0 голосов
/ 16 февраля 2020

Я хотел бы напечатать git commit и тег в моем Python коде. Как я могу сделать это, используя пакет git?

Когда я иду в свой Bitbucket, я вижу

tag: 73-2-g46b9856

commit checksum: 46b9856

Как я могу получить эту информацию из пакета git?

Я сделал следующее:

import git
repo = git.Repo(search_parent_directories=True)
sha = repo.head.object.hexsha

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

Итак, я предполагаю, что у вас уже есть нужная контрольная сумма в переменной sha.

На этом этапе есть сообщение о том, как получить теги и найти определенный c тег, связанный с этим sha в этой ссылке: Получить теги коммита

# Example code for clarity

import git
repo = git.Repo(search_parent_directories=True)
sha = repo.head.object.hexsha
tagmap = {}
for t in repo.tags:
  tagmap.setdefault(repo.commit(t), []).append(t)
tags = tagmap[repo.commit(sha)] # Warning: Your latest commit might not have a tag associated with it so this will throw an error right now.
print(tags)
0 голосов
/ 16 февраля 2020

Вот что решило мою проблему:

repo = git.Repo(search_parent_directories = True)
sha = repo.head.object.hexsha

commit_chksum = repo.git.rev_parse(sha, short = 7)
tag = subprocess.check_output(["git", "describe", "--always"]).strip().decode()
...