【Github】面倒な依存パッケージのバージョン管理はGreenkeeperで全部解決!

目次

  1. 1. 依存パッケージの更新を追いかけるのが面倒!
  2. 2. 依存パッケージの更新を自動で監視してくれる”GreenKeeper”
  3. 3. どんな形で提供されてるの?
  4. 4. GreenKeeperは無料?
  5. 5. GreenKeeperのインストール
  6. 6. リポジトリの準備
  7. 7. Pull requestが飛んでこない場合
  8. 8. 監視するリポジトリを変更したい場合

依存パッケージの更新を追いかけるのが面倒!

npmでインストールしたパッケージはpackage.jsonに追加されていきます。依存パッケージがアップデートされた場合、npm-check-updates等を利用してpackage.jsonを更新するのが一般的かと思います。

しかし、いちいち依存パッケージが更新されているかを確認するのはとても面倒です。

依存パッケージの更新を自動で監視してくれる”GreenKeeper”

GreenKeeperは、リポジトリに存在するpackage.jsonを監視し、dependenciesに追加されている依存パッケージのバージョンが上がった場合に、PR(Pull Request)を自動で発行してくれます。

PRを発行してくれるので、問題がなければマージするだけで依存パッケージのバージョンを最新版に維持することができます。すごく楽ちん!

もちろんPRを発行するのでCIと連携しておけば、バージョンを上げても問題ないのかのチェックも自動で行うことができます。超ラクチン!

どんな形で提供されてるの?

Github Appsとして提供されています。なのでパッケージのインストール等は不要です。GithubのアカウントとGreenKeeperを紐づけるだけで利用可能です。

GreenKeeperは無料?

課金プランはFree、Personal、Parsonal yearlyが存在します。Freeアカウントは公開リポジトリであれば何個でも監視することができます。プライベートリポジトリを使いたい場合は、Personalアカウントが必要です。1つのプライベートリポジトリに対して1.30EUR(¥170くらい)課金が必要となります。

ではこのGreenKeeperをインストールしてみます。

GreenKeeperのインストール

まずは、GreenKeeperのページを開きます。

GreenKeeper

https://greenkeeper.io/

まず、画面上部のYOUR ACCOUNTをクリックします。

Greenkeeperの公式サイト

認証画面に移動するのでLogin with Githubをクリックします。

アカウント認証画面

Githubの認証画面に移動するので権限を確認します。この時、Organizationが存在する場合、そちらも許可するかの表示がされるので適宜設定してください。

権限に問題がなければAuthorize greenkeeperioをクリックします。

Githubの権限確認画面

Your Github userに表示されているGreenkeeperを有効にしたいGithubアカウントをクリックします。

Githubアカウント一覧画面

Greenkeeper installation page on Githubというリンクをクリックします。

GreenkeeperのDashboard

ここでは、GreenKeeperを有効にしたいリポジトリを設定することが可能です。アカウントに存在するすべてのリポジトリを監視したい場合はAll repositoriesを選択します。特定のアカウントのみ監視したい場合はOnly select repositoriesを選択し、プルダウンから対象を選択します。

設定に問題がなければInstallボタンをクリックします。

Github Apps Greenkeeperのインストール

これらの設定は、Installed Github Appsから変更することが可能です。

リポジトリの準備

GreenKeeperを有効にするには条件がいくつかあるようです。

  • README.mdがリポジトリに存在する
  • package.jsonがリポジトリに存在する
  • CIサービスが設定されている(SCMが使えればなんでもいい?)

上の3つの条件を満たさないと有効にならないようです。これらの条件を満たすとリポジトリにgreenkeeper/initialというブランチが自動的に作成されます。

このブランチには、README.mdにGreenkeeperのバッジを追加するコミットと、package.jsonの依存パッケージのバージョンが最新版になるコミットが追加されます。

このブランチのテストがCIで通ると、プルリクエストが作成されます。

GreenkeeperがPull requestを送信

あとはこれをマージすれば、Greenkeeperの監視が有効になります。この記事を書くときに作ったサンプルリポジトリは以下のような感じです。

gazf/greenkeeper-test : Github.com

https://github.com/gazf/greenkeeper-test

このリポジトリではCIにWerckerを使っています。

Pull requestが飛んでこない場合

どうやらGreenkeeperをアカウントにインストールした後にリポジトリを作成した場合、プルリクエストが飛んでこないことがあるようです。

fix repoボタンの場所

その場合はダッシュボードに移動して、Repositories Greenkeeper has access toの欄にあるリポジトリの横のfix repoを押すと直るかもしれません。

監視するリポジトリを変更したい場合

自分のアカウントのSettingsからApplicationsに移動して設定を変更することができます。

以下のリンクからも変更が可能です。

https://github.com/settings/installations/478451