)]}'
{
  "commit": "5ed523774dd68eaeece4c6922070d79f3c85f8f1",
  "tree": "b94750799263f3a59b04336f074d706e0a0e0cd1",
  "parents": [
    "dd24e55a3427d461031bffcf56fd2e540a54bd65"
  ],
  "author": {
    "name": "Son Luong Ngoc",
    "email": "sluongng@gmail.com",
    "time": "Thu Jul 02 17:24:34 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jul 02 17:24:34 2026 +0200"
  },
  "message": "protoc: stream generated file copies (#4647)\n\ngo-protoc stages plugin output in a temporary directory and then copies\neach generated Go file to its declared output path. This matters because\nlarge generated protobuf files can make the old ioutil.ReadFile plus\nWriteFile path allocate a full byte slice for each output before writing\nit.\n\nCopy generated files with io.Copy instead. This keeps the same output\npaths, truncation behavior, and file mode, while bounding memory use to\nthe copy buffer instead of the generated file size.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "afea073f3969522179bfe849582d93557c8864e9",
      "old_mode": 33188,
      "old_path": "go/tools/builders/protoc.go",
      "new_id": "6f26386eb52c3fe38c7672da8e487daf42f512df",
      "new_mode": 33188,
      "new_path": "go/tools/builders/protoc.go"
    }
  ]
}
