当存储库在组织下时,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 API v4 Graphql:获取当前授权用户组织及其存储库
Github V4 graphql - 无法获取组织用户贡献信息