🧹

Dependabotの対象ディレクトリ指定で複数ディレクトリ指定できるようになりました

2024/06/26に公開

ついに来た!というとても嬉しいアップデート到来です!
これでたくさんの相対 PATH を dependabot の設定に書く必要はなくなります!

今まで

例えば、リポジトリ内に GitHub Actions を実行するための Workflow ファイルが存在し、かつ Composite Action なども別のディレクトリで管理している、みたいな状況があったとします。
例えば以下のようなディレクトリツリーです。

.github/
├── composite
│   └── download-openjtalk-dict
│       └── action.yml
├── dependabot.yml
└── workflows
    ├── csharp_test.yml
    ├── merge-queue-trigger-handler.yml
    └── testing-queue.yml

この様なディレクトリツリー構造化で、各 Workflow や Composite Action で使用されている actions を更新しようとすると、今までは以下のような冗長な書き方になっていました。

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

  - package-ecosystem: "github-actions"
    directory: "/.github/composite/download-openjtalk-dict"
    schedule:
      interval: "weekly"

例えば Composite Action が増えた場合、どんどんどんどん同じ記述が増えていくわけです、イヤーーーーー

これから

安心してください、これからは以下記述で万事解決です。

updates:
  - package-ecosystem: "github-actions"
    directories:
      - "/.github/**/*"
    schedule:
      interval: "weekly"

スッキリ!!!!!!!
単純に複数のディレクトリを - で連ねていくでもいいのですが、それに加えて今回のアップデートで * を使った glob pattern も利用出来るようになったのです!

モノレポでいろんなパッケージマネージャーを使っていて、それぞれディレクトリを頑張って指定するの面倒だったんだよねーみたいな理由で Dependabot の導入を諦めてしまっていた方、再度試してみませんか…?

参考

リリースの記事
https://github.blog/changelog/2024-06-25-simplified-dependabot-yml-configuration-with-multi-directory-key-directories-and-wildcard-glob-support/

ドキュメント
https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#directories

Discussion