MCPcopy
hub / github.com/cli/cli / publishRelease

Function publishRelease

pkg/cmd/release/create/http.go:223–262  ·  view source on GitHub ↗
(httpClient *http.Client, releaseURL string, discussionCategory string, isLatest *bool)

Source from the content-addressed store, hash-verified

221}
222
223func publishRelease(httpClient *http.Client, releaseURL string, discussionCategory string, isLatest *bool) (*shared.Release, error) {
224 params := map[string]interface{}{"draft": false}
225 if discussionCategory != "" {
226 params["discussion_category_name"] = discussionCategory
227 }
228
229 if isLatest != nil {
230 params["make_latest"] = fmt.Sprintf("%v", *isLatest)
231 }
232
233 bodyBytes, err := json.Marshal(params)
234 if err != nil {
235 return nil, err
236 }
237 req, err := http.NewRequest("PATCH", releaseURL, bytes.NewBuffer(bodyBytes))
238 if err != nil {
239 return nil, err
240 }
241
242 req.Header.Add("Content-Type", "application/json")
243
244 resp, err := httpClient.Do(req)
245 if err != nil {
246 return nil, err
247 }
248
249 defer resp.Body.Close()
250 if resp.StatusCode > 299 {
251 return nil, api.HandleHTTPError(resp)
252 }
253
254 b, err := io.ReadAll(resp.Body)
255 if err != nil {
256 return nil, err
257 }
258
259 var release shared.Release
260 err = json.Unmarshal(b, &release)
261 return &release, err
262}
263
264func deleteRelease(httpClient *http.Client, release *shared.Release) error {
265 req, err := http.NewRequest("DELETE", release.APIURL, nil)

Callers 1

createRunFunction · 0.85

Calls 4

HandleHTTPErrorFunction · 0.92
AddMethod · 0.65
DoMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected