11

我正在开发自动化服务以使用 Git 中心存储库。而且我遇到了问题 - 我找不到通过哈希\名称获取特定分支的所有提交的方法。

我的代码是进行代码审查的自动化工具。所以我添加了一个功能来忽略我的审查过程中的特定分支(例如测试分支或类似的东西)。因此,在我的服务中,我将分支标记为已忽略。一旦我从 git hub api 获得提交 - 那里没有关于当前提交属于哪个分支的信息。

我开始认为我的整体 github 想法是错误的 - 因为提交分支链接非常明显,所以应该有一些东西让 API 开发人员在GetCommits方法中忽略它

所以我的问题是 - 有没有办法找出哪个分支提交(使用 v3 api json 结果)属于 github api(v3 - GET /repos/:owner/:repo/commits/:sha)。

谢谢

4

3 回答 3

11

目前在 GitHub 的 API 中没有办法询问提交是否在特定分支的历史记录中。您唯一能做的就是获取特定分支的所有提交,然后遍历提交以查看特定提交是否在列表中。为此,请向 发出请求/repos/:owner/:repo/commits?sha=branchname,其中 branchname 是您要获取提交的分支的名称,例如https://api.github.com/repos/izuzak/pmrpc/commits?sha=master

于 2013-05-13T12:20:53.413 回答
7

如果您只想检查您的提交是否例如在分支 test123 上,请执行以下操作:

https://api.github.com/repos/golang/go/compare/test123...001a75a74c4a27901b0b536efe1be581612c52a9

并检查状态。

如果它是“相同”或“落后”,则提交是分支的一部分。如果不同,则不是。

于 2015-09-17T12:49:53.217 回答
0

在 Python 中使用 PyGitHub 库 ( https://pygithub.readthedocs.io/en/latest/index.html )

你可以做

g = Github(accesskey) # PyGitHub object
repo = g.get_repo(repository) # Repository
commits = repo.get_commits(sha='stable-2.9') # Commits by a branch
于 2022-02-17T21:33:53.920 回答