allegrogikenです。2022/10/18 に GitHub 公式のブログにて発表された新しい personal access token (以下、PATと表現します) がとても便利そうだったので、その速報をお届けします。

GitHubのブログは下のURLからご参照ください。
https://github.blog/2022-10-18-introducing-fine-grained-personal-access-tokens-for-github/

Fine-grained personal access token(PAT) とは?

GitHub の API を利用する際などに使われるPATですが、従来は発行者がアクセスできる範囲であればどのようなリポジトリに対しても使えるものでした。scope という概念があり、PATを通して行う操作の種類については絞ることが可能でした。

これに対し、今回新たにbeta実装された Fine-grainedなPATでは所属するOrganization、および影響を及ぼせるリポジトリが選択可能になるようです。また、scope に代わる操作の制御に関しても刷新されています。

Fine-grained の意味することろですが「きめ細かな」ということで、非常に直感的なネーミングですね。対して、従来のPATは Classic の枕詞が付いて呼ばれるようで、UI上もそのような表現が見られます。

早速試してみた

発行は従来通りの導線、つまり Developer settings から可能です。折角なのでURLも記載します。
https://github.com/settings/personal-access-tokens/new

Organizationの選択

画像のように、発行する際に「Resouce owner」の選択をする必要があります。ここで選択した Organization に属する部分にだけアクセス可能なPATになります。

Fine-grained PATの発行

特段困ることは無さそうですが、複数の Organization をまたがるような設定はできない感じがしますね。また、Fine-grained PAT の有効期限は最大で1年間となっているようです。従来のPATでは永続するものが作成できましたが、こちらも安全志向になっています。

Permissionsの設定

続けると、対象のリポジトリ設定と権限についての項目がたくさん出てきます。画像では「全リポジトリ」と雑な設定にしていますが、個別で複数のリポジトリを選択することもできます。

Permissionsの設定。GitHub Apps のそれに似ている

GitHub Apps を作成したことがある人であれば、この Permissions 設定は GitHub Apps のそれとほぼ同じであることに気づくのではないでしょうか。おそらく、GitHub Apps の設定が PAT の方に輸入されてきているような形ではないかと思います。

これらを設定することで、Fine-grained PAT の作成は完了です。

作成されたPATをOrganization側から見る

作成時に「Resource owner」として指定された Organization からは、有効なPATを一覧で見ることができます。

OrganizationからPAT一覧を見ることができる

この画面から無効化(revoke)することもできるので、とても便利ですね!

OrganizationはPATに対する全体的な許可・拒否設定ができる

画像のように、現時点では3つの項目でPATに対する全体的な振る舞いを選択できます。具体的には「Classic PATの許可」「Fine-grained PATの許可」「Fine-grained PATに対する承認有無」を選択できます。

Organization側の全体設定

「承認済みのFine-grained PATだけ許可して、他は全て拒否する」みたいな使い方が想像できますね。

まとめ

beta版ではありますが、非常に実用的で便利なアップデートの一言に尽きます!ありがたい・・!
最近では GitHub Actions に組み込みの権限があったり、より安全に設計できるGitHub Apps が登場したということもあり、従来のPATはなるべく使わないようにしてきました。とはいえ、検証段階ではサクッと用意できる PAT が欲しくなることも度々ありました・・

その点 Fine-grained PAT であれば、セキュリティ上の懸念はほとんど払拭されるのではないでしょうか。また、GitHub Apps と PAT に付与される権限設定が似通ったものになったことも個人的には価値が大きいと感じています。

開発者個人も組織の管理者にとっても嬉しいこと間違いなしの Fine-grained PAT、ぜひ使ってみてはいかがでしょうか。