Skip to content

refactor(changeprovider): Read Phabricator diffs through platform/conduit - #1014

Draft
roychying wants to merge 3 commits into
chenghan.ying/platform-conduitfrom
chenghan.ying/changeprovider-phab-conduit
Draft

roychying wants to merge 3 commits into
chenghan.ying/platform-conduitfrom
chenghan.ying/changeprovider-phab-conduit

Conversation

@roychying

@roychying roychying commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Why?

The Phabricator change provider hand-rolls its Conduit call: flat ids[]= fields in the URL query, its own envelope type, Conduit errors as plain strings, and a token transport in the orchestrator wiring. Moving it onto platform/conduit makes it the first consumer of the shared client.

What?

  • Params.HTTPClient becomes Params.Conduit *conduit.Client. differential.querydiffs is now one Call with {"ids": [...]}, and a diff missing from the result is still an error.
  • A Conduit error_code surfaces as *conduit.Error instead of a formatted string; HTTP failures stay platform/http.StatusError, so classification is unchanged.
  • The orchestrator wiring builds the client in conduitClient, next to githubClient, and drops apiTokenTransport.
  • platform/README.md describes the protocol, endpoint and wiring layers that GitHub and Phabricator callers share.

Test Plan

bazel test //submitqueue/extension/changeprovider/phabricator/... //service/submitqueue/orchestrator/server/...

Issue

@roychying
roychying added this pull request to stack #1015 November 5, 2026 05:53
@roychying
roychying force-pushed the chenghan.ying/changeprovider-phab-conduit branch from 0b15719 to 0b516ed Compare November 7, 2026 02:19

This branch has not been deployed

No deployments
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.

1 participant