GitHub内にあるパッケージ管理ファイルを自動で更新する手順
はじめに
GitHub 内の package.json 等に記載しているモジュールのバージョン更新って面倒ですよね。
今回は、このバージョン更新をほぼ全て自動化する手順をご紹介します。
恐らく、GitHub を長く使っている方にとっては当たり前の内容かと思いますので、初心者向けとして見てください。
手順
手順としては、ザックリ次の2つを行います。
- Dependabot の導入
- Mergery の導入
それぞれの役割を以下に示します。
- Dependabot:バージョンの変更を検知すると、その変更を行うプルリクエストを自動的に作成する
- Mergery:automerge ラベルのついたプルリクを検知し、コンフリクト等が生じていなければ自動でマージを行う
この2つによって、コンフリクトさえ起きなければ、自動でバージョンの更新を行ってくれるようになります。
dependabot の導入
1.作業を自動化したいリポジトリにアクセスし、Insights に移動
2.画面左の Dependency graph へ移動
3.Dependabot タブをクリック
4.Enable Dependabot をクリックし有効化する
5.Create config file をクリックし、Dependabot の設定ファイルを作成する
6.設定ファイルを記述
設定ファイルはデフォルトで上のようになっており、package-ecosystem
と directory
を必要に応じて変更します。
package-ecosystem
はパッケージ管理ツールの名前を入力すればいいため、JavaScript 系であれば npm
、Python であれば pip
といった具合です。
directory
には、package.json や requirements.txt を置いているディレクトリを指定します。基本的にはルートディレクトリにあると思うので、デフォルトのままで問題ないかと思います。
また、ここで最後の方に次のコードを追記します。
これを記述することで、Dependabot が出したプルリクに automerge
タグと dependencies
タグが自動的に付与されるようになります。
※ラベルが存在しない場合は作成する必要があります
labels:
- "automerge"
- "dependencies"
上記を終えた後はこんな感じです。
version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"
labels:
- "automerge"
- "dependencies"
Mergery の導入
こちらにアクセスし、右上のボタンから Mergery をインストールします。
あとは、Mergery を適用するリポジトリを選択するだけでおしまいです。
これで自動でバージョン更新を行う仕組みが完成しました!
おわりに
Dependabot だけでも便利ですが、手動かつ高頻度でマージするのは面倒だったため、こちらを導入するだけでかなり楽になりました。
是非、取り入れてみてください!
Discussion