octorelease という gem をつくった

serverspec とか specinfra の Changes を手で書くのがだるくなってきたので、自動化するために octorelease という gem をつくりました。

rubygems.org にもあげてあるので、gem install で入ります。

Rakefile の中に

require "bundler/gem_tasks"
require "octorelease"

みたいに書いて、

$ rake octorelease

すると、 こんな感じになります。

何をしてるかというと、rake release した後に、前のバージョンとリリースするバージョンの間に含まれるプルリクエストをgit logで拾って、各プルリクエストに Released as vX.X.X. とコメントをつけ、GitHub 上にリリースを作成し、リリースの本文にはプルリクエストへリンクを張る、ってなことをやってます。

プルリクへのコメントはこんな感じでつきます。

これは、プルリクしてくれた人に対して、リリースしたよ、ということを知らせるために、以前から手動でコメントしてたんですが、ルーチンワークなので自動でやるようにしました。

リリースはこんな感じで作られます。

同僚の linyows 作の capistrano-github-releases インスパイアです。