GitHub ActionsのStatus Badgeをよしなに作るコマンドを作った

2022年05月14日

こんにちは。、.ごっちです。

GitHub ActionsのステータスバッジをMarkDown形式で作るのに、ドキュメントを見ながら手動で書き換えるのは大変なので、よしなに生成してくれるコマンドを作りました。

https://docs.github.com/ja/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge

作ったもの

https://github.com/YutaGoto/gha-badge

action

[![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

https://crates.io/crates/clap

所感

単純にRustを使った何かを作りたかった、というのが目的で選んでいます。実装するにあたり Rust CLIのチュートリアルはとても役に立ちました。充実していてとても素敵です。

https://rust-cli.github.io/book/index.html

このチュートリアルと Clap のドキュメントを少し探しただけで完成できたのでこんなものか~という気持ちです。以前、Splatoon2のステージスケジュールを取得するコマンドをGoで作ったのですが、これと比べるとどちらもいいところあるかなという気持ちです。Goらしさ・Rustらしさがわからないので評価ができないです。

バッジのドキュメントにあるブランチパラメータやイベントパラメータには対応できていないので、追加機能として考えています。

ProfilePicture

Yuta Goto

フリーランスのソフトウェアエンジニアです。現在はReact.jsを使用したWebフロントエンドの開発やRuby on Railsを使用したサーバサイドの開発を行っています。