Normalize changelog PR metadata from repo sync#10971
Conversation
Resolve repo-sync PRs from warp-internal back to public warp PR metadata before changelog generation, and omit private internal PRs that were not created by the sync bot. Co-Authored-By: Oz <[email protected]>
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR normalizes changelog metadata for release workflows running from warp-internal by resolving repo-sync PRs to public warp PR metadata, omitting non-sync internal PRs, and using explicit PR URLs during release JSON conversion.
Concerns
- Unresolved repo-sync PRs still fall back to internal PR metadata, which can lead to incorrect changelog attribution/links and leak internal-repo details into generated artifacts.
- The internal-repo filtering gate compares the repository name literally, so equivalent casing of
warpdotdev/warp-internalwould bypass the privacy filter.
Security
- The changed filtering logic is the privacy boundary for keeping non-sync internal PRs out of changelog artifacts; normalize the repository name before applying that boundary.
Verdict
Found: 0 critical, 2 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| private/internal changes. Do not expose them to the Oz changelog agent or to | ||
| generated artifacts. | ||
| """ | ||
| return repo != INTERNAL_REPO or is_repo_sync_pr(data) |
There was a problem hiding this comment.
warpdotdev/warp-internal cannot leak non-sync internal PRs into changelog artifacts.
| if public_pr_number is None: | ||
| return repo, data, internal_pr | ||
|
|
||
| public_data = fetch_pr_data(PUBLIC_REPO, public_pr_number) | ||
| if public_data is None: | ||
| return repo, data, internal_pr |
There was a problem hiding this comment.
Description
Normalize changelog PR metadata when stable release workflows run from
warpdotdev/warp-internal:warpdotdev/warpPR number, URL, author, and body before changelog classificationwarp-internalPRs so private/internal work is not exposed in changelog artifactsLinked Issue
ready-to-specorready-to-implement.Testing
python3 -m py_compile .agents/skills/changelog-draft/scripts/fetch_prs.py .agents/skills/changelog-draft/scripts/convert_to_release_json.pyLive validation:
warp-internal#25712resolves to publicwarp#9444with authorFaizanqLive validation: non-sync
warp-internal#25339is excluded before changelog outputLive validation: public
warp#9444remains unchangedConverter fixture validates resolved public links and no synthesized link for records without URLs
git diff --checkcargo fmtAttempted
cargo clippy --workspace --all-targets --all-features --tests -- -D warnings, but it was blocked by the local macOS Metal Toolchain missing before code diagnostics ran (xcodebuild -downloadComponent MetalToolchain)I have manually tested my changes locally with
./script/runAgent Mode
CHANGELOG-NONE
Co-Authored-By: Oz [email protected]