このドキュメントでGithub Packagesへの登録をしようとして、docker push
コマンドを実行したらpermission denied
が出ました。
権限を適切に設定しても、なおエラーになるのでちょっとハマりました。
解決方法を記載します。
TL;DR
今(2024/6現在)ではPackagesへのpushはpersonal access tokens (classic)
しか使えない。Organizationの設定でpersonal access tokens (classic)
を有効にする必要がある。
エラー内容と解決方法
denied: permission_denied: `OrgName` forbids access via a personal access token (classic). Please use a GitHub App, OAuth App, or a personal access token with fine-grained permissions.
Github Packagesのpushで必要になる、個人アクセストークンが2種類あります。
推奨されているのは、新しく出たpersonal access token (fine-grained personal access token)になります。
しかし、このfine-grained personal access tokenはGithub Packagesのpushには使えません。
なので、今(2024/6現在)ではpersonal access tokens (classic)
しか使えません。
denied: permission_denied: The token provided does not match expected scopes.
このエラーは、アクセストークンのスコープが足りない場合に出ます。
具体的に必要なスコープは以下の通りです。(repoは勝手に有効になります)
また、組織内でpersonal access tokens (classic)
を使うためには、組織の設定でAllow acess via personal access tokens (classic)
を有効にする必要があります。
(私はここが抜けていたので、エラーが出てハマりました。)