11package release
22
33import (
4+ "encoding/json"
45 "fmt"
56 "time"
67
@@ -16,8 +17,10 @@ func NewReleaseCmd() *cobra.Command {
1617 var deploymentID string
1718 var metadata map [string ]string
1819 var configArray map [string ]string
20+ var links map [string ]string
1921 var createdAt string
2022 var name string
23+
2124 cmd := & cobra.Command {
2225 Use : "release [flags]" ,
2326 Short : "Create a new release" ,
@@ -46,6 +49,15 @@ func NewReleaseCmd() *cobra.Command {
4649 parsedTime = & t
4750 }
4851
52+ if len (links ) > 0 {
53+ linksJSON , err := json .Marshal (links )
54+ if err != nil {
55+ return fmt .Errorf ("failed to marshal links: %w" , err )
56+ }
57+ metadata ["ctrlplane/links" ] = string (linksJSON )
58+ }
59+
60+
4961 config := cliutil .ConvertConfigArrayToNestedMap (configArray )
5062 resp , err := client .CreateRelease (cmd .Context (), api.CreateReleaseJSONRequestBody {
5163 Version : versionFlag ,
@@ -68,6 +80,7 @@ func NewReleaseCmd() *cobra.Command {
6880 cmd .Flags ().StringVar (& deploymentID , "deployment" , "" , "ID of the deployment (required)" )
6981 cmd .Flags ().StringToStringVar (& metadata , "metadata" , make (map [string ]string ), "Metadata key-value pairs (e.g. --metadata key=value)" )
7082 cmd .Flags ().StringToStringVar (& configArray , "config" , make (map [string ]string ), "Config key-value pairs with nested values (can be specified multiple times)" )
83+ cmd .Flags ().StringToStringVar (& links , "link" , make (map [string ]string ), "Links key-value pairs (can be specified multiple times)" )
7184 cmd .Flags ().StringVar (& createdAt , "created-at" , "" , "Created at timestamp (e.g. --created-at 2024-01-01T00:00:00Z) for the release channel" )
7285 cmd .Flags ().StringVar (& name , "name" , "" , "Name of the release channel" )
7386
0 commit comments