RenovateとDependabotのレビュワーを一元管理する
RenovateとDependabotを併用する場合、CODEOWNERSファイルを活用することでレビュワー設定を一元管理できる。
RenovateのPR数を削減するパターン
Renovateが作成するPR数を削減しレビュー負荷を軽減する設定パターンをいくつか紹介する
golangci-lintをgo toolでインストールすべきでない
golangci-lintのソースからのインストールは動作が保証されていません。バイナリをインストールするべきです。
Go 1.24でgolangci-lintがエラーを吐くようになった
Go 1.24でgolangci-lintを扱うには、Go 1.24でビルドされたgolangci-lint 1.64以上である必要がある
GitHub Dependabot Alertを有効化したらRenovateが対象のPRを投げてくれる
Dependabot Alertを有効化するだけで、RenovateがセキュリティPRを投げてくれるようになる
Q. gomockでフィールドの部分一致を検証したい
Custom matcherを利用するか、Doメソッド内で検証するか
Q. GopdfでフォントをNoto Sans CJKに変更したら文字が細くなった
PDFを出力するツールやライブラリにはバリアブルフォントを対応していないものがあり、意図した表示にならない場合がある。
BigQueryのフィールド取得とクエリで利用できる型への変換
取得できるBigQueryのフィールドの型のいくつかは、クエリにそのまま利用することが出来ない。GolangのBigQueryパッケージを利用してスキーマを取得し、クエリで利用できるように変換する方法について。
Renovate - On demand config migration
RenovateのDependency DashboardからConfigを新しいスキーマに移行できるようになった。
Q. golangci-lintがnode_modules内のGoファイルを検査してしまう
exclude-dirsで、特定のディレクトリを除外することができる。
Renovateのレビュワーにチームを指定して運用する
Renovateでレビュワーを指定する際、Githubで設定したチームを指定することで、放置される可能性を減らしたり、チームメンバーが変わっても設定を変更する必要がなくなるなどのメリットを受けられる。
Q. Renovateでauto mergeが上手く動作せず、レビュワーが設定されない
Renovateでauto mergeを有効化した上で、Githubのブランチプロテクションでレビューを必須にした場合、適切な対応を行わなければオートマージが行われずレビュワーも設定されない。これによりRenovateのPRが見逃されるケースがあり、相談を受けた際の説明をまとめた。
特定のディレクトリやファイルをRenovateに無視させる
Renovateには特定のファイルやディレクトリを無視させる機能があり、デフォルトではnode_modulesなどを無視するようになっている。
Q. CircleCI上で特定のmoduleをインストールさせたらrequires go >= 1.22で落ちた
CircleCI上で特定のmoduleをインストールさせたらrequires go >= 1.22で落ちたと質問を受けた際の対応についてまとめた。
Q. go mod tidyしたらruntime error: invalid memory address or nil pointer dereference
go mod tidyを実行したらruntime error: invalid memory address or nil pointer dereferenceエラーが発生した問題について解決策をまとめた。
Renovateの設定をバリデーションする
Renovateは公式が設定をバリデーションする機能を提供している。
Q. Goのバージョンをv1.21に上げたらgolangci-lint v1.52でerrors parsing go.mod: … unknown directive: toolchainとエラーが出る
Goのバージョンをv1.21に上げたら、golangci-lint v1.52でerrors parsing go.mod: … unknown directive: toolchainとエラーが出る問題について解決策をまとめた。
prCreationがnot-pendingになっているGithubリポジトリでRenovateが動作しなくなっていた
RenovateがPRを作成するタイミングをnot-pendingにしている場合、Githubのブランチプロテクションでpull_requestトリガーのGithub Workflowを必須にしているとPRが作成されなくなることについて説明する。l
Renovateでパッケージをreplaceする
Renovateにはパッケージを別のパッケージに差し替える機能がある。
Q. npm.rangeStrategyをpinにするとenigineもpinされてしまう
Renovateでnpm.rangeStrategyをpinにするとengineもpinされてしまう問題について解決策をまとめた。
Github Actionsを利用してReviewer全員のApprovedを必須にする
GithubでReviewer全員のApprovedを必須にする方法を紹介するが、おすすめしない。
RenovateのScheduleがminuteを指定できない。
Renovateでスケジュールが機能しないという相談を受けた際に調べたところ、技術的に分単位の制御が出来ないことが分かった。