automate-github-issues

Configurer le triage et la résolution automatisés des issues GitHub à l'aide d'agents de codage Jules parallèles

npx skills add https://github.com/google-labs-code/jules-skills --skill automate-github-issues

Automate GitHub Issues with Jules

You are setting up a repository to automatically analyze open GitHub issues, plan implementation tasks, and dispatch parallel Jules coding agents to fix them.

What You're Setting Up

A 5-phase automated pipeline that runs via GitHub Actions (or locally):

  1. Analyze — Fetch open issues and format as structured markdown
  2. Plan — A Jules session performs deep code-level triage and produces self-contained task prompts
  3. Validate — Verify no two tasks modify the same file (prevents merge conflicts)
  4. Dispatch — Spawn parallel Jules sessions, one per task
  5. Merge — Sequential PR merge with CI validation

Setup Steps

Step 1: Copy fleet scripts to the repository

Copy the entire scripts/ directory from this skill into the target repository at 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

Important: Preserve the directory structure exactly. The scripts use relative imports between files.

Step 2: Copy workflow templates

Copy the workflow files from assets/ to the repository's .github/workflows/ directory:

  • assets/fleet-dispatch.yml → .github/workflows/fleet-dispatch.yml
  • assets/fleet-merge.yml → .github/workflows/fleet-merge.yml

Step 3: Create a package.json for the fleet scripts

Create scripts/fleet/package.json with the required dependencies:

{
  "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"
  }
}

Step 4: Create environment template

Copy assets/.env.example to the repository root.

Step 5: Install dependencies

cd scripts/fleet && bun install

Step 6: Print next steps for the user

Tell the user they need to:

  1. Add JULES_API_KEY as a GitHub repository secret (Settings → Secrets → Actions)
  2. GITHUB_TOKEN is provided automatically by GitHub Actions
  3. Customize the cron schedule in .github/workflows/fleet-dispatch.yml (default: daily 6am UTC)
  4. Commit all generated files

Manual Usage

After setup, the user can run the pipeline locally:

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

Customization

Prompt Tuning

The analysis prompt in scripts/fleet/prompts/analyze-issues.ts controls how deeply issues are investigated. Users can adjust:

  • Root cause analysis depth
  • Solution implementation detail level
  • Merge conflict avoidance rules
  • File ownership constraints

Issue Filtering

Edit scripts/fleet/github/issues.ts to filter issues by label, milestone, or state.

Resource References

Troubleshooting

  • "Unable to parse git remote URL": Ensure the repo has a valid GitHub remote (git remote get-url origin)
  • Ownership conflict errors: Two tasks claim the same file. Adjust the task JSON or merge them manually.
  • CI timeout during merge: Increase maxWaitMs in fleet-merge.ts (default: 10 minutes)
  • Bun not found: Install Bun: curl -fsSL https://bun.sh/install | bash

Plus de skills de google-labs-code

typed-service-contracts
google-labs-code
Norme d'architecture pour la création de services TypeScript robustes et type-safe utilisant le modèle « Spec and Handler ». À utiliser lors de la création de CLI, de bibliothèques ou de systèmes complexes…
stitch::code-to-design
google-labs-code
Convertir du code frontend (Vite, React, etc.) en un Stitch Design en enchaînant l'extraction HTML statique, l'extraction du système de design et le téléchargement de fichiers. **TOUJOURS** utiliser ceci…
react-vite-dashboard
google-labs-code
Convertissez des designs Stitch en tableaux de bord React + Vite de production avec TanStack Query, des jetons accessibles depuis DESIGN.md et des modèles prêts pour le Web3 (ethers/viem).
stitch::extract-design-md
google-labs-code
Extraire un système de design complet (DESIGN.md) directement à partir du code source frontend — React, Vue, Svelte, Angular, HTML/CSS simple, ou tout framework web.…
remotion
google-labs-code
We need to translate the given English text into French, preserving the name "remotion" (which appears as "Remotion" in the text, but we preserve it as is). The instruction says: "Preserve product names, protocol names, URLs, numbers, and technical terms." So "Remotion" is a product name, keep it. Also "Stitch" is a product name? It says "Stitch app designs" - likely a product name, keep as "Stitch". Also "ScreenSlide", "WalkthroughComposition" are component names, keep as is. "zoom effects", "fade transitions", "text overlays" are technical terms, translate? The instruction says "technical terms" - but these are common terms. However, the instruction says "Preserve ... technical terms" - meaning do not translate? Actually it says "Preserve product names, protocol names, URLs, numbers, and technical terms." So technical terms should be preserved as is. But "zoom effects" might be considered a technical term? Possibly keep as "zoom effects
ink
google-labs-code
Moteur de rendu terminal Ink pour json-render qui transforme des spécifications JSON en interfaces utilisateur terminal interactives. À utiliser lorsque vous travaillez avec @json-render/ink, construisez des interfaces utilisateur terminal à partir de…
tdd-red-green-refactor
google-labs-code
Cette compétence implémente un cadre structurel pour la programmation assistée par IA afin de garantir que chaque ligne de code soit vérifiable, typée et utile.
local-action-verification
google-labs-code
Configurer un dépôt pour la vérification locale des GitHub Actions à l'aide de act, afin que Jules puisse valider le CI avant de pousser