Editing docker-compose.yml directly is overwritten on every pull.
The correct approach is a separate Dockerfile.gitea (owned by the
operator) referenced from docker-compose.override.yml, which is
never touched by upstream updates.
Implements a Gitea integration for OpenProject following the same
patterns as the bundled GitHub and GitLab integrations.
- Webhook endpoint at /webhooks/gitea with HMAC-SHA256 verification
- Handles pull_request and issue_comment events
- Links Gitea PRs to work packages via OP# references or URLs
- Posts journal comments on WPs for PR lifecycle events
- Gitea tab on the work package split view
- V3 API endpoint: GET /api/v3/work_packages/:id/gitea_pull_requests
- Admin settings UI for bot user and webhook secret
- Nightly cron job to clean up unlinked PR records