火曜日, 10月 14, 2025
火曜日, 10月 14, 2025
- Advertisment -
ホームニューステックニュースGitHub Actions ワークフロー作成をもっと楽しく - アクションとバージョン選定をエディターから離れずに

GitHub Actions ワークフロー作成をもっと楽しく – アクションとバージョン選定をエディターから離れずに


はじめに

GitHub Actions は好きですか?パズルのような感覚で面白いので私は大好きです!

そんな GitHub Actions でも、ワークフロー定義を書くときのある面倒臭さには困っていました。

  • 手動で書くとき
    • 「えーと、あのアクションの名前、ハイフン繋ぎ?アンダースコア繋ぎ?忘れたー!検索検索…」
    • 「今ってバージョンいくつが出てるんだっけ?分からなーい!検索検索…」
  • 各種LLMツールに任せるとき
    • 「お、よしよし良い感じ…。あれでもバージョンってこれで良いの?分からなーい!検索検索…」

どのパターンでもエディターを離れる瞬間が生まれがちなのでは?と。

このペインを解消するために2つの自作ツールを使ってみます。ただ、もっと良い方法があるのでは?とも思っているので、皆さんの秘伝の方法があれば教えて頂きたいです。

使用するツールは以下の2つです。

  • ghaver: 頻出するアクション名と、そのバージョンをそれぞれ曖昧検索するCLI。手動編集用。
  • gh-versions-mcp: GitHubリポジトリを指定すると、バージョン一覧を取得するMCPサーバー。新しいバージョンが出たばかりのメジャーバージョンについては、それを使うべきか、一つ前のメジャーバージョンの最新版を使うべきか検討が必要です。gh-versions-mcpは、このようなインストラクションも含めてLLMツールが妥当なバージョンを選定する手助けをします。

対象読者

  • GitHub Actions のワークフロー定義作成において、同様の悩みを抱えている人。
  • その困りごとを別の方法で解消済みの有識者。(ぜひコメントで方法を教えてください)

本記事で扱う内容

  • 自作ツールの特徴と、やりたいができていないこと、future works。

手動編集用: ghaver

まずは動作の様子をご覧ください。
ghaver-sample.gif

  1. 使用頻度の高いアクションを曖昧検索・カーソルで選択
  2. 選択したアクションのバージョンを新しい方から順に示し、同じく曖昧検索・カーソルで選択
  3. @の形式で文字列を標準出力に送る。オプションをつければ@ # の形式でも出力できます。実用的にはclippbcopyなど、クリップボードにパイプするのが良いと思っています。

これにより、名前をあやふやに覚えていても目的のアクションを選択でき、そのアクションのバージョンを確認できます。
バージョンも最新版を一つだけ示すのではなく、複数の中から選択可能なことにこだわっています。例えばメジャーバージョンが更新された直後にそれを使うか、はたまた一つ前のメジャーバージョンの最新を使うかは、自分で選択したいですよね?

パッケージ・バージョンをザッピングしていく体験自体も、なかなか気持ちが良くて気に入っています。

使用している技術

やりたいことに対してできるだけミニマム&興味を持っていた技術を選定しています。

  • GitHub API(指定したリポジトリのリリース情報を取得)
  • @kou_pg_0131 さんの go-fzf(曖昧検索)
  • kong(コマンドラインパーサー)

やりたいができていないこと

コマンド実行結果をエディタのカーソル位置に直接挿入できるとなお良いのですが、ファジーファインダーとの相性のせいか、まだできていません。(Vimであれば:r !ghaverで出来たら良かったのですがどうにもならず…。)

future works

  • アクション一覧の拡充。現在は超ベーシックなアクションを中心に設定済み。もう少し対象を広げておいても良い。
  • アクション一覧を外部から取り込み可能にする。人によって使用したいアクションは様々だが、全てツールにビルトインすると検索性が落ちそうなため、カスタマイズ可能にすることで対応した方が良さそう。

いろいろやりきれていないこと・もっとやりたいこともありますが、エディタを離れずにアクション・バージョンを選定したいという目的は達成できました。
しかし昨今ではLLMツールにお任せでワークフロー定義を書くことも多いですよね。その場合、必要な機能はこのツールとは異なると考えたので、別ツールを作成しました。

LLMツール用: gh-versions-mcp

LLMツールにワークフロー定義作成をお任せする場合、手動の場合とは異なり、アクション名に迷うことはほぼないでしょう。
他方、使用するバージョンを適切に選択することは、手動の場合と同様に困難でしょう。

手動の場合と同じように、「新しい方からいくつかバージョンを取得すること」「メジャーバージョンアップ直後に成熟度合いを考慮に入れてバージョンを選択すること」をLLMツールに実行させたくなります。

実装方法はなんでも良いですが、今回はMCPサーバーを作成し、バージョン一覧をアウトプット、バージョン選択の考え方をツールのdescriptionに記載することで、上記要件の達成を狙いました。

試しに Codex からMCPサーバーに接続し、「コードをチェックアウトするだけのお試しワークフロー定義」を作成してもらいます。

検討結果は以下の通りで、狙い通りのふるまいをしてくれています。やったぜ。

• Workflow Added

  - Added .github/workflows/checkout-only.yml:1 with a minimal workflow_dispatch job that runs on ubuntu-latest,
    checks out the repo via actions/[email protected], and limits the clone to fetch-depth: 1.
  - actions/checkout v5.0.0 is the sole release of the newest major, so I stayed on the mature v4 patch series
    (latest v4.3.0) for stability. Swap to actions/[email protected] if you want to track the newest major.

できていないこと、future works

いったんありません。フィードバックがあれば頂きたいです。

おわりに

GitHub Actions ワークフロー定義をもっと楽しく作成するために、自作の2つのツールを導入してみました。
手動向けのツールはまだいろいろ改善余地がありますが、ひとまず現状でも、私にとってはお気に入りのツールの仲間入りをしてくれました!

Happy GitHub Actions Life!

それぞれのツールのリポジトリはこちらです。

https://github.com/tenkoh/go-ghaver

https://github.com/tenkoh/gh-versions-mcp



Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -