ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。
GitHub AEは、現在限定リリース中です。詳細については営業チームにお問い合わせください。

OAuth Appのスコープ

スコープによって、必要なアクセスの種類を正確に指定できます。 スコープは、OAuthトークンのアクセスを制限します。 ユーザがすでに持っている範囲を超えた権限を許可することはありません。

OAuth AppをGitHub上でセットアップする際には、要求されたスコープが認可フォーム上でユーザに表示されます。

ノート: GitHub Appを構築しているなら、認可リクエストでスコープを提供する必要はありません。 このことに関する詳細については「GitHub Appのユーザの特定と認可」を参照してください、

CLIツールなど、OAuth Appがブラウザにアクセスできない場合、アプリケーションを認可するユーザのスコープを指定する必要はありません。 詳しい情報については「OAuth Appの認可」を参照してください。

どのOAuthスコープを所有しているか、そしてAPIアクションが何を受け付けるかを知るには、ヘッダを確認してください。

$ curl -H "Authorization: token OAUTH-TOKEN" https://[hostname]/api/v3/users/codertocat -I
HTTP/2 200
X-OAuth-Scopes: repo, user
X-Accepted-OAuth-Scopes: user
  • X-OAuth-Scopesはトークンが認可したスコープをリストします。
  • X-Accepted-OAuth-Scopesは、アクションがチェックするスコープをリストします。

利用できるスコープ

名前説明
site_adminサイト管理者にGitHub Enterprise Serverの管理APIエンドポイントへのアクセスを許可します。
repoプライベートリポジトリを含め、リポジトリへの完全なアクセスを許可します。 これにはコード、コミットのステータス、リポジトリおよびOrganizationのプロジェクト、招待、コラボレータ、Teamのメンバーシップの追加、デプロイメントのステータス、リポジトリとOrganizationのためのリポジトリwebhookが含まれます。 また、ユーザプロジェクトを管理する機能も許可します。
repo:status内部およびプライベートリポジトリのコミットステータスへの読み書きアクセスを許可します。 このスコープが必要になるのは、コードへのアクセスを許可することなく他のユーザあるいはサービスにプライベートリポジトリのコミットステータスへのアクセスを許可したい場合のみです。
repo_deploymentデプロイメントステータス for 内部およびプライベートリポジトリへのアクセスを許可します。 このスコープが必要になるのは、コードへのアクセスを許可することなくデプロイメントステータスへのアクセスをユーザまたはサービスに許可する場合のみです。
repo:inviteリポジトリでのコラボレーションへの招待の承認/拒否を許可します。 このスコープが必要になるのは、コードへのアクセスを許可することなく他のユーザまたはサービスに招待へのアクセスを許可する場合のみです。
admin:repo_hook内部およびプライベートリポジトリのリポジトリフックへの読み書き、ping、削除アクセスを許可します。 repoリポジトリフックを含むリポジトリへの完全なアクセスを許可します。 アクセスをリポジトリフックのみに限定するには、admin:repo_hookスコープを使ってください。
write:repo_hookGrants read, write, and ping access to hooks in 内部またはプライベートリポジトリ内のフックへの読み書きおよびpigアクセスを許可します。
read:repo_hook内部またはプライベートリポジトリ内のフックへの読み取りおよびpingアクセスを許可します。
admin:orgOrganizationとそのTeam、プロジェクト、メンバーシップを完全に管理できます。
write:orgOrganizationのメンバーシップ、Organizationのプロジェクト、Teamのメンバーシップへの読み書きアクセス。
read:orgOrganizationのメンバーシップ、Organizationのプロジェクト、Teamのメンバーシップへの読み取りのみのアクセス。
admin:public_key公開鍵を完全に管理できます。
write:public_key公開鍵の作成、リスト、詳細の表示。
read:public_key公開鍵のリストと詳細の表示。
admin:org_hookOrganizationフックへの読み書き、ping、削除アクセスを許可します。 ノート: OAuthトークンがこれらのアクションを行えるのは、OAuth Appが作成したOrganizationフックに対してのみです。 個人アクセストークンがこれらのアクションを行えるのは、ユーザが作成したOrganizationフックに対してのみです。
gistGistへの書き込みアクセスを許可します。
notifications許可するアクセス:
ユーザの通知に対する読み取りアクセス
スレッドへの既読アクセス
リポジトリへのWatch及びWatch解除のアクセス
スレッドのサブスクリプションに対する読み書き及び削除アクセス。
ユーザプロフィール情報にのみ読み書きアクセスを許可します。 このスコープにはuser:emailuser:followが含まれることに注意してください。
read:userユーザのプロフィールデータへの読み取りアクセスを許可します。
user:emailユーザのメールアドレスへの読み取りアクセスを許可します。
user:follow他のユーザのフォローあるいはフォロー解除のアクセスを許可します。
delete_repo管理可能なリポジトリの削除アクセスを許可します。
write:discussionTeamのディスカッションの読み書きアクセスを許可します。
read:discussionTeam ディスカッションの読み取りアクセスを許可します。
write:packagesGitHub Packagesでのパッケージのアップロードあるいは公開のアクセスを許可します。 詳しい情報については「パッケージの公開」を参照してください。
read:packagesGitHub Packagesからのパッケージのダウンロードあるいはインストールのアクセスを許可します。 詳しい情報については「パッケージのインストール」を参照してください。
delete:packagesGitHub Packagesからのパッケージの削除アクセスを許可します。 詳しい情報については、 「パッケージを削除する」を参照してください。
admin:gpg_keyGPGキーを完全に管理できます。
write:gpg_keyGPGキーの作成、リスト、詳細の表示ができます。
read:gpg_keyGPGキーのリストと詳細を表示できます。

ノート:OAuth Appは最初のリダイレクトでスコープをリクエストできます。 スコープは、%20を使って、空白で区切って複数指定できます。

https://github.com/login/oauth/authorize?
  client_id=...&
  scope=user%20repo_deployment

リクエストされたスコープと許可されたスコープ

scope属性は、トークンに添付された、ユーザが許可したスコープをリストします。 通常、これらのスコープはリクエストされたものと同じになります。 しかし、ユーザはスコープを編集でき、実質的にアプリケーションに対して元々リクエストされたよりも少ないアクセスだけを許可できます。 また、ユーザはOAuthフローが完了した後にトークンのスコープを編集することもできます。 この可能性を認識しておき、対応してアプリケーションの動作を調整しなければなりません。

元々リクエストされたよりも少ないアクセスをユーザが許可した場合のエラーケースを処理することは重要です。 たとえば、アプリケーションはユーザに対し、機能が低下したり、行えないアクションがでてくることを警告したり、知らせたりすることができます。

また、アプリケーションはいつでもユーザをフローに戻して追加の権限を得ようとすることができますが、ユーザは常に拒否できることを忘れないようにしてください。

変更できるトークンのスコープの扱いに関するヒントが提供亜sレテイル、認証の基礎ガイドを参照してください。

正規化されたスコープ

複数のスコープがリクエストされた場合、トークンは正規化されたスコープのリストとともに保存され、リクエストされた他のスコープに暗黙のうちに含まれているスコープは破棄されます。 たとえばuser,gist,user:emailをリクエストすると、トークンにはusergistスコープだけが含まれます。これは、user:emailスコープで許可されるアクセスはuserスコープに含まれているためです。

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?