fix(webhook): scope the label public-surface trigger to disposition labels only - #9176
Merged
Conversation
…abels only (#9175) #9169 added "labeled"/"unlabeled" to PR_PUBLIC_SURFACE_ACTIONS unconditionally so the manual-review hold re-syncs immediately, but that also made every unrelated label change (e.g. tagging a PR "bug") run the full public-surface publish pipeline, breaking the noisy-PR-event debounce. Now only a label matching one of the resolved disposition labels (manual-review, ready-to-merge, changes-requested, migration-collision, pending-closure) triggers the immediate path; anything else stays debounced to the sweep. Closes #9175
Contributor
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
❌ 5 Tests Failed:
View the top 3 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
"labeled"/"unlabeled"toPR_PUBLIC_SURFACE_ACTIONSunconditionally so a maintainer adding/removing the manual-review hold re-syncs immediately instead of waiting for the sweep — but the implementation fired on any label change, not just the manual-review hold. Tagging a PRbugnow ran the full public-surface publish pipeline too, which broketest/unit/queue-4.test.ts's noisy-PR-event debounce test onmain.shouldProcessPullRequestPublicSurfacenow checks the label that actually changed (payload.label.name) against the repo's resolved disposition labels (manual-review, ready-to-merge, changes-requested, migration-collision, pending-closure — the same setresolveAgentDispositionLabelsalready resolves elsewhere in this file). Only a match takes the immediate path; anything else — including a missing/absent label payload — stays debounced to the ~2-minute sweep, same as before fix(webhook): catch a base retarget with no new commit, tighten event health, and stop label/issue churn from going stale #9169.src/github/webhook-coalesce.tsthat claimed labeled/unlabeled never triggers the public-surface pipeline (already inaccurate after fix(webhook): catch a base retarget with no new commit, tighten event health, and stop label/issue churn from going stale #9169, doubly so now).Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run typechecknpx vitest run test/unit/queue-4.test.ts test/unit/pr-labeled-public-surface.test.ts test/unit/queue-2.test.ts test/unit/github-pr-actions.test.ts test/unit/github-client.test.ts test/unit/github-webhook-coalesce.test.ts test/unit/issue-label-churn-upsert.test.ts test/unit/project-tracker-adapter.test.ts test/unit/queue-lifecycle-guards.test.ts test/unit/queue.test.ts test/integration/orb-installations.test.ts test/integration/orb-relay.test.ts— all green, including two new regression tests pinning both the "no label field" and "explicitly-disabled disposition label" branches, and two new tests inpr-labeled-public-surface.test.tscovering another disposition label (ready-to-merge) and the noisy-label contrast case.If any required check was skipped, explain why:
npm run test:ci/npm run test:coverage/ui:*gate this pass (targeted-tests + typecheck only, as directed). This is an owner PR against JSONbored/loopover, so it is not subject to the one-shot contributor gate; CI will run the full suite on push regardless.Safety
UI Evidence— N/A, no visible UI change.Notes
env.*read, or migration changes).