GitLab Self-Managed

Connect your client's GitLab Self-Managed with a key they paste, and call its API through Operate As.

Connects by
Pasting a Personal access token
Category
Developer tools
Services
1
Tools
Pass-through only
ServiceKey
GitLab Self-Managedgitlab-self-managed

Your client also types their gitlab self-managed address (Where your GitLab Self-Managed is, such as gitlab.com, without https://).

Connecting

Your client makes a Personal access token in their GitLab Self-Managed settings and pastes it on their link. Operate As tries it with GitLab Self-Managed before saving it, and stores it encrypted. See Services connected with an API key.

Check they're connected
curl https://api.operate.as/v1/me/clients \  -H "Authorization: Bearer $OPERATE_AS_API_KEY"
Response
[  {    "id": "6f1c2a7e-...",    "name": "Miller Dental",    "services": [      "gitlab-self-managed"    ]  }]

Permissions

What the client readsPermission it asks for
Use the GitLab Self-Managed key you paste, with only the access you gave that keyChosen on the provider's screen

Pass-through

GitLab Self-Managed has no ready-made tools yet. Call any endpoint of its API through Operate As instead, with the client's access attached.

Add the client

In Clients, add your client and select GitLab Self-Managed. Then send them their link.

Your client connects

They paste a Personal access token from their GitLab Self-Managed settings.

Find the endpoint

Pick the call from GitLab Self-Managed's own API docs. Your path is everything after https://{site}/api/v4, with the parts in braces filled in from your client's account.

Send it through Operate As

Use the client's ID, the service key gitlab-self-managed and that path. Your Operate As key goes in Authorization; the client's access is added for you.

See Pass-through requests for the full request and response format.

Call any endpoint
curl "https://api.operate.as/v1/clients/6f1c2a7e-.../gitlab-self-managed/..." \  -H "Authorization: Bearer $OPERATE_AS_API_KEY"
Response
{  "status": 200,  "data": {    "…": "the service's own response"  },  "encoding": "json"}

When access ends

A key works until your client deletes it in GitLab Self-Managed. They can paste a new one on the same link at any time, and your workflows carry on without changes.

See Keeping access alive and Removing access.

Calls answer, once the key is deleted
{  "status": 401,  "data": {    "…": "the service's own error"  },  "encoding": "json"}