Skip to content

fix(changeprovider): preserve GitHub HTTP status errors - #806

Merged
behinddwalls merged 2 commits into
uber:mainfrom
Tmwakalasya:tuntu/fix-github-provider-http-errors
Oct 7, 2026
Merged

behinddwalls merged 2 commits into
uber:mainfrom
Tmwakalasya:tuntu/fix-github-provider-http-errors

Conversation

@Tmwakalasya

Copy link
Copy Markdown
Contributor

Why?

The GitHub change provider formats rejected HTTP responses as plain errors. The orchestrator's existing HTTP classifier cannot recover the status code, so a temporary 503 or 429 during PR metadata retrieval is treated as non-retryable and sent to dead-letter handling.

What?

Return the existing platform/http.StatusError, wrapped with %w to preserve GitHub API context. Add provider-level regression coverage for status/body preservation and retry classification: 503/429 are retryable dependency failures, while 400/401 remain permanent dependency failures. Update the Bazel dependencies.

Test Plan

  • The new regression failed against the original implementation and passed after the fix.
  • Passed the Bazel test targets for submitqueue/extension/changeprovider/github, platform/errs/http, and platform/http.
  • Passed go vet -mod=readonly ./submitqueue/extension/changeprovider/github.
  • Passed make fmt lint check-tidy check-gazelle.
  • Full-repository and Docker integration suites were not run; validation focused on the provider and HTTP error boundary.

Issue

No existing issue. Found while tracing the GitHub provider's error classification.

@behinddwalls
behinddwalls enabled auto-merge October 7, 2026 21:07
@behinddwalls
behinddwalls added this pull request to the merge queue Oct 7, 2026
Merged via the queue into uber:main with commit af3b553 Oct 7, 2026
16 checks passed

This branch was previously deployed

1 inactive deployment
stack-rebase — fbfaebe4 Deployed Oct 7, 2026 by behinddwalls via Rebase Stack #583
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants