)]}'
{
  "commit": "48584fb6faa14880acfd8e1829a74cf0f968ccd6",
  "tree": "2aee564f1da6b52a3844ac126e50244db32f6840",
  "parents": [
    "10a2744ec7fa9a716a77c186396c5e0a2cc9a4ba"
  ],
  "author": {
    "name": "Joe Topjian",
    "email": "joe@topjian.net",
    "time": "Mon Feb 13 21:18:26 2017 -0700"
  },
  "committer": {
    "name": "jrperritt",
    "email": "jrperritt@gmail.com",
    "time": "Mon Feb 13 22:18:26 2017 -0600"
  },
  "message": "Refactor WaitFor (#221)\n\n* Refactor WaitFor\r\n\r\nThis commit modifies WaitFor in a few ways:\r\n\r\nIt replaces time.Now().Second() with time.Now().Unix() in order to\r\naccount for rolling minutes (for example, when WaitFor starts at 59\r\nseconds, every timeout check will result in a negative number).\r\n\r\nA \"retry\" timer has also been added. This will cause the predicate\r\nto be retried every n seconds if there hasn\u0027t been a response. This\r\nis to account for server or network issues that would cause the\r\npredicate to be lost or hang indefinitely.\r\n\r\nA combination of using both timeout and retry can be effective in\r\nhandling faulty requests as well as a master kill switch to stop.\r\n\r\n* Remove Retry from WaitFor\r\n\r\nThis removes the retry parameter and re-uses the timeout to kill\r\npossible hanging predicates.\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5985bc3ab29d9ecbe9034576da244f251285fc84",
      "old_mode": 33188,
      "old_path": "testing/util_test.go",
      "new_id": "ae3e448fa9c07323d2e169976b7dd175ee1ca766",
      "new_mode": 33188,
      "new_path": "testing/util_test.go"
    },
    {
      "type": "modify",
      "old_id": "3d6a4e490755e0d44d5c11dded569224dc57b4ba",
      "old_mode": 33188,
      "old_path": "util.go",
      "new_id": "68f9a5d3eca50f2d29d6a09638cc1ea48e3d895e",
      "new_mode": 33188,
      "new_path": "util.go"
    }
  ]
}
