GitHub ActionsのStatus Badgeをよしなに作るコマンドを作った
2022年05月14日
こんにちは。、.ごっちです。
GitHub ActionsのステータスバッジをMarkDown形式で作るのに、ドキュメントを見ながら手動で書き換えるのは大変なので、よしなに生成してくれるコマンドを作りました。
作ったもの
https://github.com/YutaGoto/gha-badge
GitHub ActionのMarkdown用のBadge画像を表示してくれるコマンドを作ってた。チョットベンリ pic.twitter.com/jD5QSicuqV
— .ごっち (@gggooottto) April 23, 2022
[![action](https://github.com/YutaGoto/actions/workflows/ci.yml/badge.svg)](https://github.com/YutaGoto/actions)
↑を生成してくれるコマンドです。
つかいかた
$ gha-badge -n [GITHUB_USERNAME] [--with-link]
GITHUB_USERNAME
を指定するだけで、現在のディレクトリ名をリポジトリ名として Markdownテキストを生成します(この記事を書いているときに気がついたのですが、厳密に実装するなら ./.git/config
にある設定を使えという話ではあります。Organization名でクローンしたときに正しく生成できないので)。
また、 GITHUB_USERNAME
を環境変数にセットしておくと省略できます。
--with-link
オプションは/actions
のリンクとして生成するかどうかのフラグになります。
実装
環境
- Rust: 1.60.0-nightly
- anyhow: 1.0
- clap: 3.1
https://crates.io/crates/anyhow
所感
単純にRustを使った何かを作りたかった、というのが目的で選んでいます。実装するにあたり Rust CLIのチュートリアルはとても役に立ちました。充実していてとても素敵です。
https://rust-cli.github.io/book/index.html
このチュートリアルと Clap
のドキュメントを少し探しただけで完成できたのでこんなものか~という気持ちです。以前、Splatoon2のステージスケジュールを取得するコマンドをGoで作ったのですが、これと比べるとどちらもいいところあるかなという気持ちです。Goらしさ・Rustらしさがわからないので評価ができないです。
バッジのドキュメントにあるブランチパラメータやイベントパラメータには対応できていないので、追加機能として考えています。