internal/middleware,etl: add error reporting middleware

A new middleware is added that sends an error report whenever the ETL
returns a 500 from a scheduled endpoint.

Along the way, refactor main() in cmd/etl to be more consistent about
resolving dependencies in helper functions.

Fixes b/142731446

Change-Id: Ib44cd40bf48a3c229220c8c571e52ee033047aa5
Reviewed-on: https://team-review.git.corp.google.com/c/golang/discovery/+/592534
CI-Result: Cloud Build <devtools-proctor-result-processor@system.gserviceaccount.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Julie Qiu <julieqiu@google.com>
8 files changed
tree: aedae14ac29464f3a0606846d5a5ed936738cf7b
  1. cmd/
  2. content/
  3. internal/
  4. migrations/
  5. .gitignore
  6. .prettierrc.yaml
  7. all.bash
  8. CONTRIBUTING.md
  9. go.mod
  10. go.sum
  11. LICENSE
  12. PATENTS
  13. README.md
README.md

Go Module Discovery Site

Getting Started

Requirements

Migrations

Migrations are managed with the golang-migrate/migrate CLI tool.

To run all the migrations:

migrate -source file:migrations -database "postgres://localhost:5432/discovery-database?sslmode=disable" up

To create a new migration:

migrate create -ext sql -dir migrations -seq <title>

This creates two empty files in /migrations:

{version}_{title}.up.sql
{version}_{title}.down.sql

The two migration files are used to migrate “up” to the specified version from the previous version, and to migrate “down” to the previous version. See golang-migrate/migrate/MIGRATIONS.md for details.