なにげなくDependabotを見てたらリポジトリに .dependabot/config.yml
を置けることを気づいたので置いてみた
https://dependabot.com/docs/config-file/
ちなみに .dependabot/config.yml
をコミットしてると設定画面でこんな表示になります
設定ファイルを置くメリット
いつも使ってる設定晒し
Rubyだとこれでだいたいいいはずですが他言語だと微妙に変えた方がいいかもしれないです。
# c.f. https://dependabot.com/docs/config-file/ version: 1 update_configs: - package_manager: "ruby:bundler" directory: "/" update_schedule: "daily" default_assignees: - sue445 allowed_updates: - match: # Disable. Only top-level dependencies (and security patches for subdependencies) update_type: "all" automerged_updates: - match: dependency_type: "development" update_type: "all" - match: dependency_type: "production" update_type: "semver:patch" # Enable. Only lockfile updates (ignore updates that require Gemfile changes) version_requirement_updates: "off"
解説
default_assignees
PRが作られた時に誰をassignさせるか。
PRを見た後にchangelogを見に行ったりしてると実際にマージするのをちょいちょい忘れるので自分をassignしておくと便利
allowed_updates
設定画面の「Only top-level dependencies (and security patches for subdependencies)」に相当。
デフォルトだとこれに入っているんですが、そうするとGemfileに直接書かれてるgemしかbundle updateの対象にならなくて、gemの依存の依存のgemがupdateされないのでいつもこのチェックを外すようにしてます。
設定ファイルだと update_type: "all"
を書けば同じ効果になります
automerged_updates
設定画面のAutomatic PR mergingに相当
個々の好みが分かれるところですが、僕は普段development dependencyのアップデートは全部自動マージして、runtime dependencyはパッチバージョンのアップデートのみ自動マージ(マイナーバージョンアップは手動)にしてます
version_requirement_updates
設定画面の「Only lockfile updates (ignore updates that require Gemfile changes)」に相当
デフォルトだとチェックが外れているんですが、そうすると Gemfile
でバージョン固定していた場合にGemfileを書き換えてbundle updateするので、これにチェック入れとくことで Gemfile.lock
のみ更新かけるようにしてます。
(Gemfile
でバージョン固定しているのはだいたいなんらかの理由があるはずなので書き換えられるのは困る)
設定ファイルだと version_requirement_updates: "off"
に相当。
まとめ
ローカルで bundle update
した時と同じ挙動にしたければ allowed_updates
と version_requirement_updates
を書いとけばいいかと。