
Automate Github Issues
Schedule Jules fleet sessions that fetch open GitHub issues and dispatch parallel coding agents to work them without manual triage.
Overview
Automate GitHub Issues is an agent skill most often used in Build (also Ship, Operate) that wires scheduled or manual GitHub Actions fleet dispatch to Jules for parallel work on open issues.
Install
npx skills add https://github.com/google-labs-code/jules-skills --skill automate-github-issuesWhat is this skill?
- Daily cron or manual workflow_dispatch Fleet Dispatch GitHub Action
- Requires JULES_API_KEY and GITHUB_TOKEN for sessions, issue fetch, and PR merge
- Optional FLEET_BASE_BRANCH override for fleet session base branch
- Concurrency group fleet-dispatch prevents overlapping fleet runs
- Bootstrap prompt drives in-repo fleet scripts to analyze and dispatch on open issues
- Default Fleet Dispatch cron: daily at 6:00 UTC
- Concurrency group: fleet-dispatch with cancel-in-progress: false
Adoption & trust: 607 installs on skills.sh; 66 GitHub stars; 1/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your issue backlog grows faster than you can manually spin up Jules or coding agents for each ticket.
Who is it for?
Repos already using Jules skills where you want a daily or on-demand fleet pass over GitHub issues without bespoke scripting each time.
Skip if: Projects without Jules API access, without a GitHub PAT, or where you only need one-off issue fixes without scheduled fleet orchestration.
When should I use this skill?
You use Jules in the repo and want scheduled or manual GitHub Actions to fetch open issues and dispatch parallel Jules fleet sessions.
What do I get? / Deliverables
A Fleet Dispatch workflow runs fleet scripts that analyze open issues and start Jules sessions on your chosen base branch, with PR merge paths enabled via GitHub token.
- .env template for Jules and GitHub credentials
- fleet-dispatch.yml GitHub workflow
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Issue-to-agent dispatch is primarily an agent-orchestration capability you wire into the repo while building product and CI glue. Fits agent-tooling because it boots Jules sessions, runs fleet scripts, and coordinates parallel agents against your backlog.
Where it fits
Add Fleet Dispatch so Jules analyzes new issues overnight against main.
Trigger workflow_dispatch before release to clear blocker issues via fleet sessions.
Keep a daily cron fleet run chewing through support-labeled GitHub issues.
How it compares
Use instead of ad-hoc Jules chats per issue when you want GitHub Actions as the scheduler and dispatcher.
Common Questions / FAQ
Who is automate-github-issues for?
Solo and indie builders (and small teams) shipping with Jules in-repo who want GitHub-driven fleet dispatch over open issues.
When should I use automate-github-issues?
During Build when wiring agent-tooling and CI; during Ship when automating launch-prep fixes from issues; during Operate when iterating on production bug queues—especially if you run the daily cron or workflow_dispatch fleet.
Is automate-github-issues safe to install?
It requires powerful secrets (Jules API key and GitHub token with repo access); review the Security Audits panel on this page and scope tokens minimally before enabling scheduled dispatch.
SKILL.md
READMESKILL.md - Automate Github Issues
# Environment variables for automate-github-issues skill # Copy this to .env and fill in your values # Your Jules API key (required for dispatching sessions) JULES_API_KEY= # GitHub personal access token with repo access (required for issue fetching and PR merge) GITHUB_TOKEN= # Optional: override the base branch for fleet sessions (defaults to current branch) # FLEET_BASE_BRANCH=main # Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # .github/workflows/fleet-dispatch.yml # # Creates a Jules session to analyze open issues and dispatch parallel agents. # The session receives a bootstrap prompt and runs the fleet scripts from the repo. name: Fleet Dispatch on: schedule: # Runs daily at 6am UTC (customize as needed) - cron: "0 6 * * *" workflow_dispatch: inputs: base_branch: description: "Base branch for Jules sessions" type: string default: "main" concurrency: group: fleet-dispatch cancel-in-progress: false jobs: dispatch: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Bun uses: oven-sh/setup-bun@v1 with: bun-version: "1.3.1" - name: Install fleet dependencies working-directory: scripts/fleet run: bun install - name: Create planning session working-directory: scripts/fleet env: JULES_API_KEY: ${{ secrets.JULES_API_KEY }} FLEET_BASE_BRANCH: ${{ inputs.base_branch || 'main' }} run: bun fleet-plan.ts # Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # .github/workflows/fleet-merge.yml # # Sequentially merges Jules-authored PRs: update branch → wait for CI → squash merge. # On merge conflict, re-dispatches the task as a new Jules session against current base. name: Fleet Sequential Merge on: # Allow manual trigger (recommended: review PRs first, then trigger) workflow_dispatch: inputs: base_branch: description: "Base branch for merge" type: string default: "main" concurrency: group: fleet-merge cancel-in-progress: false jobs: sequential-merge: runs-on: ubuntu-latest env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} JULES_API_KEY: ${{ secrets.JULES_API_KEY }} steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Bun uses: oven-sh/setup-bun@v2 - name: Install fleet dependencies run: cd scripts/fleet && bun install - name: Find and merge fleet PRs sequentially run: | set -euo pipefail BASE_BRANCH="${{ inputs.base_branch || 'main' }}" MAX_CI_WAIT=600 # 10 minutes per PR MAX_RETRIES=2 # Max re-dispatch attempts per PR PR_POLL_TIMEOUT=900 # 15 minutes to wait for re-dispatched PR echo "🔍 Finding open Jules-authored PRs targeting ${BASE_BRANCH}..." # Get all open