web-dev-qa-db-ja.com

GitHub API経由で組織のプライベートリポジトリを一覧表示する方法は?

私は、プライベートなものを含む、組織のすべてのリポジトリのリストを取得しようとしています。 (または、より具体的には、特定のユーザーがアクセスできるすべてのプライベートリポジトリ。)

組織の情報を要求する(https://api.github.com/orgs/acme?access_token=[...])ことは、プライベートリポジトリがたくさんあることを示しています。

...
"public_repos": 5,
"total_private_repos": 68, 
"owned_private_repos": 68, 
...

(私が使用しているアクセストークンは以前 APIを使用して生成された ユーザー名/ passwdでした。)

しかし、私がリポジトリをリストしようとすると...

https://api.github.com/orgs/acme/repos&access_token=[...]   

... GitHub APIは5つのパブリックリポジトリを返すだけです。 ( ドキュメントによるtype=allがデフォルトです。パラメータtype=privateも追加してみました;違いはありません。)

私が間違っていることは何ですか?

実際にアクセストークンが生成されたユーザーは、組織の一部のプライベートリポジトリへのプッシュ&プルアクセスを持っていますが、私が取得するリストにはそれらのどれも表示されません(5つのパブリックリポジトリのみ)。

33
Jonik

あなたがしていることはすべて大丈夫です。ただし、認証用にOAuthトークンを作成する場合は、正しい scopes を定義していることを確認してください。各スコープは、許可されたアクション(読み取り/書き込み)、したがって、repoスコープでトークンを作成していることを確認する必要があります。

20
Ivan Zuzak

また、組織からプライベートリポジトリにアクセスしている場合、設定に応じて所有者がOAuthアプリケーションを承認する必要があることに注意してください。

https://help.github.com/articles/authorizing-oauth-apps/

OAuthアプリのアクセス制限がある組織の場合、組織管理者がその組織で使用するアプリケーションを承認するように要求できます。組織がアプリケーションを承認しない場合、アプリケーションは組織のパブリックリソースにのみアクセスできます。組織管理者の場合は、アプリケーションを自分で承認できます。

OAuthアプリのアクセス制限がない組織の場合、アプリケーションはその組織のリソースへのアクセスを自動的に許可されます。理由は、どのOAuth個人用アカウントリソースおよび組織リソースへのアクセスを承認するアプリかについて注意する必要があります。

1
Ligemer

あなたのURLには? &ではありません。これは次のようになります。

https://api.github.com/orgs/acme/repos?access_token=your_access_token

0
meninde