GitHub Tracker Plugin
The GitHub tracker plugin integrates with GitHub Issues, allowing Agent Orchestrator to manage tasks, track progress, and update issue state as agents work.Overview
This plugin uses the GitHub CLI (gh) to interact with the GitHub Issues API. It provides full CRUD operations for issues and generates context-aware prompts for agents based on issue content.
The GitHub tracker plugin requires the GitHub CLI (
gh) to be installed and authenticated.Configuration
Configure the GitHub tracker plugin in youragent-orchestrator.yaml:
Configuration Options
The GitHub tracker plugin requires no additional configuration parameters. All settings are derived from the project’srepo field.
GitHub repository in
owner/repo format (e.g., octocat/hello-world).This is used for all GitHub API operations.Requirements
Installing GitHub CLI
Verifying Authentication
Features
Issue Operations
Get Issue Fetch a single issue by number:State updates: GitHub Issues only supports
open and closed states. Setting in_progress is a no-op (GitHub doesn’t have this state).Issue State Mapping
GitHub Issue State → Tracker State:| GitHub State | State Reason | Tracker State |
|---|---|---|
OPEN | - | open |
CLOSED | COMPLETED | closed |
CLOSED | NOT_PLANNED | cancelled |
Prompt Generation
The plugin generates context-aware prompts for agents:Branch Naming
The plugin generates branch names from issue numbers:Issue URLs and Labels
Usage Example
Start Agent on Issue
Auto-Update on PR Merge
Troubleshooting
Error: gh command not found
Error: gh command not found
The GitHub CLI is not installed or not in PATH.Solution:
Error: gh authentication failed
Error: gh authentication failed
The GitHub CLI is not authenticated.Solution:
Error: Invalid repo format
Error: Invalid repo format
The
repo field must be in owner/repo format.Example:Error: Resource not accessible by integration
Error: Resource not accessible by integration
The authenticated GitHub account doesn’t have access to the repository or issues.Solutions:
- Verify repository access:
gh repo view owner/repo-name - Check issue permissions (requires write access for updates)
- Re-authenticate:
gh auth login --force
Timeout errors
Timeout errors
GitHub API requests have a 30-second timeout.Solutions:
- Check network connectivity
- Verify GitHub API status: https://www.githubstatus.com/
- Increase timeout in plugin code if needed (requires source modification)
Issue numbers vs identifiers
Issue numbers vs identifiers
GitHub uses numeric issue numbers (e.g.,
123), not alphanumeric identifiers.The plugin accepts:"123"- Issue number as string"#123"- With hash prefix (stripped automatically)
"ABC-123"- Not a GitHub issue format (use Linear for this)
API Reference
Tracker Interface Methods
getIssue(identifier, project)- Fetches issue details by number
- Returns:
Issueobject with all fields
- Checks if issue is closed
- Returns:
boolean
- Generates GitHub issue URL
- Returns:
string
- Extracts issue number from URL
- Returns:
string(e.g.,"#123")
- Generates branch name from issue number
- Returns:
string(e.g.,"feat/issue-123")
- Creates context prompt for agent
- Returns:
string(formatted prompt)
- Lists issues with optional filters
- Returns:
Issue[]
- Updates issue state/labels/assignee/comments
- Returns:
void
- Creates a new issue
- Returns:
Issue(created issue)
Advanced Usage
Issue Filters
Label Management
Labels are additive: using
updateIssue with labels adds them to existing labels, it doesn’t replace them.Comment Workflow
Integration with Other Plugins
With SCM Plugin
The tracker and SCM plugins work together for full issue-to-PR workflow:- Tracker generates prompt from issue
- Agent writes code
- SCM creates PR and links it to the issue
- Reactions auto-close issue when PR merges
With Workspace Plugin
The tracker provides the branch name for workspace creation:Security Considerations
Source Code
Source:packages/plugins/tracker-github/src/index.ts