)]}'
{
  "commit": "9bdfabe68543c54f90421aeb9a60ef8061b5b544",
  "tree": "5c7baf6778c38fbd781a617c22fbc9bd73822f84",
  "parents": [
    "1b5146add8981d58be77b16229c0ff0f8bebd8c1"
  ],
  "author": {
    "name": "Jonathan Amsterdam",
    "email": "jba@google.com",
    "time": "Fri Jul 19 15:12:34 2019 -0400"
  },
  "committer": {
    "name": "Jonathan Amsterdam",
    "email": "jba@google.com",
    "time": "Wed Dec 04 19:05:36 2019 +0000"
  },
  "message": "Errorf: support %w anywhere in the format string\n\nAllow a single %w to appear anywhere in the format string, matched\nby an operand that satisfies the error interface.\n\nThis is complicated by a few things:\n\n- We don\u0027t want to do full-fledged printf verb parsing. We approximate,\n  and do not handle argument indexes on %w like \"%[3]w\".\n\n- There is a messy interaction with the xerrors formatting system (not\n  adopted in Go 1.13).  When the %w is at the end we can control the\n  error string so that the wrapped error\u0027s message is formatted\n  properly, after the wrapping errors\u0027 message. With a %w in the\n  middle, we can\u0027t do that. In this CL, we print the wrapped error\u0027s\n  message twice: once in its place in the format string, and then\n  again because it\u0027s wrapped.\n\nFixes #go/33143.\n\nChange-Id: I6192096521664476e82d5a54b80e352e47397cfe\nReviewed-on: https://go-review.googlesource.com/c/xerrors/+/186957\nReviewed-by: Damien Neil \u003cdneil@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "74c1c93ec9c6407799eb8d7dd1b58a5d9bf06a69",
      "old_mode": 33188,
      "old_path": "fmt.go",
      "new_id": "829862ddf6af120c0772c137dc651622cf42a2e9",
      "new_mode": 33188,
      "new_path": "fmt.go"
    },
    {
      "type": "modify",
      "old_id": "6744b8aaeb9cb6db64f8ee5a5fe6024f947c3425",
      "old_mode": 33188,
      "old_path": "fmt_test.go",
      "new_id": "7bf96a7b950ece689c15b8db21b1bf927e13dcac",
      "new_mode": 33188,
      "new_path": "fmt_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3affcae113e40ad04fab45dc9b7a05bf35087492",
      "new_mode": 33188,
      "new_path": "fmt_unexported_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "25c3d80001bf3901ffcca127e9c2f6847144fb40",
      "new_mode": 33188,
      "new_path": "wrap_113_test.go"
    }
  ]
}
