Create internal git refs instead of branch for ci workloads
What does this MR do and why?
Currently ci workloads always created actual Git branches for running automated tasks, but now it can optionally use internal Git references instead, which are more lightweight and don't clutter the branch list. When use_internal_refs_for_workload_pipelines FF is enabled, the system creates internal references (like "refs/workloads/abc123") instead of regular branches (like "workloads/abc123").
The code maintains backward compatibility - when the feature flag is disabled, it continues using the old branch-based approach. All the related services that consume these references have been updated to handle both formats seamlessly.
References
Relates to #577239
We added the functionality to allow workload refs to create a CI pipeline in !213212 (merged)
Screenshots or screen recordings
| Before | After |
|---|---|
How to set up and validate locally
- Ensure you have DAP setup
- Enable FF
use_internal_refs_for_workload_pipelinesfor your project - Start any remote flow https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/ like developer, fix_pipeline, DCR
- Notice the workload branches are not getting created
- Notice that when workload job is successfully finished, the refs created are automatically deleted.
- When the Feature flag is disabled, it should create workload branches as normal.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #577239