diff --git a/cmd/project.go b/cmd/project.go index 36a0224b..b12becc6 100644 --- a/cmd/project.go +++ b/cmd/project.go @@ -11,6 +11,7 @@ import ( "sort" "syscall" + "github.com/agentuity/cli/internal/deployer" "github.com/agentuity/cli/internal/envutil" "github.com/agentuity/cli/internal/errsystem" "github.com/agentuity/cli/internal/mcp" @@ -586,8 +587,15 @@ Examples: }) - // run the git flow - projectGitFlow(ctx, provider, tmplContext, githubAction) + gitInfo, err := deployer.GetGitInfoRecursive(logger, projectDir) + if err != nil { + logger.Info("failed to get git info: %s", err) + } + logger.Debug("git info: %+v", gitInfo) + + if !gitInfo.IsRepo { + projectGitFlow(ctx, provider, tmplContext, githubAction) + } if format == "json" { json.NewEncoder(os.Stdout).Encode(projectData) diff --git a/internal/deployer/metadata.go b/internal/deployer/metadata.go index cc3e1262..664df0db 100644 --- a/internal/deployer/metadata.go +++ b/internal/deployer/metadata.go @@ -109,6 +109,7 @@ func GetGitInfoRecursive(logger logger.Logger, startDir string) (*GitInfo, error depth := 0 dir := startDir for { + logger.Debug("Checking git repo at %s", dir) if depth >= 100 { logger.Warn("Max depth reached while trying to find git dir") return &GitInfo{}, nil @@ -117,12 +118,15 @@ func GetGitInfoRecursive(logger logger.Logger, startDir string) (*GitInfo, error if err != nil { return nil, err } + logger.Debug("Git info: %+v", info) if info != nil && info.IsRepo { return info, nil } parent := parentDir(dir) + if parent == dir { + logger.Debug("No git repo found at %s", dir) break } dir = parent