Zenn Dev Kou Pg 0131 Articles Ghats Introduction
TypeScript で GitHub Actions ワークフローを記述する「ghats」の紹介
- URL: https://zenn.dev/kou_pg_0131/articles/ghats-introduction
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: TypeScript で GitHub Actions ワークフローを記述して YAML にビルドする ghats が公開された。
WorkflowクラスとJobクラスを使ってワークフローを定義しghats buildを実行すると YAML が生成される。ghats install <action>でリモートアクションをインストールすると型補完が有効になり、action()関数を通じて使用するとビルド時にコミット SHA が自動で固定される仕組みを持つ。アクションのバージョン管理はactions.jsonに記録されactions-lock.jsonにコミット SHA が保存される。
詳細
インストール: npm install -D ghats
基本的な使い方:
- ワークフロー定義ファイルは
.github/workflows/*.tsに作成する WorkflowとJobをghatsからインポートして定義ghats buildでワークフロー YAML をビルド(生成ファイルは自動生成コメント付き)
リモートアクションの型サポート:
npx ghats install actions/checkoutでアクションをインストールaction()関数を使ってリモートアクションを参照すると入力値の型補完が効く- ビルド時にコミット SHA が自動で固定されるため、ワークフロー定義内でバージョンを明示的に指定しなくてよい
生成されるファイル:
.github/workflows/actions.json— インストールしたアクションとバージョンの対応.github/workflows/actions-lock.json— コミット SHA のロックファイル
セキュリティ上の意義:
- Git タグは書き換えられる可能性があるためコミット SHA 固定が推奨されているが、手動での管理は手間がかかる
- ghats を使えばバージョン指定は actions.json で一元管理でき、ビルド時の SHA 固定が自動化される
ghats 自体のリポジトリの GitHub Actions ワークフローも ghats で記述されている。