使用事例:
コマンドライン アプリケーション (サードパーティのマシンにデプロイされる) は、GitHub API (v3) を介して組織に属するプライベート リポジトリの tarball コピーをダウンロードできる必要があります。
アプリケーションは、この 1 つのプライベート リポジトリにのみアクセスでき、読み取り専用権限を持つ他のリポジトリにはアクセスできません。
私は、github アカウントに client_id/secret を登録した後、アプリケーションの承認を作成することで (1) を実現できました。ただし、承認によって返されるトークンは、リポジトリへの読み取り専用アクセスを許可していないようで、また、1 つのリポジトリに制限されていません (たとえば、トークンを使用して、組織に属する他のリポジトリとともにこのリポジトリを変更する可能性があります)。
適切なスコープでアクセスを制限することは可能ですか?APIドキュメントには関連するものは何も見当たりません(https://developer.github.com/v3/oauth/#スコープ)。
ベストアンサー1
github OAuthトークンをそのように制限することはできないと思います。OAuth の github ドキュメントと言う
OAuth を使用した HTTP 経由の Git は、一部の種類のアプリケーションの摩擦を軽減しますが、デプロイ キーとは異なり、OAuth トークンはユーザーがアクセスできる任意のリポジトリで機能することに注意してください。
トークンの範囲を制限できる一方で、種類アクティビティの場合、リポジトリのサブセットに制限することはできません。
キーを展開する単一のリポジトリに制限しながら、書き込みアクセスを許可できます。
明らかな戦術は (Thomas が言及したように)、アプリケーションを表すダミー アカウントを作成することです。OAuth の目標を考えると、これはいずれにしてもより優れたワークフローである可能性があります。これにより、実際にユーザーであるかのように、アプリの権限を簡単に変更できます。
Githubはこの戦略を明示的に言及/支持しており、マシンユーザー。