Skip to content

Commit faa6814

Browse files
chore: add release get cmd
1 parent 67b7e54 commit faa6814

2 files changed

Lines changed: 46 additions & 0 deletions

File tree

cmd/ctrlc/root/api/get/get.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package get
22

33
import (
4+
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/get/release"
45
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/get/resources"
56
"github.com/spf13/cobra"
67
)
@@ -16,6 +17,7 @@ func NewGetCmd() *cobra.Command {
1617
}
1718

1819
cmd.AddCommand(resources.NewResourcesCmd())
20+
cmd.AddCommand(release.NewReleaseCmd())
1921

2022
return cmd
2123
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package release
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/ctrlplanedev/cli/internal/api"
7+
"github.com/ctrlplanedev/cli/internal/cliutil"
8+
"github.com/spf13/cobra"
9+
"github.com/spf13/viper"
10+
)
11+
12+
func NewReleaseCmd() *cobra.Command {
13+
var releaseID string
14+
cmd := &cobra.Command{
15+
Use: "release",
16+
Short: "Get a release",
17+
Long: "Get a release by ID",
18+
RunE: func(cmd *cobra.Command, args []string) error {
19+
apiURL := viper.GetString("url")
20+
apiKey := viper.GetString("api-key")
21+
workspace := viper.GetString("workspace")
22+
23+
client, err := api.NewAPIKeyClientWithResponses(apiURL, apiKey)
24+
if err != nil {
25+
return fmt.Errorf("failed to create API client: %w", err)
26+
}
27+
28+
workspaceID := client.GetWorkspaceID(cmd.Context(), workspace)
29+
resp, err := client.GetRelease(cmd.Context(), workspaceID.String(), releaseID)
30+
if err != nil {
31+
return fmt.Errorf("failed to get release: %w", err)
32+
}
33+
34+
return cliutil.HandleResponseOutput(cmd, resp)
35+
},
36+
}
37+
38+
cmd.Flags().StringVarP(&releaseID, "id", "i", "", "Release ID")
39+
cmd.MarkFlagRequired("id")
40+
41+
cmd.MarkFlagRequired("workspace")
42+
43+
return cmd
44+
}

0 commit comments

Comments
 (0)