最近は、Privateな開発するときには無料でPrivateリポジトリが使い放題なGitLab.comを使っています。 ですが、GitLabのContributions Calendarはコミット単位ではなくpush単位だったりと、 いくつか不満があったのでGitHubのContributions Calendarに出来るだけ近いものを使いたかったので、 自分でGitHubを参考にして生成するプログラムを作りました。
1コマンドでこれを生成して公開出来るようになった pic.twitter.com/lttwnAnCaG
— misterT (@misterT2525) 2016, 2月 1
ちなみに、プログラム、生成されたページ共に知り合いに見せる程度で、あまり大きく公開はしない予定です
仕様
repos
ディレクトリに、追跡したいリポジトリをclone&fetchしておくmvn
コマンドを実行するとexec:java
を利用してプログラムが実行され、htmlファイルがフォルダ内に書き出される- コミッターのタイムゾーン情報を元に生成している
- テンプレートファイルを元に生成
- カレンダー部分のsvgは、ほぼGitHubと同じ仕様
- Bootstrapをベースにデザイン
- GitHubのデザインに似せながら、cssをちょっと書き書き
- Bootstrapのtooltipを利用して、カーソルを当てるとコントリビューション数が表示されるように
気をつけたところ
出来るだけGitHubに似せる
もともと、GitHubのContributions CalendarのデザインでGitLabとかのリポジトリとかを見たいって事で作ったので
生成されるソースコードを綺麗に
テンプレートエンジンなどを使った場合に、生成されたソースコードのインデントが崩れてたりすることがあるので、出来るだけそういうことが無いようにしたいなと思って作りました (そのせいで生成するソースコードが汚くなってしまい、かなりつらい)
gistとbl.ocks.orgを使ってページを公開
生成されるファイルは、JavaScriptもCSSも埋め込まれた一つのhtmlファイルなので、GitHub Gistとbl.ocks.orgという2つのサービスを利用して公開することにしました。
gistに index.html
と言う名前でアップロードし、bl.ocks.orgで表示するだけなので、とても簡単に公開することが出来ました。
更新時はgistをcloneリポジトリに index.html
を移動し、コミットしてpushすればすぐにbl.ocks.orgにも反映されるので、とても便利です。
最後に
これを作ったおかげでなんだかモチベーションが上がった気がする。 (適当な記事でごめんなさい)