fix(internal/gapicgen): tidy all after dep bump  (#4515)

Fixes: #4434
diff --git a/internal/gapicgen/execv/gocmd/gocmd.go b/internal/gapicgen/execv/gocmd/gocmd.go
index 7bb85f8..0d91cb5 100644
--- a/internal/gapicgen/execv/gocmd/gocmd.go
+++ b/internal/gapicgen/execv/gocmd/gocmd.go
@@ -18,9 +18,11 @@
 import (
 	"errors"
 	"fmt"
+	"io/fs"
 	"log"
 	"os"
 	"os/exec"
+	"path/filepath"
 	"strings"
 
 	"cloud.google.com/go/internal/gapicgen/execv"
@@ -43,6 +45,30 @@
 	return c.Run()
 }
 
+// ModTidyAll tidies all mod files from the specified root directory.
+func ModTidyAll(dir string) error {
+	log.Printf("[%s] finding all modules", dir)
+	var modDirs []string
+	err := filepath.WalkDir(dir, func(path string, d fs.DirEntry, err error) error {
+		if err != nil {
+			return err
+		}
+		if d.Name() == "go.mod" {
+			modDirs = append(modDirs, filepath.Dir(path))
+		}
+		return nil
+	})
+	if err != nil {
+		return err
+	}
+	for _, modDir := range modDirs {
+		if err := ModTidy(modDir); err != nil {
+			return err
+		}
+	}
+	return nil
+}
+
 // ListModName finds a modules name for a given directory.
 func ListModName(dir string) (string, error) {
 	modC := execv.Command("go", "list", "-m")
diff --git a/internal/gapicgen/git/github.go b/internal/gapicgen/git/github.go
index 1f19bf0..136110b 100644
--- a/internal/gapicgen/git/github.go
+++ b/internal/gapicgen/git/github.go
@@ -410,14 +410,15 @@
 
 go get -d google.golang.org/api | true # We don't care that there's no files at root.
 go get -d google.golang.org/genproto | true # We don't care that there's no files at root.
-go mod tidy
 `)
 		c.Dir = modDir
 		if err := c.Run(); err != nil {
 			return err
 		}
 	}
-	return nil
+
+	// Tidy all modules
+	return gocmd.ModTidyAll(tmpDir)
 }
 
 func addAndPushCode(tmpDir string) error {
diff --git a/internal/generated/snippets/go.mod b/internal/generated/snippets/go.mod
index 961de0e..9cc0005 100644
--- a/internal/generated/snippets/go.mod
+++ b/internal/generated/snippets/go.mod
@@ -32,5 +32,5 @@
 	cloud.google.com/go/pubsublite v0.88.0
 	cloud.google.com/go/spanner v0.88.0
 	google.golang.org/api v0.51.0
-	google.golang.org/genproto v0.0.0-20210726200206-e7812ac95cc0
+	google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f
 )
diff --git a/internal/generated/snippets/go.sum b/internal/generated/snippets/go.sum
index 87a379a..57f99b9 100644
--- a/internal/generated/snippets/go.sum
+++ b/internal/generated/snippets/go.sum
@@ -147,8 +147,9 @@
 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
 google.golang.org/genproto v0.0.0-20210726143408-b02e89920bf0/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
-google.golang.org/genproto v0.0.0-20210726200206-e7812ac95cc0 h1:VpRFBmFg/ol+rqJnkKLPjVebPNFbSxuj17B7bH1xMc8=
 google.golang.org/genproto v0.0.0-20210726200206-e7812ac95cc0/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f h1:4m1jFN3fHeKo0UvpraW2ipO2O0rgp5w2ugXeggtecAk=
+google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
diff --git a/internal/godocfx/go.sum b/internal/godocfx/go.sum
index 36fda6c..557858c 100644
--- a/internal/godocfx/go.sum
+++ b/internal/godocfx/go.sum
@@ -306,8 +306,8 @@
 google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200827165113-ac2560b5e952/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
-google.golang.org/genproto v0.0.0-20210726143408-b02e89920bf0 h1:tcs4DyF9LYv8cynRAbX8JeBpuezJLaK6RfiATAsGwnY=
-google.golang.org/genproto v0.0.0-20210726143408-b02e89920bf0/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f h1:4m1jFN3fHeKo0UvpraW2ipO2O0rgp5w2ugXeggtecAk=
+google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
 google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=