- ClearOldGiteaPullRequestsJob: inherit from ApplicationJob (not CronJob)
and use find_each(&:destroy!) to match the GitHub/GitLab pattern
- Rename aggregated migration from 1016015 to 1023015 to avoid
collision with the recaptcha module migration
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