automate-github-issues について
automate-github-issuesは、未解決のGitHub issueを分析し、Julesでタスクを計画してファイル競合を確認し、コーディングエージェントを並列起動した後、PRを順にマージする5段階のワークフローを設定するスキルです。GitHub Actionsまたはローカル実行で、issue対応と実装を自動化したいリポジトリ向けです。
主な機能
- 01未解決のGitHub issueを分析
- 02Julesで実装タスクを計画
- 03ファイル変更の重複を確認
- 04Julesセッションを並列起動
- 05CI検証付きでPRを順次マージ
活用シーン
- 01リポジトリの未解決issueを自動トリアージ
- 02複数のJulesセッションに実装を分担
- 03並列タスク間のファイル競合を軽減
- 04ローカルまたはGitHub Actionsで自動化を実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ google-labs-code/ jules-skills --skill automate-github-issuesインストール後、Claude Code で/automate-github-issuesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
package.jsonREADME.mdtsconfig.jsonassets/.env.examplefleet-dispatch.ymlfleet-merge.ymlresources/architecture.mdscripts/fleet-analyze.tsfleet-dispatch.tsfleet-merge.tsfleet-plan.tssetup.shtypes.tsscripts/github/cache-plugin.tsgit.tsissues.tsmarkdown.tsscripts/prompts/analyze-issues.tsbootstrap.ts詳細
Jules で GitHub Issues を自動化する
GitHub の未解決 Issue を自動で分析し、実装タスクを計画して、並列で動作する Jules コーディングエージェントに修正を割り当てるリポジトリを設定します。
設定する内容
GitHub Actions(またはローカル)で実行する 5 フェーズの自動パイプラインです。
- 分析 — 未解決 Issue を取得し、構造化された Markdown に整形します
- 計画 — Jules セッションがコードレベルで詳細にトリアージし、単独で実行できるタスクプロンプトを作成します
- 検証 — 2 つのタスクが同じファイルを変更しないことを確認します(マージコンフリクトを防止します)
- 割り当て — タスクごとに Jules セッションを 1 つ起動し、並列実行します
- マージ — CI 検証を行いながら、順番に PR をマージします
セットアップ手順
手順 1: fleet スクリプトをリポジトリにコピーする
このスキルの scripts/ ディレクトリ全体を、対象リポジトリの scripts/fleet/ にコピーします。
Target structure:
scripts/fleet/
├── fleet-analyze.ts
├── fleet-plan.ts
├── fleet-dispatch.ts
├── fleet-merge.ts
├── types.ts
├── prompts/
│ ├── analyze-issues.ts
│ └── bootstrap.ts
└── github/
├── git.ts
├── issues.ts
├── markdown.ts
└── cache-plugin.ts
重要: ディレクトリ構造を正確に維持してください。スクリプト間では相対インポートが使用されています。
手順 2: ワークフローテンプレートをコピーする
assets/ のワークフローファイルを、リポジトリの .github/workflows/ ディレクトリにコピーします。
assets/fleet-dispatch.yml→.github/workflows/fleet-dispatch.ymlassets/fleet-merge.yml→.github/workflows/fleet-merge.yml
手順 3: fleet スクリプト用の package.json を作成する
必要な依存関係を記述した scripts/fleet/package.json を作成します。
{
"name": "fleet-scripts",
"private": true,
"type": "module",
"dependencies": {
"@google/jules-sdk": "^0.1.0",
"octokit": "^4.1.0",
"find-up": "^7.0.0"
},
"devDependencies": {
"@types/bun": "^1.2.0"
}
}
手順 4: 環境テンプレートを作成する
assets/.env.example をリポジトリのルートにコピーします。
手順 5: 依存関係をインストールする
cd scripts/fleet && bun install
手順 6: ユーザーに次の手順を伝える
ユーザーに次の作業が必要であることを伝えます。
JULES_API_KEYを GitHub リポジトリのシークレットとして追加する(Settings → Secrets → Actions)GITHUB_TOKENは GitHub Actions によって自動的に提供されます.github/workflows/fleet-dispatch.ymlの cron スケジュールをカスタマイズする(デフォルト:毎日 UTC 6 時)- 生成されたファイルをすべてコミットする
手動での使用方法
セットアップ後、ユーザーはパイプラインをローカルで実行できます。
cd scripts/fleet
# Fetch open issues
bun fleet-analyze.ts
# Plan tasks (creates a Jules planning session)
JULES_API_KEY=<key> bun fleet-plan.ts
# Dispatch parallel agents
JULES_API_KEY=<key> bun fleet-dispatch.ts
# Merge PRs sequentially
GITHUB_TOKEN=<token> bun fleet-merge.ts
カスタマイズ
プロンプトの調整
scripts/fleet/prompts/analyze-issues.ts の分析プロンプトで、Issue をどの程度詳しく調査するかを制御します。ユーザーは次の項目を調整できます。
- 根本原因分析の深さ
- ソリューション実装の詳細度
- マージコンフリクトの回避ルール
- ファイル所有権の制約
Issue のフィルタリング
scripts/fleet/github/issues.ts を編集して、ラベル、マイルストーン、または状態で Issue をフィルタリングします。
リソースの参照
- アーキテクチャの概要 — 5 フェーズのパイプラインについての詳細な説明
トラブルシューティング
- 「Unable to parse git remote URL」:リポジトリに有効な GitHub リモートが設定されていることを確認してください(
git remote get-url origin) - 所有権の競合エラー:2 つのタスクが同じファイルを指定しています。タスク JSON を調整するか、手動で統合してください。
- マージ中の CI タイムアウト:
fleet-merge.tsのmaxWaitMsを増やしてください(デフォルト:10 分) - Bun が見つからない:Bun をインストールしてください:
curl -fsSL https://bun.sh/install | bash