)]}'
{
  "log": [
    {
      "commit": "4a27324ebb71d5097bb088c40aa6348a52c57829",
      "tree": "0416e44378506f512da91b5fd00934b704d9e541",
      "parents": [
        "b587143a48b62b01d337824eab43700af6ffe222"
      ],
      "author": {
        "name": "George Xie",
        "email": "george@xiegeo.com",
        "time": "Fri Apr 24 01:01:20 2020 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 10:01:20 2020 -0700"
      },
      "message": "docs: Add missing value in example (#37)\n\nFix print statement in example to actually include the combined error\r\nobject."
    },
    {
      "commit": "b587143a48b62b01d337824eab43700af6ffe222",
      "tree": "49c2a56666ac5554989eb2eabd296ce96d3a86f5",
      "parents": [
        "0603dab38513015f56e2fc4ae9cf278664de80ea"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Mon Feb 24 14:08:21 2020 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 24 14:08:21 2020 -0800"
      },
      "message": "Drop library-level constraints on tools (#36)\n\nThis drops library-level dependencies on tools used during development.\r\nSee also uber-go/atomic#65.\r\n\r\nNote that we\u0027ll also tag a release when this lands.\r\n\r\nResolves #35"
    },
    {
      "commit": "0603dab38513015f56e2fc4ae9cf278664de80ea",
      "tree": "874320f7be2922990d2d53a5dcac927ca68ca605",
      "parents": [
        "824d08f79702fe5f54aca8400aa0d754318786e7"
      ],
      "author": {
        "name": "Arthur Befumo",
        "email": "34725560+Arthur-Befumo@users.noreply.github.com",
        "time": "Fri Nov 08 13:29:00 2019 -0500"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Fri Nov 08 10:29:00 2019 -0800"
      },
      "message": "docs: multierr.Errors returns nil, not empty (#33)\n\nPreviously the docs incorrectly stated that `multierr.Errors(err)`\r\nwould return an empty slice rather than a nil slice, which would imply\r\nthat `multierr.Errors(nil) \u003d\u003d []error{}`, which isn\u0027t true.\r\n\r\nThis updates the docs to reflect reality: `multierr.Errors(nil) \u003d\u003d nil`."
    },
    {
      "commit": "824d08f79702fe5f54aca8400aa0d754318786e7",
      "tree": "61231d6434356611d84ad3450f49b34f1801655b",
      "parents": [
        "60a318af5f3acfdfa3cb247aa29fbcdbb3ac12b6"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Mon Nov 04 10:42:53 2019 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 04 10:42:53 2019 -0800"
      },
      "message": "Preparing release v1.4.0 (#32)\n\n"
    },
    {
      "commit": "60a318af5f3acfdfa3cb247aa29fbcdbb3ac12b6",
      "tree": "c590d014235c41a76b3c367f1ec49aa19dab0abe",
      "parents": [
        "c3fc3d02ec864719d8e25be2d7dde1e35a36aa27"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Mon Nov 04 10:23:04 2019 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 04 10:23:04 2019 -0800"
      },
      "message": "Add AppendInto function (#31)\n\nThis adds an AppendInto function that behaves similarly to Append\r\nexcept, it operates on a `*error` on the left side and it reports\r\nwhether the right side error was non-nil.\r\n\r\n    func AppendInto(*error, error) (errored bool)\r\n\r\nMaking the left side a pointer aligns with the fast path of `Append`.\r\n\r\nReturning whether the right error was non-nil aligns with the standard\r\n`if err :\u003d ...; err !\u003d nil` pattern.\r\n\r\n```diff\r\n-if err :\u003d thing(); err !\u003d nil {\r\n+if multierr.AppendInto(\u0026err, thing()) {\r\n   continue\r\n }\r\n```\r\n\r\nResolves #21\r\n"
    },
    {
      "commit": "c3fc3d02ec864719d8e25be2d7dde1e35a36aa27",
      "tree": "9b33e42da902dd2a5007a939a05136414e94b480",
      "parents": [
        "2577596d7f1ab0f02ab97a2460012f3bd6440bbf"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Tue Oct 29 15:18:44 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 29 15:18:44 2019 -0700"
      },
      "message": "Preparing release v1.3.0 (#30)\n\nThis releases v1.3.0 of multierr with support for Go modules.\r\n"
    },
    {
      "commit": "2577596d7f1ab0f02ab97a2460012f3bd6440bbf",
      "tree": "2476311ba4154288b35e3f77e60ad0814120a122",
      "parents": [
        "71e610a0e48dbda460d9c18adca8b5f2de04a7c1"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Tue Oct 29 14:20:40 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 29 14:20:40 2019 -0700"
      },
      "message": "Switch to Go modules (#27)\n\nThis switches the library over to Go modules. This significantly\r\nsimplifies the Makefile.\r\n\r\nWe can also delete the old coverage shell script now that `./...` just\r\nworks.\r\n\r\nAs per https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module,\r\ntool dependencies have been added to tools.go."
    },
    {
      "commit": "71e610a0e48dbda460d9c18adca8b5f2de04a7c1",
      "tree": "06b4c464d816521f4c6d6b58a546e57edf22d0c8",
      "parents": [
        "127882ebf0b752d3c99fec3613c4487b193412e8"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Thu Sep 26 15:03:28 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 26 15:03:28 2019 -0700"
      },
      "message": "Preparing release v1.2.0 (#29)\n\n"
    },
    {
      "commit": "127882ebf0b752d3c99fec3613c4487b193412e8",
      "tree": "b67cfb089b177b1fbb7ab1d5e650b09e9668b348",
      "parents": [
        "bd075f90b08f5274a0bc63bcffacd6c64b60ac55"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Thu Sep 26 13:24:24 2019 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 26 13:24:24 2019 -0700"
      },
      "message": "Support errors.As and errors.Is (#28)\n\nGo 1.13 includes the `errors.As` and `errors.Is` APIs.\r\n\r\nThe base functionality provided by these functions is to cast errors in\r\nan error chain to a specific type or check for equality.\r\n\r\nThe only definition of error chain currently supported is via errors\r\nwhich return the underlying cause with a `Unwrap() error` method, but\r\nthe design does not make any assumptions otherwise.\r\n\r\nSpecifically, both, `errors.As` and `errors.Is` support customizing\r\ntheir behavior by implementing,\r\n\r\n    interface { As(interface{}) bool }\r\n    interface { Is(error) bool }\r\n\r\nThis change does exactly that, making it possible to extract or match\r\nagainst individual errors in a multierr error. This will work for both,\r\ntop-level errors in a multierr error, as well as for errors wrapped by\r\nany of those errors.\r\n"
    },
    {
      "commit": "bd075f90b08f5274a0bc63bcffacd6c64b60ac55",
      "tree": "129093b924f4422d808db7dede964c4622ebe3ec",
      "parents": [
        "0c525686c4c3dfb67af807efee0ce9df1db4e996"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Mon Apr 29 14:01:00 2019 -0700"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Mon Apr 29 14:04:58 2019 -0700"
      },
      "message": "error.go: Remove unused variable\n"
    },
    {
      "commit": "0c525686c4c3dfb67af807efee0ce9df1db4e996",
      "tree": "7f2f4c4cd11ecce1e60ddd9865190ef973e731a8",
      "parents": [
        "bebef1902b58e862ccebdcbf3a29f93c6ee59f1f"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Mon Apr 29 14:00:53 2019 -0700"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Mon Apr 29 14:04:58 2019 -0700"
      },
      "message": "make: Use correct golint import path\n"
    },
    {
      "commit": "bebef1902b58e862ccebdcbf3a29f93c6ee59f1f",
      "tree": "0b426eec37e8a1f2a490f9d3f44fb5ea46b8f439",
      "parents": [
        "d7c6dce583f1725843ed4b60610f2d3798b3157f"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Mon Apr 29 13:40:13 2019 -0700"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Mon Apr 29 14:04:58 2019 -0700"
      },
      "message": "travis: Use Go 1.11 and 1.12\n"
    },
    {
      "commit": "d7c6dce583f1725843ed4b60610f2d3798b3157f",
      "tree": "8c0a3c45bd755656e0f0022dc3ae7f6776157840",
      "parents": [
        "ddea229ff1dff9e6fe8a6c0344ac73b09e81fce5"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Mon Apr 29 13:24:19 2019 -0700"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Mon Apr 29 14:04:58 2019 -0700"
      },
      "message": "README: Switch to travis-ci.com for badge\n"
    },
    {
      "commit": "ddea229ff1dff9e6fe8a6c0344ac73b09e81fce5",
      "tree": "de7d307df5622b59d8c044cbd51b7808c1634d72",
      "parents": [
        "fb7d312c2c04c34f0ad621048bbb953b168f9ff6"
      ],
      "author": {
        "name": "ferhat elmas",
        "email": "elmas.ferhat@gmail.com",
        "time": "Mon Jan 22 18:25:45 2018 +0100"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Mon Jan 22 09:25:45 2018 -0800"
      },
      "message": "Append: Fix name in example (#25)\n\nThe example was using Combine instead of Append."
    },
    {
      "commit": "fb7d312c2c04c34f0ad621048bbb953b168f9ff6",
      "tree": "c9bcf940d0ebd3060aa78e8ce5edbc585437b540",
      "parents": [
        "3c4937480c32f4c13a875a1829af76c98ca3d40a"
      ],
      "author": {
        "name": "Grayson Koonce",
        "email": "grayson.koonce@gmail.com",
        "time": "Tue Aug 29 15:43:07 2017 -0700"
      },
      "committer": {
        "name": "Prashant Varanasi",
        "email": "github@prashantv.com",
        "time": "Tue Aug 29 15:43:07 2017 -0700"
      },
      "message": "Test Go 1.9 (#24)\n\n"
    },
    {
      "commit": "3c4937480c32f4c13a875a1829af76c98ca3d40a",
      "tree": "751dfbb8122037db86cd33a15b242427cb0f47af",
      "parents": [
        "9f702f5fedbec0b291eb0a83532e882b7efb0868"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Fri Jun 30 10:54:37 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 30 10:54:37 2017 -0700"
      },
      "message": "Preparing release v1.1.0 (#22)\n\n"
    },
    {
      "commit": "9f702f5fedbec0b291eb0a83532e882b7efb0868",
      "tree": "6e3b9b2b9b6530f3eb767705587a9fe3bf2a074f",
      "parents": [
        "f43274509b49c08f889201cd79c7a9a3ea9b4c6e"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Wed Jun 28 09:54:24 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 28 09:54:24 2017 -0700"
      },
      "message": "Add example tests (#20)\n\n"
    },
    {
      "commit": "f43274509b49c08f889201cd79c7a9a3ea9b4c6e",
      "tree": "2e86734ffb15f4aef550f8e5503c84def205305a",
      "parents": [
        "8aa0ee0efdf1744c8b87b2b63acc647e78b244a2"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Tue Jun 27 10:55:22 2017 -0700"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Tue Jun 27 10:55:44 2017 -0700"
      },
      "message": "CHANGELOG\n"
    },
    {
      "commit": "8aa0ee0efdf1744c8b87b2b63acc647e78b244a2",
      "tree": "928bc99b5d6fb6a7ef08254b117413c9270178b1",
      "parents": [
        "87edb7a595e0b8f11f5db8f21beafa83aeae4a2d"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Tue Jun 27 10:54:19 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 27 10:54:19 2017 -0700"
      },
      "message": "Support extracting underlying error list (#19)\n\nThis change adds an `Errors(err) []error` function which returns the\nunderlying list of errors. Additionally, it amends the contract for\nreturned errors that they MAY implement a specific interface.\n\nThis is needed for Zap integration as per discussion in #6.\n\nResolves #10.\n\n"
    },
    {
      "commit": "87edb7a595e0b8f11f5db8f21beafa83aeae4a2d",
      "tree": "9a0b025032b863b3fb7918fbfa1e40be80e50610",
      "parents": [
        "a100c982cafe7f0d49cf9ac260968fd95c832faf"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Tue Jun 27 09:59:26 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 27 09:59:26 2017 -0700"
      },
      "message": "Use subtests for Combine tests (#18)\n\n"
    },
    {
      "commit": "a100c982cafe7f0d49cf9ac260968fd95c832faf",
      "tree": "4b58baef888c4006bf1224d971cdad230b69377f",
      "parents": [
        "a8435ed7b2532d60e72d235a7ea41d86f3ffcf13"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Tue Jun 27 09:59:12 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 27 09:59:12 2017 -0700"
      },
      "message": "Add more package-level docs (#17)\n\nThis adds some more basic package level documentation to the library.\nThis will be extended with some upcoming changes.\n\n"
    },
    {
      "commit": "a8435ed7b2532d60e72d235a7ea41d86f3ffcf13",
      "tree": "4466a330535482b0c3a2ffa10f3c6c76a2bcd119",
      "parents": [
        "cb7e6d7661b1e850780cae9fa023c061341384d9"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Tue Jun 27 09:58:54 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 27 09:58:54 2017 -0700"
      },
      "message": "Graceful handling of nil errors (#16)\n\nWe shouldn\u0027t panic if *multiError is nil.\n\n"
    },
    {
      "commit": "cb7e6d7661b1e850780cae9fa023c061341384d9",
      "tree": "7be354ad68443dd4a56311283b3b8c80922a3671",
      "parents": [
        "bd57b7b56fc86460232a2ab1d142a861c8b55aa4"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Wed Jun 21 09:53:16 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 21 09:53:16 2017 -0700"
      },
      "message": "Update status in README (#15)\n\nResolves #14"
    },
    {
      "commit": "bd57b7b56fc86460232a2ab1d142a861c8b55aa4",
      "tree": "30c7eb6b9317e3b36d1d8bb431cba010a6f2240f",
      "parents": [
        "ef109dc7f883f3a99db2d89edc701c25cac40571"
      ],
      "author": {
        "name": "Prashant Varanasi",
        "email": "github@prashantv.com",
        "time": "Fri Jun 09 09:55:19 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 09 09:55:19 2017 -0700"
      },
      "message": "Use codecov instead of coveralls (#13)\n\n"
    },
    {
      "commit": "ef109dc7f883f3a99db2d89edc701c25cac40571",
      "tree": "7dca81bbbc2d6543c367a850c116cf4b805cdc1f",
      "parents": [
        "a3d1fc1f1316d4132fc61f4ea1159ae0613fb474"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Wed May 31 16:57:37 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 31 16:57:37 2017 -0700"
      },
      "message": "Preparing release v1.0.0 (#11)\n\n"
    },
    {
      "commit": "a3d1fc1f1316d4132fc61f4ea1159ae0613fb474",
      "tree": "3232e7901698e508b4e7fc3fb45f4ceba738ec02",
      "parents": [
        "bc58e04aac98d4a99a542ab26e5c9edf4a60485c"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Tue Apr 11 14:32:18 2017 -0700"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Tue Apr 11 14:32:18 2017 -0700"
      },
      "message": "Releasing v0.2.0\n"
    },
    {
      "commit": "bc58e04aac98d4a99a542ab26e5c9edf4a60485c",
      "tree": "d9707e7b3e5ae3a9e047f9f705418348aea97c60",
      "parents": [
        "8deb4d8f8484161d95e127ebafbf8ad88f90f736"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Tue Apr 11 14:31:46 2017 -0700"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Tue Apr 11 14:31:46 2017 -0700"
      },
      "message": "Update changelog\n"
    },
    {
      "commit": "8deb4d8f8484161d95e127ebafbf8ad88f90f736",
      "tree": "f96f2d5d78b4a5b75f5b153f5d1b29692064462c",
      "parents": [
        "737b41aa3bf31c25d11dc84d5275af6bfe2ef4d2"
      ],
      "author": {
        "name": "Prashant Varanasi",
        "email": "github@prashantv.com",
        "time": "Mon Apr 10 15:02:29 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 10 15:02:29 2017 -0700"
      },
      "message": "Avoid allocating a new slice on every Append (#9)\n\nCurrently, appending a non-nil error to a multierror always copies the underlying slice, since there may be multiple goroutines appending to the same multierr,\n```go\nmerr :\u003d multierr.Append(errors.New(\"initial\"), errors.New(\"multierr\"))\ngo func() {\n  err1 \u003d multierr.Append(merr, errors.New(\"1\"))\n  [..]\n}()\ngo func() {\n  err2 \u003d multierr.Append(merr, errors.New(\"2\"))\n  [..]\n}()\n```\n\nHowever, the common use case is a standard for loop:\n```go\nvar merr error\nfor _, v :\u003d range values {\n  merr \u003d multierr.Append(merr, processValue(v))\n}\nreturn merr\n```\n\nSince there is only a single resulting slice, we don\u0027t need to create a full copy on every `Append`. Instead, we track whether we have modified the underlying slice from `Append` already using an atomic boolean, and only create a copy if the underlying slice has been modified.\n\n"
    },
    {
      "commit": "737b41aa3bf31c25d11dc84d5275af6bfe2ef4d2",
      "tree": "faddd20fae85c204c87ca567c06661d277e5d2d4",
      "parents": [
        "61201fe3f275786307b81d6b9ddf76fd081a62c5"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Fri Mar 31 17:20:13 2017 -0700"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Fri Mar 31 17:20:13 2017 -0700"
      },
      "message": "Preparing release v0.1.0\n\nSo that we can evaluate the library safely pre-1.0 rather than pinning\nto master.\n"
    },
    {
      "commit": "61201fe3f275786307b81d6b9ddf76fd081a62c5",
      "tree": "8dc4c9a0c25e9932d9a9898f2a56d23ab6b91805",
      "parents": [
        "91b99f42e572de2434ec45a9ed7d104bdc7b7bf5"
      ],
      "author": {
        "name": "Prashant Varanasi",
        "email": "github@prashantv.com",
        "time": "Mon Mar 27 11:13:53 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 27 11:13:53 2017 -0700"
      },
      "message": "Add benchmarks for different error cases (#7)\n\n\n\n"
    },
    {
      "commit": "91b99f42e572de2434ec45a9ed7d104bdc7b7bf5",
      "tree": "fb433e8063c3872ac73a20a47d2ebba69d5cf72e",
      "parents": [
        "de6740a55f8d778e53755317dc50aae950c760de"
      ],
      "author": {
        "name": "Prashant Varanasi",
        "email": "github@prashantv.com",
        "time": "Mon Mar 27 10:54:46 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 27 10:54:46 2017 -0700"
      },
      "message": "Fix Append modifying a possibly shared array (#8)\n\nIt\u0027s possible to have a multiError that is appended to multiple times\r\ncausing an underlying array to be shared and end up getting modified.\r\n\r\nFor now, remove the special case for `append(multiError, err)` which can\r\ncause this bug.\n\n"
    },
    {
      "commit": "de6740a55f8d778e53755317dc50aae950c760de",
      "tree": "33a24fa3ce61996cfbf52de769dfd585da877208",
      "parents": [
        "a0f768a1e18683858c0bfc4e1f13ee1e0b77b482"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Fri Mar 24 14:27:19 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 24 14:27:19 2017 -0700"
      },
      "message": "formatting: %+v should apply to nested errors (#5)\n\n`%+v` on a multierr should use `%+v` on the nested errors. That is,\n\n    fmt.Sprintf(\"%+v\", multierr.Combine(err1, err2))\n\nShould use `fmt.Sprintf(\"%+v\", err1)` and `fmt.Sprinf(\"%+v\", err2)` in\nthe output rather than `err{1, 2}.Error()`.\n\n"
    },
    {
      "commit": "a0f768a1e18683858c0bfc4e1f13ee1e0b77b482",
      "tree": "ab2d8d8fd6971b764b6f163ce9a5b1e953b9db17",
      "parents": [
        "5bbbe4a0cc452fb2c1ecd54f9ac64f263c9aff4b"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Wed Mar 22 18:16:12 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 22 18:16:12 2017 -0700"
      },
      "message": "Lint fixes (#4)\n\nThis fixes linter issues and adds a minimal package-level doc.\n\n"
    },
    {
      "commit": "5bbbe4a0cc452fb2c1ecd54f9ac64f263c9aff4b",
      "tree": "9be5dfb86d130aaf348449d3dd7ed2a9bcd6b5ae",
      "parents": [
        "24a4766f80eef3f4620ace0dcd3106e48f9236d9"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Wed Mar 22 17:54:47 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 22 17:54:47 2017 -0700"
      },
      "message": "Set up Travis CI (#2)\n\nMakefile and cover.sh adapted from YARPC Go.\n\n"
    },
    {
      "commit": "24a4766f80eef3f4620ace0dcd3106e48f9236d9",
      "tree": "72efad6a5be7e295fac9bf1a93ceb099fc2aad92",
      "parents": [
        "11c3348c277762cdf8b4e79c013d255394dc7cfc"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Wed Mar 22 17:54:35 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 22 17:54:35 2017 -0700"
      },
      "message": "Minimal readme (#3)\n\n"
    },
    {
      "commit": "11c3348c277762cdf8b4e79c013d255394dc7cfc",
      "tree": "683a4ef7708f41a7021cb391c202df0b0b550917",
      "parents": [
        "45ae799e9b20c03038e8f6933100495f9042c267"
      ],
      "author": {
        "name": "Abhinav Gupta",
        "email": "mail@abhinavg.net",
        "time": "Wed Mar 22 17:05:00 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 22 17:05:00 2017 -0700"
      },
      "message": "Initial import (#1)\n\nThis is the initial import of the `multierr` library. The library\nintends to provide a single common implementation of the `multierr`\ntype.\n\nThe implementation is slightly more complex than you would expect\nbecause it aims to be zero-alloc for the hot-path (no errors or no\nnested multierrors).\n\n"
    },
    {
      "commit": "45ae799e9b20c03038e8f6933100495f9042c267",
      "tree": "83d2976da99476eca5ea51431f6f862333d2c84e",
      "parents": [],
      "author": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Thu Mar 16 13:10:39 2017 -0700"
      },
      "committer": {
        "name": "Abhinav Gupta",
        "email": "abg@uber.com",
        "time": "Thu Mar 16 13:10:39 2017 -0700"
      },
      "message": "Empty repository\n"
    }
  ]
}
