1

github API を使用して、さまざまなリポジトリに関する情報をプログラムで取得していますが、問題が発生しています。

プログラムでリポジトリを作成できたので、認証キーを使用してプライベート リポジトリにアクセスできることはわかっています。

私が使用しているPHPカールコードは次のとおりです。

$url = 'https://api.github.com/orgs/<VALID ORG>/repos';

$headers = array();
$headers[] = 'Authorization: token <myvalidauthtoken>';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
$result = curl_exec($ch);
$r = json_decode($result);
curl_close($ch);

現在、このコードは組織からすべてのリポジトリを正常にプルしていますが、500 以上のリポジトリがあるため、1 つのリポジトリ情報に関する情報だけを取得するためにすべてをプルすることは現実的ではありません。( http://developer.github.com/v3/repos/#list-organization-repositoriesより)

ここで、ユーザー所有のリポジ​​トリ (組織のリポジトリではない) を見ると、リクエストは次のようになっていることがわかります。

GET /repos/:owner/:repo( http://developer.github.com/v3/repos/#get )

そして今、私のフォーマットは次のとおりです。

GET /orgs/:org/repos( http://developer.github.com/v3/repos/#list-organization-repositories )

だから私はURLでいくつかの順列を試しました:

$url = 'https://api.github.com/orgs/<VALID ORG>/repos/<VALIDREPO>';
$url = 'https://api.github.com/<VALID ORG>/<VALIDREPO>';
$url = 'https://api.github.com/repos/<VALID ORG>/repos/<VALIDREPO>';
$url = 'https://api.github.com/repos/orgs/<VALID ORG>/repos/VALIDREPO>';

しかし、これらはすべて失敗しました。オタク仲間のアイデアはありますか?

4

1 に答える 1

1

私がこれをしたなんて信じられない。

記録として、Nevik は組織の形式にぴったりでした。

https://api.github.com/repos/<VALID ORG>/<VALIDREPO>

URL を次のように設定します。

$url = 'https://api.github.com/repos/$org_name/$repo_name';

まだ問題が見えますか?

PHP では、単一引用符は内部変数を解析しませんが、二重引用符は解析します:

$url = "https://api.github.com/repos/$org_name/$repo_name";

そして、すべてが修正されました。

健全性チェックNevikをありがとう!

于 2013-07-19T23:48:24.113 に答える