MCPcopy Create free account
hub / github.com/cloudflare/artifact-fs / streamTreeRecords

Function streamTreeRecords

internal/gitstore/gitstore.go:296–321  ·  view source on GitHub ↗
(ctx context.Context, gitDir string, headOID string, fn func(string))

Source from the content-addressed store, hash-verified

294 return err
295 }
296 parent := filepath.Dir(cfg.GitDir)
297 if err := os.MkdirAll(parent, 0o755); err != nil {
298 return err
299 }
300
301 // Strip credentials from the CLI-visible URL; pass them via a credential helper
302 // so they don't appear in ps output.
303 safeURL, credHelper, err := credentialEnv(cfg.RemoteURL)
304 if err != nil {
305 return err
306 }
307 env := append([]string{}, extraEnv...)
308 env = append(env, credHelper...)
309
310 var target string
311 attempt := func() error {
312 var err error
313 // A failed git clone can leave files in its destination, so every retry
314 // gets a fresh directory rather than risking a false "already exists".
315 target, err = os.MkdirTemp(parent, ".clone-*")
316 if err != nil {
317 return fmt.Errorf("mktemp clone dir: %w", err)
318 }
319 sourceRef := strings.TrimSpace(cfg.Branch)
320 branch := sourceRef
321 if after, ok := strings.CutPrefix(sourceRef, "refs/heads/"); ok {
322 branch = after
323 } else if strings.HasPrefix(sourceRef, "refs/") {
324 branch = ""

Callers 1

BuildTreeIndexMethod · 0.85

Calls 5

RedactStringFunction · 0.92
readNullDelimitedFunction · 0.85
WaitMethod · 0.80
StringMethod · 0.80
StartMethod · 0.45

Tested by

no test coverage detected