internal/vuln: refactor vulndb client to prepare for v1 client

This change refactors the internal/vuln package to prepare for
the Client struct to support both the legacy
vulndb client and the new v1 client (introduced in a later CL).

The Client struct now contains only an embedded client interface which
is implemented by the legacyClient struct. The client interface is
essentially the same as the x/vuln Client interface, except that the
method GetByModule is replaced by ByPackage, which filters vulns
based on module, package and version.

The legacy client is refactored to implement ByPackage. In pkgsite,
ByPackage is used only by VulnsForPackage, whose behavior and interface
are not modified by this change. The rest of the legacy client is
essentially a pass-through to the x/vuln Client.

Once we have confidence that the v1 client works, the dependency on
the x/vuln Client will be removed completely.

Change-Id: Ia4f0d587ac4cfa28980f45ddbe8d609b5989666a
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/474695
Reviewed-by: Julie Qiu <julieqiu@google.com>
Reviewed-by: Tatiana Bradley <tatianabradley@google.com>
Run-TryBot: Tatiana Bradley <tatianabradley@google.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
6 files changed
tree: deb27eb7610f25bde3ccfcc9f1008b73831c7f8e
  1. cmd/
  2. deploy/
  3. devtools/
  4. doc/
  5. internal/
  6. migrations/
  7. static/
  8. tests/
  9. third_party/
  10. .dockerignore
  11. .eslintignore
  12. .eslintrc.yaml
  13. .gitignore
  14. .prettierignore
  15. .prettierrc.yaml
  16. .stylelintignore
  17. .stylelintrc.yaml
  18. all.bash
  19. CONTRIBUTING.md
  20. go.mod
  21. go.sum
  22. jest.config.js
  23. LICENSE
  24. package-lock.json
  25. package.json
  26. PATENTS
  27. README.md
  28. tsconfig.json
README.md

Pkg.go.dev

Go Reference

A site for discovering Go packages

Pkg.go.dev is a website for discovering and evaluating Go packages and modules.

You can check it out at https://pkg.go.dev.

Requirements

Pkgsite requires Go 1.19 to run. The last commit that works with Go 1.18 is 9ffe8b928e4fbd3ff7dcf984254629a47f8b6e63. The last commit that works with Go 1.17 is 4d836c6a652cde92f433967680dfd6171a91ec12.

Issues

If you want to report a bug or have a feature suggestion, please first check the known issues to see if your issue is already being discussed. If an issue does not already exist, feel free to file an issue.

For answers to frequently asked questions, see pkg.go.dev/about.

You can also chat with us on the #pkgsite Slack channel on the Gophers Slack.

Contributing

We would love your help!

Our canonical Git repository is located at go.googlesource.com/pkgsite. There is a mirror of the repository at github.com/golang/pkgsite.

To contribute, please read our contributing guide.

License

Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.

Links