当存储库在组织下时,Github Api 列表提交状态

Posted

技术标签:

【中文标题】当存储库在组织下时,Github Api 列表提交状态【英文标题】:Github Api list commit status when repository is under organisation 【发布时间】:2016-01-24 10:07:02 【问题描述】:

我正在尝试使用 github rest api 列出存储库的提交状态。

存储库正在组织中并且是私有的。 其中repos_url 是https://api.github.com/orgs/mydummyorg/repos

具有拉取访问权限的用户可以查看给定 ref 的提交状态:

    GET /repos/:owner/:repo/commits/:ref/statuses

根据上面的api是GET url

所以我的最终网址将是 repos_ulr + :owner/:repo/commits/:ref/statuses

如果我按照下面的方式进行卷曲,那么它会给出 404 not found

curl -u "username" https://api.github.com/orgs/mydummyorg/repos/:owner:repos/commits/:ref/statuses

地点:

:owner = 用户名(我在 git 中的登录 ID) :repos = 'mydummyorg 下的存储库名称 :ref = 提交的 sha`

我不知道我做错了什么。我的网址正确吗? 我传递给:owner:repos:ref 的值对吗?

【问题讨论】:

【参考方案1】:

我只能看到:

在您的 curl 中,您提到 :owner:repos 而不是 :owner/:repos(可能是您的问题中的拼写错误,或者您忘记了“/”)

GET /repos/:owner/:repo/commits/:ref/statuses 表示"List Statuses for a specific Ref" API 应该是

https://api.github.com/ + /repos/:owner/:repo/commits/:ref/statuses

(不是orgs/mydummyorg/前面的/repos/:owner/:repo/commits/:ref/statuses

最后,您需要注册为该私人仓库的所有者或合作者,或者即使您确实传递了完整的凭据(用户名 + 密码),答案也始终是 404。 确保您没有激活 2FA,否则您的用户名+密码将不起作用(您需要改用 PAT -- Personal Access Token --)

OP Bhavik Shah 详情in the comments:

我能够解决问题。我传递的所有者详细信息有误。它应该是存储库所在的组织名称

【讨论】:

是的,忘记在 :owner 和 :repos 之间添加“/”。问题在于我试图访问的存储库。存储库未显示在我的存储库列表中,因此我得到 404。我在存储库上有提交,但该存储库仍然没有显示在我的存储库列表中。有什么理由吗?但我能够从浏览器提交和查看回购。但是在存储库列表中我找不到新创建的存储库,它是我在一个组织下创建的并且是私有的 “存储库未显示在我的存储库列表中”:您指的是哪个存储库列表?因为orgs/mydummyorg/repos/:owner:repos/commits/:ref/statuses 返回的那个将始终返回 404,因为该 API 组合不存在,正如我在回答中详述的那样。 嗨,我正在为这个 url api.github.com/repos/:owner/:repository/statuses/:ref 做 curl。在这里,存储库是组织的一部分。当我做卷曲时,它给出了未找到的状态。以所有者的名义,我提供了我的 github id。我尝试给存储库所有者 ID 仍然给出相同的错误 404 未找到 我能够解决这个问题。我传递的所有者详细信息是错误的。它应该是存储库所在的组织名称。感谢@VonC 的所有帮助。欣赏它。 :) @BhavikShah 太棒了!我已将您的评论包含在答案中以提高知名度。

以上是关于当存储库在组织下时,Github Api 列表提交状态的主要内容,如果未能解决你的问题,请参考以下文章

如何解决还原提交冲突

如何使用Github GraphQL搜索我自己的提交?

GitHub API v4 Graphql:获取当前授权用户组织及其存储库

Github V4 graphql - 无法获取组织用户贡献信息

如何使用 GitHub REST API 通过我的个人访问令牌访问组织拥有的私有存储库中的文件数据?

如何通过 github API 在 github 中创建存储库?