我正在使用 github API 以编程方式获取有关不同存储库的信息,但遇到了问题。
我知道我可以使用我的身份验证密钥访问私有存储库,因为我能够以编程方式创建一个存储库。
这是我正在使用的 PHP curl 代码:
$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 多个存储库,因此仅仅为了获取有关一个存储库信息的信息而将它们全部删除是不可行的。(来自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>';
但所有这些都失败了。有什么想法吗?