リポジトリに含まれるコード量/比率をMackerelに記録する with GitHub Actions & action-mackerel-api

リポジトリを管理していると、何かの拍子にリポジトリのコードベースの変遷を可視化したくなる場合があります。
例えば、以下の場面です。

  • ある時からのリポジトリの成長
  • 実装言語を置き換える際のコードベースの遷移

やり方はいろいろありますが、今回は GitHub ActionsGitHub API v3 、そして Mackerel API を使って、Mackerelのサービスメトリックに記録してみます。

実行サンプル

Posting language lists to Mackerel with GitHub Ac…

GitHub APIの仕様上、特定ファイルの除外ができないことは、ここでは考慮していません。
JavaScriptは得意じゃないので、37行目からのscriptを効率化できる案があれば、教えてもらえると助かります。

グラフ例

Mackerel上でのおすすめのグラフ定義は、以下です。

  • 単位: bytes
  • グラフの種類: 積み上げ

f:id:yutailang0119:20200713021940p:plain
グラフ定義は bytes と 積み上げ を設定

利用しているグッズ

actions/github-script はyml内にJavaScriptが書けて、異常な便利さがあります。

yutailang0119/action-mackerel-api

上記の例でさらっと使っていますが、GitHub ActionsからMackerel APIを使用するために、Mackerel APIGitHub Actionsを作りました。
Mackerel APIの薄いWrapperです。

github.com

Marketplaceにも 公開 しています。
Marketplaceを検索する と、Mackerel と名のつくGItHub Actionsは他に公開されていないようです。*1

とりあえず動くものをと作ったので、まだ足りない部分がありますが、今後追加にご期待ください。

余談

shellが苦手すぎて、README/Usage が actions/github-script を使って、 body を作るサンプルになっています。
単にエスケープした文字列を入れればいいだけのはずなので、回答のPull Requestをお待ちしています。

*1:GitHub内検索 でもほとんどない