MCPcopy Create free account
hub / github.com/OctopusDeploy/cli / resolveReleaseDefectRun

Function resolveReleaseDefectRun

pkg/cmd/release/progression/allow/allow.go:88–135  ·  view source on GitHub ↗
(opts *AllowOptions)

Source from the content-addressed store, hash-verified

86}
87
88func resolveReleaseDefectRun(opts *AllowOptions) error {
89 if !opts.NoPrompt {
90 if err := PromptMissing(opts); err != nil {
91 return err
92 }
93 }
94
95 var err error
96 opts.ReleaseID, err = shared.GetReleaseID(opts.Client, opts.Client.GetSpaceID(), opts.Project.Value, opts.Version.Value)
97 if err != nil {
98 return err
99 }
100
101 resolveDefectCommand, err := defects.NewResolveReleaseDefectCommand(opts.ReleaseID)
102 if err != nil {
103 return err
104 }
105
106 existingDefects, err := defects.GetAll(opts.Client, opts.Client.GetSpaceID(), opts.ReleaseID)
107 if err != nil {
108 return err
109 }
110
111 isReleaseAllowedToProgressAlready := util.SliceContainsAll(existingDefects, func(item *defects.Defect) bool {
112 return item.Status == defects.DefectStatusResolved
113 })
114 if isReleaseAllowedToProgressAlready {
115 _, _ = fmt.Fprintf(opts.Out, "Release with version/release number '%s' (%s) is already allowed to progress to the next phase.\n", opts.Version.Value, output.Dim(opts.ReleaseID))
116 return nil
117 }
118
119 _, err = defects.Resolve(opts.Client, opts.Client.GetSpaceID(), resolveDefectCommand)
120 if err != nil {
121 return err
122 }
123
124 _, err = fmt.Fprintf(opts.Out, "Successfully allowed progression for release %s (%s) in project %s\n", opts.Version.Value, output.Dim(opts.ReleaseID), opts.Project.Value)
125 if err != nil {
126 return err
127 }
128
129 if !opts.NoPrompt {
130 autoCmd := flag.GenerateAutomationCmd(opts.CmdPath, opts.GetSpaceNameOrEmpty(), opts.Project, opts.Version)
131 _, _ = fmt.Fprintf(opts.Out, "\nAutomation Command: %s\n", autoCmd)
132 }
133
134 return nil
135}
136
137func PromptMissing(opts *AllowOptions) error {
138 var err error

Callers 1

NewCmdAllowFunction · 0.85

Calls 6

GetReleaseIDFunction · 0.92
SliceContainsAllFunction · 0.92
DimFunction · 0.92
GenerateAutomationCmdFunction · 0.92
GetSpaceNameOrEmptyMethod · 0.80
PromptMissingFunction · 0.70

Tested by

no test coverage detected