@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
|
@@ -2,21 +2,76 @@ name: Copilot - Pull Request
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
pull_request:
|
|
5
|
-
types: [opened, reopened, edited,
|
|
5
|
+
types: [opened, reopened, edited, closed, synchronize]
|
|
6
|
+
pull_request_review:
|
|
7
|
+
types: [submitted, edited, dismissed]
|
|
6
8
|
|
|
7
9
|
jobs:
|
|
8
10
|
copilot-pull-requests:
|
|
11
|
+
if: ${{ (vars.COPILOT_BOT_LOGIN == '' || github.actor != vars.COPILOT_BOT_LOGIN) && github.event.pull_request.head.repo.full_name == github.repository }}
|
|
9
12
|
name: Copilot - Pull Request
|
|
10
13
|
runs-on: ubuntu-latest
|
|
11
14
|
timeout-minutes: 120
|
|
15
|
+
permissions:
|
|
16
|
+
checks: write
|
|
17
|
+
contents: read
|
|
12
18
|
steps:
|
|
13
19
|
- name: Checkout Repository
|
|
14
20
|
uses: actions/checkout@v5
|
|
21
|
+
with:
|
|
22
|
+
persist-credentials: false
|
|
23
|
+
fetch-depth: 0
|
|
24
|
+
|
|
25
|
+
- name: Fetch incremental review range
|
|
26
|
+
if: github.event.action == 'synchronize'
|
|
27
|
+
env:
|
|
28
|
+
BEFORE_SHA: ${{ github.event.before }}
|
|
29
|
+
AFTER_SHA: ${{ github.event.after }}
|
|
30
|
+
run: |
|
|
31
|
+
git cat-file -e "${AFTER_SHA}^{commit}"
|
|
32
|
+
if ! git cat-file -e "${BEFORE_SHA}^{commit}"; then
|
|
33
|
+
echo "::notice::The previous PR commit is unavailable; Bugbot will use the canonical pull-request diff."
|
|
34
|
+
fi
|
|
15
35
|
|
|
16
36
|
- uses: vypdev/copilot@v3
|
|
17
37
|
with:
|
|
18
|
-
ai-ignore-files: build/*
|
|
38
|
+
ai-ignore-files: ${{ vars.AI_IGNORE_FILES || 'build/*' }}
|
|
19
39
|
debug: ${{ vars.DEBUG }}
|
|
40
|
+
main-branch: ${{ vars.MAIN_BRANCH || 'master' }}
|
|
41
|
+
development-branch: ${{ vars.DEVELOPMENT_BRANCH || 'develop' }}
|
|
42
|
+
feature-tree: ${{ vars.FEATURE_TREE || 'feature' }}
|
|
43
|
+
bugfix-tree: ${{ vars.BUGFIX_TREE || 'bugfix' }}
|
|
44
|
+
hotfix-tree: ${{ vars.HOTFIX_TREE || 'hotfix' }}
|
|
45
|
+
release-tree: ${{ vars.RELEASE_TREE || 'release' }}
|
|
46
|
+
docs-tree: ${{ vars.DOCS_TREE || 'docs' }}
|
|
47
|
+
chore-tree: ${{ vars.CHORE_TREE || 'chore' }}
|
|
48
|
+
branch-management-always: ${{ vars.BRANCH_MANAGEMENT_ALWAYS || 'false' }}
|
|
49
|
+
reopen-issue-on-push: ${{ vars.REOPEN_ISSUE_ON_PUSH || 'true' }}
|
|
50
|
+
desired-assignees-count: ${{ vars.DESIRED_ASSIGNEES_COUNT || '1' }}
|
|
51
|
+
desired-reviewers-count: ${{ vars.DESIRED_REVIEWERS_COUNT || '1' }}
|
|
52
|
+
merge-timeout: ${{ vars.MERGE_TIMEOUT || '600' }}
|
|
53
|
+
issues-locale: ${{ vars.ISSUES_LOCALE || 'en-US' }}
|
|
54
|
+
pull-requests-locale: ${{ vars.PULL_REQUESTS_LOCALE || 'en-US' }}
|
|
55
|
+
commit-prefix-transforms: ${{ vars.COMMIT_PREFIX_TRANSFORMS || 'replace-slash' }}
|
|
56
|
+
ai-pull-request-description: ${{ vars.AI_PULL_REQUEST_DESCRIPTION || 'true' }}
|
|
57
|
+
ai-pull-request-description-mode: ${{ vars.AI_PULL_REQUEST_DESCRIPTION_MODE || 'replace' }}
|
|
58
|
+
ai-members-only: ${{ vars.AI_MEMBERS_ONLY || 'false' }}
|
|
59
|
+
ai-include-reasoning: ${{ vars.AI_INCLUDE_REASONING || 'false' }}
|
|
60
|
+
bugbot-severity: ${{ vars.BUGBOT_SEVERITY || 'low' }}
|
|
61
|
+
bugbot-comment-limit: ${{ vars.BUGBOT_COMMENT_LIMIT || '20' }}
|
|
62
|
+
bugbot-fix-verify-commands: ${{ vars.BUGBOT_AUTOFIX_VERIFY_COMMANDS }}
|
|
63
|
+
bugbot-dry-run: ${{ vars.BUGBOT_DRY_RUN || 'false' }}
|
|
64
|
+
bugbot-effort: ${{ vars.BUGBOT_EFFORT || 'smart' }}
|
|
65
|
+
bugbot-review-drafts: ${{ vars.BUGBOT_REVIEW_DRAFTS || 'false' }}
|
|
66
|
+
bugbot-trace-rules: ${{ vars.BUGBOT_TRACE_RULES || 'false' }}
|
|
67
|
+
bugbot-suggested-changes: ${{ vars.BUGBOT_SUGGESTED_CHANGES || 'true' }}
|
|
68
|
+
bugbot-telemetry: ${{ vars.BUGBOT_TELEMETRY || 'true' }}
|
|
69
|
+
bugbot-fail-on-unresolved: ${{ vars.BUGBOT_FAIL_ON_UNRESOLVED || 'false' }}
|
|
70
|
+
bugbot-organization-rules: ${{ vars.BUGBOT_ORGANIZATION_RULES }}
|
|
71
|
+
project-column-issue-created: ${{ vars.PROJECT_COLUMN_ISSUE_CREATED || 'Todo' }}
|
|
72
|
+
project-column-pull-request-created: ${{ vars.PROJECT_COLUMN_PULL_REQUEST_CREATED || 'In Progress' }}
|
|
73
|
+
project-column-issue-in-progress: ${{ vars.PROJECT_COLUMN_ISSUE_IN_PROGRESS || 'In Progress' }}
|
|
74
|
+
project-column-pull-request-in-progress: ${{ vars.PROJECT_COLUMN_PULL_REQUEST_IN_PROGRESS || 'In Progress' }}
|
|
20
75
|
agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }}
|
|
21
76
|
agent-model-provider: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
|
|
22
77
|
agent-model: ${{ vars.AGENT_MODEL || 'gpt-5.6-luna' }}
|
|
@@ -32,6 +87,11 @@ jobs:
|
|
|
32
87
|
fixer-model: ${{ vars.FIXER_MODEL }}
|
|
33
88
|
fixer-effort: ${{ vars.FIXER_EFFORT }}
|
|
34
89
|
fixer-command: ${{ vars.FIXER_COMMAND }}
|
|
90
|
+
planner-provider: ${{ vars.PLANNER_PROVIDER }}
|
|
91
|
+
planner-model-provider: ${{ vars.PLANNER_MODEL_PROVIDER }}
|
|
92
|
+
planner-model: ${{ vars.PLANNER_MODEL }}
|
|
93
|
+
planner-effort: ${{ vars.PLANNER_EFFORT }}
|
|
94
|
+
planner-command: ${{ vars.PLANNER_COMMAND }}
|
|
35
95
|
reviewer-provider: ${{ vars.REVIEWER_PROVIDER }}
|
|
36
96
|
reviewer-model-provider: ${{ vars.REVIEWER_MODEL_PROVIDER }}
|
|
37
97
|
reviewer-model: ${{ vars.REVIEWER_MODEL }}
|
|
@@ -56,5 +116,7 @@ jobs:
|
|
|
56
116
|
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
57
117
|
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
|
58
118
|
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
|
|
59
|
-
CURSOR_API_KEY: ${{ (vars.AGENT_PROVIDER == 'cursor' || vars.FINDINGS_PROVIDER == 'cursor' || vars.FIXER_PROVIDER == 'cursor' || vars.PLANNER_PROVIDER == 'cursor' || vars.REVIEWER_PROVIDER == 'cursor' || vars.TESTER_PROVIDER == 'cursor'
|
|
119
|
+
CURSOR_API_KEY: ${{ (vars.AGENT_PROVIDER == 'cursor' || vars.FINDINGS_PROVIDER == 'cursor' || vars.FIXER_PROVIDER == 'cursor' || vars.PLANNER_PROVIDER == 'cursor' || vars.REVIEWER_PROVIDER == 'cursor' || vars.TESTER_PROVIDER == 'cursor') && secrets.CURSOR_API_KEY || '' }}
|
|
120
|
+
CODEX_API_KEY: ${{ secrets.CODEX_API_KEY }}
|
|
60
121
|
CODEX_ACCESS_TOKEN: ${{ secrets.CODEX_ACCESS_TOKEN }}
|
|
122
|
+
COPILOT_EVIDENCE_TOKEN: ${{ github.token }}
|
|
@@ -6,19 +6,58 @@ on:
|
|
|
6
6
|
|
|
7
7
|
jobs:
|
|
8
8
|
copilot-pull-requests:
|
|
9
|
+
if: ${{ (vars.COPILOT_BOT_LOGIN == '' || github.actor != vars.COPILOT_BOT_LOGIN) && github.event.pull_request.head.repo.full_name == github.repository }}
|
|
9
10
|
name: Copilot - Pull Request Comment
|
|
10
11
|
runs-on: ubuntu-latest
|
|
11
12
|
timeout-minutes: 120
|
|
12
13
|
permissions:
|
|
13
|
-
contents:
|
|
14
|
+
contents: read
|
|
14
15
|
steps:
|
|
15
16
|
- name: Checkout Repository
|
|
16
17
|
uses: actions/checkout@v5
|
|
18
|
+
with:
|
|
19
|
+
persist-credentials: false
|
|
20
|
+
fetch-depth: 0
|
|
17
21
|
|
|
18
22
|
- uses: vypdev/copilot@v3
|
|
19
23
|
with:
|
|
20
|
-
ai-ignore-files: build/*
|
|
24
|
+
ai-ignore-files: ${{ vars.AI_IGNORE_FILES || 'build/*' }}
|
|
21
25
|
debug: ${{ vars.DEBUG }}
|
|
26
|
+
main-branch: ${{ vars.MAIN_BRANCH || 'master' }}
|
|
27
|
+
development-branch: ${{ vars.DEVELOPMENT_BRANCH || 'develop' }}
|
|
28
|
+
feature-tree: ${{ vars.FEATURE_TREE || 'feature' }}
|
|
29
|
+
bugfix-tree: ${{ vars.BUGFIX_TREE || 'bugfix' }}
|
|
30
|
+
hotfix-tree: ${{ vars.HOTFIX_TREE || 'hotfix' }}
|
|
31
|
+
release-tree: ${{ vars.RELEASE_TREE || 'release' }}
|
|
32
|
+
docs-tree: ${{ vars.DOCS_TREE || 'docs' }}
|
|
33
|
+
chore-tree: ${{ vars.CHORE_TREE || 'chore' }}
|
|
34
|
+
branch-management-always: ${{ vars.BRANCH_MANAGEMENT_ALWAYS || 'false' }}
|
|
35
|
+
reopen-issue-on-push: ${{ vars.REOPEN_ISSUE_ON_PUSH || 'true' }}
|
|
36
|
+
desired-assignees-count: ${{ vars.DESIRED_ASSIGNEES_COUNT || '1' }}
|
|
37
|
+
desired-reviewers-count: ${{ vars.DESIRED_REVIEWERS_COUNT || '1' }}
|
|
38
|
+
merge-timeout: ${{ vars.MERGE_TIMEOUT || '600' }}
|
|
39
|
+
issues-locale: ${{ vars.ISSUES_LOCALE || 'en-US' }}
|
|
40
|
+
pull-requests-locale: ${{ vars.PULL_REQUESTS_LOCALE || 'en-US' }}
|
|
41
|
+
commit-prefix-transforms: ${{ vars.COMMIT_PREFIX_TRANSFORMS || 'replace-slash' }}
|
|
42
|
+
ai-pull-request-description: ${{ vars.AI_PULL_REQUEST_DESCRIPTION || 'true' }}
|
|
43
|
+
ai-pull-request-description-mode: ${{ vars.AI_PULL_REQUEST_DESCRIPTION_MODE || 'replace' }}
|
|
44
|
+
ai-members-only: ${{ vars.AI_MEMBERS_ONLY || 'false' }}
|
|
45
|
+
ai-include-reasoning: ${{ vars.AI_INCLUDE_REASONING || 'false' }}
|
|
46
|
+
bugbot-severity: ${{ vars.BUGBOT_SEVERITY || 'low' }}
|
|
47
|
+
bugbot-comment-limit: ${{ vars.BUGBOT_COMMENT_LIMIT || '20' }}
|
|
48
|
+
bugbot-fix-verify-commands: ${{ vars.BUGBOT_AUTOFIX_VERIFY_COMMANDS }}
|
|
49
|
+
bugbot-dry-run: ${{ vars.BUGBOT_DRY_RUN || 'false' }}
|
|
50
|
+
bugbot-effort: ${{ vars.BUGBOT_EFFORT || 'smart' }}
|
|
51
|
+
bugbot-review-drafts: ${{ vars.BUGBOT_REVIEW_DRAFTS || 'false' }}
|
|
52
|
+
bugbot-trace-rules: ${{ vars.BUGBOT_TRACE_RULES || 'false' }}
|
|
53
|
+
bugbot-suggested-changes: ${{ vars.BUGBOT_SUGGESTED_CHANGES || 'true' }}
|
|
54
|
+
bugbot-telemetry: ${{ vars.BUGBOT_TELEMETRY || 'true' }}
|
|
55
|
+
bugbot-fail-on-unresolved: ${{ vars.BUGBOT_FAIL_ON_UNRESOLVED || 'false' }}
|
|
56
|
+
bugbot-organization-rules: ${{ vars.BUGBOT_ORGANIZATION_RULES }}
|
|
57
|
+
project-column-issue-created: ${{ vars.PROJECT_COLUMN_ISSUE_CREATED || 'Todo' }}
|
|
58
|
+
project-column-pull-request-created: ${{ vars.PROJECT_COLUMN_PULL_REQUEST_CREATED || 'In Progress' }}
|
|
59
|
+
project-column-issue-in-progress: ${{ vars.PROJECT_COLUMN_ISSUE_IN_PROGRESS || 'In Progress' }}
|
|
60
|
+
project-column-pull-request-in-progress: ${{ vars.PROJECT_COLUMN_PULL_REQUEST_IN_PROGRESS || 'In Progress' }}
|
|
22
61
|
agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }}
|
|
23
62
|
agent-model-provider: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
|
|
24
63
|
agent-model: ${{ vars.AGENT_MODEL || 'gpt-5.6-luna' }}
|
|
@@ -39,8 +78,17 @@ jobs:
|
|
|
39
78
|
reviewer-model: ${{ vars.REVIEWER_MODEL }}
|
|
40
79
|
reviewer-effort: ${{ vars.REVIEWER_EFFORT }}
|
|
41
80
|
reviewer-command: ${{ vars.REVIEWER_COMMAND }}
|
|
81
|
+
planner-provider: ${{ vars.PLANNER_PROVIDER }}
|
|
82
|
+
planner-model-provider: ${{ vars.PLANNER_MODEL_PROVIDER }}
|
|
83
|
+
planner-model: ${{ vars.PLANNER_MODEL }}
|
|
84
|
+
planner-effort: ${{ vars.PLANNER_EFFORT }}
|
|
85
|
+
planner-command: ${{ vars.PLANNER_COMMAND }}
|
|
86
|
+
tester-provider: ${{ vars.TESTER_PROVIDER }}
|
|
87
|
+
tester-model-provider: ${{ vars.TESTER_MODEL_PROVIDER }}
|
|
88
|
+
tester-model: ${{ vars.TESTER_MODEL }}
|
|
89
|
+
tester-effort: ${{ vars.TESTER_EFFORT }}
|
|
90
|
+
tester-command: ${{ vars.TESTER_COMMAND }}
|
|
42
91
|
project-ids: ${{ vars.PROJECT_IDS }}
|
|
43
|
-
bugbot-fix-verify-commands: ${{ vars.BUGBOT_AUTOFIX_VERIFY_COMMANDS }}
|
|
44
92
|
token: ${{ secrets.PAT }}
|
|
45
93
|
env:
|
|
46
94
|
AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }}
|
|
@@ -59,5 +107,6 @@ jobs:
|
|
|
59
107
|
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
60
108
|
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
|
61
109
|
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
|
|
62
|
-
CURSOR_API_KEY: ${{ (vars.AGENT_PROVIDER == 'cursor' || vars.FINDINGS_PROVIDER == 'cursor' || vars.FIXER_PROVIDER == 'cursor' || vars.PLANNER_PROVIDER == 'cursor' || vars.REVIEWER_PROVIDER == 'cursor' || vars.TESTER_PROVIDER == 'cursor'
|
|
110
|
+
CURSOR_API_KEY: ${{ (vars.AGENT_PROVIDER == 'cursor' || vars.FINDINGS_PROVIDER == 'cursor' || vars.FIXER_PROVIDER == 'cursor' || vars.PLANNER_PROVIDER == 'cursor' || vars.REVIEWER_PROVIDER == 'cursor' || vars.TESTER_PROVIDER == 'cursor') && secrets.CURSOR_API_KEY || '' }}
|
|
111
|
+
CODEX_API_KEY: ${{ secrets.CODEX_API_KEY }}
|
|
63
112
|
CODEX_ACCESS_TOKEN: ${{ secrets.CODEX_ACCESS_TOKEN }}
|
|
@@ -47,6 +47,8 @@ jobs:
|
|
|
47
47
|
contents: write
|
|
48
48
|
steps:
|
|
49
49
|
- uses: actions/checkout@v5
|
|
50
|
+
with:
|
|
51
|
+
persist-credentials: true
|
|
50
52
|
|
|
51
53
|
- name: Set up Node.js 24
|
|
52
54
|
uses: actions/setup-node@v7
|
|
@@ -108,34 +110,21 @@ jobs:
|
|
|
108
110
|
needs: [ prepare-version-files ]
|
|
109
111
|
permissions:
|
|
110
112
|
contents: read
|
|
111
|
-
env:
|
|
112
|
-
AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }}
|
|
113
|
-
AGENT_MODEL_PROVIDER: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
|
|
114
|
-
AGENT_MODEL: ${{ vars.AGENT_MODEL }}
|
|
115
|
-
AGENT_EFFORT: ${{ vars.AGENT_EFFORT }}
|
|
116
|
-
AGENT_PROVISIONING: ${{ vars.AGENT_PROVISIONING || 'auto' }}
|
|
117
|
-
AGENT_ALLOWED_MODEL_PROVIDERS: ${{ vars.AGENT_ALLOWED_MODEL_PROVIDERS || 'openai' }}
|
|
118
|
-
AGENT_ALLOWED_MODELS: ${{ vars.AGENT_ALLOWED_MODELS || 'openai/gpt-5.6-luna' }}
|
|
119
|
-
AGENT_COMMAND: ${{ vars.AGENT_COMMAND }}
|
|
120
|
-
CODEX_VERSION: ${{ vars.CODEX_VERSION }}
|
|
121
|
-
OPENCODE_VERSION: ${{ vars.OPENCODE_VERSION }}
|
|
122
|
-
CURSOR_INSTALLER_SHA256: ${{ vars.CURSOR_INSTALLER_SHA256 }}
|
|
123
|
-
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
|
|
124
|
-
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
125
|
-
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
126
|
-
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
|
127
|
-
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
|
|
128
|
-
CURSOR_API_KEY: ${{ (vars.AGENT_PROVIDER == 'cursor' || vars.FINDINGS_PROVIDER == 'cursor' || vars.FIXER_PROVIDER == 'cursor' || vars.PLANNER_PROVIDER == 'cursor' || vars.REVIEWER_PROVIDER == 'cursor' || vars.TESTER_PROVIDER == 'cursor' || vars.RELEASE_PROVIDER == 'cursor') && secrets.CURSOR_API_KEY || '' }}
|
|
129
|
-
CODEX_ACCESS_TOKEN: ${{ secrets.CODEX_ACCESS_TOKEN }}
|
|
130
113
|
steps:
|
|
131
114
|
- name: Checkout Repository
|
|
132
115
|
uses: actions/checkout@v5
|
|
116
|
+
with:
|
|
117
|
+
persist-credentials: false
|
|
133
118
|
|
|
134
119
|
- name: Copilot - Create Tag
|
|
135
120
|
uses: vypdev/copilot@v3
|
|
136
121
|
if: ${{ success() }}
|
|
137
122
|
with:
|
|
138
123
|
debug: ${{ vars.DEBUG }}
|
|
124
|
+
main-branch: ${{ vars.MAIN_BRANCH || 'master' }}
|
|
125
|
+
development-branch: ${{ vars.DEVELOPMENT_BRANCH || 'develop' }}
|
|
126
|
+
release-tree: ${{ vars.RELEASE_TREE || 'release' }}
|
|
127
|
+
hotfix-tree: ${{ vars.HOTFIX_TREE || 'hotfix' }}
|
|
139
128
|
single-action: 'create_tag'
|
|
140
129
|
single-action-issue: '${{ github.event.inputs.issue }}'
|
|
141
130
|
single-action-version: '${{ github.event.inputs.version }}'
|
|
@@ -161,6 +150,10 @@ jobs:
|
|
|
161
150
|
if: ${{ success() }}
|
|
162
151
|
with:
|
|
163
152
|
debug: ${{ vars.DEBUG }}
|
|
153
|
+
main-branch: ${{ vars.MAIN_BRANCH || 'master' }}
|
|
154
|
+
development-branch: ${{ vars.DEVELOPMENT_BRANCH || 'develop' }}
|
|
155
|
+
release-tree: ${{ vars.RELEASE_TREE || 'release' }}
|
|
156
|
+
hotfix-tree: ${{ vars.HOTFIX_TREE || 'hotfix' }}
|
|
164
157
|
single-action: 'create_release'
|
|
165
158
|
single-action-issue: '${{ github.event.inputs.issue }}'
|
|
166
159
|
single-action-version: '${{ github.event.inputs.version }}'
|
|
@@ -192,6 +185,10 @@ jobs:
|
|
|
192
185
|
if: ${{ success() }}
|
|
193
186
|
with:
|
|
194
187
|
debug: ${{ vars.DEBUG }}
|
|
188
|
+
main-branch: ${{ vars.MAIN_BRANCH || 'master' }}
|
|
189
|
+
development-branch: ${{ vars.DEVELOPMENT_BRANCH || 'develop' }}
|
|
190
|
+
release-tree: ${{ vars.RELEASE_TREE || 'release' }}
|
|
191
|
+
hotfix-tree: ${{ vars.HOTFIX_TREE || 'hotfix' }}
|
|
195
192
|
single-action: 'deployed_action'
|
|
196
193
|
single-action-issue: '${{ github.event.inputs.issue }}'
|
|
197
194
|
agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }}
|
|
@@ -210,3 +207,26 @@ jobs:
|
|
|
210
207
|
fixer-effort: ${{ vars.FIXER_EFFORT }}
|
|
211
208
|
fixer-command: ${{ vars.FIXER_COMMAND }}
|
|
212
209
|
token: ${{ secrets.PAT }}
|
|
210
|
+
|
|
211
|
+
report-failure:
|
|
212
|
+
name: Report deployment failure
|
|
213
|
+
runs-on: ubuntu-latest
|
|
214
|
+
timeout-minutes: 5
|
|
215
|
+
needs: [ queue-gate, prepare-version-files, tag ]
|
|
216
|
+
if: ${{ failure() && github.event.inputs.issue != '-1' }}
|
|
217
|
+
permissions:
|
|
218
|
+
issues: write
|
|
219
|
+
steps:
|
|
220
|
+
- name: Report failure on launcher issue
|
|
221
|
+
# This tag is published after the release changes reach master.
|
|
222
|
+
uses: vypdev/copilot@v3
|
|
223
|
+
with:
|
|
224
|
+
single-action: publish_issue_comment
|
|
225
|
+
single-action-issue: '${{ github.event.inputs.issue }}'
|
|
226
|
+
single-action-message: |
|
|
227
|
+
## ❌ Hotfix deployment failed
|
|
228
|
+
|
|
229
|
+
The hotfix workflow did not complete successfully.
|
|
230
|
+
|
|
231
|
+
[Review the workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
|
|
232
|
+
token: ${{ github.token }}
|
|
@@ -47,6 +47,8 @@ jobs:
|
|
|
47
47
|
contents: write
|
|
48
48
|
steps:
|
|
49
49
|
- uses: actions/checkout@v5
|
|
50
|
+
with:
|
|
51
|
+
persist-credentials: true
|
|
50
52
|
|
|
51
53
|
- name: Set up Node.js 24
|
|
52
54
|
uses: actions/setup-node@v7
|
|
@@ -108,34 +110,21 @@ jobs:
|
|
|
108
110
|
needs: [ prepare-version-files ]
|
|
109
111
|
permissions:
|
|
110
112
|
contents: read
|
|
111
|
-
env:
|
|
112
|
-
AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }}
|
|
113
|
-
AGENT_MODEL_PROVIDER: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
|
|
114
|
-
AGENT_MODEL: ${{ vars.AGENT_MODEL }}
|
|
115
|
-
AGENT_EFFORT: ${{ vars.AGENT_EFFORT }}
|
|
116
|
-
AGENT_PROVISIONING: ${{ vars.AGENT_PROVISIONING || 'auto' }}
|
|
117
|
-
AGENT_ALLOWED_MODEL_PROVIDERS: ${{ vars.AGENT_ALLOWED_MODEL_PROVIDERS || 'openai' }}
|
|
118
|
-
AGENT_ALLOWED_MODELS: ${{ vars.AGENT_ALLOWED_MODELS || 'openai/gpt-5.6-luna' }}
|
|
119
|
-
AGENT_COMMAND: ${{ vars.AGENT_COMMAND }}
|
|
120
|
-
CODEX_VERSION: ${{ vars.CODEX_VERSION }}
|
|
121
|
-
OPENCODE_VERSION: ${{ vars.OPENCODE_VERSION }}
|
|
122
|
-
CURSOR_INSTALLER_SHA256: ${{ vars.CURSOR_INSTALLER_SHA256 }}
|
|
123
|
-
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
|
|
124
|
-
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
125
|
-
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
126
|
-
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
|
127
|
-
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
|
|
128
|
-
CURSOR_API_KEY: ${{ (vars.AGENT_PROVIDER == 'cursor' || vars.FINDINGS_PROVIDER == 'cursor' || vars.FIXER_PROVIDER == 'cursor' || vars.PLANNER_PROVIDER == 'cursor' || vars.REVIEWER_PROVIDER == 'cursor' || vars.TESTER_PROVIDER == 'cursor' || vars.RELEASE_PROVIDER == 'cursor') && secrets.CURSOR_API_KEY || '' }}
|
|
129
|
-
CODEX_ACCESS_TOKEN: ${{ secrets.CODEX_ACCESS_TOKEN }}
|
|
130
113
|
steps:
|
|
131
114
|
- name: Checkout Repository
|
|
132
115
|
uses: actions/checkout@v5
|
|
116
|
+
with:
|
|
117
|
+
persist-credentials: false
|
|
133
118
|
|
|
134
119
|
- name: Copilot - Create Tag
|
|
135
120
|
uses: vypdev/copilot@v3
|
|
136
121
|
if: ${{ success() }}
|
|
137
122
|
with:
|
|
138
123
|
debug: ${{ vars.DEBUG }}
|
|
124
|
+
main-branch: ${{ vars.MAIN_BRANCH || 'master' }}
|
|
125
|
+
development-branch: ${{ vars.DEVELOPMENT_BRANCH || 'develop' }}
|
|
126
|
+
release-tree: ${{ vars.RELEASE_TREE || 'release' }}
|
|
127
|
+
hotfix-tree: ${{ vars.HOTFIX_TREE || 'hotfix' }}
|
|
139
128
|
single-action: 'create_tag'
|
|
140
129
|
single-action-issue: '${{ github.event.inputs.issue }}'
|
|
141
130
|
single-action-version: '${{ github.event.inputs.version }}'
|
|
@@ -161,6 +150,10 @@ jobs:
|
|
|
161
150
|
if: ${{ success() }}
|
|
162
151
|
with:
|
|
163
152
|
debug: ${{ vars.DEBUG }}
|
|
153
|
+
main-branch: ${{ vars.MAIN_BRANCH || 'master' }}
|
|
154
|
+
development-branch: ${{ vars.DEVELOPMENT_BRANCH || 'develop' }}
|
|
155
|
+
release-tree: ${{ vars.RELEASE_TREE || 'release' }}
|
|
156
|
+
hotfix-tree: ${{ vars.HOTFIX_TREE || 'hotfix' }}
|
|
164
157
|
single-action: 'create_release'
|
|
165
158
|
single-action-issue: '${{ github.event.inputs.issue }}'
|
|
166
159
|
single-action-version: '${{ github.event.inputs.version }}'
|
|
@@ -192,6 +185,10 @@ jobs:
|
|
|
192
185
|
if: ${{ success() }}
|
|
193
186
|
with:
|
|
194
187
|
debug: ${{ vars.DEBUG }}
|
|
188
|
+
main-branch: ${{ vars.MAIN_BRANCH || 'master' }}
|
|
189
|
+
development-branch: ${{ vars.DEVELOPMENT_BRANCH || 'develop' }}
|
|
190
|
+
release-tree: ${{ vars.RELEASE_TREE || 'release' }}
|
|
191
|
+
hotfix-tree: ${{ vars.HOTFIX_TREE || 'hotfix' }}
|
|
195
192
|
single-action: 'deployed_action'
|
|
196
193
|
single-action-issue: '${{ github.event.inputs.issue }}'
|
|
197
194
|
agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }}
|
|
@@ -210,3 +207,26 @@ jobs:
|
|
|
210
207
|
fixer-effort: ${{ vars.FIXER_EFFORT }}
|
|
211
208
|
fixer-command: ${{ vars.FIXER_COMMAND }}
|
|
212
209
|
token: ${{ secrets.PAT }}
|
|
210
|
+
|
|
211
|
+
report-failure:
|
|
212
|
+
name: Report deployment failure
|
|
213
|
+
runs-on: ubuntu-latest
|
|
214
|
+
timeout-minutes: 5
|
|
215
|
+
needs: [ queue-gate, prepare-version-files, tag ]
|
|
216
|
+
if: ${{ failure() && github.event.inputs.issue != '-1' }}
|
|
217
|
+
permissions:
|
|
218
|
+
issues: write
|
|
219
|
+
steps:
|
|
220
|
+
- name: Report failure on launcher issue
|
|
221
|
+
# This tag is published after the release changes reach master.
|
|
222
|
+
uses: vypdev/copilot@v3
|
|
223
|
+
with:
|
|
224
|
+
single-action: publish_issue_comment
|
|
225
|
+
single-action-issue: '${{ github.event.inputs.issue }}'
|
|
226
|
+
single-action-message: |
|
|
227
|
+
## ❌ Release deployment failed
|
|
228
|
+
|
|
229
|
+
The release workflow did not complete successfully.
|
|
230
|
+
|
|
231
|
+
[Review the workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
|
|
232
|
+
token: ${{ github.token }}
|