Merge main into PR branch, resolve workflow lock conflict, and regenerate compiled workflow artifacts#33295
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
Hey Process concern: This project uses an agentic development model where non-core team members should create detailed agentic plans in issues first, then have a core team member implement the PR. The CONTRIBUTING.md explicitly states: "Traditional Pull Requests Are Not Enabled for non-Core team members." If you're not part of the core team, the recommended flow is to open an issue with a detailed plan instead of creating the PR directly. Focus mismatch: The PR title and description talk about fixing "create_pull_request fallback retry mechanism" and mention adding retry logic and tests, but the actual diff only updates safe-output configuration in two workflow lock files (changing max issue counts, adding labels, expiration times). There's a disconnect between what's described and what's changed. Consider either:
Missing tests: The PR body mentions "Add focused tests covering new retry path and non-cancellation behavior," but no test files are modified in the diff. If you'd like to align this with the project's workflow, here's a suggested path:
|
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
create_pull_request patch recovery and stop cancelling independent safe outputs
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Hardens create_pull_request patch-apply recovery for git am add/add conflicts and removes implicit fail-fast cancellation of unrelated safe outputs after a code-push failure.
Changes:
- Added
tryRecoverGitAmAddAddConflicthelper and wired it into both the primarygit am --3wayfailure path and the original-base-commit fallback (which now also uses--3way). - Removed the fail-fast block in
processMessagesthat cancelled non-add_commentmessages after a code-push failure; updated warning messages accordingly. - Updated manager tests for the new behavior and added a
create_pull_requesttest covering fallback add/add conflict recovery.
Show a summary per file
| File | Description |
|---|---|
| actions/setup/js/create_pull_request.cjs | New add/add recovery helper; applied after both primary and fallback git am --3way failures. |
| actions/setup/js/create_pull_request.test.cjs | Adds test for fallback git am --continue recovery. |
| actions/setup/js/safe_output_handler_manager.cjs | Removes cross-message cancellation; updates warning text. |
| actions/setup/js/safe_output_handler_manager.test.cjs | Updates test to assert non-code-push messages continue after code-push failure. |
| .github/workflows/spec-librarian.lock.yml | Regenerated lock file with new create_issue options. |
| .github/workflows/duplicate-code-detector.lock.yml | Regenerated lock file with new create_issue options and config hashes. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 6/6 changed files
- Comments generated: 4
| const unresolvedFilesResult = await execApi.getExecOutput("git", ["diff", "--name-only", "--diff-filter=U"]); | ||
| const unresolvedFiles = unresolvedFilesResult.stdout | ||
| .split("\n") | ||
| .map(line => line.trim()) | ||
| .filter(Boolean); | ||
|
|
||
| if (unresolvedFiles.length === 0) { | ||
| return false; | ||
| } | ||
|
|
||
| const statusPorcelainResult = await execApi.getExecOutput("git", ["status", "--porcelain"]); | ||
| const addAddFiles = new Set( | ||
| statusPorcelainResult.stdout | ||
| .split("\n") | ||
| .map(line => line.trim()) | ||
| .filter(line => line.startsWith("AA ")) | ||
| .map(line => line.substring(3).trim()) |
| core.warning(`Detected add/add conflict(s) for ${unresolvedFiles.join(", ")}; preferring patch version and continuing`); | ||
| for (const file of unresolvedFiles) { | ||
| await execApi.exec("git", ["checkout", "--theirs", "--", file]); | ||
| await execApi.exec("git", ["add", "--", file]); | ||
| } |
| try { | ||
| await exec.exec("git am --abort"); | ||
| } catch (abortFallbackError) { | ||
| core.warning(`Failed to abort fallback git am: ${getErrorMessage(abortFallbackError)}`); | ||
| } | ||
| throw fallbackPatchError; |
| mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs | ||
| cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_eef6781d680527d3_EOF' | ||
| {"create_issue":{"assignees":["copilot"],"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} | ||
| {"create_issue":{"assignees":["copilot"],"expires":48,"group":true,"labels":["code-quality","automated-analysis","cookie"],"max":3,"title_prefix":"[duplicate-code] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} |
|
@copilot review all comments |
…hanges Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Reviewed all review comments and pushed fixes in Included updates:
Targeted tests pass: |
|
@copilot ensure enough logging to log debug |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added more debug-level logging in the add/add recovery path in |
|
@copilot Merged main, recompiled, and fixed conflicts. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…y' into copilot/create-pull-request-retry Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
create_pull_request patch recovery and stop cancelling independent safe outputsmain into PR branch, resolve workflow lock conflict, and regenerate compiled workflow artifacts
|
@copilot review all changes, add git integration tests |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in Added a real git integration test in Validated with:
|
This updates the branch to the latest
main, resolves merge conflicts in generated workflow output, and re-runs repository compilation so lock/generated files are consistent with current sources. The result is a clean merge state with regenerated workflow artifacts aligned to upstream.Branch synchronization
origin/mainintocopilot/create-pull-request-retry.Conflict resolution in generated workflow output
.github/workflows/duplicate-code-detector.lock.ymlby taking the upstream-generated variant and preserving deterministic heredoc token consistency from compiled output.Artifact recompilation