An Integration is the Registry’s registration with a Git Provider — GitHub or GitLab. Creating an Integration is what makes the Import feature available for that provider: there is no separate toggle. Writers can then grant personal Connections through an Integration, and those Connections are what an Import uses to read a private repository. This page explains how to configure Integrations as an Admin, how they relate to Connections, and what the constraints are when removing one.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.
An Integration is distinct from an Identity Provider. A GitHub Identity Provider lets Users sign in with GitHub OAuth — a GitHub Integration lets writers Import Skills from GitHub repositories. The two are registered and managed entirely separately, and neither knows about the other.
How Integrations Work
Enables Import
Creating the first Integration for a Git Provider is the only step needed to make Import available for it. Deleting the last one makes Import unavailable again.
Writers connect through it
After an Integration exists, writers grant personal Connections through it from Settings → Connections. A Connection is what gives an Import access to a private repository.
Multiple Integrations per provider
More than one Integration may be configured for the same Git Provider — two GitHub Apps, for instance. Writers choose which one to connect through.
Admin-only
All Integration management is admin-only. Writers see only whether a connectable provider is available — they never see credentials or Integration details.
Creating an Integration
- GitHub
- GitLab
GitHub Integrations are registered as GitHub Apps.
Create a GitHub App
In your GitHub organisation settings, go to Developer settings → GitHub Apps → New GitHub App. Configure the following:
- Callback URL:
https://your-registry.example.com/api/connections/github/callback - Repository permissions:
Contents(read) andMetadata(read) - User permissions: none required
- Disable the Webhook unless you have a separate use for it
Register the Integration in Skillset
Go to Settings → Integrations → New Integration and fill in:
- Provider:
github - Display name: a label for your team, e.g.
GitHub (Acme) - Client ID: the GitHub App’s Client ID (from its settings page)
- Client secret: the GitHub App’s Client secret
- App slug: the slug from the App’s URL (required for GitHub — it is used to build the repository-access management link)
The GitHub App needs read access to Contents and Metadata on repositories. Access to specific repositories is chosen by the writer when they manage their Connection’s repository permissions.
API
POST /api/integrations request body accepts:
The Git Provider to register against. One of
github or gitlab.A human-readable label shown to writers when they choose which Integration to connect through. Maximum 100 characters.
An optional note on what this Integration is for. Maximum 180 characters.
The app’s Client ID at the Git Provider.
The app’s client secret. Encrypted at rest; never returned in responses.
The app’s slug at the provider, used to build the repository-access management link. Required for GitHub — omitting it prevents writers from reaching the page where they choose which repositories the Registry may read.
Updating an Integration
UsePATCH /api/integrations/:id to update any field except provider — which Git Provider an app is registered with does not change.
Connections
A Connection is a writer’s personal grant of repository access to the Registry. Once an Integration exists, writers can create a Connection from Settings → Connections by going through the Git Provider’s OAuth or App installation flow.- A writer holds at most one Connection per Git Provider at a time — reconnecting replaces the previous Connection rather than adding another.
- The connected account does not have to be the same account the writer signs in with.
- A Connection reaches only the repositories its Integration’s app was granted access to — not everything the writer can read personally.
Revoking a Connection
Revoking a Connection
A writer can disconnect from Settings → Connections → Disconnect. This removes the Registry’s stored copy of the grant and stops the Registry using it for future Imports. It does not revoke the grant at the Git Provider — to do that fully, the writer must also revoke the app’s access from their account settings at the provider.
Deleting an Integration
An Integration can be deleted from Settings → Integrations, or viaDELETE /api/integrations/:id.
API Reference
All Integration endpoints require anadmin role.
| Method | Path | Description |
|---|---|---|
GET | /api/integrations | List all configured Integrations |
POST | /api/integrations | Create a new Integration |
PATCH | /api/integrations/:id | Update an Integration’s details or credentials |
DELETE | /api/integrations/:id | Delete an Integration (refused if Connections exist) |
GET | /api/connections | List own Connections and connectable providers (writer+) |
GET | /api/connections/:provider/start | Begin the OAuth flow for a Connection (writer+) |
DELETE | /api/connections/:provider | Disconnect from a provider (writer+) |