From c798987cf528f5afa3c90cb7405e5f5a9662a5be Mon Sep 17 00:00:00 2001 From: Bobby Christopher Date: Mon, 5 May 2025 13:30:11 -0400 Subject: [PATCH] passing more stuff on --- cmd/bundle.go | 8 ++++++-- cmd/cloud.go | 21 ++++++++++++++++----- internal/deployer/metadata.go | 4 ++++ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/cmd/bundle.go b/cmd/bundle.go index 0d1f7e9b..27f5c228 100644 --- a/cmd/bundle.go +++ b/cmd/bundle.go @@ -79,7 +79,10 @@ Examples: "ci-branch", "ci-commit", "ci-messsage", - "ci-git-provider"} + "ci-logs-url", + "ci-git-provider", + "ci-logs-url", + } f := cmd.Flags() for _, flag := range flags { @@ -131,11 +134,12 @@ func init() { bundleCmd.Flags().String("ci-commit", "", "Used to set the commit hash for your deployment metadata") bundleCmd.Flags().String("ci-message", "", "Used to set the commit message for your deployment metadata") bundleCmd.Flags().String("ci-git-provider", "", "Used to set the git provider for your deployment metadata") + bundleCmd.Flags().String("ci-logs-url", "", "Used to set the CI logs URL for your deployment metadata") bundleCmd.Flags().MarkHidden("ci-remote-url") bundleCmd.Flags().MarkHidden("ci-branch") bundleCmd.Flags().MarkHidden("ci-commit") bundleCmd.Flags().MarkHidden("ci-messsage") bundleCmd.Flags().MarkHidden("ci-git-provider") - + bundleCmd.Flags().MarkHidden("ci-logs-url") } diff --git a/cmd/cloud.go b/cmd/cloud.go index c0df9e46..fb744913 100644 --- a/cmd/cloud.go +++ b/cmd/cloud.go @@ -151,6 +151,7 @@ Examples: ciCommit, _ := cmd.Flags().GetString("ci-commit") ciMessage, _ := cmd.Flags().GetString("ci-message") ciGitProvider, _ := cmd.Flags().GetString("ci-git-provider") + ciLogsUrl, _ := cmd.Flags().GetString("ci-logs-url") deploymentConfig := project.NewDeploymentConfig() client := util.NewAPIClient(ctx, logger, apiUrl, token) @@ -360,9 +361,13 @@ Examples: var gitInfo deployer.GitInfo var originType string - isOverwritingGitInfo := ciRemoteUrl != "" || ciBranch != "" || ciCommit != "" || ciMessage != "" || ciGitProvider != "" + var ciInfo deployer.CIInfo + isOverwritingGitInfo := ciRemoteUrl != "" || ciBranch != "" || ciCommit != "" || ciMessage != "" || ciGitProvider != "" || ciLogsUrl != "" if ci && isOverwritingGitInfo { originType = "ci" + ciInfo = deployer.CIInfo{ + LogsURL: ciLogsUrl, + } gitInfo = deployer.GitInfo{ RemoteURL: &ciRemoteUrl, Branch: &ciBranch, @@ -380,13 +385,17 @@ Examples: originType = "cli" } + data := map[string]interface{}{ + "machine": deployer.GetMachineInfo(), + "git": gitInfo, + } + if originType == "ci" && ciLogsUrl != "" { + data["ci"] = ciInfo + } startRequest.Metadata = &deployer.Metadata{ Origin: deployer.MetadataOrigin{ Type: originType, - Data: map[string]interface{}{ - "machine": deployer.GetMachineInfo(), - "git": gitInfo, - }, + Data: data, }, } @@ -653,6 +662,7 @@ func init() { cloudDeployCmd.Flags().String("ci-commit", "", "Used to set the commit hash for your deployment metadata") cloudDeployCmd.Flags().String("ci-message", "", "Used to set the commit message for your deployment metadata") cloudDeployCmd.Flags().String("ci-git-provider", "", "Used to set the git provider for your deployment metadata") + cloudDeployCmd.Flags().String("ci-logs-url", "", "Used to set the CI logs URL for your deployment metadata") cloudDeployCmd.Flags().MarkHidden("deploymentId") cloudDeployCmd.Flags().MarkHidden("ci") @@ -661,6 +671,7 @@ func init() { cloudDeployCmd.Flags().MarkHidden("ci-commit") cloudDeployCmd.Flags().MarkHidden("ci-messsage") cloudDeployCmd.Flags().MarkHidden("ci-git-provider") + cloudDeployCmd.Flags().MarkHidden("ci-logs-url") cloudDeployCmd.Flags().String("format", "text", "The output format to use for results which can be either 'text' or 'json'") cloudDeployCmd.Flags().String("org-id", "", "The organization to create the project in") diff --git a/internal/deployer/metadata.go b/internal/deployer/metadata.go index 3bb18127..8b6b7b39 100644 --- a/internal/deployer/metadata.go +++ b/internal/deployer/metadata.go @@ -9,6 +9,10 @@ import ( "github.com/go-git/go-git/v5" ) +type CIInfo struct { + LogsURL string `json:"logsUrl"` +} + // GitInfo contains basic git repository information type GitInfo struct { RemoteURL *string `json:"remoteUrl"`