feat(PipelineTriggersService): Add support for pipeline inputs to trigger API
Extend `RunPipelineTrigger` to support the "inputs" parameter, enabling trigger
tokens to start pipelines with typed input parameters. This mirrors the
functionality added to `CreatePipeline`, providing consistent input handling
across both pipeline creation methods.
Implementation details:
- Add Inputs field to `RunPipelineTriggerOptions` using the
`PipelineInputOptions` type
- Reuse the same type validation and JSON marshaling logic from
`CreatePipeline`
- Both variables and inputs can be used simultaneously, serving different
purposes:
* variables: simple string key-value pairs for CI/CD variables
* inputs: typed parameters for pipelines using spec:inputs keyword
Testing improvements:
- Refactor `TestRunPipelineTrigger` to use table-driven tests
- Add comprehensive test coverage for the existing "variables" parameter
- Add test cases for pipeline inputs with various data types:
strings, integers, booleans, and string arrays
- Add test case for invalid input type error handling
This enables trigger-based pipeline starts with typed inputs:
```go
client.PipelineTriggers.RunPipelineTrigger(projectID, &RunPipelineTriggerOptions{
Token: Ptr("trigger-token"),
Ref: Ptr("main"),
Variables: map[string]string{
"DEPLOY_ENV": "prod",
},
Inputs: PipelineInputOptions{
"environment": "production",
"replicas": 3,
"enable_debug": false,
"regions": []string{"us-east", "eu-west"},
},
})
```
Issue: #2154
-
mentioned in commit 7108931a
-
mentioned in merge request gitlab-org/cli!2399 (merged)
-
mentioned in merge request gitlab-com/gl-infra/platform/runway/runwayctl!1233 (merged)
-
mentioned in merge request gitlab-org/release-tools!4481 (merged)
-
mentioned in merge request gitlab-com/gl-infra/woodhouse!681 (merged)
-
🔨 @glrenovatebotmentioned in merge request gitlab-com/gl-infra/oncall-robot-assistant!104
-
mentioned in merge request fforster/epic-update!15 (merged)
-
mentioned in merge request fforster/gitlab-mcp!171 (merged)
-
mentioned in merge request gitlab-com/gl-infra/autolabels!99 (merged)
-
mentioned in merge request gitlab-com/gl-infra/ringctl!357 (merged)
-
🤘 @pascal.sickmentioned in merge request sickit/token-operator!15 (merged)
-
mentioned in merge request schober-server/kubernetes/images/gitlab-token-refresher!35
-
mentioned in merge request ydkn/gitlab-runner-cleanup!42
-
mentioned in merge request gitlab-org/terraform-provider-gitlab!2677 (merged)
-
mentioned in merge request hojerdev/git-sync!64 (merged)
-
mentioned in merge request sue445/tanuki_reminder!262 (merged)
-
mentioned in merge request sue445/create-merge-request!149 (merged)
-
mentioned in merge request gitlab-org/container-registry!2558 (merged)