actions/labeler v4 -> v5 のマイグレーション
v5 になって設定ファイルの構造が変更になったっぽい
Breaking changes in V5
The ability to apply labels based on the names of base and/or head branches was added (https://github.com/actions/labeler/issues/186 and https://github.com/actions/labeler/issues/54). The match object for changed files was expanded with new combinations in order to make it more intuitive and flexible (https://github.com/actions/labeler/issues/423 and https://github.com/actions/labeler/issues/101). As a result, the configuration file structure was significantly redesigned and is not compatible with the structure of the previous version. Please read the documentation below to find out how to adapt your configuration files for use with the new action version.
The bug related to the sync-labels input was fixed (https://github.com/actions/labeler/issues/112). Now the input value is read correctly.
By default, dot input is set to true. Now, paths starting with a dot (e.g. .github) are matched by default.
Version 5 of this action updated the runtime to Node.js 20. All scripts are now run with Node.js 20 instead of Node.js 16 and are affected by any breaking changes between Node.js 16 and 20.
これまで、以下のように記述していたものを
hoge:
- packages/foo/**
- bar
以下のように変更した
hoge:
- changed-files:
- any-glob-to-any-file:
- packages/foo/**
- bar
変更についての補足
Match Object
これまでラベル ( 上記での hoge
) の対する値は直接 glob パターンを書いていたが、v5 から Match Object に変更された。
Match Object では、ファイルの変更 ( changed-files
) やブランチ ( base-branch
, head-branch
) を条件として設定できる。
自分の場合は、ファイルの変更だけが検知できたら良いので changed-files
を利用した。
changed-files
この部分がやや分かりづらい気がしているが、
これまで適用していた条件は
『glob パターンが複数あったとき「いずれか」の glob パターンに対して、変更されたファイルのうち「いずれか」がマッチしているときにラベルを付与したい。』
だったので any-glob-to-any-file
を選択した。
たとえば、上記の設定だと
「packages/foo/
配下のいずれかのファイルが変更されている」あるいは「 bar
ファイルが変更されている」のいずれか、が検知されたときにラベルが付与されることを期待している。