)]}'
{
  "commit": "c25347445d90ef452baf4207485ac58da7923ca1",
  "tree": "75763220bfd8c2f2cf9cc27894f65035e41b9ac6",
  "parents": [
    "d517de1b95a3b196b3baf9da082a9fbdeefb3e9b"
  ],
  "author": {
    "name": "Nicolas Dumazet",
    "email": "cozy-visor-sandlot@duck.com",
    "time": "Mon Aug 31 01:54:50 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Aug 31 01:54:50 2026 +0000"
  },
  "message": "fix(venv_shebang_rewriter): avoid depending on host coreutils (#4125)\n\nTwo scripts used as build actions in the pip integration ran directly\n(`ctx.actions.run`, no shell) with no declared `PATH`. On sandboxed\nenvironments without an FHS-style `/bin:/usr/bin` (e.g. NixOS), these\nfail with `\u003ctool\u003e: command not found`, even though the action\u0027s own\nexecutable resolves fine.\n\n- `venv_shebang_rewriter.sh` resolved `head`/`tail`/`chmod` from `PATH`.\n- `wheel_record_rewriter.sh` resolved `awk` from `PATH`.\n\n## Fix\n\nBoth are ported to plain Python scripts exposed as `py_binary` targets,\nper this project\u0027s own documented guidance (`PyExecToolsInfo`\u0027s\n`exec_interpreter` docs recommend a `py_binary` + `cfg\u003dexec` over manual\ninterpreter wiring). This sidesteps host `PATH` concerns entirely.\n\n---------\n\nCo-authored-by: Richard Levasseur \u003crichardlev@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "54c2096fe61721a44bb231843691fd89ac6d1569",
      "new_mode": 33188,
      "new_path": "news/4125.fixed.md"
    },
    {
      "type": "modify",
      "old_id": "38ecabc50e60b76a991731e96546e4998ac879fe",
      "old_mode": 33188,
      "old_path": "python/private/pypi/BUILD.bazel",
      "new_id": "35286c5debe08f794f143394293ad3ea5aed6787",
      "new_mode": 33188,
      "new_path": "python/private/pypi/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "48e615bbf1b85b1cb3c430e159a9ebd64a080783",
      "new_mode": 33188,
      "new_path": "python/private/pypi/venv_shebang_rewriter.py"
    },
    {
      "type": "delete",
      "old_id": "d4391d33526b7e8570806dc6b002515250392b90",
      "old_mode": 33261,
      "old_path": "python/private/pypi/venv_shebang_rewriter.sh",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8931b30360babf8307600783938a4050acd024a1",
      "new_mode": 33188,
      "new_path": "python/private/pypi/wheel_record_rewriter.py"
    },
    {
      "type": "delete",
      "old_id": "4d93f2a3ae02ad94109041c19d41dbd2f465c92e",
      "old_mode": 33261,
      "old_path": "python/private/pypi/wheel_record_rewriter.sh",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
