Skip to main content

2 posts tagged with "renovate"

View All Tags

· 2 min read
Shunsuke Suzuki

Renovate による PR をレビューする際、差分がなんなのか分かりづらいときがあります。 例えば data source が github-release の場合、 PR の description に Release Note が含まれており、コードの差分も link があるので便利です。 一方 helm data source の場合、 そういったものがなく差分がなんなのか分からないことがあります。 そういう場合、 prBodyNotes を利用して link を追加すると便利です。

例えば、 datadog helm chart の場合

{
"datasources": ["helm"],
"packageNames": ["datadog"],
"prBodyNotes": [
"[compare](https://github.com/DataDog/helm-charts/compare/datadog-{{currentVersion}}...datadog-{{newVersion}})"
]
}

とすると、 PR の description にリンクが追加されます。地味ですが便利です。 Release page へのリンクを追加しても便利かもしれませんね。

ex. https://github.com/suzuki-shunsuke/test-renovate-2/pull/28

template で使える変数は https://docs.renovatebot.com/templates/ を参照してください。 helm chart ごとに設定を書かないといけないのが面倒ですが、仕方ないですね。

· 5 min read
Shunsuke Suzuki

普段 Renovate を主に使っている自分が、 Dependabot と Renovate の違いについて調べてみました。 普段 Renovate を主に使っているので、 Renovate 寄りの内容になっています。 気分を害する人がいましたら申し訳ありません。 Dependabot の理解が浅いので間違ってたら指摘してもらえると助かります。 2020-12-01 時点の情報です。

設定項目の数

まずは設定のドキュメントを見比べると、 Renovate のほうが設定項目が多いです。 Renovate はよく言うと設定項目が多く、柔軟な設定ができるといえる一方、すべての設定を理解し使いこなすのは難しいです。 決して日本語の情報も多くないので、色々試行錯誤したりすることもあります。 Dependabot の場合、設定がそんなに多くなく割と分かりやすい印象があります。

scheduling

Dependabot は schedule の設定が必須です。 Renovate でも schedule の設定は出来ます。

Dependabot は 1 個 1 個設定しないといけない?

Renovate は renovate.json さえ作れば中身がほぼ空でも勝手に update されます。 逆に対象を絞りたかったら明示的に指定する必要があります。

一方で Dependabot は対象を 1 つ 1 つ指定しないといけないようですね。

もちろん、これは必ずしも悪いことではないですし、良い面もあります。 設定が明示的に書かれていたほうが挙動を理解しやすいですしね。

ただし、数が多いと大変ですし、サービスを追加するたびに設定を追加しないといけなさそうです。

Renovate は .circleci/config.yml などの update もサポート

Renovate は .circleci/config.yml や .drone.yml の Docker image のバージョンの update もサポートしています。 Dependabot はサポートしていないようですね。

Renovate は正規表現による update をサポート

https://docs.renovatebot.com/modules/manager/regex/

GitHub Releases からバイナリをダウンロードしてきているような場合でも、 Renovate では Regex Manager を使えば update 出来ます。 CI で使っているツールを GitHub Releases からダウンロードしてきているケースが多いので重宝しています。

Renovate は Grouping をサポート

Renovate は複数のソフトウェアのアップデートを同じ PR でまとめて update できます。

https://docs.renovatebot.com/configuration-options/#group

Renovate で PR をまとめられたくない場合は additionalBranchPrefix などの設定が必要

https://docs.renovatebot.com/configuration-options/#additionalbranchprefix

Renovate だと同じパッケージを複数のサービスで使っている場合、何も設定しないと 1 つの PR に更新がまとめられてしまいます。 additionalBranchPrefix を設定することで回避ができますが、この解決策を見つけるまでに少々苦労しました。 Renovate の難しいところですね。

Renovate は設定をライブラリのように共有できる

https://docs.renovatebot.com/config-presets/

Renovate は汎用的な設定を OSS のように公開し再利用することが出来ます。 仕事だと特に使ってないですが、 個人の Go の Project なんかは同じものを使っていて、便利です。