)]}'
{
  "commit": "c0c662e21643bf5e5b6b81df00f27c4fc456ac2d",
  "tree": "673238f496d7fc6a6df0b96c6537fdac7574e579",
  "parents": [
    "4ffae16a011f61e2a88dc794960c3073883c5ee9"
  ],
  "author": {
    "name": "Dave Cheney",
    "email": "dave@cheney.net",
    "time": "Thu Jun 09 16:45:08 2016 +1000"
  },
  "committer": {
    "name": "Dave Cheney",
    "email": "dave@cheney.net",
    "time": "Thu Jun 09 16:45:08 2016 +1000"
  },
  "message": "Use fmt.Formatter throughout (#40)\n\n* Use fmt.Formatter throughout\r\n\r\nReplace Fprintf with fmt.Formatter logic on various types. This\r\neffectively guts Fprint to be just a recursive call down the err.Cause\r\nchain. The next step will be to move this recursive logic into\r\nwrapper.Format.\r\n\r\nThis change necessitates adding types for the error impls returned from\r\nNew and Errorf, and Wrap and Wrapf, respectively. The name of the latter\r\ntype is acceptable, the former is not and alternative suggestions are\r\nencouraged.\r\n\r\n- Remove cause.Format\r\n- Added fmt.Formatter tests. The location is temporary, once this PR is merged and Fprint removed\r\nthey will be merged into errors_test.go\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "219df86df7ad8879b27a0f74c8f2f1c8f5a2a617",
      "old_mode": 33188,
      "old_path": "errors.go",
      "new_id": "a97116f30dafc5cb4b59d55d235e0646c3d57264",
      "new_mode": 33188,
      "new_path": "errors.go"
    },
    {
      "type": "modify",
      "old_id": "427e2a912d242c99a6d171f0406126af286568e8",
      "old_mode": 33188,
      "old_path": "example_test.go",
      "new_id": "041a75b61b70a1ee7cf26235ef28ea31e5751d3e",
      "new_mode": 33188,
      "new_path": "example_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "70a37cca7c8c9db9705b5e58a7e662ff9d42b16a",
      "new_mode": 33188,
      "new_path": "format_test.go"
    }
  ]
}
