MCPcopy
hub / github.com/cli/cli / getLatestReleaseInfo

Function getLatestReleaseInfo

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

Source from the content-addressed store, hash-verified

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

Callers 1

CheckForUpdateFunction · 0.85

Calls 4

DoMethod · 0.65
CloseMethod · 0.65
ErrorfMethod · 0.65
CopyMethod · 0.45

Tested by

no test coverage detected