リポジトリを管理していると、何かの拍子にリポジトリのコードベースの変遷を可視化したくなる場合があります。
例えば、以下の場面です。
- ある時からのリポジトリの成長
- 実装言語を置き換える際のコードベースの遷移
- iOSだと、Objective-CからSwiftへの移行
- Androidだと、JavaからKotlinへの移行
- etc.
やり方はいろいろありますが、今回は GitHub Actions と GitHub API v3 、そして Mackerel API を使って、Mackerelのサービスメトリックに記録してみます。
実行サンプル
Posting language lists to Mackerel with GitHub Ac…
※GitHub APIの仕様上、特定ファイルの除外ができないことは、ここでは考慮していません。
JavaScriptは得意じゃないので、37行目からのscriptを効率化できる案があれば、教えてもらえると助かります。
グラフ例
Mackerel上でのおすすめのグラフ定義は、以下です。
- 単位:
bytes
- グラフの種類: 積み上げ
利用しているグッズ
actions/github-script はyml内にJavaScriptが書けて、異常な便利さがあります。
yutailang0119/action-mackerel-api
上記の例でさらっと使っていますが、GitHub ActionsからMackerel APIを使用するために、Mackerel APIのGitHub Actionsを作りました。
Mackerel APIの薄いWrapperです。
Marketplaceにも 公開 しています。
Marketplaceを検索する と、Mackerel
と名のつくGItHub Actionsは他に公開されていないようです。*1
とりあえず動くものをと作ったので、まだ足りない部分がありますが、今後追加にご期待ください。
余談
shellが苦手すぎて、README/Usage が actions/github-script を使って、 body
を作るサンプルになっています。
単にエスケープした文字列を入れればいいだけのはずなので、回答のPull Requestをお待ちしています。