RenovateのGemfileやPodfileの更新でリリースノートを取得する

Renovateは様々なデータソース・パッケージマネージャーに対応していて、もちろんRubyBundlerのGemfileにも対応しているのだが、APIリクエストのレートリミットを回避する関係で、https://rubygems.org をデータソースとする場合はリリースノートの取得ができなくなっている。

これが不便で、自分達のチームではGemfileの更新にはDependabotを併用するという面倒な運用をしていた。最近になってこれを部分的に解消できる設定がRenovateに誕生したのでご紹介。

customChangelogUrlという設定を使うと、あるパッケージのリリースノートを探しにいくURLを指定することができる。これを使うとGitHubやGitLabの該当リポジトリのReleasesや CHANGELOG.md などからリリースノートをリストアップしてくれる。

例えばfastlaneを指定する場合はこうなる:

{
  "packageRules": [
    {
      "matchManagers": ["bundler"],
      "matchPackageNames": ["fastlane"],
      "customChangelogUrl": "https://github.com/fastlane/fastlane",
    },
  ]
}

iOS開発文脈ではCocoaPodsのPodfileでも同様の状態にあり、そちらにも活用することができる。

{
  "packageRules": [
    {
      "matchManagers": ["cocoapods"],
      "matchPackageNames": ["SwiftLint"],
      "customChangelogUrl": "https://github.com/realm/SwiftLint",
    },
  ]
}

これでDependabotに別れを告げてRenovateに統一することができた。めでたしめでたし。