2017-02-12 2 views
1

私はGitHubリポジトリのリンクを持っています。私はそれを試してみるためにPythonでgithub3を使っています。GitHubリポジトリリダイレクトし、GitHub Search APIを通して見つけようとしています

例えば、このリンクを取る:

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

Gabriel Grimbergには「OOP-Assignment1-UI」という名前のレポがありません。レポの名前が変更され、以前のアドレスが新しいアドレスにリダイレクトされます。 https://github.com/blog/1508-repository-redirects-are-here –

答えて

1

レポは、古いアドレスを新しいアドレスにリダイレクトされて名前が変更された場合Github blogによると!

この日から、以前のリポジトリの場所に関するすべてのリクエストが自動的に新しい場所にリダイレクトされることをお知らせします。あなたがしなければならないことは何もありません。名前を変更するだけで、残りの部分を処理します。

また、あなたはガブリエル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 

から移動したURLを取得することができます! たとえば、これを試してみてください。

curl -i https://github.com/GabrielGrimberg/RuneScape-UI 
+0

私はそれを理解していますが、GitHub APIへのクエリで新しいリポジトリを見つけるにはどうすればよいでしょうか? – Majiick

+0

@Majiickのクエリは "OOP-Assignment1-UI"を検索します。新しいRuneScape-UIに常にリダイレクトされます。あなたは新しいリポジトリとは何かを検索するクエリをしようとしていますか?どうか明らかにしてください! –

+1

GitHub API v3を使用して、ユーザーGabrielGrimbergからの「OOP-Assignment1-UI」レポを照会しようとしています。明らかに、それはもう存在しないので、クエリは結果を返しません。しかし、私はそれが新しいレポにリダイレクトされることを知っています。では、古い名前を使用して新しいリポジトリを検索するにはどうすればよいですか? – Majiick

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 
関連する問題