···11+package steps
22+33+import "tangled.org/core/api/tangled"
44+55+// CloneConfig contains all configuration needed to generate git clone commands
66+type CloneConfig struct {
77+ // Workflow contains the pipeline workflow definition with clone options
88+ Workflow tangled.Pipeline_Workflow
99+1010+ // TriggerMetadata contains information about what triggered the pipeline
1111+ // (push event, PR, manual trigger, etc.)
1212+ TriggerMetadata tangled.Pipeline_TriggerMetadata
1313+1414+ // DevMode enables development mode URL handling
1515+ // (e.g., replacing localhost with host.docker.internal)
1616+ DevMode bool
1717+1818+ // WorkspaceDir is the engine-specific path where the repository
1919+ // should be cloned (e.g., "/tangled/workspace")
2020+ WorkspaceDir string
2121+}
2222+2323+// CloneCommands represents the git commands needed to clone a repository
2424+// Engines can execute these commands in their own way (shell script,
2525+// init container, Docker exec, etc.)
2626+type CloneCommands struct {
2727+ // Init is the git init command
2828+ Init string
2929+3030+ // Remote is the git remote add command
3131+ Remote string
3232+3333+ // Fetch is the git fetch command with all options
3434+ Fetch string
3535+3636+ // Checkout is the git checkout command
3737+ Checkout string
3838+3939+ // All contains all commands in execution order
4040+ All []string
4141+4242+ // RepoURL is the constructed repository URL
4343+ RepoURL string
4444+4545+ // CommitSHA is the extracted commit SHA for this trigger
4646+ CommitSHA string
4747+4848+ // Skip indicates whether cloning should be skipped entirely
4949+ // (based on workflow.Clone.Skip flag)
5050+ Skip bool
5151+}