feat: 增加通知Provider和Jenkins自动同步
This commit is contained in:
@@ -38,6 +38,7 @@ pnpm prisma:migrate:dev --name init
|
||||
- `GET /deploy-runs`: latest deploy runs.
|
||||
- `POST /deploy-runs`: create a deploy run. Missing Jenkins config uses a local dry-run path; configured Jenkins calls `buildWithParameters` and returns `queued/running`.
|
||||
- `POST /deploy-runs/:id/sync-jenkins`: synchronize Jenkins queue/build/log status and advance success or failure.
|
||||
- `POST /deploy-runs/sync-jenkins`: synchronize all queued/running runs that have Jenkins queue/build identifiers.
|
||||
- `POST /deploy-runs/:id/cancel`: cancel a deploy run.
|
||||
- `POST /deploy-runs/:id/retry`: create a retry deploy run.
|
||||
- `POST /webhooks/gitea`: accept Gitea push webhooks and trigger test deploy runs.
|
||||
@@ -71,3 +72,24 @@ The Agent module is not a generic chat entrypoint. It can only support DevOps wo
|
||||
- incident review drafts.
|
||||
|
||||
Agent calls are read-only. They must not trigger deploys, mutate Jenkins/Gitea, or expose raw secrets. When `LLM_BASE_URL`, `LLM_API_KEY`, and `LLM_MODEL` are configured, the backend proxies DevOps-scoped prompts to `/chat/completions`; otherwise it returns local mock results with the same API shape.
|
||||
|
||||
## Notification Providers
|
||||
|
||||
`DeployNotificationService` supports the first provider boundary for:
|
||||
|
||||
- `NOTIFICATION_PROVIDER=wecom` with `WECOM_WEBHOOK_URL`
|
||||
- `NOTIFICATION_PROVIDER=feishu` with `FEISHU_WEBHOOK_URL`
|
||||
- `NOTIFICATION_PROVIDER=generic` with `NOTIFICATION_WEBHOOK_URL`
|
||||
|
||||
Missing provider or webhook configuration returns a skipped notification result and does not block deploy status transitions.
|
||||
|
||||
## Jenkins Auto Sync
|
||||
|
||||
Manual sync is always available through `POST /deploy-runs/sync-jenkins`. To enable a lightweight in-process poller before Redis/BullMQ is introduced:
|
||||
|
||||
```env
|
||||
JENKINS_AUTO_SYNC_ENABLED=true
|
||||
JENKINS_AUTO_SYNC_INTERVAL_MS=30000
|
||||
```
|
||||
|
||||
The poller only scans queued/running runs that already have a Jenkins queue id or build number.
|
||||
|
||||
Reference in New Issue
Block a user