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

Function getLatestReleaseInfo

internal/update/update.go:115–145  ·  view source on GitHub ↗
(ctx context.Context, client *http.Client, repo string)

Source from the content-addressed store, hash-verified

113}
114
115func getLatestReleaseInfo(ctx context.Context, client *http.Client, repo string) (*ReleaseInfo, error) {
116 owner, name, err := safeurl.RepoPartsFromNWO(repo)
117 if err != nil {
118 return nil, err
119 }
120 u, err := safeurl.JoinPathWithHostPrefix("https://api.github.com", "repos", owner, name, "releases", "latest")
121 if err != nil {
122 return nil, err
123 }
124 req, err := http.NewRequestWithContext(ctx, "GET", u.String(), nil)
125 if err != nil {
126 return nil, err
127 }
128 res, err := client.Do(req)
129 if err != nil {
130 return nil, err
131 }
132 defer func() {
133 _, _ = io.Copy(io.Discard, res.Body)
134 res.Body.Close()
135 }()
136 if res.StatusCode != 200 {
137 return nil, fmt.Errorf("unexpected HTTP %d", res.StatusCode)
138 }
139 dec := json.NewDecoder(res.Body)
140 var latestRelease ReleaseInfo
141 if err := dec.Decode(&latestRelease); err != nil {
142 return nil, err
143 }
144 return &latestRelease, nil
145}
146
147func getStateEntry(stateFilePath string) (*StateEntry, error) {
148 content, err := os.ReadFile(stateFilePath)

Callers 1

CheckForUpdateFunction · 0.85

Calls 7

RepoPartsFromNWOFunction · 0.92
JoinPathWithHostPrefixFunction · 0.92
StringMethod · 0.65
DoMethod · 0.65
CloseMethod · 0.65
ErrorfMethod · 0.65
CopyMethod · 0.45

Tested by

no test coverage detected