The Connections API manages a writer’s personal grants of repository access to the Registry. A Connection is the result of a writer authorizing a GitHub App (or equivalent OAuth app) to act on their behalf — the Registry then uses the stored token to fetch repository content during imports. Before a writer can create a Connection, an Admin must first configure an Integration for the provider. One Connection can exist per Git Provider; connecting again replaces the existing grant. All endpoints require Writer role.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/org-quicko/skillset/llms.txt
Use this file to discover all available pages before exploring further.
Endpoints at a glance
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/connections | Writer+ | List own Connections and connectable providers |
| GET | /api/connections/:provider/start | Writer+ | Start the OAuth connect flow |
| GET | /api/connections/:provider/callback | Writer+ | OAuth callback (provider redirects here) |
| DELETE | /api/connections/:provider | Writer+ | Revoke a Connection |
List Connections
Response fields
The writer’s existing Connections. Each entry has:
Integrations the writer could connect through but has not yet. Each entry has:
Start the connect flow
skillset_connection_state) to protect the callback against CSRF.
Path parameters
Git Provider to connect. Currently
github.Query parameters
UUID of the specific Integration to use. Required when more than one Integration is configured for the same provider — the server returns
400 integration_choice_required if this is omitted and multiple choices exist.Error codes
| Code | Status | When |
|---|---|---|
provider_not_connectable | 400 | The provider has no credentialed OAuth flow (e.g. GitLab is public-read only). |
integration_choice_required | 400 | Multiple Integrations exist for the provider and integration_id was not specified. |
integration_not_configured | 409 | No Integration is configured for this provider. Ask an Admin to set one up. |
This endpoint is designed to be opened in a browser — it responds with a
302 redirect, not JSON. Calling it with curl -L will follow the redirect to the provider’s authorization page.OAuth callback
state parameter against the nonce cookie, exchanges the authorization code for a token, stores the Connection, and redirects the browser to Settings → Connected Accounts.
Callback outcomes
| Query params on callback | Outcome | Redirect destination |
|---|---|---|
code + state | Connection created or updated | /settings/connected-accounts?connected=<provider> |
error=access_denied | Writer declined | /settings/connected-accounts?declined=<provider> |
setup_action only | Repository access changed | /settings/connected-accounts?repositories=<provider> |
| Other error | Connection failed | /settings/connected-accounts?connection_error=<message> |
Error codes
| Code | Status | When |
|---|---|---|
invalid_state | 400 | The state parameter was missing, tampered with, expired, or already used. |
exchange_failed | 502 | The provider refused to exchange the authorization code for a token. |
connection_expired | 409 | The app’s permission is insufficient; reconnecting or fixing the app config is needed. |
Revoke a Connection
204 No Content.
Path parameters
Git Provider whose Connection to revoke (e.g.
github).Error codes
| Code | Status | When |
|---|---|---|
not_found | 404 | No Connection exists for this provider under your account. |