-
Notifications
You must be signed in to change notification settings - Fork 0
Streamline pull request enrichment UX #379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
79da4ff
codex-pr-enrichment-ux: streamline enrichment UX
efraespada 385f19d
codex-pr-enrichment-ux: isolate merge queue check
efraespada 893ee27
codex-pr-enrichment-ux: preserve unlinked titles
efraespada a03bf55
codex-pr-enrichment-ux: refresh bundles
efraespada cf98481
codex-pr-enrichment-ux: isolate review-state concurrency
efraespada 37164b5
codex-pr-enrichment-ux: split review-state checks
efraespada File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,144 +1,18 @@ | ||
| <!-- | ||
| Thank you for opening a Pull Request 🚀 | ||
| Please fill out this template as completely as possible. | ||
| Clear PRs = faster reviews = better software. | ||
| Lead with one to three sentences that explain the outcome and why it matters. | ||
| Keep the body concise and remove any section that has no useful content. | ||
| --> | ||
|
|
||
| # 📌 Summary | ||
| <!-- | ||
| Briefly explain what this PR does and why it is needed. | ||
| Focus on the intent, not the implementation details. | ||
| --> | ||
|
|
||
| --- | ||
|
|
||
| ## 🎯 Related Issues / Tickets | ||
| <!-- | ||
| Link any related issues, tickets, or discussions. | ||
| Use GitHub keywords to auto-close issues when merged. | ||
| --> | ||
| - Closes # | ||
| - Related to # | ||
|
|
||
| --- | ||
| ## What changed | ||
|
|
||
| ## 🧩 Scope of Changes | ||
| <!-- | ||
| Describe the scope and nature of the changes at a high level. | ||
| --> | ||
| - Added: | ||
| - Updated: | ||
| - Removed: | ||
| - Refactored: | ||
|
|
||
| --- | ||
|
|
||
| ## 🛠️ Technical Details | ||
| <!-- | ||
| Explain important technical decisions, trade-offs, or architecture changes. | ||
| Include anything that may not be obvious from reading the code. | ||
| --> | ||
|
|
||
| --- | ||
|
|
||
| ## 🔍 How to Test | ||
| <!-- | ||
| Provide clear, step-by-step instructions to test this change. | ||
| Assume the reviewer is unfamiliar with the context. | ||
| --> | ||
| 1. | ||
| 2. | ||
| 3. | ||
|
|
||
| --- | ||
|
|
||
| ## 🧪 Test Coverage | ||
| <!-- | ||
| Indicate what types of tests were added or updated. | ||
| --> | ||
| - [ ] Unit tests | ||
| - [ ] Integration tests | ||
| - [ ] End-to-end (E2E) tests | ||
| - [ ] Manual testing only (explain why) | ||
|
|
||
| --- | ||
|
|
||
| ## 📸 Screenshots / Recordings (UI changes only) | ||
| <!-- | ||
| Include before/after screenshots or short videos if this PR affects the UI. | ||
| --> | ||
| - | ||
|
|
||
| --- | ||
|
|
||
| ## ⚠️ Breaking Changes | ||
| <!-- | ||
| List any breaking changes and required migration steps. | ||
| If none, state "None". | ||
| --> | ||
| - None | ||
|
|
||
| --- | ||
|
|
||
| ## 🚀 Deployment Notes | ||
| <!-- | ||
| Anything required or important during deployment: | ||
| - environment variables | ||
| - database migrations | ||
| - feature flags | ||
| - deployment order | ||
| --> | ||
| - [ ] Requires database migration | ||
| - [ ] Requires environment variable changes | ||
| - [ ] Requires feature flag toggle | ||
| - [ ] No special deployment steps | ||
|
|
||
| Details: | ||
|
|
||
| --- | ||
|
|
||
| ## 🔒 Security Considerations | ||
| <!-- | ||
| Mention any security-related implications or validations. | ||
| --> | ||
| - [ ] No security impact | ||
| - [ ] Input validation changes | ||
| - [ ] Authentication / authorization changes | ||
| - [ ] Sensitive data handling changes | ||
|
|
||
| --- | ||
|
|
||
| ## 📈 Performance Impact | ||
| <!-- | ||
| Describe any performance considerations, improvements, or regressions. | ||
| --> | ||
| - [ ] No performance impact | ||
| - [ ] Improves performance | ||
| - [ ] Potential performance regression (explain) | ||
|
|
||
| --- | ||
|
|
||
| ## 📝 Notes for Reviewers | ||
| <!-- | ||
| Highlight areas that need special attention or context for reviewers. | ||
| --> | ||
|
|
||
| --- | ||
|
|
||
| ## ✅ Checklist | ||
| <!-- | ||
| Confirm all items before requesting review. | ||
| --> | ||
| - [ ] I have self-reviewed my code | ||
| - [ ] Code follows project standards and conventions | ||
| - [ ] Tests have been added or updated | ||
| - [ ] Documentation has been updated (if applicable) | ||
| - [ ] No new warnings or lint errors | ||
| - [ ] Breaking contract changes and required consumer updates are documented | ||
| ## Validation | ||
|
|
||
| --- | ||
| - | ||
|
|
||
| ## 📚 Additional Context | ||
| <!-- | ||
| Any extra information that may help reviewers understand this PR. | ||
| Links, references, or follow-up work. | ||
| Add "## Review notes" only for material risks, migrations, rollout details, | ||
| compatibility concerns, or manual verification that a reviewer must know. | ||
| Add a valid closing reference only when this PR resolves a separate issue. | ||
| --> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| name: Copilot - Pull Request Merge Queue | ||
| run-name: Copilot PR · ${{ github.event_name }}:${{ github.event.action }} | ||
|
|
||
| on: | ||
| merge_group: | ||
| types: [checks_requested] | ||
|
|
||
| jobs: | ||
| copilot-pull-request-required-check: | ||
| # GitHub required checks match the job name. Keep this identical to normal | ||
| # PR analysis while isolating merge-group runs in their own workflow. | ||
| name: Copilot - Pull Request | ||
| runs-on: [self-hosted, codex] | ||
| timeout-minutes: 10 | ||
| permissions: | ||
| checks: write | ||
| contents: read | ||
| steps: | ||
| - name: Confirm merge-group compatibility | ||
| run: echo "Copilot PR analysis already ran on each constituent pull request." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| name: Copilot - Pull Request Review State | ||
| run-name: Copilot PR review · ${{ github.event_name }}:${{ github.event.action }} | ||
|
|
||
| on: | ||
| pull_request_review: | ||
| types: [submitted, edited, dismissed] | ||
|
|
||
| jobs: | ||
| copilot-pull-request-review-state: | ||
| if: ${{ (vars.COPILOT_BOT_LOGIN == '' || github.actor != vars.COPILOT_BOT_LOGIN) && github.event.pull_request.head.repo.full_name == github.repository }} | ||
| name: Copilot - Pull Request Review State | ||
| runs-on: [self-hosted, codex] | ||
| timeout-minutes: 120 | ||
| concurrency: | ||
| group: copilot-pr-${{ github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}-review-state | ||
| cancel-in-progress: true | ||
| permissions: | ||
| checks: write | ||
| contents: read | ||
| steps: | ||
| - name: Checkout Repository | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| persist-credentials: false | ||
| fetch-depth: 0 | ||
|
|
||
| - name: Set up Node.js 24 for pinned agent installation | ||
| uses: actions/setup-node@v7 | ||
| with: | ||
| node-version: '24.x' | ||
|
|
||
| # Exercise the Action implementation from this PR so regressions are caught before merge. | ||
| - uses: ./ | ||
| with: | ||
| repository-locale: ${{ vars.REPOSITORY_LOCALE || 'en-US' }} | ||
| issues-locale: ${{ vars.ISSUES_LOCALE || '' }} | ||
| pull-requests-locale: ${{ vars.PULL_REQUESTS_LOCALE || '' }} | ||
| ai-ignore-files: build/*,specs/CATALOG.md | ||
| bugbot-severity: ${{ vars.BUGBOT_SEVERITY || 'low' }} | ||
| bugbot-comment-limit: ${{ vars.BUGBOT_COMMENT_LIMIT || '20' }} | ||
| bugbot-fix-verify-commands: ${{ vars.BUGBOT_AUTOFIX_VERIFY_COMMANDS }} | ||
| bugbot-dry-run: ${{ vars.BUGBOT_DRY_RUN || 'false' }} | ||
| bugbot-effort: ${{ vars.BUGBOT_EFFORT || 'smart' }} | ||
| bugbot-review-drafts: ${{ vars.BUGBOT_REVIEW_DRAFTS || 'false' }} | ||
| bugbot-trace-rules: ${{ vars.BUGBOT_TRACE_RULES || 'false' }} | ||
| bugbot-suggested-changes: ${{ vars.BUGBOT_SUGGESTED_CHANGES || 'true' }} | ||
| bugbot-telemetry: ${{ vars.BUGBOT_TELEMETRY || 'true' }} | ||
| bugbot-fail-on-unresolved: ${{ vars.BUGBOT_FAIL_ON_UNRESOLVED || 'false' }} | ||
| bugbot-organization-rules: ${{ vars.BUGBOT_ORGANIZATION_RULES }} | ||
| debug: ${{ vars.DEBUG }} | ||
| agent-provider: ${{ vars.AGENT_PROVIDER || 'codex' }} | ||
| agent-model-provider: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }} | ||
| agent-model: ${{ vars.AGENT_MODEL || 'gpt-5.6-luna' }} | ||
| agent-effort: ${{ vars.AGENT_EFFORT }} | ||
| agent-executable: ${{ vars.AGENT_EXECUTABLE }} | ||
| findings-provider: ${{ vars.FINDINGS_PROVIDER }} | ||
| findings-model-provider: ${{ vars.FINDINGS_MODEL_PROVIDER }} | ||
| findings-model: ${{ vars.FINDINGS_MODEL }} | ||
| findings-effort: ${{ vars.FINDINGS_EFFORT }} | ||
| findings-executable: ${{ vars.FINDINGS_EXECUTABLE }} | ||
| fixer-provider: ${{ vars.FIXER_PROVIDER }} | ||
| fixer-model-provider: ${{ vars.FIXER_MODEL_PROVIDER }} | ||
| fixer-model: ${{ vars.FIXER_MODEL }} | ||
| fixer-effort: ${{ vars.FIXER_EFFORT }} | ||
| fixer-executable: ${{ vars.FIXER_EXECUTABLE }} | ||
| planner-provider: ${{ vars.PLANNER_PROVIDER }} | ||
| planner-model-provider: ${{ vars.PLANNER_MODEL_PROVIDER }} | ||
| planner-model: ${{ vars.PLANNER_MODEL }} | ||
| planner-effort: ${{ vars.PLANNER_EFFORT }} | ||
| planner-executable: ${{ vars.PLANNER_EXECUTABLE }} | ||
| reviewer-provider: ${{ vars.REVIEWER_PROVIDER }} | ||
| reviewer-model-provider: ${{ vars.REVIEWER_MODEL_PROVIDER }} | ||
| reviewer-model: ${{ vars.REVIEWER_MODEL }} | ||
| reviewer-effort: ${{ vars.REVIEWER_EFFORT }} | ||
| reviewer-executable: ${{ vars.REVIEWER_EXECUTABLE }} | ||
| project-ids: ${{ vars.PROJECT_IDS }} | ||
| token: ${{ secrets.PAT }} | ||
| env: | ||
| AGENT_PROVIDER: ${{ vars.AGENT_PROVIDER || 'codex' }} | ||
| AGENT_MODEL_PROVIDER: ${{ vars.AGENT_MODEL_PROVIDER || 'openai' }} | ||
| AGENT_MODEL: ${{ vars.AGENT_MODEL }} | ||
| AGENT_EFFORT: ${{ vars.AGENT_EFFORT }} | ||
| AGENT_PROVISIONING: ${{ vars.AGENT_PROVISIONING || 'auto' }} | ||
| AGENT_ALLOWED_MODEL_PROVIDERS: ${{ vars.AGENT_ALLOWED_MODEL_PROVIDERS || 'openai' }} | ||
| AGENT_ALLOWED_MODELS: ${{ vars.AGENT_ALLOWED_MODELS || 'openai/gpt-5.6-luna' }} | ||
| AGENT_EXECUTABLE: ${{ vars.AGENT_EXECUTABLE }} | ||
| OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} | ||
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | ||
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | ||
| GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} | ||
| OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }} | ||
| 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 || '' }} | ||
| CODEX_API_KEY: ${{ secrets.CODEX_API_KEY }} | ||
| COPILOT_EVIDENCE_TOKEN: ${{ github.token }} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.