1
2import os
3import subprocess
4import tempfile
5
6def get_commit_info(repo):
7 with tempfile.TemporaryDirectory() as home_dir:
8 env_with_home = os.environ.copy()
9 env_with_home["HOME"] = home_dir
10 subprocess.check_output(["git", "config", "--global", "--add", "safe.directory", repo], env=env_with_home)
11 lines = subprocess.check_output(["git", "log", "--pretty=raw"], cwd=repo, env=env_with_home).decode().split("\n")
12 return dict([x.split() for x in lines if len(x.split()) == 2])