2.2 KiB
2.2 KiB
Redmine ↔ Gitea (MR → задача #N)
Модель
| Компонент | Назначение |
|---|---|
| Redmine | Проект «Новый сайт» (novyj-sajt), задача #27 |
| Gitea | backend, adminpanel, cabinet, docs |
| redmine-gitea-bridge | Webhook pull_request → комментарий в Redmine со ссылкой на MR |
Несколько MR (например backend + adminpanel) с #27 в заголовке/описании → несколько комментариев в одной задаче #27.
Подготовка
cd k8s
./scripts/bootstrap-redmine.sh
./scripts/setup-gitea-redmine-integration.sh
Скрипт сам находит кластер с namespace redmine и Multipass VM по kubectl get nodes (например sova-test → 192.168.252.2, не обязательно vm-k8s-app-test).
В /etc/hosts — IP из вывода скрипта (mp_print_kubectl_target):
192.168.252.2 redmine.sova.local # пример: кластер sova-test
Правило для MR
В заголовке или описании pull request:
Refs #27
или #27 — иначе bridge не привяжет MR к задаче.
Пример заголовка:
feat(adminpanel): content CRUD generic pages (Refs #27)
Что настроит скрипт
- Deployment
redmine-gitea-bridge(NodePort 30388 на VM с Redmine). - В каждом repo Gitea:
- External tracker →
http://redmine.sova.local/issues/{index} - Webhook
pull_request→ bridge.
- External tracker →
Проверка
curl -s http://<APP_VM_IP>:30388/healthz
Создайте MR в Gitea с #27, Refs #27 или веткой/заголовком issues/27 → в Redmine на #27 появится комментарий со ссылкой (Textile, URL с портом :30300).
Если webhook не сработал: ./scripts/sync-redmine-mr-notes.sh 27 backend adminpanel