dependabotの自動更新無視はGitHubアプリのコマンドで行わない方がよい
要約
- 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