···1+package steps
2+3+import "tangled.org/core/api/tangled"
4+5+// CloneConfig contains all configuration needed to generate git clone commands
6+type CloneConfig struct {
7+ // Workflow contains the pipeline workflow definition with clone options
8+ Workflow tangled.Pipeline_Workflow
9+10+ // TriggerMetadata contains information about what triggered the pipeline
11+ // (push event, PR, manual trigger, etc.)
12+ TriggerMetadata tangled.Pipeline_TriggerMetadata
13+14+ // DevMode enables development mode URL handling
15+ // (e.g., replacing localhost with host.docker.internal)
16+ DevMode bool
17+18+ // WorkspaceDir is the engine-specific path where the repository
19+ // should be cloned (e.g., "/tangled/workspace")
20+ WorkspaceDir string
21+}
22+23+// CloneCommands represents the git commands needed to clone a repository
24+// Engines can execute these commands in their own way (shell script,
25+// init container, Docker exec, etc.)
26+type CloneCommands struct {
27+ // Init is the git init command
28+ Init string
29+30+ // Remote is the git remote add command
31+ Remote string
32+33+ // Fetch is the git fetch command with all options
34+ Fetch string
35+36+ // Checkout is the git checkout command
37+ Checkout string
38+39+ // All contains all commands in execution order
40+ All []string
41+42+ // RepoURL is the constructed repository URL
43+ RepoURL string
44+45+ // CommitSHA is the extracted commit SHA for this trigger
46+ CommitSHA string
47+48+ // Skip indicates whether cloning should be skipped entirely
49+ // (based on workflow.Clone.Skip flag)
50+ Skip bool
51+}