Depfu は依存パッケージの更新を定期的にチェックし,更新があった場合にプルリクエストを作成してくれるサービスで,現時点で「Ruby, JavaScript」をサポートしている.導入企業に Cookpad も載っている.今回 Depfu を JavaScript で試した.
Depfu 以外にも依存パッケージの更新を定期的にチェックするサービスはある.
- Greenkeeper | Automate your npm dependency management
- Dependency Update as a Service - Tachikoma.io
- Renovate | Automated Dependency Updates
特に Dependabot はサポートしているプログラミング言語が多いという特徴がある.以下に Dependabot + Dockerfile を試した記事がある.
インストール
Depfu は GitHub Marketplace からインストールできる.パブリックリポジトリなら無料で使えるので,すぐに試すことができる.
今回は数年前に実装した個人用 Slack Bot (Hubot) のリポジトリに Depfu を適用した.全プルリクエスト(計8個)を merge して,Slack Bot をデプロイしたら問題なく使えた!Slack Bot は Heroku で動かしていて,久し振りに Heroku を使った.
リポジトリ設定
Depfu では,リポジトリごとに詳細な設定ができる.
- Update Strategy(アップデート戦略)
- Individual Updates
- Security Updates Only
- Paused
- Limit of open pull requests from Depfu(プルリクエスト上限数)
- Customize the pull requests Depfu creates
- Commit message(コミットメッセージ)
- Which labels should we use for the PRs?(プルリクエストラベル)
- Should we assign anyone to the PRs?(プルリクエストアサイン)
- Environment Variables(環境変数)
Up-to-date Dependencies
ライブラリごとに Requirement version と Latest version を確認できる管理画面がある.ライブラリによっては GitHub URL と Changelogs URL も載っていて,非常に使いやすく実装されている.
プルリクエスト
Depfu のプルリクエストは詳細に書かれていて,ライブラリのバージョン比較だけではなく,実際にどのような差分(コミット)があるのかを確認することもできる.
また Depfu は ChatOps に対応していて,以下のようなコメントでメンションをすると,トリガーすることができる.今回は @depfu rebase
と @depfu merge
を使った.
@depfu rebase
@depfu merge
@depfu reopen
@depfu pause
@depfu pause [minor|major]
@depfu resume
Depfu バッジ
Depfu では GitHub の README.md などに貼るバッジも用意されている.
まとめ
- 依存パッケージの更新を定期的にチェックしてくれる Depfu は便利
- 現時点では Ruby と JavaScript をサポートしている
- Depfu はどう発音するんだろう?
- 試しに
say
をしたら「デェプフ」のように聞こえた!
- 試しに
$ say -v Alex Depfu
関連記事
今回題材にした Slack Bot を実装した2016年に書いた記事は以下にある.今どき CoffeeScript は書かないよなぁー.