MCPcopy
hub / github.com/ossf/scorecard / GetProjectPackageVersions

Method GetProjectPackageVersions

internal/packageclient/depsdev.go:66–103  ·  view source on GitHub ↗
(
	ctx context.Context, host, project string,
)

Source from the content-addressed store, hash-verified

64)
65
66func (d depsDevClient) GetProjectPackageVersions(
67 ctx context.Context, host, project string,
68) (*ProjectPackageVersions, error) {
69 path := fmt.Sprintf("%s/%s", host, project)
70 query := fmt.Sprintf("https://api.deps.dev/v3/projects/%s:packageversions", url.QueryEscape(path))
71
72 req, err := http.NewRequestWithContext(ctx, http.MethodGet, query, nil)
73 if err != nil {
74 return nil, fmt.Errorf("http.NewRequestWithContext: %w", err)
75 }
76
77 resp, err := d.client.Do(req)
78 if err != nil {
79 return nil, fmt.Errorf("deps.dev GetProjectPackageVersions: %w", err)
80 }
81 defer resp.Body.Close()
82
83 var res ProjectPackageVersions
84 if resp.StatusCode == http.StatusNotFound {
85 return nil, ErrProjNotFoundInDepsDev
86 }
87
88 if resp.StatusCode != http.StatusOK {
89 return nil, fmt.Errorf("%w: %s", ErrDepsDevAPI, resp.Status)
90 }
91
92 body, err := io.ReadAll(resp.Body)
93 if err != nil {
94 return nil, fmt.Errorf("resp.Body.Read: %w", err)
95 }
96
97 err = json.Unmarshal(body, &res)
98 if err != nil {
99 return nil, fmt.Errorf("deps.dev json.Unmarshal: %w", err)
100 }
101
102 return &res, nil
103}

Callers

nothing calls this directly

Calls 1

CloseMethod · 0.65

Tested by

no test coverage detected