使用GitHub API检查仓库是否被标星

6

我目前正试图使用GitHub API(v3)检查并查看是否由已认证用户收藏了某个仓库。 我可以成功列出登录用户收藏的仓库,但是当检查用户是否收藏仓库时似乎无法工作。

例如...

(GET)/user/starred?access_token=... 正确返回我收藏的所有仓库的完整列表。

(GET)/user/starred/joynet/node?access_token=... 始终返回状态404,无论我使用什么所有者/仓库组合或我是否实际上将该仓库标记为收藏。

我还应指出,我似乎无法访问/user/starred中的任何内容,除了(GET)/user/starred。 无论我做什么,向/user/starred/:owner/:repo发出PUT,DELETE或POST请求始终返回404。

你知道我该如何使用这个API吗? 我已经阅读了文档,并且我相信我正在正确进行,但我似乎无法使它工作。

2个回答

6
我已经解决了这个问题。问题在于我没有仔细阅读文档,没有看到我必须在授权期间请求repo范围才能修改星标:) 只需添加“repo”范围即可解决我的问题!GitHub在此处简要提及其范围:http://developer.github.com/v3/oauth/,但并未提到收藏需要“repo”范围。

1

您正在正确使用API。根据文档,如果您没有标记存储库(或存储库或用户不存在)则会收到404状态,否则您将收到204状态。由于您拼写用户名 joyent 错误,所以始终会收到404状态。

因此,要检查已认证的用户是否为节点存储库打了星:

GET /user/starred/joyent/node

启动节点存储库:

PUT /user/starred/joyent/node

取消标记节点存储库:

DELETE /user/starred/joyent/node

此外,如果您尝试使用不存在的所有者或存储库向 /user/starred/:owner/:repo 发送 PUT 或 DELETE 请求,则会收到 404 状态。因此,您可能由于拼写错误的用户名而收到所有这些 404 状态。

感谢您的回答。我知道在我的示例中拼错了joynet,但是它对于任何请求都返回404(我尝试了10个不同的存储库)。不过我已经成功解决了我的具体问题(请参见我的答案)。 - Jason L.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接