(httpClient *http.Client, releaseURL string, discussionCategory string, isLatest *bool)
| 221 | } |
| 222 | |
| 223 | func 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 | |
| 264 | func deleteRelease(httpClient *http.Client, release *shared.Release) error { |
| 265 | req, err := http.NewRequest("DELETE", release.APIURL, nil) |
no test coverage detected