⭐️GitHubのトークンまとめ

GitHubには「誰が・何の権限で操作しているか」を示すトークンが複数ある。

トークン発行者用途有効期間
PAT(個人用アクセストークン)ユーザー自身が手動発行CLI・APIでのパスワード代替長期(要管理)
GitHub App トークンGitHub App のインストール時に発行アプリによる自動操作・外部連携短期(自動更新)
GITHUB_TOKENGitHub が自動生成Actions ワークフロー内の認証ジョブの間だけ

PAT(Personal Access Token)

  • コマンドラインや API でパスワードの代わりに使う
  • 自分のアカウントに紐づくため、権限が広くなりがち
  • 長期間使う自動化には向かない → その場合は GitHub App を使う
  • パスワードではなく PAT を使う理由:権限をスコープで絞れる・用途別に複数発行できる・漏れたときそのトークンだけ revoke すれば済む(パスワードを変えると全箇所に影響するのと対照的)

GitHub App

  • GitHub の機能を拡張するためのツール
  • アプリとして独立した ID を持つため、PAT より権限を細かく制御できる
  • できることの例:Issue を自動で開く、Slack に通知する、PR にコメントする
  • 別オーナーの Private リポジトリにもアクセスできる:インストールされたリポジトリであればオーナーをまたいでもアクセス可能(PAT は発行したユーザーがアクセスできるリポジトリのみ)

GITHUB_TOKEN(Actions 専用)

  • Actions のワークフロー ジョブが始まると、GitHub が 自動で生成 して注入する
  • ジョブが終わると失効する使い捨てトークン(漏れても被害が限定的)
  • 権限はそのワークフローを含むリポジトリのみに限定される(他のリポジトリは操作不可)
  • 明示的に発行・管理する必要がないため、Actions 内の操作はまずこれを使う