クラウドサービスを活用して README にバッジをペタペタ貼る

  • 182
    Like
  • 0
    Comment
More than 1 year has passed since last update.

最近の GitHub に上げてある OSS リポジトリには、README にいろんなバッジが貼られています。リポジトリに連携しているクラウドサービスのステータスを表すものがほとんどです。
自分は README にバッジを貼りたい派です。たとえば dtan4/terraforming だとこういう感じです。

dtan4_terraforming.png

最近はバッジの種類も増えているので、整理のためにもどういうのがあるかまとめてみようと思います。

自分がよく README に貼っているバッジ

自分が書く RubyGems については、以下の6個のバッジを必ずつけるようにしています。

Travis CI

Build Status

言わずと知れた CI サービス。現在の master が CI 通っている (passing) かコケている (failed) かがわかります。リポジトリのメンテナンス状況を把握するのによいです。

クリックすれば、そのリポジトリのテスト結果を見ることができます。

Code Climate

Code Climate

ソースコードの品質チェックをしてくれるサービスです。リポジトリ内のコード重複や複雑性を解析して GPA (最高 4.0) を算出してくれます。このリポジトリのコード品質がどうであるか、をひと目で確認できます。Ruby の他にも Node.js や PHP, Python に対応してます。

Test Coverage

最近はテストカバレッジの取得にも対応しました。Travis CI のテスト後にテストカバレッジが Code Climate へアップロードされます。
以前はテストカバレッジの表示に Coveralls を使っていましたが、Code Climate でひとまとめに見られるようになったので最近はこっちを使うようにしています。

クリックすれば、そのリポジトリの詳細な解析結果と行単位のテストカバレッジを見ることができます。

Gemnasium

Dependency Status

アプリケーションの依存管理をチェックしてくれるサービスです。Ruby だと Gemfile, Gemfile.lock, *.gemspec を解析し、指定されている依存ライブラリのバージョンが古くなったら警告を出してくれます。Ruby の他にも Node.js や PHP, Python に対応してます。
RubyGems だと Gemfile.lock がなく gemspec で大まかなバージョン範囲指定を行っている場合が多いのでそう変化はないかもしれません。Rails アプリの場合だと Gemfile.lock でバージョンが決め打ちされているためよく怒られます。
定期的に bundle update しましょう。

クリックすれば、そのリポジトリの依存管理を確認できます。

RubyGems.org

Gem Version

RubyGems 本家が提供しているバッジ。現在公開している最新の Gem バージョンを表示してくれます。バッジ自体は Version Badge というサービスで生成されています。

クリックすれば、その RubyGem のページへ飛びます。

LICENSE

MIT License

これはどこかのサービスが提供しているものではないですが、リポジトリのライセンスを表すバッジです。上のバッジではリンクを省いてますが、自分はリポジトリルートに置いた LICENSE ファイルにリンクさせるようにしています。

[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)

その他自分が使っているバッジ

Quay.io

Docker Repository on Quay.io

Docker Image をホスティングするサービスです。Docker Image Registry といえば Docker Hub がメジャーですが、Quay.io のほうが UI が綺麗だったりイメージの階層構造をツリービューで見られるので自分は好きです。
バッジには最新の Docker Image が使える状態にあるか現在ビルド中であるかが表示されます。

wercker

(2015-12-02 00:30 バッジの対象リポジトリを変更)
wercker status
wercker status

無料でプライベートリポジトリの CI もできるサービス。
以前は小さいバッジのデザインも大きいのに似た独特のものだったのですが、最近は他のサービスと同じようなデザインに変更されました。

CircleCI

Circle CI

こちらも CI サービス。OSS だと Travis CI が圧倒的ですが企業が自社リポジトリの CI に使う例が多いようですね。他の CI との差別化か circleci と明示されています。

Inch CI

Inline docs

リポジトリにどれだけドキュメントが用意されているかを測ってくれるサービスです。Ruby であれば YARD 形式に対応しています。Inch CI 上で HTML 整形されたドキュメントを読むこともできます。

バッジを自作したい

shields.io で自作バッジを作ることができます。
たとえば https://img.shields.io/badge/dtan4-hdmi-green.svg という URL からこんなバッジが生成されます。

shields.io では他サービスのバッジ生成もやっているようで、一覧を見ることができます。
RubyGem のダウンロード数を表示するバッジもあるらしいので、これからはこいつも貼るようにします。

おわりに

README に貼るいろいろなバッジを紹介しました。バッジがあると、リポジトリのメンテナンス状況がひと目でわかるので便利です。バッジを貼るようになることで、テストやコード品質により気を使うことができるようになります。
貼っている事自体も楽しいです。ラップトップの背中にサービスのステッカーを貼りまくるのと一緒です。
みなさんもいろんな便利サービスを駆使してバッジを貼りまくりましょう!