Features & Capabilities
Complete reference of what the Copilot GitHub Action does
Features & Capabilities
This page describes every function the Copilot GitHub Action provides: workflow-triggered behavior (issues, pull requests, pushes) and single actions you can run on demand.
Issue events
When you open, edit, or label issues: branch creation, project linking, assignees, issue type, size labels, and comments.
Pull request events
When PRs are opened or updated: link to issue, project column, reviewers, AI description, size/progress sync.
Push events
On every push: commit notifications on the issue, prefix check, reopen option, size & progress labels (with OpenCode). Details below.
Workflow-triggered behavior
The action is typically invoked by three workflow triggers. What it does depends on the event.
1. Issue events (on: issues)
When the workflow runs on issues (opened, edited, labeled, unlabeled, etc.):
| Feature | Description |
|---|---|
| Branch creation | Creates branches from the development branch (or main for hotfix/release) based on issue labels (feature, bugfix, docs, chore, hotfix, release). Optional: requires a launcher label (e.g. branched) unless branch-management-always is true. |
| Branch–issue linking | Links the new branch to the issue and adds a comment summarizing the actions taken. |
| Project linking | Adds the issue to the configured GitHub Projects (by project-ids) and moves it to the configured column (e.g. "Todo", "In Progress"). |
| Assignees | Assigns up to desired-assignees-count members to the issue (creator preferred if in org). |
| Issue type | Sets the GitHub issue type (Task, Bug, Feature, Documentation, etc.) from labels. |
| Emoji titles | Optionally adds emojis to issue titles based on labels (emoji-labeled-title). |
| Size labels | Assigns size labels (XS–XXL) and checks size thresholds (lines, files, commits) for prioritization. |
| Comments & images | Posts comments with optional images (per branch type: feature, bugfix, docs, chore, hotfix, release). |
| Smart workflow guidance | Comments can include Git-Flow reminders and next steps. |
2. Pull request events (on: pull_request)
When the workflow runs on pull_request (opened, edited, etc.):
| Feature | Description |
|---|---|
| PR–issue linking | Links the pull request to the issue associated with its branch and posts a comment. |
| Project linking | Adds the PR to the configured GitHub Projects and moves it to the configured column. |
| Reviewers | Assigns up to desired-reviewers-count reviewers. |
| Priority & size | Applies priority and size checks (labels and thresholds). |
| AI PR description | If ai-pull-request-description is true and OpenCode is configured, generates or updates the PR description by filling the repo's .github/pull_request_template.md from the issue and the branch diff (OpenCode Plan agent). See Pull Requests → AI-generated PR description. |
| Comments & images | Posts comments with optional images per branch type. |
3. Push events (on: push)
When the workflow runs on push (e.g. to any branch):
| Feature | Description |
|---|---|
| Commit notifications | For branches linked to an issue, posts a comment on the issue with commit messages and links. |
| Commit prefix check | Warns if commit messages do not follow the prefix derived from the branch name (using commit-prefix-transforms). |
| Reopen issue | If reopen-issue-on-push is true, reopens the issue when new commits are pushed to its branch. |
| Size & progress | Computes size (XS–XXL) and progress (0–100%) from the branch diff; updates the issue and any open PRs for that branch with the same labels. Requires OpenCode for progress. No separate workflow is needed. |
| Bugbot (potential problems) | OpenCode analyzes the branch vs base and reports findings as comments on the issue and review comments on open PRs; updates issue comments when findings are resolved and marks PR review threads as resolved when applicable. Configurable via bugbot-severity and ai-ignore-files. See Bugbot, Issues, and Pull Requests. |
| Comments & images | Posts commit summary comments with optional images. |
Single actions
When you set single-action (and, when required, single-action-issue, single-action-version, single-action-title, single-action-changelog), the action runs only that action and skips the normal issue/PR/push pipelines.
| Single action value | Inputs required | Description |
|---|---|---|
check_progress_action | single-action-issue | Runs progress check on demand (e.g. without pushing). Progress is normally updated automatically on every push; use this to re-run the check or when no push workflow is configured. |
detect_potential_problems_action | single-action-issue | Bugbot: OpenCode analyzes the branch vs base; reports findings as comments on the issue and as PR review comments; updates issue comments and marks PR review threads as resolved when findings are fixed. |
recommend_steps_action | single-action-issue | Uses OpenCode Plan to recommend implementation steps from the issue description; posts a comment on the issue. |
think_action | — | Uses OpenCode Plan for deep code analysis and change proposals (reasoning over the codebase). No issue required. |
initial_setup | — | Performs initial setup steps (e.g. for repo or project). No issue required. |
create_release | single-action-version, single-action-title, single-action-changelog | Creates a GitHub release with the given version, title, and changelog. |
create_tag | single-action-version | Creates a Git tag for the given version. |
publish_github_action | — | Publishes or updates the GitHub Action (e.g. versioning, release). |
deployed_action | single-action-issue | Marks the issue as deployed; updates labels and project state (e.g. "deployed"). |
Single actions that throw an error if the last step fails: publish_github_action, create_release, deployed_action, create_tag. This lets the workflow fail the job when the action does not succeed.
AI features (OpenCode)
All AI features go through OpenCode (one server URL + model). You can use 75+ providers (OpenAI, Anthropic, Gemini, Ollama, etc.) by configuring OpenCode.
| Feature | Where it runs | Description |
|---|---|---|
| Check progress | Push (commit) pipeline; optional single action check_progress_action / CLI check-progress | On every push, OpenCode Plan compares issue vs branch diff and updates the progress label on the issue and on any open PRs for that branch. You can also run it on demand via single action or CLI. |
| Bugbot (potential problems) | Push (commit) pipeline; optional single action detect_potential_problems_action / CLI detect-potential-problems | Analyzes branch vs base and posts findings as comments on the issue and review comments on open PRs; updates issue comments and marks PR review threads as resolved when findings are fixed. Configurable: bugbot-severity, ai-ignore-files. |
| Bugbot autofix | Issue comment; PR review comment | When you comment on an issue or PR asking to fix one or more reported findings (e.g. "fix it", "arregla", "fix all"), OpenCode decides which findings you mean, applies fixes in the workspace, runs verify commands (build/test/lint), and the action commits and pushes. Only org members or the repo owner can trigger this (and the do-user-request action). Configure bugbot-fix-verify-commands (e.g. npm run build, npm test, npm run lint). Requires OpenCode and opencode-start-server: true (or server running from repo) so changes are applied in the same workspace. |
| Do user request | Issue comment; PR review comment | When you comment asking to perform a change in the repo (e.g. "add a test for X", "refactor this", "implement feature Y"), OpenCode applies the changes in the workspace, runs verify commands, and the action commits and pushes with a generic message. Same permission as Bugbot autofix: only org members or the repo owner. Uses the same bugbot-fix-verify-commands and OpenCode setup. |
| Think / reasoning | Issue/PR comment pipeline; single action think_action | Deep code analysis and change proposals (OpenCode Plan agent). On comments: answers when mentioned (or on any comment for question/help issues). Runs when the comment was not a fix/do request or when the user is not allowed to trigger file-modifying actions. |
| Comment translation | Issue comment; PR review comment | Translates comments to the configured locale (issues-locale, pull-requests-locale) when they are written in another language. |
| AI PR description | Pull request pipeline | Fills the repo's .github/pull_request_template.md from issue and branch diff (OpenCode Plan agent). |
| Copilot | CLI giik copilot | Code analysis and file edits via OpenCode Build agent. |
| Recommend steps | Single action / CLI | Suggests implementation steps from the issue description (OpenCode Plan agent). |
Configuration: opencode-server-url, opencode-model, and optionally opencode-start-server (action starts and stops OpenCode in the job). For bugbot autofix, use bugbot-fix-verify-commands to list commands to run after fixes (e.g. npm run build, npm test, npm run lint). See Bugbot and OpenCode (AI).
Workflow concurrency and sequential execution
Sequential runs: When a new run starts, the action waits for any previous run of the same workflow name to finish. Runs of the same workflow (e.g. "Copilot - Issue") execute one after another instead of in parallel or being cancelled — something GitHub does not offer natively.
GitHub's native concurrency lets you cancel in-progress runs when a new one starts (cancel-in-progress: true). Copilot adds sequential execution for the same workflow: when a new run starts, the action waits for any previous run of the same workflow name to finish before doing its work.
How it works
- At the start of each run (except welcome/single-action-only flows), the action calls the GitHub API to list workflow runs for the repo.
- It filters runs that have the same workflow name as the current run, a lower run ID (i.e. started earlier), and status
in_progressorqueued. - If any such run exists, the action waits 2 seconds and checks again, up to a long timeout (~4000 seconds).
- When no previous run of the same workflow is active, the action continues.
So you get a per-workflow queue: multiple triggers for the same workflow (e.g. many issues labeled at once) will run sequentially.
Example
name: Copilot - Issue
on:
issues:
types: [opened, edited, labeled, unlabeled]
jobs:
copilot-issues:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: vypdev/copilot@master
with:
token: ${{ secrets.PAT }}
project-ids: '2,3'
If you prefer to cancel the previous run when a new one is triggered (e.g. for PRs, so only the latest run matters), use cancel-in-progress: true and the same concurrency.group per PR or issue.
Other capabilities
- Commit prefix transforms:
commit-prefix-transformsdefines how branch names are turned into commit prefixes (e.g.replace-slash,kebab-case). Used for validation and comments. - Issue types: Configurable issue type names, descriptions, and colors (Task, Bug, Feature, Documentation, Maintenance, Hotfix, Release, Question, Help).
- Debug: Set
debug: truefor verbose logging.
For full input reference, see Configuration.