)]}'
{
  "commit": "1b34d1c38aea6f95c521392a24df5ed8b5601271",
  "tree": "191a1d350aeca7261147ec0c395f4da955817969",
  "parents": [
    "4fc4dd84b3184467f34e9125c57f3bd1c427651f"
  ],
  "author": {
    "name": "Ram Peri",
    "email": "ramperi@google.com",
    "time": "Tue Apr 14 17:52:51 2026 +0000"
  },
  "committer": {
    "name": "gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sat May 02 21:26:25 2026 -0700"
  },
  "message": "Add post-sync hook dispatcher\n\nThis script acts as an entry point for repo post-sync hooks. It reads a\nconfiguration file from the manifest repository to discover and execute\nregistered post-sync hooks.\n\nUpdates based on code review:\n- Rename dispatcher to post-sync.py per hook naming conventions.\n- Use pathlib and argparse for better path and argument handling.\n- Adopt GLOBAL-POSTSYNC.cfg (INI format) with [Hook Scripts] section.\n- Support placeholder expansion (${REPO_ROOT}, ${REPO_SYNC_DURATION}).\n- Use standard REPO_ROOT naming for consistency.\n- Retrieve repo root and sync duration from environment variables if available.\n- Respect script shebangs and remove broad exception catching.\n- Cleanup run_tests and unittests.\n- Remove unrecognized \u0027too-many-positional-arguments\u0027 from pylintrc to fix CI.\n- Fix lint and import sorting errors in post-sync.py and rh/config.py.\n- Revert accidental docstring indentation changes in rh/config.py.\n- Delete empty newline in tools/pylintrc.\n\nBug: 502597102\nTest: Ran run_tests using venv python, all 131 tests passed.\nChange-Id: I747abc79eeea1915ae4d7a957f47b07687c04100\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repohooks/+/567821\nCommit-Queue: Ram Peri \u003cramperi@google.com\u003e\nReviewed-by: Gavin Mak \u003cgavinmak@google.com\u003e\nReviewed-by: Jinda Zhuang \u003cjindaz@google.com\u003e\nTested-by: Ram Peri \u003cramperi@google.com\u003e\nReviewed-by: Arif Kasim \u003carifkasim@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b796d59a42cf72f6e661062630924fbcfa3a3223",
      "new_mode": 33261,
      "new_path": "post-sync.py"
    },
    {
      "type": "modify",
      "old_id": "0a4db55a0a6075cc4ecc2500453e8a995a8f8df7",
      "old_mode": 33188,
      "old_path": "rh/config.py",
      "new_id": "c421485de09c8bcafc2e45fa61308ef6de279cfd",
      "new_mode": 33188,
      "new_path": "rh/config.py"
    },
    {
      "type": "modify",
      "old_id": "cfc2c7635d30fc1bf3384a6ea0cb469d5d8b8254",
      "old_mode": 33188,
      "old_path": "tools/pylintrc",
      "new_id": "3a40922cc9f4f632e881e8524908c2027491c35c",
      "new_mode": 33188,
      "new_path": "tools/pylintrc"
    }
  ]
}
