@vypdev/copilot 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -16
- package/action.yml +67 -35
- package/build/api/index.js +4666 -0
- package/build/api/src/api.d.ts +35 -0
- package/build/api/src/application/ports/agent_configuration_ports.d.ts +3 -0
- package/build/api/src/application/ports/agent_findings_ports.d.ts +8 -0
- package/build/api/src/application/ports/agent_query_ports.d.ts +14 -0
- package/build/api/src/application/ports/bugbot_context_ports.d.ts +9 -0
- package/build/api/src/application/ports/bugbot_finding_publication_ports.d.ts +7 -0
- package/build/api/src/application/ports/bugbot_finding_resolution_ports.d.ts +6 -0
- package/build/api/src/application/ports/bugbot_issue_read_ports.d.ts +10 -0
- package/build/api/src/application/ports/bugbot_issue_write_ports.d.ts +12 -0
- package/build/api/src/application/ports/bugbot_pull_request_read_ports.d.ts +47 -0
- package/build/api/src/application/ports/bugbot_pull_request_resolution_ports.d.ts +3 -0
- package/build/api/src/application/ports/bugbot_pull_request_write_ports.d.ts +4 -0
- package/build/api/src/application/ports/bugbot_rule_ports.d.ts +12 -0
- package/build/api/src/application/ports/bugbot_telemetry_ports.d.ts +32 -0
- package/build/api/src/application/ports/pull_request_review_comment_ports.d.ts +43 -0
- package/build/api/src/application/usecases/steps/commit/bugbot/types.d.ts +112 -0
- package/build/api/src/data/model/agent.d.ts +2 -0
- package/build/api/src/data/model/ai.d.ts +28 -0
- package/build/api/src/data/model/branch_configuration.d.ts +6 -0
- package/build/api/src/data/model/branches.d.ts +12 -0
- package/build/api/src/data/model/commit.d.ts +8 -0
- package/build/api/src/data/model/config.d.ts +30 -0
- package/build/api/src/data/model/emoji.d.ts +5 -0
- package/build/api/src/data/model/execution.d.ts +75 -0
- package/build/api/src/data/model/execution_components.d.ts +43 -0
- package/build/api/src/data/model/execution_inputs.d.ts +94 -0
- package/build/api/src/data/model/hotfix.d.ts +7 -0
- package/build/api/src/data/model/images.d.ts +27 -0
- package/build/api/src/data/model/issue.d.ts +27 -0
- package/build/api/src/data/model/issue_types.d.ts +30 -0
- package/build/api/src/data/model/labels.d.ts +60 -0
- package/build/api/src/data/model/locale.d.ts +6 -0
- package/build/api/src/data/model/project_detail.d.ts +15 -0
- package/build/api/src/data/model/projects.d.ts +14 -0
- package/build/api/src/data/model/pull_request.d.ts +32 -0
- package/build/api/src/data/model/recommendation_state.d.ts +6 -0
- package/build/api/src/data/model/release.d.ts +6 -0
- package/build/api/src/data/model/result.d.ts +25 -0
- package/build/api/src/data/model/single_action.d.ts +43 -0
- package/build/api/src/data/model/size_threshold.d.ts +6 -0
- package/build/api/src/data/model/size_thresholds.d.ts +10 -0
- package/build/api/src/data/model/tokens.d.ts +4 -0
- package/build/api/src/data/model/welcome.d.ts +5 -0
- package/build/api/src/data/model/workflows.d.ts +5 -0
- package/build/api/src/domain/agent.d.ts +26 -0
- package/build/api/src/domain/bugbot/finding_identity.d.ts +26 -0
- package/build/api/src/domain/bugbot/review_command.d.ts +16 -0
- package/build/api/src/domain/bugbot/review_configuration.d.ts +25 -0
- package/build/api/src/domain/copilot_lifecycle.d.ts +42 -0
- package/build/api/src/domain/pull_request_description.d.ts +13 -0
- package/build/api/src/tooling/bugbot_analytics.d.ts +24 -0
- package/build/api/src/tooling/bugbot_benchmark.d.ts +26 -0
- package/build/api/src/tooling/bugbot_quality_eval.d.ts +41 -0
- package/build/cli/index.js +12469 -1740
- package/build/github_action/index.js +10042 -1291
- package/package.json +16 -6
- package/setup/ISSUE_TEMPLATE/help_request.yml +5 -0
- package/setup/workflows/agent-cli-provisioning.yml +26 -27
- package/setup/workflows/copilot_branch_sync.yml +19 -0
- package/setup/workflows/copilot_close_inactive_issues.yml +49 -0
- package/setup/workflows/copilot_commit.yml +56 -1
- package/setup/workflows/copilot_credential_health.yml +190 -0
- package/setup/workflows/copilot_issue.yml +42 -2
- package/setup/workflows/copilot_issue_comment.yml +53 -4
- package/setup/workflows/copilot_pull_request.yml +65 -3
- package/setup/workflows/copilot_pull_request_comment.yml +53 -4
- package/setup/workflows/hotfix_workflow.yml +39 -19
- package/setup/workflows/release_workflow.yml +39 -19
package/README.md
CHANGED
|
@@ -30,29 +30,62 @@ Full documentation: **[docs.page/vypdev/copilot](https://docs.page/vypdev/copilo
|
|
|
30
30
|
|
|
31
31
|
## Getting started
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
The recommended onboarding path is to install the published package globally with
|
|
34
|
+
`pnpm` and initialize the target repository with `copilot setup`:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pnpm add --global @vypdev/copilot
|
|
38
|
+
copilot --version
|
|
39
|
+
cd /path/to/your/repository
|
|
40
|
+
copilot setup
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`@vypdev/copilot` contains both the `copilot` CLI and the compiled GitHub Action.
|
|
44
|
+
The global installation makes the CLI and the setup templates available; it does
|
|
45
|
+
not install an Action into GitHub. `copilot setup` is the canonical initialization
|
|
46
|
+
flow and will, according to the selected features:
|
|
47
|
+
|
|
48
|
+
- copy the required workflows, issue templates, and pull request template into the repository;
|
|
49
|
+
- create the labels and issue types used by the workflows;
|
|
50
|
+
- configure non-sensitive Repository Variables; and
|
|
51
|
+
- validate or provision the workflow PAT and provider credentials at the selected scope.
|
|
52
|
+
|
|
53
|
+
The setup PAT entered by the operator is separate from the workflow `PAT` Secret.
|
|
54
|
+
Use `copilot setup --dry-run` to inspect the plan before making local or remote
|
|
55
|
+
changes. See the complete [How to use](https://docs.page/vypdev/copilot/how-to-use)
|
|
56
|
+
guide and [Authentication](https://docs.page/vypdev/copilot/authentication).
|
|
57
|
+
|
|
58
|
+
### Manual workflow integration (advanced)
|
|
59
|
+
|
|
60
|
+
You can integrate the Action manually when the CLI setup flow is not suitable:
|
|
61
|
+
copy selected files from `setup/workflows/` into `.github/workflows/` and add
|
|
62
|
+
steps such as:
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
- uses: vypdev/copilot@v3
|
|
66
|
+
with:
|
|
67
|
+
token: ${{ secrets.PAT }}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This is a lower-level integration path, not an alternative name for
|
|
71
|
+
`copilot setup`: it does not automatically create labels, issue types, Variables,
|
|
72
|
+
Secrets, templates, or the complete set of workflows. Those resources must be
|
|
73
|
+
configured and kept consistent manually. See [Workflow setup](https://docs.page/vypdev/copilot/issues/workflow-setup)
|
|
74
|
+
for action-level examples.
|
|
44
75
|
|
|
45
76
|
---
|
|
46
77
|
|
|
47
78
|
## What it does
|
|
48
79
|
|
|
49
|
-
- **Issues** — Branch creation from labels (feature, bugfix, hotfix, release, docs, chore), project linking, assignees, lifecycle/size/progress labels;
|
|
50
|
-
- **Pull requests** — Link PRs to issues, update project columns, assign reviewers; optional AI-generated PR description and automatic Bugbot review with stable finding threads;
|
|
51
|
-
- **Push (commits)** — Notify the issue, update size/progress
|
|
80
|
+
- **Issues** — Branch creation from labels (feature, bugfix, hotfix, release, docs, chore), project linking, assignees, lifecycle/size/progress labels; new issues receive a contextual `@vypbot` welcome; from comments you can ask for help, explain/diagnose/analyze code, plan work, fix findings, or request an authorized implementation.
|
|
81
|
+
- **Pull requests** — Link PRs to issues, update project columns, assign reviewers; optional AI-generated PR description and automatic Bugbot review with stable finding threads; use `/copilot analyze` or `@vypbot analyze ...` for read-only review, or request an authorized change.
|
|
82
|
+
- **Push (commits)** — Notify the issue, update size/progress, and optionally run Bugbot; a separate agent-free observer watches every branch and recommends synchronizing children when their parent moves.
|
|
52
83
|
- **Projects** — Link issues and PRs to boards and move them to the right columns.
|
|
53
84
|
- **Single actions** — On-demand: check progress, think, create release/tag, mark deployed, etc.
|
|
54
|
-
- **
|
|
55
|
-
- **
|
|
85
|
+
- **Branch synchronization** — Authorized issue/PR commands merge parent into working branch, call the fixer only for eligible conflicts, run verification, reject remote races, push, and report exactly what happened.
|
|
86
|
+
- **Evidence and safety** — Every run writes a bounded Job Summary; PR reviews expose a `Copilot / Review` Check Run, active findings fail that check, agent sandboxes run without approval or network access, and all agent/comment content remains bounded, secret-redacted, and treated as untrusted data.
|
|
87
|
+
- **Bugbot quality** — Hierarchical rules, semantic finding identity, safe GitHub suggestions, analysis-only dry runs, a multilingual regression corpus, real-agent benchmark runner, content-free telemetry/analytics, and the provider-neutral `@vypdev/copilot/bugbot` API.
|
|
88
|
+
- **Concurrency** — Each workflow waits only for older active runs of that same workflow. Polling is adaptive and rate-limit-aware, with a 90-minute queue deadline and no cancellation or overwrite of intermediate runs. Event templates can also skip bot-authored jobs before runner allocation through the optional, generic `COPILOT_BOT_LOGIN` Repository Variable. See [Features → Workflow concurrency](https://docs.page/vypdev/copilot/features#workflow-concurrency-and-sequential-execution).
|
|
56
89
|
|
|
57
90
|
AI features use the configured agent runtime and qualified model; see the [Agents](https://docs.page/vypdev/copilot/agents) and [Security & Operations](https://docs.page/vypdev/copilot/security-operations) documentation. You can run progress and Bugbot locally through the [Single actions → Workflow & CLI](https://docs.page/vypdev/copilot/single-actions/workflow-and-cli) path.
|
|
58
91
|
|
package/action.yml
CHANGED
|
@@ -20,6 +20,18 @@ inputs:
|
|
|
20
20
|
single-action-changelog:
|
|
21
21
|
description: "Changelog target for executing single action."
|
|
22
22
|
default: ""
|
|
23
|
+
single-action-message:
|
|
24
|
+
description: "Markdown message for the publish_issue_comment single action."
|
|
25
|
+
default: ""
|
|
26
|
+
single-action-comment-id:
|
|
27
|
+
description: "Optional issue comment ID to replace or append to."
|
|
28
|
+
default: ""
|
|
29
|
+
single-action-comment-mode:
|
|
30
|
+
description: "Comment publication mode: create, replace, or append. Defaults to create without an ID and replace with an ID."
|
|
31
|
+
default: ""
|
|
32
|
+
inactivity-threshold-hours:
|
|
33
|
+
description: "Hours without issue activity before the scheduled inactivity action closes a waiting issue."
|
|
34
|
+
default: "168"
|
|
23
35
|
emoji-labeled-title:
|
|
24
36
|
description: "Enable titles with emojis based on issue labels."
|
|
25
37
|
default: "true"
|
|
@@ -104,30 +116,36 @@ inputs:
|
|
|
104
116
|
size-xs-label:
|
|
105
117
|
description: "Label to indicate a task of size XS."
|
|
106
118
|
default: "size: XS"
|
|
107
|
-
|
|
108
|
-
description: "
|
|
109
|
-
default: "
|
|
110
|
-
|
|
119
|
+
state-ai-processing-label:
|
|
120
|
+
description: "Temporary label while a Copilot agent is analyzing or working."
|
|
121
|
+
default: "state:ai-processing"
|
|
122
|
+
state-planned-label:
|
|
111
123
|
description: "Label for the Copilot lifecycle state: planned."
|
|
112
|
-
default: "
|
|
113
|
-
|
|
124
|
+
default: "state:planned"
|
|
125
|
+
state-in-progress-label:
|
|
114
126
|
description: "Label for the Copilot lifecycle state: implementation in progress."
|
|
115
|
-
default: "
|
|
116
|
-
|
|
127
|
+
default: "state:in-progress"
|
|
128
|
+
state-reviewing-label:
|
|
117
129
|
description: "Label for the Copilot lifecycle state: reviewing."
|
|
118
|
-
default: "
|
|
119
|
-
|
|
130
|
+
default: "state:reviewing"
|
|
131
|
+
state-changes-requested-label:
|
|
120
132
|
description: "Label for the Copilot lifecycle state: changes requested."
|
|
121
|
-
default: "
|
|
122
|
-
|
|
133
|
+
default: "state:changes-requested"
|
|
134
|
+
state-verified-label:
|
|
123
135
|
description: "Label for the Copilot lifecycle state: verified."
|
|
124
|
-
default: "
|
|
125
|
-
|
|
136
|
+
default: "state:verified"
|
|
137
|
+
state-ready-label:
|
|
126
138
|
description: "Label for the Copilot lifecycle state: ready."
|
|
127
|
-
default: "
|
|
128
|
-
|
|
139
|
+
default: "state:ready"
|
|
140
|
+
state-blocked-label:
|
|
129
141
|
description: "Label for the Copilot lifecycle state: blocked."
|
|
130
|
-
default: "
|
|
142
|
+
default: "state:blocked"
|
|
143
|
+
state-awaiting-maintainer-label:
|
|
144
|
+
description: "Label for work waiting on a maintainer response or approval."
|
|
145
|
+
default: "state:awaiting-maintainer"
|
|
146
|
+
state-awaiting-issue-author-label:
|
|
147
|
+
description: "Label for work waiting on more information or changes from the issue author."
|
|
148
|
+
default: "state:awaiting-issue-author"
|
|
131
149
|
size-xxl-threshold-lines:
|
|
132
150
|
description: "Threshold for size XXL in lines."
|
|
133
151
|
default: "1000"
|
|
@@ -510,25 +528,12 @@ inputs:
|
|
|
510
528
|
tester-command:
|
|
511
529
|
description: "Optional CLI command override for test tasks."
|
|
512
530
|
default: ""
|
|
513
|
-
release-provider:
|
|
514
|
-
description: "Optional provider override for release planning tasks."
|
|
515
|
-
default: ""
|
|
516
|
-
release-model-provider:
|
|
517
|
-
description: "Optional model-provider override for release planning tasks."
|
|
518
|
-
default: ""
|
|
519
|
-
release-effort:
|
|
520
|
-
description: "Optional reasoning effort or model variant override for release tasks."
|
|
521
|
-
default: ""
|
|
522
|
-
release-model:
|
|
523
|
-
description: "Optional model override for release planning tasks."
|
|
524
|
-
default: ""
|
|
525
|
-
release-command:
|
|
526
|
-
description: "Optional CLI command override for release planning tasks."
|
|
527
|
-
default: ""
|
|
528
|
-
|
|
529
531
|
ai-pull-request-description:
|
|
530
532
|
description: "Enable AI-powered automatic updates for pull request descriptions."
|
|
531
533
|
default: "true"
|
|
534
|
+
ai-pull-request-description-mode:
|
|
535
|
+
description: "PR description policy: replace (full ownership), append (preserve human text), preserve (only explicit /copilot description), or disabled."
|
|
536
|
+
default: "replace"
|
|
532
537
|
ai-ignore-files:
|
|
533
538
|
description: "Comma-separated list of files to ignore for AI operations."
|
|
534
539
|
default: ""
|
|
@@ -536,8 +541,8 @@ inputs:
|
|
|
536
541
|
description: "Restrict AI features to only organization/project members."
|
|
537
542
|
default: "false"
|
|
538
543
|
ai-include-reasoning:
|
|
539
|
-
description: "Include
|
|
540
|
-
default: "
|
|
544
|
+
description: "Include concise provider-supplied explanation metadata when available; never requests hidden chain-of-thought."
|
|
545
|
+
default: "false"
|
|
541
546
|
bugbot-severity:
|
|
542
547
|
description: "Minimum severity for potential-problem detections to be published (info, low, medium, high). Findings below this are not posted as comments."
|
|
543
548
|
default: "low"
|
|
@@ -547,6 +552,33 @@ inputs:
|
|
|
547
552
|
bugbot-fix-verify-commands:
|
|
548
553
|
description: "Comma-separated commands to run after bugbot autofix (e.g. pnpm run build, pnpm test, pnpm run lint). The selected agent runtime runs these in its workspace; the runner can re-run them before commit. If empty, no additional verification commands are requested."
|
|
549
554
|
default: ""
|
|
555
|
+
bugbot-dry-run:
|
|
556
|
+
description: "Analyze and return findings without publishing comments, resolving threads, updating checks, or performing autofix."
|
|
557
|
+
default: "false"
|
|
558
|
+
bugbot-effort:
|
|
559
|
+
description: "Review effort policy: low, default, high, or smart (selected from diff complexity)."
|
|
560
|
+
default: "default"
|
|
561
|
+
bugbot-review-drafts:
|
|
562
|
+
description: "Review draft pull requests when true."
|
|
563
|
+
default: "false"
|
|
564
|
+
bugbot-trace-rules:
|
|
565
|
+
description: "Include the ordered rule sources used by the review in its summary."
|
|
566
|
+
default: "false"
|
|
567
|
+
bugbot-suggested-changes:
|
|
568
|
+
description: "Allow safe line-local suggestions to be rendered as GitHub suggested changes."
|
|
569
|
+
default: "true"
|
|
570
|
+
bugbot-telemetry:
|
|
571
|
+
description: "Emit redacted structured review telemetry and include it in the action result."
|
|
572
|
+
default: "true"
|
|
573
|
+
bugbot-fail-on-unresolved:
|
|
574
|
+
description: "Fail this action invocation when the latest Bugbot result still contains open or reopened findings. Disabled by default."
|
|
575
|
+
default: "false"
|
|
576
|
+
bugbot-organization-rules:
|
|
577
|
+
description: "Semicolon- or newline-separated organization rules applied before repository and path-scoped rules."
|
|
578
|
+
default: ""
|
|
579
|
+
outputs:
|
|
580
|
+
bugbot-telemetry:
|
|
581
|
+
description: "JSON array of content-free Bugbot telemetry snapshots for this action run."
|
|
550
582
|
runs:
|
|
551
583
|
using: "node24"
|
|
552
584
|
main: "build/github_action/index.js"
|