LoginSignup
0
1

Dependabotで依存関係を自動アップデート

Posted at

はじめに

すごく今更感がありますがDependabotを使用してパッケージの依存関係を
自動でアップデートできることを最近知りました...
実際に自身のリポジトリに反映したいので、ついでに記事も書こうと思います。

Dependabotってなんぞ?

Dependabotとは簡単に言うとGitHub上で自動的に
プロジェクトが依存しているライブラリのバージョンを上げたPRを作ってくれるボットさん。
入れておくと定期的に自動でライブラリのアップデートを確認しに行ってくれる便利ボット様なんですね。
確認頻度は調整可能らしい。スゴイネ!!!

Dependabot様を有効化する

では居ても立っても居られないので早速有効化してみます。
手順は以下です。

❶GitHub.com で、リポジトリのメイン ページへ移動

Dependabotを有効にしたいリポジトリへ移動

❷リポジトリ名の下にある設定をクリック

Settingsをクリック
dependabot.drawio.png

❸サイドバーのセキュリティセクションでコードのセキュリティと分析をクリック

Code security and analysisをクリック
dependabot-ページ2.drawio.png

❹Dependabot version updatesの右側にあるEnableをクリック

Enableをクリック
dependabot-ページ3.drawio.png
EnableクリックでDependabot構成ファイルのエディターが表示されます
スクリーンショット 2023-09-25 10.47.29.png

❺Dependabot構成ファイルの変更

必要な設定としては以下の3点です

  • package-ecosystem: パッケージ マネージャーを指定
    • npm, yarn, pnpm, ...
  • directory: マニフェストや他の定義ファイルの場所を指定
    • package.lockのが配置されているディレクトリ
  • schedule.interval: 新しいバージョンをチェックする頻度を指定
    • daily: 毎日
    • weekly: 毎週
    • monthly: 毎月

スクリーンショット 2023-09-25 10.54.07.png

基本的な設定はこちらでOKなのでコミットします

❻しばらく待機...

しばらく待機した後PRを見てみましょう
スクリーンショット 2023-09-25 11.00.46.png
スクリーンショット 2023-09-25 11.03.09.png

導入は超簡単ですし早速自動アップデートPRを作成してくれています。ス...スゴイネ...
Dependabotを知らなかった今までの自分に腹が立ちました:rage:

気になったこと

Dependabotはすごく便利ですが、きちんと運用を考えないといけないなと思う部分もありました
でないとDependabotのPRが放置されたり、闇雲にマージしてしまうと環境が壊れる可能性もありそう...
この辺りの運用方法はまた別途様々なプロジェクトを見て、学ぶ必要がありそうです

余談

依存関係更新のカスタマイズ

先ほどのdependabot.ymlに記載した内容は最小構成です
そのほかにも依存関係をアップデートする際にさまざまなカスタマイズが可能であるようです
PRのレビューワー設定、カスタムラベル、アップデートパッケージのグループ化などなど
この辺りも網羅することでより良いDependabotライフを謳歌できそうですね!素晴らしい!!

GitLabではできないの?

GitLabでも依存関係の自動アップデートはできる?

一応できる
ただ、GitLab独自の依存関係スキャン機能を使用する場合有料プランのみ使用できるらしい

じゃあDependabotをGitLabリポジトリに導入できる?

こちらもできるらしい
ただ、GitLabのネイティブ統合ではないため、GitHub上のDependabotほど
セットアップが迅速かつ簡単ではなく、構成可能性も高くないとのこと...ナルホド...

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1