使用 PyGitHub 在特定提交处获取回购的所有文件内容

Get all the file Contents of a repo at Specific Commit using PyGitHub

我想使用 Python [PyGitHub API] 获取存储库中所有文件的文件内容 [已更改和未更改]。但不确定如何实现它。简单地说,浏览历史上特定提交 ID 的回购。

是否还有其他API可以获取所需的数据?或者可以使用 PyGitHub 本身来完成。

注意:我使用的是 Github API v3。

如果您下载的文件不是太大(超过 1MB),如 PyGithub/PyGithub/issue 661 所示,想法是:

  • 在特定提交时请求存储库内容
  • 获取第一次调用返回的文件

即:

contents = repository.get_dir_contents(urllib.parse.quote(server_path), ref=sha)

然后:

for content in contents:
   if content.type != 'dir':
     file_content = repository.get_contents(urllib.parse.quote(content.path), ref=sha)
     // or
     file_content = repository.get_git_blob(content.sha)