MCPcopy Create free account
hub / github.com/cli/cli / generateReleaseNotes

Function generateReleaseNotes

pkg/cmd/release/create/http.go:97–148  ·  view source on GitHub ↗
(httpClient *http.Client, repo ghrepo.Interface, tagName, target, previousTagName string)

Source from the content-addressed store, hash-verified

95}
96
97func generateReleaseNotes(httpClient *http.Client, repo ghrepo.Interface, tagName, target, previousTagName string) (*releaseNotes, error) {
98 params := map[string]interface{}{
99 "tag_name": tagName,
100 }
101 if target != "" {
102 params["target_commitish"] = target
103 }
104 if previousTagName != "" {
105 params["previous_tag_name"] = previousTagName
106 }
107
108 bodyBytes, err := json.Marshal(params)
109 if err != nil {
110 return nil, err
111 }
112
113 url, err := safeurl.JoinPathWithHostPrefix(ghinstance.RESTPrefix(repo.RepoHost()), "repos", repo.RepoOwner(), repo.RepoName(), "releases", "generate-notes")
114 if err != nil {
115 return nil, err
116 }
117 req, err := http.NewRequest("POST", url.String(), bytes.NewBuffer(bodyBytes))
118 if err != nil {
119 return nil, err
120 }
121
122 req.Header.Set("Accept", "application/vnd.github.v3+json")
123 req.Header.Set("Content-Type", "application/json; charset=utf-8")
124
125 resp, err := httpClient.Do(req)
126 if err != nil {
127 return nil, err
128 }
129 defer resp.Body.Close()
130
131 if resp.StatusCode == 404 {
132 return nil, notImplementedError
133 }
134
135 success := resp.StatusCode >= 200 && resp.StatusCode < 300
136 if !success {
137 return nil, api.HandleHTTPError(resp)
138 }
139
140 b, err := io.ReadAll(resp.Body)
141 if err != nil {
142 return nil, err
143 }
144
145 var rn releaseNotes
146 err = json.Unmarshal(b, &rn)
147 return &rn, err
148}
149
150func publishedReleaseExists(httpClient *http.Client, repo ghrepo.Interface, tagName string) (bool, error) {
151 url, err := safeurl.JoinPathWithHostPrefix(ghinstance.RESTPrefix(repo.RepoHost()), "repos", repo.RepoOwner(), repo.RepoName(), "releases", "tags", tagName)

Callers 1

createRunFunction · 0.85

Calls 10

JoinPathWithHostPrefixFunction · 0.92
RESTPrefixFunction · 0.92
HandleHTTPErrorFunction · 0.92
RepoHostMethod · 0.65
RepoOwnerMethod · 0.65
RepoNameMethod · 0.65
StringMethod · 0.65
SetMethod · 0.65
DoMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected