internal/worker: check analysis work version

Before running an analysis scan, check if the result is already
in BigQuery.

As with govulncheck, we do this by storing a WorkVersion for
each analysis, keyed by module path, version, and binary. If the work
version of the incoming work matches a stored one that is read at
startup, then the scan can be skipped.

This required some refactoring to download the binary earlier,
so its hash can be computed before scanning starts.

Change-Id: I24506c7669ed282224c987d0700123820dd64ab4
Reviewed-on: https://go-review.googlesource.com/c/pkgsite-metrics/+/476955
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Zvonimir Pavlinovic <zpavlinovic@google.com>
4 files changed
tree: 1644ffec04fe3d6169644443c56edf7d10f3a8a9
  1. cmd/
  2. deploy/
  3. devtools/
  4. internal/
  5. terraform/
  6. .dockerignore
  7. .gitignore
  8. all_test.go
  9. checks.bash
  10. config.json.commented
  11. CONTRIBUTING.md
  12. go.mod
  13. go.sum
  14. LICENSE
  15. Makefile
  16. PATENTS
  17. README.md
  18. tools.go
  19. tools_test.go
README.md

pkgsite-metrics

This repository contains code that serves pkg.go.dev/metrics.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.

The main issue tracker for the time repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/pkgsite-metrics:” in the subject line, so it is easy to find.