💂‍♀️

dependabotの自動更新無視はGitHubアプリのコマンドで行わない方がよい

2022/05/18に公開

要約

  • dependabotでパッケージ自動更新を無視する場合の話。
  • GitHubアプリで無視すると更新を再開する手間がかかるので特に複数人開発ではおすすめできない。設定ファイルで管理した方がよい。

前提

一部GitHubを前提にした内容が含まれるので、予めGitHub前提の記事とする。

詳細

セマンティック・バージョニングにおいて、メジャー・マイナー・全更新を指定して無視できる。
dependabotでパッケージ自動更新を無視する方法は2つある。1つは設定ファイルで、もう1つはGitHubアプリから実現できる。それぞれ自動更新無視・再開方法をまとめる。

dependabotの実行ログは共通。 github.com/<org>/<repo>/network/updates にパッケージマネージャー毎に出力され、最新1件分閲覧できる。無視しているパッケージ情報も含む。以下サンプルのログ。

updater | INFO <job_367891379> Checking if github.com/gorilla/mux 1.7.4 needs updating
updater | INFO <job_367891379> Ignored versions:
updater | INFO <job_367891379>   > 1.7.4 - from @dependabot ignore command
  proxy | 2022/05/18 06:04:15 [209] GET https://proxy.golang.org:443/github.com/gorilla/mux/@v/list
  proxy | 2022/05/18 06:04:15 [209] 200 https://proxy.golang.org:443/github.com/gorilla/mux/@v/list
  proxy | 2022/05/18 06:04:15 [211] GET https://proxy.golang.org:443/github.com/gorilla/mux/@v/v1.8.0.info
  proxy | 2022/05/18 06:04:15 [211] 200 https://proxy.golang.org:443/github.com/gorilla/mux/@v/v1.8.0.info
  proxy | 2022/05/18 06:04:15 [213] GET https://proxy.golang.org:443/github.com/gorilla/mux/@v/v1.8.0.mod
  proxy | 2022/05/18 06:04:15 [213] 200 https://proxy.golang.org:443/github.com/gorilla/mux/@v/v1.8.0.mod
  proxy | 2022/05/18 06:04:15 [215] GET https://proxy.golang.org:443/sumdb/sum.golang.org/supported
  proxy | 2022/05/18 06:04:15 [215] 410 https://proxy.golang.org:443/sumdb/sum.golang.org/supported
  proxy | 2022/05/18 06:04:15 [217] GET https://sum.golang.org:443/lookup/github.com/gorilla/mux@v1.8.0
  proxy | 2022/05/18 06:04:15 [217] 200 https://sum.golang.org:443/lookup/github.com/gorilla/mux@v1.8.0
  proxy | 2022/05/18 06:04:15 [219] GET https://sum.golang.org:443/tile/8/0/x006/042
  proxy | 2022/05/18 06:04:15 [219] 200 https://sum.golang.org:443/tile/8/0/x006/042
updater | INFO <job_367891379> All updates for github.com/gorilla/mux were ignored

GitHubアプリ

対象パッケージを更新するPRにコメントする。

無視

  • @dependabot ignore this major version
  • @dependabot ignore this minor version
  • @dependabot ignore this dependency

再開

  • ブランチをRestore
  • @dependabot reopen

設定ファイル

設定ファイルはリファレンス通りなので、省略。

運用時

一時的に対象のパッケージを無視したい場合があると思う(例 メジャーバージョンを上げる暇がない)。その場合に、GitHubアプリで実行するとどうなるかについて。
上で書いたように無視することは設定ファイルより容易。ただし、無視したPRを見つけ再開することが手間。加えて、GitHub上では どのパッケージマネージャーで、どのパッケージの、どのバージョンを無視しているか を一覧で閲覧することができない。
多少検索を楽にするために、GitHubリポジトリ検索機能(https://github.com/search/advanced )でIssue一覧を出して探索することはできる( 例 repo:<org/repo> "@dependabot ignore" in:comments "<org/package>" in:title )。しかし、再開するには以下手順が必要で手間。

  • GitHubリポジトリ検索:対象PR取得
  • GitHub PR:ブランチのRestore
  • GitHub PR:@dependabot reopen

所感

そもそも、パッケージを無視するという運用を取らなければ無関係な話。とはいえ、リポジトリ内に情報がないことは新規参画者等への認知負荷にも繋がると思うので、あまり良くないのでは。

参考

Discussion