@vypdev/copilot 3.2.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.
@@ -0,0 +1,144 @@
1
+ <!--
2
+ Thank you for opening a Pull Request ๐Ÿš€
3
+ Please fill out this template as completely as possible.
4
+ Clear PRs = faster reviews = better software.
5
+ -->
6
+
7
+ # ๐Ÿ“Œ Summary
8
+ <!--
9
+ Briefly explain what this PR does and why it is needed.
10
+ Focus on the intent, not the implementation details.
11
+ -->
12
+
13
+ ---
14
+
15
+ ## ๐ŸŽฏ Related Issues / Tickets
16
+ <!--
17
+ Link any related issues, tickets, or discussions.
18
+ Use GitHub keywords to auto-close issues when merged.
19
+ -->
20
+ - Closes #
21
+ - Related to #
22
+
23
+ ---
24
+
25
+ ## ๐Ÿงฉ Scope of Changes
26
+ <!--
27
+ Describe the scope and nature of the changes at a high level.
28
+ -->
29
+ - Added:
30
+ - Updated:
31
+ - Removed:
32
+ - Refactored:
33
+
34
+ ---
35
+
36
+ ## ๐Ÿ› ๏ธ Technical Details
37
+ <!--
38
+ Explain important technical decisions, trade-offs, or architecture changes.
39
+ Include anything that may not be obvious from reading the code.
40
+ -->
41
+
42
+ ---
43
+
44
+ ## ๐Ÿ” How to Test
45
+ <!--
46
+ Provide clear, step-by-step instructions to test this change.
47
+ Assume the reviewer is unfamiliar with the context.
48
+ -->
49
+ 1.
50
+ 2.
51
+ 3.
52
+
53
+ ---
54
+
55
+ ## ๐Ÿงช Test Coverage
56
+ <!--
57
+ Indicate what types of tests were added or updated.
58
+ -->
59
+ - [ ] Unit tests
60
+ - [ ] Integration tests
61
+ - [ ] End-to-end (E2E) tests
62
+ - [ ] Manual testing only (explain why)
63
+
64
+ ---
65
+
66
+ ## ๐Ÿ“ธ Screenshots / Recordings (UI changes only)
67
+ <!--
68
+ Include before/after screenshots or short videos if this PR affects the UI.
69
+ -->
70
+
71
+ ---
72
+
73
+ ## โš ๏ธ Breaking Changes
74
+ <!--
75
+ List any breaking changes and required migration steps.
76
+ If none, state "None".
77
+ -->
78
+ - None
79
+
80
+ ---
81
+
82
+ ## ๐Ÿš€ Deployment Notes
83
+ <!--
84
+ Anything required or important during deployment:
85
+ - environment variables
86
+ - database migrations
87
+ - feature flags
88
+ - deployment order
89
+ -->
90
+ - [ ] Requires database migration
91
+ - [ ] Requires environment variable changes
92
+ - [ ] Requires feature flag toggle
93
+ - [ ] No special deployment steps
94
+
95
+ Details:
96
+
97
+ ---
98
+
99
+ ## ๐Ÿ”’ Security Considerations
100
+ <!--
101
+ Mention any security-related implications or validations.
102
+ -->
103
+ - [ ] No security impact
104
+ - [ ] Input validation changes
105
+ - [ ] Authentication / authorization changes
106
+ - [ ] Sensitive data handling changes
107
+
108
+ ---
109
+
110
+ ## ๐Ÿ“ˆ Performance Impact
111
+ <!--
112
+ Describe any performance considerations, improvements, or regressions.
113
+ -->
114
+ - [ ] No performance impact
115
+ - [ ] Improves performance
116
+ - [ ] Potential performance regression (explain)
117
+
118
+ ---
119
+
120
+ ## ๐Ÿ“ Notes for Reviewers
121
+ <!--
122
+ Highlight areas that need special attention or context for reviewers.
123
+ -->
124
+
125
+ ---
126
+
127
+ ## โœ… Checklist
128
+ <!--
129
+ Confirm all items before requesting review.
130
+ -->
131
+ - [ ] I have self-reviewed my code
132
+ - [ ] Code follows project standards and conventions
133
+ - [ ] Tests have been added or updated
134
+ - [ ] Documentation has been updated (if applicable)
135
+ - [ ] No new warnings or lint errors
136
+ - [ ] Changes are backward compatible or breaking changes are documented
137
+
138
+ ---
139
+
140
+ ## ๐Ÿ“š Additional Context
141
+ <!--
142
+ Any extra information that may help reviewers understand this PR.
143
+ Links, references, or follow-up work.
144
+ -->
@@ -0,0 +1,54 @@
1
+ name: Agent CLI Provisioning Check
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ workflow_call:
6
+
7
+ jobs:
8
+ verify-agent-clis:
9
+ name: Verify provisioned agent CLIs
10
+ runs-on: ubuntu-latest
11
+ timeout-minutes: 10
12
+ permissions:
13
+ contents: read
14
+ steps:
15
+ - name: Checkout repository
16
+ uses: actions/checkout@v5
17
+
18
+ - name: Verify selected CLI binary and headless contract
19
+ shell: bash
20
+ env:
21
+ AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }}
22
+ AGENT_COMMAND: ${{ vars.AGENT_COMMAND }}
23
+ run: |
24
+ set -euo pipefail
25
+
26
+ if [[ -n "${AGENT_COMMAND// }" ]]; then
27
+ read -r executable _ <<< "$AGENT_COMMAND"
28
+ command -v "$executable"
29
+ echo "Configured agent command: $executable"
30
+ else
31
+ case "$AGENT_PROVIDER" in
32
+ opencode)
33
+ command -v opencode
34
+ opencode --version >/dev/null
35
+ opencode run --help >/dev/null
36
+ ;;
37
+ codex)
38
+ command -v codex
39
+ codex --version >/dev/null
40
+ codex exec --help >/dev/null
41
+ ;;
42
+ cursor)
43
+ command -v agent
44
+ agent --version >/dev/null
45
+ agent --help >/dev/null
46
+ ;;
47
+ *)
48
+ echo "Unsupported AGENT_PROVIDER: $AGENT_PROVIDER" >&2
49
+ exit 1
50
+ ;;
51
+ esac
52
+ fi
53
+
54
+ echo "Agent CLI contract passed for $AGENT_PROVIDER."
@@ -0,0 +1,57 @@
1
+ name: Copilot - Commit
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '**'
7
+ - '!master'
8
+ - '!develop'
9
+
10
+ jobs:
11
+ copilot-commits:
12
+ name: Copilot - Commit
13
+ runs-on: ubuntu-latest
14
+ timeout-minutes: 120
15
+ steps:
16
+ - name: Checkout Repository
17
+ uses: actions/checkout@v5
18
+
19
+ - uses: vypdev/copilot@v3
20
+ with:
21
+ debug: ${{ vars.DEBUG }}
22
+ project-ids: ${{ vars.PROJECT_IDS }}
23
+ agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }}
24
+ agent-model-provider: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
25
+ agent-model: ${{ vars.AGENT_MODEL || 'gpt-5.6-luna' }}
26
+ agent-effort: ${{ vars.AGENT_EFFORT }}
27
+ agent-command: ${{ vars.AGENT_COMMAND }}
28
+ findings-provider: ${{ vars.FINDINGS_PROVIDER }}
29
+ findings-model-provider: ${{ vars.FINDINGS_MODEL_PROVIDER }}
30
+ findings-model: ${{ vars.FINDINGS_MODEL }}
31
+ findings-effort: ${{ vars.FINDINGS_EFFORT }}
32
+ findings-command: ${{ vars.FINDINGS_COMMAND }}
33
+ fixer-provider: ${{ vars.FIXER_PROVIDER }}
34
+ fixer-model-provider: ${{ vars.FIXER_MODEL_PROVIDER }}
35
+ fixer-model: ${{ vars.FIXER_MODEL }}
36
+ fixer-effort: ${{ vars.FIXER_EFFORT }}
37
+ fixer-command: ${{ vars.FIXER_COMMAND }}
38
+ token: ${{ secrets.PAT }}
39
+ env:
40
+ AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }}
41
+ AGENT_MODEL_PROVIDER: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
42
+ AGENT_MODEL: ${{ vars.AGENT_MODEL }}
43
+ AGENT_EFFORT: ${{ vars.AGENT_EFFORT }}
44
+ AGENT_PROVISIONING: ${{ vars.AGENT_PROVISIONING || 'auto' }}
45
+ AGENT_ALLOWED_MODEL_PROVIDERS: ${{ vars.AGENT_ALLOWED_MODEL_PROVIDERS || 'openai' }}
46
+ AGENT_ALLOWED_MODELS: ${{ vars.AGENT_ALLOWED_MODELS || 'openai/gpt-5.6-luna' }}
47
+ AGENT_COMMAND: ${{ vars.AGENT_COMMAND }}
48
+ CODEX_VERSION: ${{ vars.CODEX_VERSION }}
49
+ OPENCODE_VERSION: ${{ vars.OPENCODE_VERSION }}
50
+ CURSOR_INSTALLER_SHA256: ${{ vars.CURSOR_INSTALLER_SHA256 }}
51
+ OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
52
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
53
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
54
+ GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
55
+ OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
56
+ 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 || '' }}
57
+ CODEX_ACCESS_TOKEN: ${{ secrets.CODEX_ACCESS_TOKEN }}
@@ -0,0 +1,61 @@
1
+ name: Copilot - Issue
2
+
3
+ on:
4
+ issues:
5
+ types: [opened, reopened, edited, labeled, unlabeled, assigned, unassigned]
6
+
7
+ jobs:
8
+ copilot-issues:
9
+ name: Copilot - Issue
10
+ runs-on: ubuntu-latest
11
+ timeout-minutes: 120
12
+ permissions:
13
+ contents: read
14
+ steps:
15
+ - name: Checkout Repository
16
+ uses: actions/checkout@v5
17
+
18
+ - uses: vypdev/copilot@v3
19
+ with:
20
+ ai-ignore-files: build/*
21
+ debug: ${{ vars.DEBUG }}
22
+ agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }}
23
+ agent-model-provider: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
24
+ agent-model: ${{ vars.AGENT_MODEL || 'gpt-5.6-luna' }}
25
+ agent-effort: ${{ vars.AGENT_EFFORT }}
26
+ agent-command: ${{ vars.AGENT_COMMAND }}
27
+ findings-provider: ${{ vars.FINDINGS_PROVIDER }}
28
+ findings-model-provider: ${{ vars.FINDINGS_MODEL_PROVIDER }}
29
+ findings-model: ${{ vars.FINDINGS_MODEL }}
30
+ findings-effort: ${{ vars.FINDINGS_EFFORT }}
31
+ findings-command: ${{ vars.FINDINGS_COMMAND }}
32
+ fixer-provider: ${{ vars.FIXER_PROVIDER }}
33
+ fixer-model-provider: ${{ vars.FIXER_MODEL_PROVIDER }}
34
+ fixer-model: ${{ vars.FIXER_MODEL }}
35
+ fixer-effort: ${{ vars.FIXER_EFFORT }}
36
+ fixer-command: ${{ vars.FIXER_COMMAND }}
37
+ planner-provider: ${{ vars.PLANNER_PROVIDER }}
38
+ planner-model-provider: ${{ vars.PLANNER_MODEL_PROVIDER }}
39
+ planner-model: ${{ vars.PLANNER_MODEL }}
40
+ planner-effort: ${{ vars.PLANNER_EFFORT }}
41
+ planner-command: ${{ vars.PLANNER_COMMAND }}
42
+ token: ${{ secrets.PAT }}
43
+ env:
44
+ AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }}
45
+ AGENT_MODEL_PROVIDER: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
46
+ AGENT_MODEL: ${{ vars.AGENT_MODEL }}
47
+ AGENT_EFFORT: ${{ vars.AGENT_EFFORT }}
48
+ AGENT_PROVISIONING: ${{ vars.AGENT_PROVISIONING || 'auto' }}
49
+ AGENT_ALLOWED_MODEL_PROVIDERS: ${{ vars.AGENT_ALLOWED_MODEL_PROVIDERS || 'openai' }}
50
+ AGENT_ALLOWED_MODELS: ${{ vars.AGENT_ALLOWED_MODELS || 'openai/gpt-5.6-luna' }}
51
+ AGENT_COMMAND: ${{ vars.AGENT_COMMAND }}
52
+ CODEX_VERSION: ${{ vars.CODEX_VERSION }}
53
+ OPENCODE_VERSION: ${{ vars.OPENCODE_VERSION }}
54
+ CURSOR_INSTALLER_SHA256: ${{ vars.CURSOR_INSTALLER_SHA256 }}
55
+ OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
56
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
57
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
58
+ GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
59
+ OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
60
+ 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 || '' }}
61
+ CODEX_ACCESS_TOKEN: ${{ secrets.CODEX_ACCESS_TOKEN }}
@@ -0,0 +1,63 @@
1
+ name: Copilot - Issue Comment
2
+
3
+ on:
4
+ issue_comment:
5
+ types: [created, edited]
6
+
7
+ jobs:
8
+ copilot-issues:
9
+ name: Copilot - Issue Comment
10
+ runs-on: ubuntu-latest
11
+ timeout-minutes: 120
12
+ permissions:
13
+ contents: write
14
+ steps:
15
+ - name: Checkout Repository
16
+ uses: actions/checkout@v5
17
+
18
+ - uses: vypdev/copilot@v3
19
+ with:
20
+ ai-ignore-files: build/*
21
+ debug: ${{ vars.DEBUG }}
22
+ agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }}
23
+ agent-model-provider: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
24
+ agent-model: ${{ vars.AGENT_MODEL || 'gpt-5.6-luna' }}
25
+ agent-effort: ${{ vars.AGENT_EFFORT }}
26
+ agent-command: ${{ vars.AGENT_COMMAND }}
27
+ findings-provider: ${{ vars.FINDINGS_PROVIDER }}
28
+ findings-model-provider: ${{ vars.FINDINGS_MODEL_PROVIDER }}
29
+ findings-model: ${{ vars.FINDINGS_MODEL }}
30
+ findings-effort: ${{ vars.FINDINGS_EFFORT }}
31
+ findings-command: ${{ vars.FINDINGS_COMMAND }}
32
+ fixer-provider: ${{ vars.FIXER_PROVIDER }}
33
+ fixer-model-provider: ${{ vars.FIXER_MODEL_PROVIDER }}
34
+ fixer-model: ${{ vars.FIXER_MODEL }}
35
+ fixer-effort: ${{ vars.FIXER_EFFORT }}
36
+ fixer-command: ${{ vars.FIXER_COMMAND }}
37
+ planner-provider: ${{ vars.PLANNER_PROVIDER }}
38
+ planner-model-provider: ${{ vars.PLANNER_MODEL_PROVIDER }}
39
+ planner-model: ${{ vars.PLANNER_MODEL }}
40
+ planner-effort: ${{ vars.PLANNER_EFFORT }}
41
+ planner-command: ${{ vars.PLANNER_COMMAND }}
42
+ project-ids: ${{ vars.PROJECT_IDS }}
43
+ bugbot-fix-verify-commands: ${{ vars.BUGBOT_AUTOFIX_VERIFY_COMMANDS }}
44
+ token: ${{ secrets.PAT }}
45
+ env:
46
+ AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }}
47
+ AGENT_MODEL_PROVIDER: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
48
+ AGENT_MODEL: ${{ vars.AGENT_MODEL }}
49
+ AGENT_EFFORT: ${{ vars.AGENT_EFFORT }}
50
+ AGENT_PROVISIONING: ${{ vars.AGENT_PROVISIONING || 'auto' }}
51
+ AGENT_ALLOWED_MODEL_PROVIDERS: ${{ vars.AGENT_ALLOWED_MODEL_PROVIDERS || 'openai' }}
52
+ AGENT_ALLOWED_MODELS: ${{ vars.AGENT_ALLOWED_MODELS || 'openai/gpt-5.6-luna' }}
53
+ AGENT_COMMAND: ${{ vars.AGENT_COMMAND }}
54
+ CODEX_VERSION: ${{ vars.CODEX_VERSION }}
55
+ OPENCODE_VERSION: ${{ vars.OPENCODE_VERSION }}
56
+ CURSOR_INSTALLER_SHA256: ${{ vars.CURSOR_INSTALLER_SHA256 }}
57
+ OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
58
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
59
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
60
+ GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
61
+ 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' || vars.RELEASE_PROVIDER == 'cursor') && secrets.CURSOR_API_KEY || '' }}
63
+ CODEX_ACCESS_TOKEN: ${{ secrets.CODEX_ACCESS_TOKEN }}
@@ -0,0 +1,60 @@
1
+ name: Copilot - Pull Request
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, reopened, edited, labeled, unlabeled, closed, assigned, unassigned, synchronize]
6
+
7
+ jobs:
8
+ copilot-pull-requests:
9
+ name: Copilot - Pull Request
10
+ runs-on: ubuntu-latest
11
+ timeout-minutes: 120
12
+ steps:
13
+ - name: Checkout Repository
14
+ uses: actions/checkout@v5
15
+
16
+ - uses: vypdev/copilot@v3
17
+ with:
18
+ ai-ignore-files: build/*
19
+ debug: ${{ vars.DEBUG }}
20
+ agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }}
21
+ agent-model-provider: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
22
+ agent-model: ${{ vars.AGENT_MODEL || 'gpt-5.6-luna' }}
23
+ agent-effort: ${{ vars.AGENT_EFFORT }}
24
+ agent-command: ${{ vars.AGENT_COMMAND }}
25
+ findings-provider: ${{ vars.FINDINGS_PROVIDER }}
26
+ findings-model-provider: ${{ vars.FINDINGS_MODEL_PROVIDER }}
27
+ findings-model: ${{ vars.FINDINGS_MODEL }}
28
+ findings-effort: ${{ vars.FINDINGS_EFFORT }}
29
+ findings-command: ${{ vars.FINDINGS_COMMAND }}
30
+ fixer-provider: ${{ vars.FIXER_PROVIDER }}
31
+ fixer-model-provider: ${{ vars.FIXER_MODEL_PROVIDER }}
32
+ fixer-model: ${{ vars.FIXER_MODEL }}
33
+ fixer-effort: ${{ vars.FIXER_EFFORT }}
34
+ fixer-command: ${{ vars.FIXER_COMMAND }}
35
+ reviewer-provider: ${{ vars.REVIEWER_PROVIDER }}
36
+ reviewer-model-provider: ${{ vars.REVIEWER_MODEL_PROVIDER }}
37
+ reviewer-model: ${{ vars.REVIEWER_MODEL }}
38
+ reviewer-effort: ${{ vars.REVIEWER_EFFORT }}
39
+ reviewer-command: ${{ vars.REVIEWER_COMMAND }}
40
+ project-ids: ${{ vars.PROJECT_IDS }}
41
+ token: ${{ secrets.PAT }}
42
+ env:
43
+ AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }}
44
+ AGENT_MODEL_PROVIDER: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
45
+ AGENT_MODEL: ${{ vars.AGENT_MODEL }}
46
+ AGENT_EFFORT: ${{ vars.AGENT_EFFORT }}
47
+ AGENT_PROVISIONING: ${{ vars.AGENT_PROVISIONING || 'auto' }}
48
+ AGENT_ALLOWED_MODEL_PROVIDERS: ${{ vars.AGENT_ALLOWED_MODEL_PROVIDERS || 'openai' }}
49
+ AGENT_ALLOWED_MODELS: ${{ vars.AGENT_ALLOWED_MODELS || 'openai/gpt-5.6-luna' }}
50
+ AGENT_COMMAND: ${{ vars.AGENT_COMMAND }}
51
+ CODEX_VERSION: ${{ vars.CODEX_VERSION }}
52
+ OPENCODE_VERSION: ${{ vars.OPENCODE_VERSION }}
53
+ CURSOR_INSTALLER_SHA256: ${{ vars.CURSOR_INSTALLER_SHA256 }}
54
+ OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
55
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
56
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
57
+ GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
58
+ 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' || vars.RELEASE_PROVIDER == 'cursor') && secrets.CURSOR_API_KEY || '' }}
60
+ CODEX_ACCESS_TOKEN: ${{ secrets.CODEX_ACCESS_TOKEN }}
@@ -0,0 +1,63 @@
1
+ name: Copilot - Pull Request Comment
2
+
3
+ on:
4
+ pull_request_review_comment:
5
+ types: [created, edited]
6
+
7
+ jobs:
8
+ copilot-pull-requests:
9
+ name: Copilot - Pull Request Comment
10
+ runs-on: ubuntu-latest
11
+ timeout-minutes: 120
12
+ permissions:
13
+ contents: write
14
+ steps:
15
+ - name: Checkout Repository
16
+ uses: actions/checkout@v5
17
+
18
+ - uses: vypdev/copilot@v3
19
+ with:
20
+ ai-ignore-files: build/*
21
+ debug: ${{ vars.DEBUG }}
22
+ agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }}
23
+ agent-model-provider: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
24
+ agent-model: ${{ vars.AGENT_MODEL || 'gpt-5.6-luna' }}
25
+ agent-effort: ${{ vars.AGENT_EFFORT }}
26
+ agent-command: ${{ vars.AGENT_COMMAND }}
27
+ findings-provider: ${{ vars.FINDINGS_PROVIDER }}
28
+ findings-model-provider: ${{ vars.FINDINGS_MODEL_PROVIDER }}
29
+ findings-model: ${{ vars.FINDINGS_MODEL }}
30
+ findings-effort: ${{ vars.FINDINGS_EFFORT }}
31
+ findings-command: ${{ vars.FINDINGS_COMMAND }}
32
+ fixer-provider: ${{ vars.FIXER_PROVIDER }}
33
+ fixer-model-provider: ${{ vars.FIXER_MODEL_PROVIDER }}
34
+ fixer-model: ${{ vars.FIXER_MODEL }}
35
+ fixer-effort: ${{ vars.FIXER_EFFORT }}
36
+ fixer-command: ${{ vars.FIXER_COMMAND }}
37
+ reviewer-provider: ${{ vars.REVIEWER_PROVIDER }}
38
+ reviewer-model-provider: ${{ vars.REVIEWER_MODEL_PROVIDER }}
39
+ reviewer-model: ${{ vars.REVIEWER_MODEL }}
40
+ reviewer-effort: ${{ vars.REVIEWER_EFFORT }}
41
+ reviewer-command: ${{ vars.REVIEWER_COMMAND }}
42
+ project-ids: ${{ vars.PROJECT_IDS }}
43
+ bugbot-fix-verify-commands: ${{ vars.BUGBOT_AUTOFIX_VERIFY_COMMANDS }}
44
+ token: ${{ secrets.PAT }}
45
+ env:
46
+ AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }}
47
+ AGENT_MODEL_PROVIDER: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }}
48
+ AGENT_MODEL: ${{ vars.AGENT_MODEL }}
49
+ AGENT_EFFORT: ${{ vars.AGENT_EFFORT }}
50
+ AGENT_PROVISIONING: ${{ vars.AGENT_PROVISIONING || 'auto' }}
51
+ AGENT_ALLOWED_MODEL_PROVIDERS: ${{ vars.AGENT_ALLOWED_MODEL_PROVIDERS || 'openai' }}
52
+ AGENT_ALLOWED_MODELS: ${{ vars.AGENT_ALLOWED_MODELS || 'openai/gpt-5.6-luna' }}
53
+ AGENT_COMMAND: ${{ vars.AGENT_COMMAND }}
54
+ CODEX_VERSION: ${{ vars.CODEX_VERSION }}
55
+ OPENCODE_VERSION: ${{ vars.OPENCODE_VERSION }}
56
+ CURSOR_INSTALLER_SHA256: ${{ vars.CURSOR_INSTALLER_SHA256 }}
57
+ OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
58
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
59
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
60
+ GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
61
+ 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' || vars.RELEASE_PROVIDER == 'cursor') && secrets.CURSOR_API_KEY || '' }}
63
+ CODEX_ACCESS_TOKEN: ${{ secrets.CODEX_ACCESS_TOKEN }}