)]}'
{
  "commit": "56929daa40a419a4e538d2c73bb82c05148793a8",
  "tree": "8efc899cdf520b9b78982f2278254f57b146a0a1",
  "parents": [
    "28ce0415f944ea5098fd30452fa320aae5142a49"
  ],
  "author": {
    "name": "David Zbarsky",
    "email": "dzbarsky@gmail.com",
    "time": "Wed Oct 08 17:04:42 2025 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Oct 08 23:04:42 2025 +0200"
  },
  "message": "Allow collecting coverage for go_binary executed as child process (#4461)\n\n**What type of PR is this?**\nfeature\n\n**What does this PR do? Why is it needed?**\nAdds a shim to go_binary when built in coverage mode to collect coverage\ninfo. Useful for integration testing.\n\n**Other notes for review**\nAdded integration test\n\nManual testing:\n```\nbazel coverage foo:all --cache_test_results\u003dno --instrument_test_targets --instrumentation_filter\u003d//... --combined_report\u003dlcov\ngenhtml -o coverage_html /private/var/tmp/_bazel_dzbarsky/2c76d2042b2c36d4458efe14b865e618/execroot/io_bazel_rules_go/bazel-out/darwin_arm64-fastbuild/testlogs/foo/foo_test/coverage.dat \u0026\u0026 open coverage_html/index.html\n```\n\u003cimg width\u003d\"968\" height\u003d\"320\" alt\u003d\"image\"\nsrc\u003d\"https://github.com/user-attachments/assets/b2b7ef3e-bd8f-46ff-9fa8-66581b735f24\"\n/\u003e\n\u003cimg width\u003d\"669\" height\u003d\"286\" alt\u003d\"image\"\nsrc\u003d\"https://github.com/user-attachments/assets/55b24983-67b4-490a-b9ec-85dfef76470c\"\n/\u003e\n\nFixes https://github.com/bazel-contrib/rules_go/issues/3513",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "554a83176aebe818614e11d2754a0491f6ee66e0",
      "old_mode": 33188,
      "old_path": "go/private/BUILD.bazel",
      "new_id": "e18aa94cab715c60c5f3756ca53bfdc09ce6adf6",
      "new_mode": 33188,
      "new_path": "go/private/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "758b8f311e114788d5808bc6493fa8b29dd54165",
      "old_mode": 33188,
      "old_path": "go/private/actions/stdlib.bzl",
      "new_id": "3b7f7c8a4485e6725c32518c58ad5cbfc8e6a341",
      "new_mode": 33188,
      "new_path": "go/private/actions/stdlib.bzl"
    },
    {
      "type": "modify",
      "old_id": "93733b97602278d393a6e381f22fd2e957498c7f",
      "old_mode": 33188,
      "old_path": "go/private/context.bzl",
      "new_id": "44fbaccedb20da08fee273af9689b688c1fe43d2",
      "new_mode": 33188,
      "new_path": "go/private/context.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3110ae0d41554ab02c713baf91182bf6ffe17d59",
      "new_mode": 33188,
      "new_path": "go/private/coverage_shim.go"
    },
    {
      "type": "modify",
      "old_id": "d592b0c4536f5f57989f2369981a71d9ea895168",
      "old_mode": 33188,
      "old_path": "go/private/rules/binary.bzl",
      "new_id": "a5c6cc68818b2ed5a6cc72d1ec9f623f986232ad",
      "new_mode": 33188,
      "new_path": "go/private/rules/binary.bzl"
    },
    {
      "type": "modify",
      "old_id": "83909ec53cfccf7656db67e5ca74ad103b05623e",
      "old_mode": 33188,
      "old_path": "go/private/rules/transition.bzl",
      "new_id": "c4b1092dc2e1ca93a658507c9565cf45d8ecabdd",
      "new_mode": 33188,
      "new_path": "go/private/rules/transition.bzl"
    },
    {
      "type": "modify",
      "old_id": "a08e572d2b2d5866b87071aed34ef0b9b0825ddb",
      "old_mode": 33188,
      "old_path": "go/tools/bzltestutil/BUILD.bazel",
      "new_id": "d9733a8204525e1e934f829000322b3a8a562695",
      "new_mode": 33188,
      "new_path": "go/tools/bzltestutil/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "236d5ea87b00c62e4f00b5ddff6e8c323e9dddc6",
      "new_mode": 33188,
      "new_path": "go/tools/bzltestutil/bincov/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3a18b01ad31a9e426434bcae025023333085eab7",
      "new_mode": 33188,
      "new_path": "go/tools/bzltestutil/bincov/coverage_visitor.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b6e63a3d94f9ddcbf2965afaa699073b6e7d1e11",
      "new_mode": 33188,
      "new_path": "go/tools/bzltestutil/bincov/coverage_visitor_go123.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0ab8d6a01cd38e9634194a2e024643a6e5207230",
      "new_mode": 33188,
      "new_path": "go/tools/bzltestutil/bincov/coverage_visitor_go124.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6da7241b7963218bda37003e72b51bea7d384ac2",
      "new_mode": 33188,
      "new_path": "go/tools/bzltestutil/bincov/exit_hook.go"
    },
    {
      "type": "modify",
      "old_id": "cd179ce8e169a69b3cc5ed1d946baa82162452c7",
      "old_mode": 33188,
      "old_path": "go/tools/bzltestutil/lcov.go",
      "new_id": "216d002224e7f15883d056616408402cb41de906",
      "new_mode": 33188,
      "new_path": "go/tools/bzltestutil/lcov.go"
    },
    {
      "type": "modify",
      "old_id": "4250e8176b78c0482c0cc6022a13be1144453ce5",
      "old_mode": 33188,
      "old_path": "tests/core/coverage/coverage_test.go",
      "new_id": "51c1d0ae955c42dcba7497a90dd9cd6b90707265",
      "new_mode": 33188,
      "new_path": "tests/core/coverage/coverage_test.go"
    }
  ]
}
