|
1 | | -# Copilot: Automated Branch and Project Management GitHub Action |
| 1 | +# Copilot — GitHub with super powers |
2 | 2 |
|
3 | | -**Copilot** is a GitHub Action that automates issue, branch, and project management using the Git-Flow methodology. It creates and links branches to issues, monitors commits and pull requests, and integrates with GitHub Projects. |
| 3 | +**Copilot** is a GitHub Action for task management using Git-Flow: it links issues, branches, and pull requests to GitHub Projects, automates branch creation from labels, and keeps boards and progress in sync. Think of it as bringing Atlassian-style integration (boards, tasks, branches) to GitHub. |
| 4 | + |
| 5 | +Full documentation: **[docs.page/vypdev/copilot](https://docs.page/vypdev/copilot)** |
4 | 6 |
|
5 | 7 | --- |
6 | 8 |
|
7 | 9 | ## Documentation index |
8 | 10 |
|
9 | | -Full documentation is published at **[docs.page/vypdev/copilot](https://docs.page/vypdev/copilot)**. Use this index to jump to the right section: |
10 | | - |
11 | 11 | | Section | Description | |
12 | 12 | |--------|-------------| |
13 | | -| [How to use](https://docs.page/vypdev/copilot/how-to-use) | Step-by-step setup for issues, pull requests, and push workflows | |
14 | | -| [Features & capabilities](https://docs.page/vypdev/copilot/features) | Workflow triggers, single actions, AI (OpenCode), workflow concurrency | |
15 | | -| [Authentication](https://docs.page/vypdev/copilot/authentication) | PAT setup, permissions, and token best practices | |
16 | | -| [Configuration](https://docs.page/vypdev/copilot/configuration) | All inputs: branches, labels, projects, commit prefix, images, etc. | |
17 | | -| [OpenCode (AI)](https://docs.page/vypdev/copilot/opencode-integration) | Progress detection, Bugbot, think, AI PR description; server and model config | |
18 | | -| [Testing OpenCode Plan locally](https://docs.page/vypdev/copilot/testing-opencode-plan-locally) | Run check-progress, detect-potential-problems, recommend-steps via CLI | |
19 | | -| [Single actions](https://docs.page/vypdev/copilot/single-actions) | On-demand: check progress, think, create release/tag, deployed, etc. | |
20 | | -| [Issues](https://docs.page/vypdev/copilot/issues) | Issue configuration and issue types (feature, bugfix, hotfix, release, docs, chore) | |
| 13 | +| [How to use](https://docs.page/vypdev/copilot/how-to-use) | Step-by-step setup: PAT, `copilot setup`, workflows | |
| 14 | +| [Features & capabilities](https://docs.page/vypdev/copilot/features) | Workflow triggers, single actions, AI (OpenCode), concurrency | |
| 15 | +| [Authentication](https://docs.page/vypdev/copilot/authentication) | PAT setup, permissions, token best practices | |
| 16 | +| [Configuration](https://docs.page/vypdev/copilot/configuration) | All inputs: branches, labels, projects, images, etc. | |
| 17 | +| [OpenCode (AI)](https://docs.page/vypdev/copilot/opencode-integration) | Progress, Bugbot, think, AI PR description | |
| 18 | +| [Testing OpenCode locally](https://docs.page/vypdev/copilot/testing-opencode-plan-locally) | Run check-progress, detect-potential-problems, recommend-steps via CLI | |
| 19 | +| [Single actions](https://docs.page/vypdev/copilot/single-actions) | On-demand: check progress, think, create release/tag, deployed | |
| 20 | +| [Issues](https://docs.page/vypdev/copilot/issues) | Issue configuration and types (feature, bugfix, hotfix, release, docs, chore) | |
21 | 21 | | [Pull requests](https://docs.page/vypdev/copilot/pull-requests) | PR configuration and AI description | |
22 | 22 | | [Troubleshooting](https://docs.page/vypdev/copilot/troubleshooting) | Common issues and solutions | |
23 | 23 | | [Support](https://docs.page/vypdev/copilot/support) | How to get help | |
24 | 24 |
|
25 | 25 | --- |
26 | 26 |
|
27 | | -## Installation |
28 | | - |
29 | | -### 1. Prerequisites |
30 | | - |
31 | | -- A **Personal Access Token (PAT)** with permissions for the repo and, if used, GitHub Projects. See [Authentication](https://docs.page/vypdev/copilot/authentication). |
32 | | -- Store the token as a repository secret (e.g. `PAT`). |
33 | | - |
34 | | -### 2. Add the action from the marketplace |
35 | | - |
36 | | -Use the published action from the GitHub Actions marketplace so workflows are stable and versioned: |
37 | | - |
38 | | -```yaml |
39 | | -uses: vypdev/copilot@v1 |
40 | | -``` |
41 | | -
|
42 | | -Do **not** pin to a branch (e.g. `@master`) in production; use a major version tag such as `@v1` so you get fixes without breaking changes. |
43 | | - |
44 | | -### 3. Add workflows to your repository |
45 | | - |
46 | | -Copy the workflow files from **`setup/workflows/`** in this repo into your repo’s `.github/workflows/`: |
47 | | - |
48 | | -| File | Purpose | |
49 | | -|------|--------| |
50 | | -| `copilot_issue.yml` | Runs on issue events (opened, edited, labeled, etc.) | |
51 | | -| `copilot_pull_request.yml` | Runs on pull request events | |
52 | | -| `copilot_commit.yml` | Runs on push; notifies issue, updates size/progress, optional Bugbot | |
53 | | -| `copilot_issue_comment.yml` | Runs on issue comments (e.g. translations, think) | |
54 | | -| `copilot_pull_request_comment.yml` | Runs on PR review comments (e.g. translations) | |
55 | | -| `release_workflow.yml` | Optional: manual release with create_tag, create_release, deployed_action | |
56 | | -| `hotfix_workflow.yml` | Optional: manual hotfix with create_tag, create_release, deployed_action | |
57 | | - |
58 | | -The workflows in `setup/workflows/` are already configured to use **`vypdev/copilot@v1`**. After copying, set your `vars` and `secrets` (e.g. `vars.PROJECT_IDS`, `secrets.PAT`, and optionally OpenCode-related vars/secrets). |
59 | | - |
60 | | -For a minimal setup, see [How to use](https://docs.page/vypdev/copilot/how-to-use). For all inputs and options, see [Configuration](https://docs.page/vypdev/copilot/configuration). |
61 | | - |
62 | | -### Quick installation (CLI) |
63 | | - |
64 | | -To install the Copilot CLI globally from source so you can run `copilot` from anywhere: |
65 | | - |
66 | | -```bash |
67 | | -git clone https://github.com/vypdev/copilot.git |
68 | | -cd copilot |
69 | | -npm install . -g |
70 | | -``` |
71 | | - |
72 | | -If the repo does not include the compiled `build/` folder (e.g. it is gitignored), run `npm install` and `npm run build` before `npm install . -g`. |
73 | | - |
74 | | -Then run `copilot setup`, `copilot check-progress -i 123`, etc. See [Testing locally (CLI)](#testing-locally-cli) and [Single actions → Workflow & CLI](https://docs.page/vypdev/copilot/single-actions/workflow-and-cli). |
75 | | - |
76 | | ---- |
77 | | - |
78 | | -## Quick start (minimal workflows) |
79 | | - |
80 | | -Below are minimal examples. Prefer the **`setup/workflows/`** files and **`vypdev/copilot@v1`** for a complete, versioned setup. |
81 | | - |
82 | | -### Issue workflow |
83 | | - |
84 | | -```yaml |
85 | | -name: Copilot - Issue |
86 | | -on: |
87 | | - issues: |
88 | | - types: [opened, edited, labeled, unlabeled] |
89 | | -jobs: |
90 | | - copilot-issues: |
91 | | - runs-on: ubuntu-latest |
92 | | - steps: |
93 | | - - uses: actions/checkout@v4 |
94 | | - - uses: vypdev/copilot@v1 |
95 | | - with: |
96 | | - token: ${{ secrets.PAT }} |
97 | | - project-ids: '2,3' |
98 | | - commit-prefix-transforms: 'replace-slash' |
99 | | -``` |
100 | | - |
101 | | -### Pull request workflow |
102 | | - |
103 | | -```yaml |
104 | | -name: Copilot - Pull Request |
105 | | -on: |
106 | | - pull_request: |
107 | | - types: [opened, edited, labeled, unlabeled] |
108 | | -concurrency: |
109 | | - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} |
110 | | - cancel-in-progress: true |
111 | | -jobs: |
112 | | - copilot-pull-requests: |
113 | | - runs-on: ubuntu-latest |
114 | | - steps: |
115 | | - - uses: actions/checkout@v4 |
116 | | - - uses: vypdev/copilot@v1 |
117 | | - with: |
118 | | - token: ${{ secrets.PAT }} |
119 | | - project-ids: '2,3' |
120 | | - commit-prefix-transforms: 'replace-slash' |
121 | | -``` |
122 | | - |
123 | | -### Commit (push) workflow |
124 | | - |
125 | | -Runs on every push: notifies the issue, updates size and progress labels (progress needs OpenCode), and can run Bugbot. See [OpenCode (AI)](https://docs.page/vypdev/copilot/opencode-integration). |
126 | | - |
127 | | -```yaml |
128 | | -name: Copilot - Commit |
129 | | -on: |
130 | | - push: |
131 | | - branches: ['**'] |
132 | | -jobs: |
133 | | - copilot-commits: |
134 | | - runs-on: ubuntu-latest |
135 | | - steps: |
136 | | - - uses: actions/checkout@v4 |
137 | | - - uses: vypdev/copilot@v1 |
138 | | - with: |
139 | | - token: ${{ secrets.PAT }} |
140 | | - commit-prefix-transforms: 'replace-slash' |
141 | | - # Optional for progress/Bugbot: |
142 | | - # opencode-server-url: ${{ secrets.OPENCODE_SERVER_URL }} |
143 | | - # opencode-model: 'anthropic/claude-3-5-sonnet' |
144 | | -``` |
145 | | - |
146 | | ---- |
147 | | - |
148 | | -## Key features |
149 | | - |
150 | | -- **Automatic branch creation** — From issue labels (feature, bugfix, hotfix, release, docs, chore); branches are linked to the issue. |
151 | | -- **Commit monitoring** — Posts commit summaries on the issue; optional commit prefix validation. |
152 | | -- **Pull request linking** — Links PRs to issues, adds them to projects, assigns reviewers; optional AI-generated PR descriptions. |
153 | | -- **GitHub Project integration** — Links issues and PRs to configured projects and moves them to the right columns. |
154 | | -- **Single actions** — On-demand: check progress, think, create release/tag, deployed marking, and more. |
155 | | -- **Workflow concurrency** — Waits for previous runs of the same workflow name so runs can be sequential. See [Features → Workflow concurrency](https://docs.page/vypdev/copilot/features#workflow-concurrency-and-sequential-execution). |
156 | | - |
157 | | ---- |
158 | | - |
159 | | -## AI features (OpenCode) |
160 | | - |
161 | | -AI features use **OpenCode** (many LLM providers). See [OpenCode (AI)](https://docs.page/vypdev/copilot/opencode-integration). |
162 | | - |
163 | | -- **Progress detection** — Updates progress label on the issue and open PRs (on push or via single action / CLI). |
164 | | -- **Bugbot** — Reports potential problems as issue and PR comments; updates or marks as resolved when fixed. |
165 | | -- **Think** — Deep code analysis and change proposals. |
166 | | -- **AI PR description** — Fills `.github/pull_request_template.md` from the issue and diff. |
167 | | - |
168 | | -You can set `opencode-server-url` and `opencode-model`, or use **`opencode-start-server: true`** and pass provider API keys as secrets. |
169 | | - |
170 | | ---- |
171 | | - |
172 | | -## Testing locally (CLI) |
173 | | - |
174 | | -The same logic runs via the **CLI** so you can test before pushing. See [Testing OpenCode Plan locally](https://docs.page/vypdev/copilot/testing-opencode-plan-locally) and [Single actions → Workflow & CLI](https://docs.page/vypdev/copilot/single-actions/workflow-and-cli). |
175 | | - |
176 | | -```bash |
177 | | -nvm use 20 |
178 | | -npm install |
179 | | -npm run build |
180 | | -copilot <command> [options] |
181 | | -``` |
| 27 | +## Getting started |
182 | 28 |
|
183 | | -Examples: `setup`, `check-progress -i 123 -t <PAT>`, `detect-potential-problems -i 123`, `think -q "..."`, `do -p "..."`. Use `-d` for debug. Optional `.env` for `PERSONAL_ACCESS_TOKEN`, `OPENCODE_SERVER_URL`, `OPENCODE_MODEL`. |
| 29 | +1. **Create a PAT** and store it as a repo secret (e.g. `PAT`). See [Authentication](https://docs.page/vypdev/copilot/authentication). |
| 30 | +2. **Use the action** from the marketplace so versions are stable: |
| 31 | + ```yaml |
| 32 | + uses: vypdev/copilot@v1 |
| 33 | + ``` |
| 34 | +3. **Add workflows** — Copy the files from `setup/workflows/` into your `.github/workflows/`, or run **`copilot setup`** from your repo root (with `PERSONAL_ACCESS_TOKEN` in `.env`). See [How to use](https://docs.page/vypdev/copilot/how-to-use). |
184 | 35 |
|
185 | 36 | --- |
186 | 37 |
|
187 | | -## Commit prefix transforms |
| 38 | +## What it does |
188 | 39 |
|
189 | | -The `commit-prefix-transforms` input defines how branch names become commit prefixes. See [Configuration](https://docs.page/vypdev/copilot/configuration). |
| 40 | +- **Issues** — Branch creation from labels (feature, bugfix, hotfix, release, docs, chore), project linking, assignees, size/progress labels; optional Bugbot (AI) on the issue. |
| 41 | +- **Pull requests** — Link PRs to issues, update project columns, assign reviewers; optional AI-generated PR description. |
| 42 | +- **Push (commits)** — Notify the issue, update size/progress; optional Bugbot and prefix checks. |
| 43 | +- **Projects** — Link issues and PRs to boards and move them to the right columns. |
| 44 | +- **Single actions** — On-demand: check progress, think, create release/tag, mark deployed, etc. |
| 45 | +- **Concurrency** — Waits for previous runs of the same workflow so runs can be sequential. See [Features → Workflow concurrency](https://docs.page/vypdev/copilot/features#workflow-concurrency-and-sequential-execution). |
190 | 46 |
|
191 | | -| Transform | Example | |
192 | | -|-----------|--------| |
193 | | -| `replace-slash` | `feature/user-auth` → `feature-user-auth` | |
194 | | -| `replace-all`, `lowercase`, `uppercase` | Case and special chars | |
195 | | -| `kebab-case`, `snake_case`, `camel-case` | Naming style | |
196 | | -| `trim`, `clean-dashes`, `remove-numbers` | Cleanup | |
| 47 | +AI features (progress, Bugbot, think, AI PR description) use **OpenCode**; see [OpenCode (AI)](https://docs.page/vypdev/copilot/opencode-integration). You can also run progress and Bugbot locally via the **CLI** — [Testing OpenCode locally](https://docs.page/vypdev/copilot/testing-opencode-plan-locally) and [Single actions → Workflow & CLI](https://docs.page/vypdev/copilot/single-actions/workflow-and-cli). |
197 | 48 |
|
198 | 49 | --- |
199 | 50 |
|
200 | 51 | ## Contributing |
201 | 52 |
|
202 | | -Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, conventions, and how to submit changes. |
| 53 | +See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, conventions, and how to submit changes. |
0 commit comments