我有一个GitHub存储库的链接,我正在使用github3和Python来尝试搜索它。
以此链接为例:
https://github.com/GabrielGrimberg/OOP-Assignment1-UI
如果你去看它,你会看到它重定向到
https://github.com/GabrielGrimberg/RuneScape-UI
因此,我无法弄清楚如何构建一个可以找到这个特定仓库的搜索查询。
我试过了:
GabrielGrimberg/OOP-Assignment1-UI in:url
GabrielGrimberg/OOP-Assignment1-UI
GabrielGrimberg/OOP-Assignment1-UI in:full_name
答案 0 :(得分:1)
根据Github blog,如果重命名了一个仓库,旧地址会被重定向到新地址!
我们很高兴地宣布,从今天开始,在这些情况下,我们会自动将以前存储库位置的所有请求重定向到新家。你不需要做什么特别的事。只需重新命名,我们将照顾其余部分。
此外,您可以查看 Gabriel Grimberg 没有任何名为“OOP-Assignment1-UI”的回购。
更正回答:
如果我们可以先查看回购详情,确保其存在/移动的位置! 查看以下查询:
curl -i https://github.com/GabrielGrimberg/OOP-Assignment1-UI
您可以从标题
获取其移动的网址HTTP/1.1 301 Moved Permanently
Server: GitHub.com
Date: Sun, 12 Feb 2017 18:19:25 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Status: 301 Moved Permanently
Cache-Control: no-cache
Vary: X-PJAX
Location: https://github.com/GabrielGrimberg/RuneScape-UI
X-UA-Compatible: IE=Edge,chrome=1
如果回购已存在,它会给你内容而不是标题! 例如,试试这个:
curl -i https://github.com/GabrielGrimberg/RuneScape-UI
答案 1 :(得分:0)
基本上你需要自己提出请求并检查重定向,如果第一次搜索没有提供结果。
def get_redirection(full_name):
try:
json_object = json.loads(urllib.request.urlopen('https://api.github.com/repos/{0}'.format(full_name)).read().decode('utf-8'))
except urllib.error.HTTPError:
return None
return json_object["full_name"] # Will return the new full-name of the project