2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GitHub】ぼくはまだGitHubを使いこなせていない|GitHub Tokenの権限認証は何を許可できるのか

Last updated at Posted at 2025-11-30

自分が書いた文章を添削してもらう目的で、文章の一部に生成AIを使用しました。

トークンとは?

ローカル環境からGitHub上のリポジトリへ安全にアクセスするために必要となるのが、Personal Access Token(個人アクセストークン)です。

これはパスワードの代わりに利用される認証情報ですが、ただのリポジトリへの「鍵」ではありません。トークンを発行する際に 権限(スコープ) を設定することで、このトークンを使用するPCやアプリケーションが、どこまでの操作を許可されるかという制約を細かく設定できます。

例えば

後ほど登場するdelete_repoというスコープがあります。このスコープを使用することで、リポジトリを削除することが可能です。トークンの中でこのスコープを許可しない設定にしておくことで、トークンが流出しても、悪意のあるユーザーがリポジトリを削除することが出来なくなるというメリットがあります。

でも

しかし、スコープの種類は非常に多岐にわたるため、ちゃんと理解できてないし使いこなせてないなと思いました。そこで、今回いい機会なのでまとめてみました。

各スコープで何が出来るのか

スコープ 説明 可能な操作の例
repo プライベートリポジトリのフルアクセス。 リポジトリの読み書き/削除、Git操作、コミットステータスなど。
public_repo パブリックリポジトリのフルアクセス。 パブリックリポジトリに対するrepoと同様の操作。
repo:status コミットステータスの読み取り/書き込み。 CI/CDのビルド結果などのステータス設定。
repo_deployment デプロイメントステータスのアクセス。 デプロイメントステータスの設定と取得。
delete_repo ユーザーが所有するリポジトリの削除。 リポジトリの削除(強力な権限)。
workflow GitHub Actions ワークフローファイルの読み書き。 ワークフローファイルの管理。
notifications 通知への読み取りアクセス。 通知、チームのプッシュなどの閲覧。
gist Gistの読み取りと書き込み。 Gistの作成、削除、読み取り、更新。
read:org Organizationおよびチームの読み取り専用アクセス。 メンバーシップの表示、チーム情報の表示。
write:org Organizationおよびチームへの読み書きアクセス。 チームの作成/編集、メンバーシップの管理。
admin:org Organizationのフル管理アクセス。 メンバー、チーム、Webhookの管理。
admin:public_key 公開SSHキーのフル管理。 公開SSHキーの取得、追加、削除。
write:public_key 公開SSHキーの読み取りと書き込み。 公開SSHキーの追加、変更。
read:public_key 公開SSHキーの読み取り。 公開SSHキーの取得。
admin:gpg_key GPG署名キーのフル管理。 GPGキーの取得、追加、削除。
write:gpg_key GPG署名キーの読み取りと書き込み。 GPGキーの追加、変更。
read:gpg_key GPG署名キーの読み取り。 GPGキーの取得。
user ユーザープロファイルのフルアクセス。 ユーザープロファイルデータ、メールアドレスの読み書き、フォロー管理。
read:user ユーザープロファイルの読み取り専用アクセス。 パブリックユーザープロファイルデータ、パブリックアクティビティの表示。
user:email プライベートなメールアドレスの読み取り専用アクセス。 登録されているプライベートメールアドレスの取得。
user:follow ユーザーのフォロー/アンフォローの管理。 ユーザーのフォロー、アンフォロー。
admin:repo_hook リポジトリ Webhookのフル管理。 Webhookの作成、読み取り、更新、削除。
write:repo_hook リポジトリ Webhookの読み書き。 Webhookの作成、読み取り、更新。
read:repo_hook リポジトリ Webhookの読み取り専用アクセス。 Webhookの取得。
admin:org_hook Organization Webhookのフル管理。 Organization Webhookの作成、読み取り、更新、削除。
read:packages GitHub Packagesの読み取り(ダウンロード)。 パッケージのダウンロード。
write:packages GitHub Packagesの読み書き(アップロード/削除)。 パッケージのアップロード、削除。
delete:packages GitHub Packagesの削除。 パッケージの削除。
admin:enterprise GitHub Enterprise Cloudでのフル管理アクセス。 エンタープライズレベルでの設定管理。
manage_runners GitHub Actionsセルフホストランナーの管理。 ランナーの登録、削除、設定変更。
manage_billing 課金情報の管理。 課金情報の表示、変更。

結局どの権限を許可すればいいのか

  • ケースバイケースですが、自分のような個人開発レベルのリポジトリだと基本的には、repo, public_repoのいずれかを許可すれば良いと思います。

まとめてみて

  • GPG, user, organaizatonなど、自分の知らないトークンの権限があることを学べました。トークン発行時に不要なものは許可しないようにしたいですね。
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?