ある日、CircleCIでビルドを走らせていたときに突然オコされ、ビルドが停止する。
■ エラー内容
cakephp/plugin-installer contains a Composer plugin which is currently not in your allow-plugins config. See https://getcomposer.org/allow-plugins
Do you trust "cakephp/plugin-installer" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json)
翻訳
Cakephp / plugin-installerには、現在allow-plugins構成にないComposerプラグインが含まれています。 https://getcomposer.org/allow-pluginsを参照してください
「cakephp / plugin-installer」がコードを実行することを信頼し、今すぐ有効にしたいですか? (composer.jsonに「allow-plugins」を書き込みます)
ドキュメントを確認すると、どうやらComposer のバージョン2.2移行から、allow-plugin 設定で明示的に許可を与えていないプラグインはcomposer install
時に警告確認してくる模様。
対処法 - composer.jsonに「allow-plugins」を書き込む
composer.lockでプラグインリストを確認
Q. ねえねえ、プラグインはどうやって確認するの?
A. なあに、composer.lockに情報がのってるじゃろ。それは見ればええ。
まずはcomposer.lockをエディターで開くのじゃ。そして、"type": "composer-plugin", を検索するんじゃ。
そのtypeが当てはまるnameプロパティをみればええ。(ま、わしも教えてもらったんだけど)
composer.jsonのconfigプロパティにallow-pluginsを追記
例: Cakephp3/4系では必要になるプラグイン
composer.json
"config": {
"allow-plugins": {
"cakephp/plugin-installer": true // trueとして明示
}
},
まとめ
各々、composer.lock内でプラグインリストを確認し、それに応じてcomposer.jsonにallow-pluginsを明示してあげればOKですね。
数か月後にはすぐに廃れるような記事内容かもですが、同じ境遇に出会った人のために共有しようかと思いました。(σ(゚∀゚ )オレ、ビルド壊したんじゃね?の原因をいち早く見つけるために)
じゃね。