Renovateを使ってみた

2020/11/23

Renovateの設定めも

Renovateとは

依存関係の更新を自動化してくれます。同様のツールにDependabotもありますが、Renovateはより細かなことができて便利なようです。

https://docs.renovatebot.com/

インストール(GitHub App)

GitHubで利用するのであればMarketplace からインストールできます。

https://github.com/apps/renovate

基本的に無料で利用できるのでありがたいですね。

設定

基本的にはプロジェクトのルートにrenovate.jsonを用意して、ここに設定を書き込んでいく形になります(他の方法でも可。たとえばpackage.jsonに記述することも可能)。 この設定項目がやたらと多くてビビります。ぜひ公式をみてみてください。

ここでは(忘れるので)個人的に良さげだなと思った設定項目をメモしておきます…

{
  "extends": [
    "config:base"
  ],
  "baseBranches": [
    "develop"
  ],
  "timezone": "Asia/Tokyo",
  "schedule": "every weekend",
  "labels": [
    "dependencies"
  ],
  "patch": {
    "automerge": true
  },
  "minor": {
    "groupName": "all dependencies"
  },
  "vulnerabilityAlerts": {
    "labels": [
      "security"
    ]
  },
  "lockFileMaintenance": {
    "enabled": true,
    "schedule": [
      "before 7pm on the first day of the month"
    ]
  }
}

extends

設定プリセットを継承します。

Renovateには好きな設定をプリセットとして公開できる機能があり、ここでそのプリセットを継承できます。config:baseはRenovateのデフォルトの設定を継承します。

baseBranches

ベースブランチを指定できます(未指定の場合はデフォルトブランチが指定される)。

timezone

タイムゾーンを指定できます。とくに理由がない限りAsia/Tokyoとかにしておけば良さそうです。

schedule

更新頻度を指定できます。every weekendを指定すると毎週末更新を行ってくれます。

labels

Renovateが作成するPRに付けるラベルを指定できます(未指定の場合はラベルなし)。

automerge

trueを指定するとRenovateによって作成されたPRが自動的にマージされるようになります。

patch

パッチバージョンの更新に適用する設定を決められます。たとえば、

  "patch": {
    "automerge": true
  }

とするとパッチバージョン更新時のみPRを自動マージできます。

minor

マイナーバージョン更新時の設定が決められます。

groupName

グループ名を指定できます。

vulnerabilityAlerts

脆弱性のあるPRに適用する設定を決められます。たとえば、

  "vulnerabilityAlerts": {
    "labels": [
      "security"
    ]
  },

とすると脆弱性を含むPRのみラベルがsecurityになります。

lockFileMaintenance

"enabled": trueにすると、package-lock.jsonやyarn.lockなどのロックファイルを更新できるようになります。

参考

たまおさ

釣りとか登山とか好きです。(@tamaki_osamu)