third_party/sandboxroot: add mirror tool

This mirrors the sandbox RPMs into a GCS bucket any time we regenerate
it. Hopefully this stops the constant barrage of random 404s when Fedora
just happened to bump a library and all the mirrors lost its previous
version.

This tool is currently specific to our bazeldnf-based sandboxroot setup,
but could be extended to mirror all of our dependencies at some point.

As our mirror is the last in the list, it should only be used when a
file is missing from other mirrors. In the future, we should have some
job that alerts us when too many of our deps are missing from upstream
mirrors.

Change-Id: I08ccbdf99ec868363918e30f3d2ae94f463e045f
Reviewed-on: https://review.monogon.dev/c/monogon/+/1473
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/go.mod b/go.mod
index eb53e74..f7a076c 100644
--- a/go.mod
+++ b/go.mod
@@ -66,6 +66,7 @@
 replace github.com/vishvananda/netlink => github.com/monogon-dev/netlink v0.0.0-20230125113930-88977c3ff4b3
 
 require (
+	cloud.google.com/go/storage v1.28.0
 	github.com/adrg/xdg v0.4.0
 	github.com/bazelbuild/rules_go v0.30.0
 	github.com/cavaliergopher/cpio v1.0.1
@@ -147,6 +148,11 @@
 )
 
 require (
+	cloud.google.com/go v0.107.0 // indirect
+	cloud.google.com/go/iam v0.8.0 // indirect
+)
+
+require (
 	cloud.google.com/go/compute v1.18.0 // indirect
 	cloud.google.com/go/compute/metadata v0.2.3 // indirect
 	github.com/Azure/azure-sdk-for-go v63.4.0+incompatible // indirect
@@ -376,7 +382,7 @@
 	go.opentelemetry.io/otel/sdk/metric v0.20.0 // indirect
 	go.opentelemetry.io/otel/trace v1.3.0 // indirect
 	go.opentelemetry.io/proto/otlp v0.11.0 // indirect
-	go.starlark.net v0.0.0-20210223155950-e043a3d3c984 // indirect
+	go.starlark.net v0.0.0-20210223155950-e043a3d3c984
 	go.uber.org/atomic v1.9.0 // indirect
 	go.uber.org/zap v1.19.1 // indirect
 	golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4 // indirect