MCPcopy Index your code
hub / github.com/dagger/dagger / cloneGitTree

Method cloneGitTree

engine/server/session_workspaces.go:626–651  ·  view source on GitHub ↗

cloneGitTree clones a git repository and returns its directory tree.

(ctx context.Context, dag *dagql.Server, cloneRef, version string)

Source from the content-addressed store, hash-verified

624
625// cloneGitTree clones a git repository and returns its directory tree.
626func (srv *Server) cloneGitTree(ctx context.Context, dag *dagql.Server, cloneRef, version string) (dagql.ObjectResult[*core.Directory], error) {
627 // Build the ref selector — use "head" if no version specified.
628 refSelector := dagql.Selector{Field: "head"}
629 if version != "" {
630 refSelector = dagql.Selector{
631 Field: "ref",
632 Args: []dagql.NamedInput{{Name: "name", Value: dagql.String(version)}},
633 }
634 }
635
636 var tree dagql.ObjectResult[*core.Directory]
637 err := dag.Select(ctx, dag.Root(), &tree,
638 dagql.Selector{
639 Field: "git",
640 Args: []dagql.NamedInput{
641 {Name: "url", Value: dagql.String(cloneRef)},
642 },
643 },
644 refSelector,
645 dagql.Selector{Field: "tree"},
646 )
647 if err != nil {
648 return tree, fmt.Errorf("cloning repo: %w", err)
649 }
650 return tree, nil
651}
652
653// ensureModulesLoaded loads all pending modules (from compat parsing,
654// the implicit CWD module, and -m flags). Called from serveQuery after

Callers 1

Calls 3

StringTypeAlias · 0.92
SelectMethod · 0.65
RootMethod · 0.45

Tested by

no test coverage detected