GitHub Agentic Workflows を試すためのデモリポジトリ
- GitHub Actions — リポジトリの自動化を YAML で定義する仕組み
- コードがプッシュされたらテストを走らせる
- PR が来たらビルドする
- issue が立ったら担当者をアサインする
- 課題 — YAML の記法を覚える必要があり、ロジックも自分で書く
- Agentic Workflows — やりたいことを日本語で書くだけで AI が実行してくれる
- YAML もロジックも書かなくていい
- 例: 「issue が来たらラベルをつけて」と書くだけ
以下の2つの Agentic Workflow(Markdown ファイル)が .github/workflows/ に入っている
| ファイル | 何が起きるか |
|---|---|
| issue-triage.md | issue が作られたらラベルを自動付与(bug / feature / question / documentation) |
| ci-doctor.md | CI が失敗したらログを読んで原因をコメント |
- GitHub Actions: パブリックリポなので無料
- AI 推論(Gemini): Google AI Studio の無料枠で動く
このリポを fork した場合、ワークフローファイルは既に入っている。シークレット設定(手順 #3)だけで動く。
自分のリポに導入する場合は #0 から順に進めてください。
- GitHub CLI がインストール済み
- Google AI Studio で Gemini API キーを発行済み
# 0. GitHub CLI の認証(workflow スコープが必須)
# 未設定だと gh aw が「not authenticated」になる
gh auth login --scopes repo,workflow
# 1. gh-aw 拡張をインストール
gh extension install github/gh-aw
# 2. Agentic Workflows の設定ファイルを追加(git init とは別物)
gh aw init
# 3. Gemini API キーをリポのシークレットに登録
gh secret set GEMINI_API_KEY
# 4. ワークフローを追加
# → .github/workflows/ に Markdown ファイルが生成される
# ⚠️ Windows(Git Bash)ではウィザードが動かない場合がある
# その場合は .md を手動で作成(詳細は下の「ワークフローの追加方法」)
gh aw add-wizard githubnext/agentics/issue-triage
gh aw add-wizard githubnext/agentics/ci-doctor
# 5. .github/workflows/*.md を読んで .lock.yml(YAML)を自動生成
# --approve: シークレット(GEMINI_API_KEY)の使用を承認
gh aw compile --approve
# 6. コミット & プッシュ
git add .github/workflows/
git commit -m "Add agentic workflows"
git push手順 #4 には2つの方法がある
| 方法 | やり方 | 備考 |
|---|---|---|
| ウィザード | gh aw add-wizard githubnext/agentics/issue-triage |
対話形式で案内してくれる。Linux / macOS / WSL 向き |
| 手動 | .github/workflows/xxx.md を自分で書く |
Windows(Git Bash)ではこちらが確実 |
どちらも最終的に .github/workflows/ に Markdown + .lock.yml ができる。入口が違うだけ。
手動で書く場合のフォーマットはこのリポの issue-triage.md / ci-doctor.md を参考にしてください。
API キーはリポのシークレットに保存する(手順 #3)。Markdown 側は engine: gemini と書くだけで、実行時に自動で繋がる。キーがコードに載ることはない。
セットアップで実行したコマンドの流れはこう。
Markdown で定義 → gh aw compile → YAML に変換 → GitHub Actions が実行
AI は「YAML を書いてくれる」わけではない。ワークフローが動くとき、人間の代わりに判断してくれる。
| 従来の Actions | Agentic Workflows | |
|---|---|---|
| 誰が判断するか | ルール通りに機械的に処理 | AI が内容を読んで自分で判断 |
| 例 | 正規表現でログを grep して該当行を貼る | ログ全体を読んで原因と修正案をコメント |
従来の YAML
on:
issues:
types: [opened]
jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
with:
script: |
const { title, body } = context.payload.issue;
const text = `${title} ${body}`.toLowerCase();
const labels = [];
if (text.includes('bug') || text.includes('error')) labels.push('bug');
if (text.includes('feature')) labels.push('feature');
if (!labels.length) labels.push('question');
await github.rest.issues.addLabels({ ...context.repo, issue_number: context.issue.number, labels });Agentic Workflows の Markdown
---
on:
issues:
types: [opened]
engine:
id: gemini
---
新しい issue の内容を読んで、適切なラベルをつけてください
- bug: バグ報告
- feature: 機能リクエスト
- question: 質問
- documentation: ドキュメント関連├── package.json
├── src/
│ ├── utils.js ← add / subtract / multiply / divide の4関数
│ └── utils.test.js ← vitest で6テスト
└── .github/workflows/
├── aw.json ← gh aw init で生成された設定
├── ci.yml ← push / PR 時にテスト実行
├── issue-triage.md ← issue 自動ラベル付け(Agentic Workflow)
├── issue-triage.lock.yml ← ↑ から自動生成された YAML
├── ci-doctor.md ← CI 失敗分析(Agentic Workflow)
└── ci-doctor.lock.yml ← ↑ から自動生成された YAML
シンプルな Node.js プロジェクト + CI だけの最小構成
issue トリアージは issue を立てるだけで試せる。CI 失敗分析は utils.js を壊してプッシュするだけ。
npm install
npm test週末ものづくり部 — @shumatsumonobu