)]}'
{
  "commit": "f736d6cd9f7ffa8e1c20590d9f37ae3593e6f163",
  "tree": "f8d06a1dbbfb67680692150626baec2b8eeebeee",
  "parents": [
    "327048b612815c1f5ec1aacd14b5da9383c2a815"
  ],
  "author": {
    "name": "Chris Harris",
    "email": "chris.harris@kitware.com",
    "time": "Wed Nov 21 09:35:56 2012 -0500"
  },
  "committer": {
    "name": "Chris Harris",
    "email": "chris.harris@kitware.com",
    "time": "Tue Nov 27 20:02:46 2012 -0500"
  },
  "message": "Add the ability to run a ref update hook\n\nAllow the user to provide an update (similar to git\u0027s update hook) hook\nrun before a push is accepted by Gerrit. This allows the exclusion of\ncertain commits or any other update checks.\n\nThe hook takes the following form:\n\nref-update --project \u003cproject name\u003e --refname \u003crefname\u003e --uploader \u003cuploader\u003e\n--oldrev \u003csha1\u003e --newrev \u003csha1\u003e\n\nIf the script exits with non zero return code the push will be rejected.\nThe output of the script will be returned to the user as the reason for\nthe rejection.\n\nThis hook is called synchronously so shouldn\u0027t block or wait. A timeout\non the hook is set to 30 seconds to avoid \"runaway\" hooks using up server\nthreads. This value can be configured using \"syncHookTimeout\" in the\n\"hooks\" stanza. It is an integer value in seconds.\n\nChange-Id: Ibed5dc5c18e59db465511520f76fac93acc561e0\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "63229e67429fb49bbce6c42f5691dac45595214c",
      "old_mode": 33188,
      "old_path": "Documentation/config-gerrit.txt",
      "new_id": "0a03caccabba92290994283de3035982bd420b7a",
      "new_mode": 33188,
      "new_path": "Documentation/config-gerrit.txt"
    },
    {
      "type": "modify",
      "old_id": "dfac6d11a16478a3ec6a68db9ebf199898a91365",
      "old_mode": 33188,
      "old_path": "Documentation/config-hooks.txt",
      "new_id": "0e2322306737213033d41e2384a477aaa81b9006",
      "new_mode": 33188,
      "new_path": "Documentation/config-hooks.txt"
    },
    {
      "type": "modify",
      "old_id": "177ec6597aebd98f53b7c412451d06a5f5bf7682",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/common/ChangeHookRunner.java",
      "new_id": "9d0c2d88b24895e7a4856e2f9d10a2625d51b4f9",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/common/ChangeHookRunner.java"
    },
    {
      "type": "modify",
      "old_id": "0d8dfb8c563d9be482cc059d0c93229a10ab3585",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/common/ChangeHooks.java",
      "new_id": "547f70a9c9ed00044a3f5d2e05d2e88ad3d21282",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/common/ChangeHooks.java"
    },
    {
      "type": "modify",
      "old_id": "57ccba7ee2baeb576b2206ec03fa729b0429cac3",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/common/DisabledChangeHooks.java",
      "new_id": "710c8eda64d20c8454198cf4c2373707031c52bf",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/common/DisabledChangeHooks.java"
    },
    {
      "type": "modify",
      "old_id": "ed06baf2f8c9c9e275cf478f01764fc3ad6128d2",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java",
      "new_id": "0d49b60c4ca98040add050ea14e5d19515017db9",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java"
    }
  ]
}
