Summary
Add API-level validation and credential checking for GitLab trigger configurations in the orchestrator's workflow creation endpoint, following the pattern established for Linear triggers.
Context
When creating a workflow via POST /workflows, the orchestrator validates trigger configs (e.g., non-empty owner/repo for GitHub, at least one filter for Linear, valid cron expressions). GitLab triggers need similar validation plus a credential check so users get clear errors at workflow creation time rather than silent failures on the first poll.
Acceptance Criteria
Key Files
crates/orchestrator/src/scheduler/api.rs - validation logic
crates/orchestrator/src/scheduler/types.rs - optional WebhookSource variant
crates/orchestrator/src/scheduler/gitlab.rs - GitlabConfig::is_configured()
Blocked By
- The GitLab scaffolding issue (TriggerConfig variants and GitlabConfig must exist)
Stack Base
Branch off: feature/autonomous-pipeline
Blocked by: #1180
Summary
Add API-level validation and credential checking for GitLab trigger configurations in the orchestrator's workflow creation endpoint, following the pattern established for Linear triggers.
Context
When creating a workflow via
POST /workflows, the orchestrator validates trigger configs (e.g., non-empty owner/repo for GitHub, at least one filter for Linear, valid cron expressions). GitLab triggers need similar validation plus a credential check so users get clear errors at workflow creation time rather than silent failures on the first poll.Acceptance Criteria
TriggerConfig::GitlabIssuesincreate_workflow()incrates/orchestrator/src/scheduler/api.rs:ownerandrepomust be non-emptystatemust be one ofopened,closed,all(GitLab usesopenednotopen)TriggerConfig::GitlabMergeRequests:ownerandrepomust be non-emptystatemust be one ofopened,closed,merged,allGitLabvariant toWebhookSourceenum incrates/orchestrator/src/scheduler/types.rsfor future webhook support (optional, can be deferred)Key Files
crates/orchestrator/src/scheduler/api.rs- validation logiccrates/orchestrator/src/scheduler/types.rs- optional WebhookSource variantcrates/orchestrator/src/scheduler/gitlab.rs-GitlabConfig::is_configured()Blocked By
Stack Base
Branch off:
feature/autonomous-pipelineBlocked by: #1180