Upgrade rules_go and gazelle

I want to use the new runfiles library that comes in rules_go.

Signed-off-by: Philipp Schrader <philipp.schrader@gmail.com>
Change-Id: I7c301ead2642fb2f172ad5a10824165a58d2d053
diff --git a/tools/go/go_mirrors.bzl b/tools/go/go_mirrors.bzl
index 338cc95..7a8055a 100644
--- a/tools/go/go_mirrors.bzl
+++ b/tools/go/go_mirrors.bzl
@@ -17,6 +17,12 @@
     "com_github_buildkite_go_buildkite": {
         "filename": "com_github_buildkite_go_buildkite__v2.2.0+incompatible.zip",
         "importpath": "github.com/buildkite/go-buildkite",
+        "kwargs": {
+            "build_directives": [
+                "gazelle:resolve go github.com/cenkalti/backoff @com_github_cenkalti_backoff//:go_default_library",
+                "gazelle:resolve go github.com/google/go-querystring/query @com_github_google_go_querystring//query:go_default_library",
+            ],
+        },
         "sha256": "1871115c8c6db004e4b6e57cee927043bfc9ea0c56e7b8f8336021bd8bf588c4",
         "strip_prefix": "github.com/buildkite/go-buildkite@v2.2.0+incompatible",
         "version": "v2.2.0+incompatible",
diff --git a/tools/go/mirror_go_repos.py b/tools/go/mirror_go_repos.py
index 52d611f..a7cfe08 100644
--- a/tools/go/mirror_go_repos.py
+++ b/tools/go/mirror_go_repos.py
@@ -53,6 +53,7 @@
         print(f"Downloading file for {repo['name']}")
         importpath = repo["importpath"]
         version = repo["version"]
+        repo_kwargs = repo.get("kwargs")
         module = f"{importpath}@{version}"
 
         download_result = subprocess.run(
@@ -84,6 +85,8 @@
             "version": version,
             "importpath": importpath,
         }
+        if repo_kwargs:
+            cached_info[name]["kwargs"] = repo_kwargs
 
     return cached_info
 
diff --git a/tools/go/mirrored_go_deps.bzl b/tools/go/mirrored_go_deps.bzl
index 7839f4d..adac994 100644
--- a/tools/go/mirrored_go_deps.bzl
+++ b/tools/go/mirrored_go_deps.bzl
@@ -2,7 +2,7 @@
 load("@bazel_gazelle//:deps.bzl", "go_repository")
 load("@ci_configure//:ci.bzl", "RUNNING_IN_CI")
 
-def maybe_override_go_dep(name, importpath, sum, version):
+def maybe_override_go_dep(name, importpath, sum, version, **kwargs):
     """This macro selects between our dependency mirrors and upstream sources.
 
     We want to use the mirrored version whenever possible. In CI we are required
@@ -28,12 +28,14 @@
             importpath = importpath,
             sum = sum,
             version = version,
+            **kwargs
         )
 
 def mirrored_go_dependencies():
     """Sets up the Go dependencies we've mirrored."""
     for name in GO_MIRROR_INFO:
         info = GO_MIRROR_INFO[name]
+        kwargs = info.get("kwargs", {})
         go_repository(
             name = name,
             strip_prefix = info["strip_prefix"],
@@ -43,4 +45,5 @@
             ],
             sha256 = info["sha256"],
             importpath = info["importpath"],
+            **kwargs
         )