Gitea (self-hosted)

Connect your client's Gitea (self-hosted) with a key they paste, and call its API through Operate As.

Website
gitea.com
Connects by
Pasting a Access token
Category
Developer tools
Services
1
Tools
533
ServiceKey
Gitea (self-hosted)gitea-self-hosted

Your client also types their gitea address (Where your Gitea is, such as codeberg.org, without https://).

Connecting

Your client makes a Access token in their Gitea (self-hosted) settings and pastes it on their link. Operate As tries it with Gitea (self-hosted) 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": [      "gitea-self-hosted"    ]  }]

Permissions

What the client readsPermission it asks for
Use the Gitea (self-hosted) key you paste, with only the access you gave that keyChosen on the provider's screen

Tools

Install Gitea (self-hosted)'s typed package for your language:

pip install operate-as-gitea-self-hosted
Run gitea-self-hosted.accept_repo_transfer
curl -X POST https://api.operate.as/v1/actions/gitea-self-hosted.accept_repo_transfer \  -H "Authorization: Bearer $OPERATE_AS_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "clientId": "6f1c2a7e-...",    "input": {      "owner": "<owner>",      "repo": "<repo>"    }  }'

Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/gitea-self-hosted.accept_repo_transfer

Response
{  "status": 200,  "data": {    "…": "the service's own response"  },  "encoding": "json"}

Pass-through

Paths continue from https://{site}/api/v1, with the parts in braces filled in from your client's account. 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-.../gitea-self-hosted/..." \  -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 Gitea (self-hosted). 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"}