🤖
GitHub Private Packages を Dependabot に更新させる
GitHub Packages を使用して、Private な社内用パッケージを用意している場合、デフォルトの Dependabot 設定では上手くバージョンが更新されません。
そこで、社内用の Private パッケージと Dependabot の組み合わせ方について紹介させていただきます。
GitHub Packages 用の Personal Access Token を作成する
以下の手順で Personal Access Token を作成し、コピーします。
- https://github.com/settings/tokens/new へアクセスする
-
read:packages
のみをチェックして、Generate token
をクリックする - 生成されたトークンをコピーする
会社の Bot 的なユーザーを用意している場合は、そちらから、read:packages
のトークンを作成しておくと管理しやすいです。
Dependabot secrets を設定する
Organization のトップページへ移動し、Settings > Security > Secrets > Dependabot へ移動し、New organization secret
をクリックする。
Name を一旦 GPR_READ_PACKAGES_TOKEN
とし、先程コピーしておいた、Personal Access Token を貼り付け、Add secret
をクリックします。
.npmrc
を作成する
プロジェクトルートに、以下のように .npmrc
を作成してください。
.npmrc
//npm.pkg.github.com/:_authToken=${GPR_READ_PACKAGES_TOKEN}
@example-inc:registry="https://npm.pkg.github.com"
Dependabot の設定を改善する
先程作成した、Secrets を読み込む形で、設定を変更します。
.github/dependabot.yml
version: 2
+registries:
+ npm-github:
+ type: npm-registry
+ url: https://npm.pkg.github.com
+ token: ${{ secrets.GPR_READ_PACKAGES_TOKEN }}
updates:
- package-ecosystem: "npm"
directory: "/"
+ registries:
+ - npm-github
schedule:
interval: "daily"
最後に
後は問題無く、Dependabot が Private な社内用パッケージのバージョンを更新できるようになっているかと思います。
Renovate の場合は、Personal Access Token を秘匿したままで設定する方法がよくわかりませんでした。
こうやって、GitHub 謹製のサービスを組み合わせていくと、それぞれの相性が良く、セキュアに保てて良いなと感じました。
こちらの記事が参考になれば幸いです。
Discussion