The API key could be set via an env variable and disabled by default.
Why this matters
This would make gitea-mirror viable in fully automated environments without any manual intervention, and would open the door to community integrations (n8n nodes, Actions, etc.).
Open to contributing or testing if there's interest. 🙏
Originally created by @ThomasMillochau on GitHub (Jun 7, 2026).
Original GitHub issue: https://github.com/RayLabsHQ/gitea-mirror/issues/314
Originally assigned to: @arunavo4 on GitHub.
### Problem
There is currently no way to add a mirror to `gitea-mirror` without manually editing the configuration. This blocks automation use cases such as:
- GitHub Actions / CI pipelines that auto-register new repos
- Workflow tools (n8n, Make, etc.) reacting to external events
- Infrastructure-as-code / GitOps setups
### Proposed solution
Add a simple REST API (with API key auth) exposing at minimum:
```
POST /api/mirrors – create a new mirror
GET /api/mirrors – list existing mirrors
```
Example payload:
```json
{
"source": "https://github.com/owner/repo",
"destination": "https://gitea.example.com/owner/repo",
"interval": "1h"
}
```
The API key could be set via an env variable and disabled by default.
### Why this matters
This would make `gitea-mirror` viable in fully automated environments without any manual intervention, and would open the door to community integrations (n8n nodes, Actions, etc.).
Open to contributing or testing if there's interest. 🙏
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @ThomasMillochau on GitHub (Jun 7, 2026).
Original GitHub issue: https://github.com/RayLabsHQ/gitea-mirror/issues/314
Originally assigned to: @arunavo4 on GitHub.
Problem
There is currently no way to add a mirror to
gitea-mirrorwithout manually editing the configuration. This blocks automation use cases such as:Proposed solution
Add a simple REST API (with API key auth) exposing at minimum:
Example payload:
The API key could be set via an env variable and disabled by default.
Why this matters
This would make
gitea-mirrorviable in fully automated environments without any manual intervention, and would open the door to community integrations (n8n nodes, Actions, etc.).Open to contributing or testing if there's interest. 🙏