概要
VersionEyeの情報をSlackに投稿するnpmパッケージを作成したので、それについて解説します。
VersionEyeとは
VersionEyeは、GitHub上のプロジェクトが依存するライブラリ更新を支援するサービスです。
プロジェクトが依存するライブラリに対して、最新バージョンの通知、セキュリティチェック、ライセンスチェックを行ってくれます。依存ライブラリを継続的に更新することによって変更の粒度が小さくなり、容易に変更への迅速な対応が可能になります。
同種のサービスとしては、gemnasiumやDavidなどがありますが、VersionEyeはサポートしているパッケージマネージャの豊富さが魅力的です。
- Composer (PHP)
- Bundler (Ruby)
- PIP (Python)
- NPM (Node.JS)
- Bower (JavaScript)
- CocoaPods (Objective-C)
- Maven (Java)
- SBT (Scala)
- Gradle (Groovy)
- Leiningen (Clojure)
- Nuget (Microsoft .NET platform)
- Biicode (C/C++)
- Berkshelf (Chef)
プライベートリポジトリ1つと公開ポジトリ4つまで無料で使えます。
versioneye-slack
VersionEyeから依存ライブラリの状態を教えてくれる通知がメールではくるのですが、残念ながらSlack連携が現時点では用意されていません。開発チーム全体に共有されるところに通知を投げたいので、Slackに投稿するためのツールをnpmパッケージで作成しました。
コマンドラインツールとして実装しているので、使い方は簡単です。
$ npm install versioneye-slack -g
でインストールして、
$ versioneye-slack project <projectName> --versioneye-api-key <key> --slack-webhook-url <url>
で↓のような投稿がSlackに飛びます。
VersionEyeのAPIキーとSlackのWebhook URLは環境変数でも渡せるようにしていて、それぞれ VERSIONEYE_API_KEY
と SLACK_WEBHOOK_URL
が --versioneye-api-key
と --slack-webhook-url
に対応しています。
CLIだけでなく、プログラム上からでも呼び出せます。
const VersionEyeSlack = require('versioneye-slack'); const versioneyeApiKey = '<api key for versioneye>'; const slackWebhookUrl = '<webhook url for slack>'; const versioneyeSlack = new VersionEyeSlack(versioneyeApiKey, slackWebhookUrl); versioneyeSlack.postProjectSummary('project name').then(response => { console.log(response); });
versioneye-api-client
versioneye-slackは、VersionEye公式のAPIを叩いています。
Node.jsからVersionEyeのAPIを叩くためのクライアントライブラリもnpmパッケージとして作成したので、VersionEyeのAPIで遊びたい方はお使いください。
まとめ
VersionEyeと自分が作成したSlack連携するためのnpmパッケージについて紹介しました。
npmパッケージは初めて公開しましたが、作成から公開までかなり簡単でよかったです。コマンドラインツールを手軽に作るにはかなりよい選択肢だと思いました。
VersionEyeあまり話題になっているのを見かけませんが、依存関係の更新を放置すると大きなトラブルになりがちなので、継続的にアップデートしていくための土台づくりとしてこの手のサービスがもっと盛り上がってほしいです。