我在应用程序方面遇到问题我通过github API跟踪一些github repos。当我手动移动或重命名我的应用程序正在跟踪的项目(在github上)时,我失去了它(当我调用旧的api url时获得404)。我注意到当我通过浏览器导航到我的旧项目URL时,我得到301并被重定向到正确的页面。有没有一种简单的方法可以通过api找到项目的新位置?也许通过" id"属性还是什么?谢谢!
例如: old:github.com/api/v3/repos/group/app1 重命名为:github.com/api/v3/repos/group/app2
当我打电话给github.com/api/v3/repos/group/app2时,我得到了404 当我导航到github.com/group/app1时,我收到301并被重定向到github.com/group/app2
干杯。
答案 0 :(得分:7)
我遇到了这个确切的issue,并且能够从Github支持中获得一些非常有用的信息。
目前,API不会重定向存储库或用户重命名,例如github.com
,但截至2015年4月17日,您可以preview repository redirects。
将6to5/6to5
作为示例重新命名为babel/babel
。如您所知,对https://api.github.com/repos/6to5/6to5
的请求将返回404,但我们可以通过将application/vnd.github.quicksilver-preview+json
作为Accept
标题传递来预览即将推出的回购重定向功能:
$ curl -i -H "Accept: application/vnd.github.quicksilver-preview+json" https://api.github.com/repos/6to5/6to5
这将返回301和带有url
键的响应,其值是我们要查找的仓库的链接:
{
"message": "Moved Permanently",
"url": "https://api.github.com/repositories/24560307",
"documentation_url": "https://developer.github.com/v3/#http-redirects"
}
或者,您可以使用唯一的id
属性(永不更改)来跟踪存储库(或用户),无论名称如何更改。
让我们再次以babel/babel
née6to5/6to5
为例。它的回购id
是24560307
。您可以使用此来调用/repositories/:id
端点(例如https://api.github.com/repositories/24560307
),并保证只要它仍然存在就可以获得该回购。
以下是我与GitHub支持部门的交流记录,供参考:
检测重命名的仓库
您好。
有没有办法使用Github API检测重命名的存储库?
例如,最近将6to5 / 6to5重命名为babel / babel。正在运行
curl -i https://github.com/6to5/6to5
会返回301,其中“位置”字段指向新位置。但是,运行curl -i https://api.github.com/repos/6to5/6to5
会返回404。无论如何使用API获取该位置字段?如果没有,那么使用不使用API的HEAD请求是一种有效的解决方法,还是有更好的方法来实现我的目标?我正在尝试在codetriage / codetriage(https://github.com/codetriage/codetriage/issues/228)上解决这个问题。
感谢您提供的任何帮助。
一切顺利, O型我
嗨O-I,
你是对的 - API不会像github.com那样在存储库或用户名重命名上重定向。这可能是我们将来会提供的东西(我同意它会有用),但我不能对此做出任何承诺。感谢您表达兴趣!
目前,有一种方法可以处理API脚本和应用程序中的重命名 - 而不是使用存储库的名称来发出API请求,您可以使用存储库的ID(在存储库时不会更改)重命名或转移。)
例如,github / linguist的ID是1725199:
https://api.github.com/repos/github/linguist
现在您知道了,您可以通过ID获取存储库:
https://api.github.com/repositories/1725199
如果您没有跟踪存储库的ID,而您拥有的只是以前的名称,那么向github.com发送HEAD请求以查看您将被重定向的位置是我能想到的唯一解决方法。时刻。
希望这有帮助,如果您有任何其他问题,请告知我们。
干杯, 伊万
嗨O-I,
我认为您可能有兴趣知道我们很快会在API中为重命名的存储库提供重定向。您现在可以预览重定向功能,我们将在接下来的几个月内为所有请求启用它。您可以在今天https://developer.github.com的帖子中了解更多相关信息:
https://developer.github.com/changes/2015-04-17-preview-repository-redirects/
如果您尝试一下,我们很乐意就此功能是否符合您的需求提供反馈。
一切顺利, 杰森