UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Renovate】Config Presets について

Renovateを使ってパッケージ更新を自動化したいので調査した

uga-box.hatenablog.com

このとき、renovate.jsonに以下の設定をしてみたが、よくわかってなかったので深ぼる

{
  "extends": ["config:base"]
}

上の設定は下と同意らしいので、各パラメータについて調べた

{
  "extends": [
    ":separateMajorReleases",
    ":combinePatchMinorReleases",
    ":ignoreUnstable",
    ":prImmediately",
    ":semanticPrefixFixDepsChoreOthers",
    ":updateNotScheduled",
    ":automergeDisabled",
    ":ignoreModulesAndTests",
    ":autodetectPinVersions",
    ":prHourlyLimit2",
    ":prConcurrentLimit20",
    "group:monorepos",
    "group:recommended",
    "helpers:disableTypesNodeMajor",
    "workarounds:all"
  ]
}

▼ separateMajorReleases
dependencyのメジャーバージョンを別々のブランチにしてPRする

▼ combinePatchMinorReleases
同じdependencyに対して、パッチとマイナーアップグレードを別々のブランチにしてPRしない

▼ ignoreUnstable
既存のバージョンが不安定な場合は、不安定なバージョンにアップグレードする

▼ prImmediately
ブランチつくったらすぐにPRあげる

▼ semanticPrefixFixDepsChoreOthers
semantic commitsを検出し、dependencyに関するコミットならばfixを、それ以外のコミットならchoreプレフィックスをつける

▼ updateNotScheduled
スケジューリングされていなくても更新する

▼ automergeDisabled
自動でマージしない

▼ ignoreModulesAndTests
node_modulesbower_componentsvendor、およびさまざまなtest / testsディレクトリを無視

{
  "ignorePaths": [
    "**/node_modules/**",
    "**/bower_components/**",
    "**/vendor/**",
    "**/examples/**",
    "**/__tests__/**",
    "**/test/**",
    "**/tests/**",
    "**/__fixtures__/**"
  ]
}

▼ autodetectPinVersions
dependencyを固定するか範囲を維持するかをautoにする

{
    "rangeStrategy": "auto"
}

▼ prHourlyLimit2
PRの作成を1時間あたり最大2つに制限

▼ prConcurrentLimit20
いつでも最大20のオープンPRに制限

▼ group:monorepos
モノレポパッケージは一緒にする

▼ vgroup:recommended
推奨される非モノレポパッケージグループの厳選されたリストを使用する

▼ helpers:disableTypesNodeMajor
@types/nodeのメジャーアップグレードをしないようにする

{
  "packageRules": [
    {
      "matchPackageNames": [
        "@types/node"
      ],
      "matchUpdateTypes": [
        "major"
      ],
      "enabled": false
    }
  ]
}

▼ workarounds:all
ドキュメントみつけられなかった。(回避策?)