From 3d43352da8fb121c5e70bb6682c171ff44155d6e Mon Sep 17 00:00:00 2001 From: Bobby Christopher Date: Tue, 20 May 2025 13:13:29 -0400 Subject: [PATCH 1/3] headless import baby --- cmd/cloud.go | 3 ++- cmd/project.go | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/cmd/cloud.go b/cmd/cloud.go index 128226ca..7b46f487 100644 --- a/cmd/cloud.go +++ b/cmd/cloud.go @@ -77,7 +77,7 @@ type startRequest struct { TagMessage string `json:"message,omitempty"` } -func ShowNewProjectImport(ctx context.Context, logger logger.Logger, cmd *cobra.Command, apiUrl, apikey, projectId string, project *project.Project, dir string, isImport bool) { +func ShowNewProjectImport(ctx context.Context, logger logger.Logger, cmd *cobra.Command, apiUrl string, apikey string, projectId string, project *project.Project, dir string, isImport bool) { title := "Import Project" var message string if isImport { @@ -674,6 +674,7 @@ func init() { rootCmd.AddCommand(cloudCmd) rootCmd.AddCommand(cloudDeployCmd) cloudCmd.AddCommand(cloudDeployCmd) + cloudDeployCmd.Flags().StringP("dir", "d", ".", "The directory to the project to deploy") cloudDeployCmd.Flags().String("deploymentId", "", "Used to track a specific deployment") cloudDeployCmd.Flags().Bool("ci", false, "Used to track a specific CI job") diff --git a/cmd/project.go b/cmd/project.go index dd1c23c8..0994d43a 100644 --- a/cmd/project.go +++ b/cmd/project.go @@ -796,10 +796,28 @@ Examples: agentuity project import --dir /path/to/project`, Args: cobra.NoArgs, Run: func(cmd *cobra.Command, args []string) { + dir, _ := cmd.Flags().GetString("dir") + name, _ := cmd.Flags().GetString("name") + description, _ := cmd.Flags().GetString("description") + orgId, _ := cmd.Flags().GetString("org-id") + apikey, _ := cmd.Flags().GetString("apikey") + headless, _ := cmd.Flags().GetBool("headless") ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGINT, syscall.SIGTERM) defer cancel() - logger := env.NewLogger(cmd) context := project.EnsureProject(ctx, cmd) + logger := env.NewLogger(cmd) + + if headless && apikey != "" && orgId != "" && name != "" && description != "" { + context.Project.Name = name + context.Project.Description = description + result, err := context.Project.Import(ctx, logger, context.APIURL, apikey, orgId, true) + if err != nil { + errsystem.New(errsystem.ErrImportingProject, err, errsystem.WithContextMessage("Error importing project")).ShowErrorAndExit() + } + saveEnv(dir, result.APIKey, result.ProjectKey) + return + } + ShowNewProjectImport(ctx, logger, cmd, context.APIURL, context.Token, "", context.Project, context.Dir, true) }, } @@ -844,4 +862,9 @@ func init() { projectNewCmd.Flags().String("templates-dir", "", "The directory to load the templates. Defaults to loading them from the github.com/agentuity/templates repository") projectNewCmd.Flags().String("auth", "project", "The authentication type for the agent (project, webhook, or none)") projectNewCmd.Flags().String("action", "github-app", "The action to take for the project (github-action, github-app, none)") + + projectImportCmd.Flags().String("apikey", "", "The API key to use for the project") + projectImportCmd.Flags().Bool("headless", false, "Run the import in headless mode (true, false)") + projectImportCmd.Flags().String("name", "", "The name of the project to import") + projectImportCmd.Flags().String("description", "", "The description of the project to import") } From 153fa99aafe63ffba5db7a6138602894f000aaf7 Mon Sep 17 00:00:00 2001 From: Bobby Christopher Date: Tue, 20 May 2025 13:44:00 -0400 Subject: [PATCH 2/3] mark headless as hidden flags --- cmd/project.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cmd/project.go b/cmd/project.go index 0994d43a..e3692a0b 100644 --- a/cmd/project.go +++ b/cmd/project.go @@ -796,7 +796,6 @@ Examples: agentuity project import --dir /path/to/project`, Args: cobra.NoArgs, Run: func(cmd *cobra.Command, args []string) { - dir, _ := cmd.Flags().GetString("dir") name, _ := cmd.Flags().GetString("name") description, _ := cmd.Flags().GetString("description") orgId, _ := cmd.Flags().GetString("org-id") @@ -810,15 +809,15 @@ Examples: if headless && apikey != "" && orgId != "" && name != "" && description != "" { context.Project.Name = name context.Project.Description = description - result, err := context.Project.Import(ctx, logger, context.APIURL, apikey, orgId, true) + _, err := context.Project.Import(ctx, logger, context.APIURL, apikey, orgId, true) if err != nil { errsystem.New(errsystem.ErrImportingProject, err, errsystem.WithContextMessage("Error importing project")).ShowErrorAndExit() } - saveEnv(dir, result.APIKey, result.ProjectKey) return } ShowNewProjectImport(ctx, logger, cmd, context.APIURL, context.Token, "", context.Project, context.Dir, true) + }, } @@ -867,4 +866,9 @@ func init() { projectImportCmd.Flags().Bool("headless", false, "Run the import in headless mode (true, false)") projectImportCmd.Flags().String("name", "", "The name of the project to import") projectImportCmd.Flags().String("description", "", "The description of the project to import") + + projectImportCmd.Flags().MarkHidden("apikey") + projectImportCmd.Flags().MarkHidden("headless") + projectImportCmd.Flags().MarkHidden("name") + projectImportCmd.Flags().MarkHidden("description") } From 9684bd392c7e60782283d63091f2565e44cd092d Mon Sep 17 00:00:00 2001 From: Bobby Christopher Date: Tue, 20 May 2025 14:08:58 -0400 Subject: [PATCH 3/3] remove one flag --- cmd/project.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/project.go b/cmd/project.go index e3692a0b..ffcb4af2 100644 --- a/cmd/project.go +++ b/cmd/project.go @@ -800,13 +800,14 @@ Examples: description, _ := cmd.Flags().GetString("description") orgId, _ := cmd.Flags().GetString("org-id") apikey, _ := cmd.Flags().GetString("apikey") - headless, _ := cmd.Flags().GetBool("headless") + ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGINT, syscall.SIGTERM) defer cancel() context := project.EnsureProject(ctx, cmd) logger := env.NewLogger(cmd) - if headless && apikey != "" && orgId != "" && name != "" && description != "" { + // headless mode for nova + if apikey != "" && orgId != "" && name != "" && description != "" { context.Project.Name = name context.Project.Description = description _, err := context.Project.Import(ctx, logger, context.APIURL, apikey, orgId, true) @@ -863,12 +864,11 @@ func init() { projectNewCmd.Flags().String("action", "github-app", "The action to take for the project (github-action, github-app, none)") projectImportCmd.Flags().String("apikey", "", "The API key to use for the project") - projectImportCmd.Flags().Bool("headless", false, "Run the import in headless mode (true, false)") projectImportCmd.Flags().String("name", "", "The name of the project to import") projectImportCmd.Flags().String("description", "", "The description of the project to import") projectImportCmd.Flags().MarkHidden("apikey") - projectImportCmd.Flags().MarkHidden("headless") projectImportCmd.Flags().MarkHidden("name") projectImportCmd.Flags().MarkHidden("description") + projectImportCmd.Flags().MarkHidden("org-id") }