gh cli を使った ghcr の認証¶
docker loginで ghcr.io にログインする方法として、公式は PAT の利用を紹介している。PAT は管理に手間がかかるため、gh cli を使って認証する方法を探したところ、次の方法で認証できることがわかった。
credential helper は、Docker が外部のプログラムから認証情報を受け取るための仕組みで、docker login以外の選択肢になる。たとえば PATH 上にdocker-credential-ghcrを置いた場合、~/.docker/config.jsonへ次の設定を書けば、ghcr.ioの認証でこのプログラムを使うようになる。
この方式では、helper の実行ファイルも導入する必要がある。上のdocker loginを使うだけなら、この追加設定はいらない。
credHelpersの値ghcrが実行ファイルdocker-credential-ghcrを指す仕組みは、Docker の credential helper の説明に記載されている。GitHub CLI の token を返す helper の実装例は、cli/cli の Issue #5150にある。