最近の GitHub に上げてある OSS リポジトリには、README にいろんなバッジが貼られています。リポジトリに連携しているクラウドサービスのステータスを表すものがほとんどです。
自分は README にバッジを貼りたい派です。たとえば dtan4/terraforming だとこういう感じです。
最近はバッジの種類も増えているので、整理のためにもどういうのがあるかまとめてみようと思います。
自分がよく README に貼っているバッジ
自分が書く RubyGems については、以下の6個のバッジを必ずつけるようにしています。
Travis CI
言わずと知れた CI サービス。現在の master が CI 通っている (passing) かコケている (failed) かがわかります。リポジトリのメンテナンス状況を把握するのによいです。
クリックすれば、そのリポジトリのテスト結果を見ることができます。
Code Climate
ソースコードの品質チェックをしてくれるサービスです。リポジトリ内のコード重複や複雑性を解析して GPA (最高 4.0) を算出してくれます。このリポジトリのコード品質がどうであるか、をひと目で確認できます。Ruby の他にも Node.js や PHP, Python に対応してます。
最近はテストカバレッジの取得にも対応しました。Travis CI のテスト後にテストカバレッジが Code Climate へアップロードされます。
以前はテストカバレッジの表示に Coveralls を使っていましたが、Code Climate でひとまとめに見られるようになったので最近はこっちを使うようにしています。
クリックすれば、そのリポジトリの詳細な解析結果と行単位のテストカバレッジを見ることができます。
Gemnasium
アプリケーションの依存管理をチェックしてくれるサービスです。Ruby だと Gemfile
, Gemfile.lock
, *.gemspec
を解析し、指定されている依存ライブラリのバージョンが古くなったら警告を出してくれます。Ruby の他にも Node.js や PHP, Python に対応してます。
RubyGems だと Gemfile.lock
がなく gemspec で大まかなバージョン範囲指定を行っている場合が多いのでそう変化はないかもしれません。Rails アプリの場合だと Gemfile.lock
でバージョンが決め打ちされているためよく怒られます。
定期的に bundle update
しましょう。
クリックすれば、そのリポジトリの依存管理を確認できます。
RubyGems.org
RubyGems 本家が提供しているバッジ。現在公開している最新の Gem バージョンを表示してくれます。バッジ自体は Version Badge というサービスで生成されています。
クリックすれば、その RubyGem のページへ飛びます。
LICENSE
これはどこかのサービスが提供しているものではないですが、リポジトリのライセンスを表すバッジです。上のバッジではリンクを省いてますが、自分はリポジトリルートに置いた LICENSE ファイルにリンクさせるようにしています。
[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)
その他自分が使っているバッジ
Quay.io
Docker Image をホスティングするサービスです。Docker Image Registry といえば Docker Hub がメジャーですが、Quay.io のほうが UI が綺麗だったりイメージの階層構造をツリービューで見られるので自分は好きです。
バッジには最新の Docker Image が使える状態にあるか現在ビルド中であるかが表示されます。
wercker
(2015-12-02 00:30 バッジの対象リポジトリを変更)
無料でプライベートリポジトリの CI もできるサービス。
以前は小さいバッジのデザインも大きいのに似た独特のものだったのですが、最近は他のサービスと同じようなデザインに変更されました。
CircleCI
こちらも CI サービス。OSS だと Travis CI が圧倒的ですが企業が自社リポジトリの CI に使う例が多いようですね。他の CI との差別化か circleci と明示されています。
Inch CI
リポジトリにどれだけドキュメントが用意されているかを測ってくれるサービスです。Ruby であれば YARD 形式に対応しています。Inch CI 上で HTML 整形されたドキュメントを読むこともできます。
バッジを自作したい
shields.io で自作バッジを作ることができます。
たとえば https://img.shields.io/badge/dtan4-hdmi-green.svg
という URL からこんなバッジが生成されます。
shields.io では他サービスのバッジ生成もやっているようで、一覧を見ることができます。
RubyGem のダウンロード数を表示するバッジもあるらしいので、これからはこいつも貼るようにします。
おわりに
README に貼るいろいろなバッジを紹介しました。バッジがあると、リポジトリのメンテナンス状況がひと目でわかるので便利です。バッジを貼るようになることで、テストやコード品質により気を使うことができるようになります。
貼っている事自体も楽しいです。ラップトップの背中にサービスのステッカーを貼りまくるのと一緒です。
みなさんもいろんな便利サービスを駆使してバッジを貼りまくりましょう!