notebook

都内でWEB系エンジニアやってます。

RenovateでGitHub Actionsのアクション指定方法にコミットSHAを含める

GitHub Actionsのサードパーティアクションのバージョン指定について

自分はRenovateでサードパーティアクションのバージョンを更新している(指定方法は主にv1.1.0というような感じ)

しかし、下記ドキュメントで言及されているように、バージョン指定は「コミットSHAで指定するのが安全」となっている

GitHub Actions のセキュリティ強化 - GitHub Docs

docs.github.com

ただコミットSHAだと設定ファイル読んだときに分かりづらいし、ちょっと微妙だなと思っていた

コメントとかで該当バージョンの指定があれば運用できるかも?ということで調べてみたらRenovateにオプションが存在した

pinDigest

Automated Dependency Updates for Github Actions - Renovate Docs | Renovate Docs

docs.renovatebot.com

pinするときにDigest(Actionsの場合はコミットSHA)指定とバージョン記述の両方を行ってくれる

extendshelpers:pinGitHubActionDigestsを含めるだけ

  • renovate.json
{
  "extends": [
    "config:base",
    "helpers:pinGitHubActionDigests"
  ],
  "labels": ["renovate"]
}

もう少し調べてみる

extendsに指定していることから、Renovateのpresetsで提供しているということがわかった

Renovateが提供しているpresetsは下記

renovate/lib/config/presets/internal at main · renovatebot/renovate

今回のhelpers

renovate/lib/config/presets/internal/helpers.ts at main · renovatebot/renovate

あった

実態は

pinDigests: true,

らしい

この設定を行えば、helpersを使わなくてもコミットSHAでpinしてくれるようになるはず

もとはDockerで用いられていたみたい

実際のPR

実際にhelpersを設定してPR出してみた

chore(deps): update actions/checkout action to v4 by swfz · Pull Request #65 · swfz/github-actions-sample

https://github.com/swfz/github-actions-sample/pull/65github.com

ばっちり