)]}'
{
  "commit": "42867b6b27d8b08c66aca00df1f60c58441b3643",
  "tree": "2ffb781d37a84e60eada790973295b39111c304a",
  "parents": [
    "89deea4395d3a02be3a84457808b8048f1ac0401"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "richardlev@gmail.com",
    "time": "Mon Aug 17 16:33:30 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Aug 17 16:33:30 2026 -0700"
  },
  "message": "workflows: make on_pr_closed.py executable and add permissions test (#4076)\n\nGitHub Actions workflow step scripts invoked directly as executables\nrequire executable file mode (`100755`).\n`.github/workflows/on_pr_closed.py` was checked in with `100644`\npermissions, causing step execution errors when run directly.\n\nMark `on_pr_closed.py` as executable and introduce an automated\nregression test in `tests/workflows/` that asserts any workflow script\nwith a shebang has executable bit permissions. In addition, update agent\nrules and review skills to audit script execution permissions.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "00f2177ecc27d9b4169e8be05668213439637dce",
      "old_mode": 33188,
      "old_path": ".agents/rules/github_actions_workflows.md",
      "new_id": "f417ed1a75723afd3c9e4aba2f61cabba30feb60",
      "new_mode": 33188,
      "new_path": ".agents/rules/github_actions_workflows.md"
    },
    {
      "type": "modify",
      "old_id": "ddc89ab75c03e3991f372e0a4bb82b031bc0cee7",
      "old_mode": 33188,
      "old_path": ".agents/skills/review-code/SKILL.md",
      "new_id": "f53116c71fe1039a01d5a32c84ae94cca9a8c2a3",
      "new_mode": 33188,
      "new_path": ".agents/skills/review-code/SKILL.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "50bc446d5cfb6f6857781eef2af28520da8559ae",
      "new_mode": 33188,
      "new_path": ".agents/skills/review-code/review-workflows-prompt.md"
    },
    {
      "type": "modify",
      "old_id": "e9bb929441231203624f9d245346a22de61c1c21",
      "old_mode": 33188,
      "old_path": ".github/workflows/BUILD.bazel",
      "new_id": "09c0ea2a2195b53564994793012e271b993b6cd7",
      "new_mode": 33188,
      "new_path": ".github/workflows/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "0d437abec82a85cce73753ec9953919bb482d001",
      "old_mode": 33188,
      "old_path": ".github/workflows/on_pr_closed.py",
      "new_id": "0d437abec82a85cce73753ec9953919bb482d001",
      "new_mode": 33261,
      "new_path": ".github/workflows/on_pr_closed.py"
    },
    {
      "type": "modify",
      "old_id": "13d3ebbd01a8390428ee6615a8aed99b73c7a908",
      "old_mode": 33188,
      "old_path": "tests/workflows/BUILD.bazel",
      "new_id": "2e3d686485f6cb1ad28f816a06d1ed8119080d05",
      "new_mode": 33188,
      "new_path": "tests/workflows/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8c98c80e99c8878d9243b93b11830e1762b53f00",
      "new_mode": 33188,
      "new_path": "tests/workflows/workflow_permissions_test.py"
    },
    {
      "type": "modify",
      "old_id": "915a526686caf1340637972c5f2818ccd952f4fe",
      "old_mode": 33188,
      "old_path": "tools/private/reviewbot/skills/review-pr/SKILL.md",
      "new_id": "3182b14a775e3ccfbd0098a4bd11e4fc9b03ea6c",
      "new_mode": 33188,
      "new_path": "tools/private/reviewbot/skills/review-pr/SKILL.md"
    }
  ]
}
