2022https://qiita.com/advent-calendar/2022/cicdソースコードでCopy&Pasteが多いと保守性が悪くなるので、なるべく減らすべきです。機械的にそのボリュームを把握できると好ましいです。Code)のコードに、Copy&Pasteが多くなりがちな印象があります。このエントリではPMDにある、CPD機能をGitHubActionから動かして、Copy&Pasteの量を把握する仕組みの作り方を説明します。ブログなどからコピーしてくる事を指すことが多いようですが。このエントリで言うCopy&Pasteは、リポジトリ内でのコピーのことです。出力イメージと実装GitHubActionsのWorkflow設定、出力例は次の通りです。action)にしておきました。Docshttps://docs.github.com/ja/actions/creating-actions/creating-a-composite-action運用について個人的な意見です。既定では、CPDでCopy&Pasteを検知するとWorkflowが失敗するようになっていますが、GitHubのPullRequestの運用では、Copy&Pasteが無いことをmergeの必須条件にしなくても良いと思います。GitHubでの一般的なPullRequestの運用では、CIが失敗すると、その対応はPullRequstを作成したプログラマーが行いますが。Copy&Pasteに関しては、担当者レベルで工夫するよりも、システム全体を把握しているアーキテクトが責任を持って、フレームワークレベルでCopy&Pasteが不要になるように設計を見直すべきだと思います。担当者レベルで工夫すると「船頭多くして船山に上る」状態になって、Copy&Pasteを避けるための工夫による別の複雑さが生まれてしまうリスクがあります。