claudetool/codereview: add go generate support
Automatically run 'go generate' as part of codereview,
since sketch sometimes forgets to do it.
Co-Authored-By: sketch <hello@sketch.dev>
Change-ID: safe9348e7c24beffk
diff --git a/claudetool/codereview/testdata/generate_error.txtar b/claudetool/codereview/testdata/generate_error.txtar
new file mode 100644
index 0000000..e5c195f
--- /dev/null
+++ b/claudetool/codereview/testdata/generate_error.txtar
@@ -0,0 +1,30 @@
+Test go generate error handling in mechanical checks
+
+-- go.mod --
+module sketch.dev
+
+go 1.23
+
+-- .commit --
+Initial commit
+
+-- main.go --
+package main
+
+//go:generate false
+
+func main() {
+ println("Hello, world!")
+}
+
+-- .commit --
+Commit with failing go generate directive
+
+-- .run_test --
+# Errors
+
+$ go generate sketch.dev
+main.go:3: running "false": exit status 1
+
+
+Please fix before proceeding.
diff --git a/claudetool/codereview/testdata/generate_no_changes.txtar b/claudetool/codereview/testdata/generate_no_changes.txtar
new file mode 100644
index 0000000..e38d7e9
--- /dev/null
+++ b/claudetool/codereview/testdata/generate_no_changes.txtar
@@ -0,0 +1,24 @@
+Test go generate with no changes in mechanical checks
+
+-- go.mod --
+module sketch.dev
+
+go 1.23
+
+-- .commit --
+Initial commit
+
+-- main.go --
+package main
+
+//go:generate echo "No-op generation"
+
+func main() {
+ println("Hello, world!")
+}
+
+-- .commit --
+Commit with no-op go generate directive
+
+-- .run_test --
+OK
diff --git a/claudetool/codereview/testdata/generate_success.txtar b/claudetool/codereview/testdata/generate_success.txtar
new file mode 100644
index 0000000..b6b6183
--- /dev/null
+++ b/claudetool/codereview/testdata/generate_success.txtar
@@ -0,0 +1,49 @@
+Test go generate as part of mechanical checks
+
+-- go.mod --
+module sketch.dev
+
+go 1.23
+
+-- .commit --
+Initial commit
+
+-- gen.go --
+//go:build ignore
+
+package main
+
+import (
+ "os"
+)
+
+func main() {
+ f, _ := os.Create("generated.go")
+ defer f.Close()
+ f.WriteString("// Code generated by go generate; DO NOT EDIT.\n")
+ f.WriteString("package main\n")
+ f.WriteString("const GeneratedValue = 42\n")
+}
+
+-- main.go --
+package main
+
+//go:generate go run gen.go
+
+func main() {
+ println("Hello, world!")
+}
+
+-- .commit --
+Initial commit with go generate directive
+
+-- .run_test --
+# Info
+
+The following files were changed by running `go generate`:
+
+/PATH/TO/REPO/generated.go
+
+Please amend your latest git commit with these changes.
+
+
diff --git a/claudetool/codereview/testdata/related_files_cooccurrence.txtar b/claudetool/codereview/testdata/related_files_cooccurrence.txtar
index b15f325..d42ee70 100644
--- a/claudetool/codereview/testdata/related_files_cooccurrence.txtar
+++ b/claudetool/codereview/testdata/related_files_cooccurrence.txtar
@@ -81,12 +81,15 @@
x := 42 // new gopls issue to view mixed info/error lines
}
+-- .commit --
+Update file a.go only (again)
+
-- .run_test --
# Info
Potentially related files:
-- p.go (33%)
+- p.go (30%)
These files have historically changed with the files you have modified. Consider whether they require updates as well.