🕺

GitHub内にあるパッケージ管理ファイルを自動で更新する手順

2021/09/17に公開

はじめに

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-ecosystemdirectory を必要に応じて変更します。

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