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
| Service | Key | Base URL |
|---|---|---|
| Gitea (self-hosted) | gitea-self-hosted | https://{site}/api/v1 |
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.
curl https://api.operate.as/v1/me/clients \ -H "Authorization: Bearer $OPERATE_AS_API_KEY"[ { "id": "6f1c2a7e-...", "name": "Miller Dental", "services": [ "gitea-self-hosted" ] }]Permissions
| What the client reads | Permission it asks for |
|---|---|
| Use the Gitea (self-hosted) key you paste, with only the access you gave that key | Chosen on the provider's screen |
Tools
Install Gitea (self-hosted)'s typed package for your language:
pip install operate-as-gitea-self-hostedgitea-self-hosted.accept_repo_transfercurl -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
{ "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.
curl "https://api.operate.as/v1/clients/6f1c2a7e-.../gitea-self-hosted/..." \ -H "Authorization: Bearer $OPERATE_AS_API_KEY"{ "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.
{ "status": 401, "data": { "…": "the service's own error" }, "encoding": "json"}