🚀

組織のプライベートリポジトリのGitHub ActionをDependabotで更新する

2022/12/28に公開

先日、GitHubのアップデートによりプライベートリポジトリのAction,Reusable Workflow,Composite Action を同一オーナーのプライベートリポジトリから使えるようになりました。
これは、
OrganizationにプライベートなActionを用意して集中管理できるようになった
ことを意味します。

https://twitter.com/biosugar0/status/1605886037733023746?s=20&t=eCbSWxENZHjIuFbTwJcMxw

集中管理するようになったら、その更新も自動化したいですよね?
この記事では、DependabotにプライベートリポジトリのActionの更新プルリクエストを作成してもらうための設定を紹介します。

1. プライベートリポジトリのActionを有効にし、Actionを作成する

プライベートリポジトリでActionを使うには設定が必要です。
kokiさんが書いた、
GitHub Actions でプライベートリポジトリの Action を共有できるようになったので試してみる
がわかりやすかったので参照して設定してください。

workflow内で以下のように使用できるようになります。

    steps:
      - uses: ${org}/${repo}/${directory}@v0.0.1

2. Dependabotにプライベートリポジトリへの権限を付与する

自分がオーナーのOrganizationの
Settings > Security > Code security and analysis > Grant Dependabot access to private repositories

でDependabotにアクセス権を与えるリポジトリを選択することができます。

grant

ここで注意なのが、更新に使用する依存関係全てを追加する必要があります。
プライベートリポジトリのActionと、呼び出し側のリポジトリ両方ですね。

そうすると、呼び出し側で通常通り .github/dependabot.yml

version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      # Check for updates to GitHub Actions every weekday
      interval: "daily"

のようなDependabotの設定をすることで、
DependabotがプライベートリポジトリのActionに関しても自動で更新プルリクエストを作成してくれるようになります。

まとめ

プライベートリポジトリでGitHub Actionを集中管理できるようになり、Dependabotによる更新も組み合わさって管理がだいぶ楽になりますね。
いいアップデートでした!

参考文献

Discussion