Add the initial "Connect a service" wizard flow.
Review Request #15140 — Created June 26, 2026 and updated — Latest diff uploaded
This adds the first step of the new "Connect a service" flow on the
Connected Services admin page. Clicking "Connect a service" now opens a
wizard dialog with a searchable, sectioned list of available hosting
services ("Popular", "Source Hosting", "Issue Tracking"). Choosing a
service loads its connect UI as a server-rendered fragment and submits
the authentication form over AJAX, creating theHostingServiceAccount.On the backend, this adds a
ConnectServiceViewthat serves the
per-service connect fragment (GET) and processes the auth form (POST),
returning JSON with either a redirect on success or the re-rendered form
with errors. Authorization, two-factor, and certificate errors are
caught and surfaced inline, and unexpected errors are logged.BaseHostingService now has overridable methods so services can customize
or replace the connect UI.The wizard view also includes back-navigation and deep-link hooks
(initialConnectURL/data-connect-page) staged for the upcoming
GitHub App connection flow.
- Ran unit tests.
- Used the wizard to connect new hosting service accounts, exercising
the success case as well as form errors.