Skip to content

Latest commit

 

History

History
159 lines (118 loc) · 12.4 KB

File metadata and controls

159 lines (118 loc) · 12.4 KB
title Features & Capabilities
description 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.

When you open, edit, or label issues: branch creation, project linking, assignees, issue type, size labels, and comments. When PRs are opened or updated: link to issue, project column, reviewers, AI description, size/progress sync. 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 with prefix v (e.g. v1.2.0) for the given version from the release branch.
publish_github_action single-action-version Publishes or updates the GitHub Action: creates/updates the major version tag (e.g. v2 from v2.0.4). Requires create_tag to have been run first.
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

  1. 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.
  2. It filters runs that have the same workflow name as the current run, a lower run ID (i.e. started earlier), and status in_progress or queued.
  3. If any such run exists, the action waits 2 seconds and checks again, up to a long timeout (~4000 seconds).
  4. 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-transforms defines 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: true for verbose logging.

For full input reference, see Configuration.