--- name: github-copilot-agent-tips-and-tricks description: Tips and Tricks for Working with GitHub Copilot Agent PRs --- # GitHub Copilot Agent Tips and Tricks This document provides guidance for discovering, reviewing, and working with pull requests created by the GitHub Copilot coding agent in the gh-aw repository. ## Identifying Copilot Agent PRs ### Branch Naming Convention The GitHub Copilot coding agent creates branches with the `copilot/` prefix. This makes them easy to identify and filter. **Examples from this repository:** - `copilot/add-cache-for-imported-workflows` - `copilot/fix-istruthy-bundling-issue` - `copilot/update-audit-command-copilot` - `copilot/refactor-mcp-tool-rendering` ### Author Attribution Copilot coding agent PRs are typically authored by: - `app/github-copilot` - The GitHub Copilot bot account - Individual developers using Copilot as an assistant ## Searching for Copilot Agent PRs ### Using GitHub CLI (`gh`) **Prerequisites:** ```bash # Authenticate with GitHub CLI gh auth login ``` **Search by author (GitHub Copilot bot):** ```bash # List all PRs created by the Copilot bot gh pr list --author "app/github-copilot" --limit 100 # Include closed PRs gh pr list --author "app/github-copilot" --state all --limit 100 # Get detailed JSON output gh pr list --author "app/github-copilot" --json number,title,author,headRefName,createdAt,state ``` **Search by branch prefix:** ```bash # Find all PRs from copilot/* branches gh pr list --search "head:copilot/" --state all # Combine with other filters gh pr list --search "head:copilot/ is:open" gh pr list --search "head:copilot/ is:merged" ``` **Filter with jq:** ```bash # Extract specific fields gh pr list --limit 100 --json author,number,title,headRefName \ --jq '.[] | select(.headRefName | startswith("copilot/")) | {number, title, branch: .headRefName}' # Filter by author containing "copilot" gh pr list --limit 100 --json author,number,title \ --jq '.[] | select(.author.login | contains("copilot"))' ``` ### Using Git Commands **List copilot branches:** ```bash # Local and remote copilot branches git branch -a | grep copilot # Remote copilot branches only git branch -r | grep copilot ``` **Search commit history:** ```bash # Find commits with "copilot" in message git log --all --grep="copilot" --oneline # Find commits by copilot author git log --all --author="copilot" --oneline # Show graph with copilot-related commits git log --all --grep="copilot" --oneline --graph ``` **Find merged copilot PRs:** ```bash # Search for merge commits git log --all --merges --grep="copilot" --oneline # With PR numbers git log --all --merges --oneline | grep -i copilot ``` ## Common Copilot Agent PR Patterns ### Recent Examples from gh-aw Repository Based on analysis of this repository, Copilot coding agent PRs typically address: 1. **Refactoring and Code Organization** - Example: "Refactor ALL_TOOLS to separate JSON file with runtime filtering" - Example: "Eliminate duplicate MCP tool table rendering logic" 2. **Documentation Improvements** - Example: "Document strict mode enforcement areas and CLI flag in schema" - Example: "Add comprehensive strict mode reference documentation" 3. **Bug Fixes** - Example: "Fix JavaScript test assertions for loadAgentOutput error handling" - Example: "Remove duplicate formatFileSize() function" 4. **Testing Enhancements** - Example: "Add integration tests for playwright MCP configuration across all engines" 5. **Security Fixes** - Example: "Fix template injection risk in copilot-session-insights workflow" ### PR Metadata to Check When reviewing Copilot coding agent PRs, pay attention to: - **Branch name**: Should follow `copilot/descriptive-name` pattern - **Commit messages**: Often include "Initial plan" commits - **PR description**: Should explain the problem and solution - **Linked issues**: May reference issues being addressed ## Workflow Tips ### Finding Related PRs ```bash # Find PRs related to a specific feature gh pr list --search "head:copilot/ refactor" --state all # Find PRs in a date range gh pr list --search "head:copilot/ created:>=2024-01-01" --state all # Find PRs with specific labels gh pr list --search "head:copilot/ label:enhancement" ``` ### Reviewing Copilot PRs ```bash # Check out a copilot PR locally gh pr checkout # View PR diff gh pr diff # View PR details gh pr view # View PR in browser gh pr view --web ``` ### Tracking Copilot Contributions ```bash # Count merged copilot PRs gh pr list --author "app/github-copilot" --state merged --json number --jq 'length' # List recent copilot PRs with dates gh pr list --author "app/github-copilot" --state all --limit 20 \ --json number,title,createdAt,state \ --jq '.[] | "\(.number): \(.title) (\(.state)) - \(.createdAt)"' # Export to CSV for analysis gh pr list --author "app/github-copilot" --state all --limit 100 \ --json number,title,createdAt,state,author \ --jq -r '.[] | [.number, .title, .state, .createdAt] | @csv' > copilot-prs.csv ``` ## Troubleshooting ### Authentication Issues If you see "gh auth login" prompts: ```bash # Authenticate with GitHub CLI gh auth login # Or set token environment variable export GH_TOKEN="your-github-token" ``` ### No Results Found If searches return no results: 1. Verify you're in the correct repository 2. Check if the author name is correct (try `app/github-copilot` or `github-copilot`) 3. Try searching by branch prefix instead: `gh pr list --search "head:copilot/"` 4. Check if PRs exist: `git branch -r | grep copilot` ### Rate Limiting If you hit GitHub API rate limits: ```bash # Check rate limit status gh api rate_limit # Use authenticated requests (higher limits) gh auth login ``` ## Best Practices 1. **Use branch prefix search** when author search is unavailable 2. **Export PR lists** regularly for tracking and analysis 3. **Review commit history** to understand Copilot's implementation approach 4. **Check for "Initial plan" commits** to see Copilot's planning process 5. **Verify tests pass** before merging Copilot PRs 6. **Review security implications** especially for workflow changes ## Additional Resources - GitHub CLI documentation: https://cli.github.com/manual/ - GitHub Copilot documentation: https://docs.github.com/en/copilot - Git branch filtering: https://git-scm.com/docs/git-branch - jq JSON processing: https://stedolan.github.io/jq/manual/