)]}'
{
  "commit": "af9e959538f34878ca0ccccd97d51dc7b3ffdadd",
  "tree": "99a37e5dd39e5d90f14e151a0aceaed1f01fd3fe",
  "parents": [
    "ce80db6a8640cc7552e4b5eada891cd19c4550f2"
  ],
  "author": {
    "name": "rbeasley-avgo",
    "email": "ryan.beasley@broadcom.com",
    "time": "Fri May 30 05:25:03 2025 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 30 09:25:03 2025 +0000"
  },
  "message": "fix(pypi): allow pip_compile to work with read-only sources (#2712)\n\nThe validating `py_test` generated by `compile_pip_requirements` chokes\nwhen the source `requirements.txt` is stored read-only, such as when\nmanaged by the Perforce Helix Core SCM. Though `dependency_resolver`\nmakes a temporary copy of this file, it does so w/ `shutil.copy` which\npreserves the original read-only file mode. To address this, this commit\nreplaces `shutil.copy` with a `shutil.copyfileobj` such that the\ntemporary file is created w/ permissions according to the user\u0027s umask.\n\nResolves (#2608).\n\n---------\n\nCo-authored-by: Ignas Anikevicius \u003c240938+aignas@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "355f1fe9ef9ae02401b9cdbb7c48e63f69e9d9cc",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "0a2dc413ae6fedd70486b46f68cfb9c5c84e6970",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "ada07635582187d07ff451a7a37273b1b103102d",
      "old_mode": 33188,
      "old_path": "python/private/pypi/dependency_resolver/dependency_resolver.py",
      "new_id": "a42821c4580b4b300bb7cb224449b2a1cb24a9eb",
      "new_mode": 33188,
      "new_path": "python/private/pypi/dependency_resolver/dependency_resolver.py"
    }
  ]
}
