[FF] dap_full_clone -- Roll out full-clone workspace option for Duo Developer

Summary

This issue is to roll out the feature on production, that is currently behind the dap_full_clone feature flag.

Owners

  • Most appropriate Slack channel to reach out to: #g_agent_foundations
  • Best individual to reach out to: @thomas-schmidt

Expectations

What are we expecting to happen?

When the dap_full_clone flag is enabled for the developer flow (developer/v1), the workspace gets a full, developer-like clone (full history, attached HEAD, all refs) instead of the default shallow partial clone. The agent checks out the source branch (or default branch) directly, avoiding detached-HEAD confusion.

What can go wrong and how would we detect it?

  • Clone failures or authentication issues during the self-managed git clone step
  • Incorrect branch checkout if DUO_WORKFLOW_SOURCE_BRANCH or CI_DEFAULT_BRANCH is not set
  • Note: MR-triggered flows do not yet pass the MR source branch (tracked in #603034 (closed)); until fixed, MR runs land on the default branch

Rollout Steps

Rollout on non-production environments

  • Verify the MR with the feature flag is merged to master and has been deployed to non-production environments with /chatops gitlab run auto_deploy status <merge-commit-of-your-feature>
  • Enable the feature globally on non-production environments with /chatops gitlab run feature set dap_full_clone true --dev --pre --staging --staging-ref
  • Verify that the feature works as expected.

Specific rollout on production

  • For project-actor: /chatops gitlab run feature set --project=gitlab-org/gitlab dap_full_clone true
  • Verify that the feature works for the specific actors.

Global rollout on production

  • Incrementally roll out the feature on production.
  • After the feature has been 100% enabled, wait for at least one day before releasing the feature.

Rollback Steps

  • This feature can be disabled on production by running the following Chatops command:
/chatops gitlab run feature set dap_full_clone false
Edited by 🤖 GitLab Bot 🤖