)]}'
{
  "log": [
    {
      "commit": "98d0162076e5ac4f47a4b7ce531234fc4b91aa79",
      "tree": "7256eedfec0e891710f80d666e80de1522d7a7ba",
      "parents": [
        "8baf47a5b9d7a92daf5571f9a072aea83bdc889a"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Thu Jan 12 14:24:42 2017 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 12 14:24:42 2017 -0600"
      },
      "message": "change all time fields to have type time.Time (#190)\n\n* add Volume.Unmarshal\r\n\r\n* add volumetenants.VolumeExt.Unmarshal\r\n\r\n* create servers.Server time.Time fields\r\n\r\n* json.Unmarshal can correctly handle time.RFC3339 (Server time fields)\r\n\r\n* add v3 Token UnmarshalJSON method\r\n\r\n* check for empty string when unmarshaling time\r\n\r\n* add Member UnmarshalJSON\r\n\r\n* v3 tokens.Token ExtractInto\r\n\r\n* v3 trust.Trust UnmarshalJSON\r\n\r\n* time.Time fields swift response objects\r\n\r\n* time.Time fields for orchestration response objects\r\n\r\n* time.Time fields for shared file systems response objects\r\n\r\n* if we don\u0027t use pointers for the custom time fields, we don\u0027t need to check if they\u0027re nil\r\n\r\n* style guide fixes: \u0027r\u0027 for receiver, \u0027s\u0027 for struct\r\n\r\n* remove unnecessary pointers from UnmarshalJSON methods\r\n"
    },
    {
      "commit": "bb45a5e9acdaa82987a5806fdab954c31c7813a8",
      "tree": "452a751ef372c08204d01f2dedfdd3a52d3435b7",
      "parents": [
        "25492a9d0f93ebc52868393193f95240f115acf1"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Nov 14 12:20:22 2016 -0600"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Nov 14 12:21:34 2016 -0600"
      },
      "message": "rename tenantattr to volumetenants; remove commented code\n"
    },
    {
      "commit": "25492a9d0f93ebc52868393193f95240f115acf1",
      "tree": "233696955489c68d8fd59c0aebd3e90b0c87ee79",
      "parents": [
        "c501bc1d93651ab04907d9d420831744c523957d"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Nov 09 17:42:24 2016 -0600"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Nov 14 12:21:18 2016 -0600"
      },
      "message": "check for http response error in ExtractInto*Ptr methods\n\nrename tenantattr pkg to volumetenants\n"
    },
    {
      "commit": "8f364f76b52e50fc8a9d182980b0dfdde5005c3c",
      "tree": "148876fce1cc84eaa675abb094e9996405daf7eb",
      "parents": [
        "6be8c4247d29435e773753d98626bfe0b0b0d03c"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Nov 09 13:09:15 2016 -0600"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Nov 09 13:09:15 2016 -0600"
      },
      "message": "call volumes.ExtractInto from volumes.Extract\n"
    },
    {
      "commit": "17e8b62988e092bcd35eb39834b07ec925a376b6",
      "tree": "40c94b0a5330d550e53e1ac824af89c41472fe42",
      "parents": [
        "2e4415e902c537e033ee15b0dd732f0233470610"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Nov 08 17:00:15 2016 -0600"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Nov 08 17:00:15 2016 -0600"
      },
      "message": "use type instead of struct literal in unit test\n"
    },
    {
      "commit": "2e4415e902c537e033ee15b0dd732f0233470610",
      "tree": "ab7f9d5f3f7f268d0f6526c74546b1108ec0ccad",
      "parents": [
        "613bea2dc1d1bde83192501453789f1884cdbb44"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Nov 08 16:59:29 2016 -0600"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Nov 08 16:59:29 2016 -0600"
      },
      "message": "use gophercloud.ExtractInto*Ptr for ExtractInto and ^CtractVolumesInto\n"
    },
    {
      "commit": "410c105d5d75504cb8b9b149c7e5a29e85c54cef",
      "tree": "da1881f20fb24e29c5bf11841de4d6d77b2bd30a",
      "parents": [
        "7dc49465540b00c1146b1e5290bc2c042e5e988d"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Nov 08 15:24:07 2016 -0600"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Nov 08 15:24:07 2016 -0600"
      },
      "message": "make sure interface{} parameter is *struct\n"
    },
    {
      "commit": "7dc49465540b00c1146b1e5290bc2c042e5e988d",
      "tree": "ba770d5c09dad2f3d1ea6cbd9deeba8bc35dc292",
      "parents": [
        "cd65a06fb6a69eef63cb1c1ec861144e86011b2f"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Nov 08 15:09:33 2016 -0600"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Nov 08 15:09:33 2016 -0600"
      },
      "message": "tenantattr extension for cinder; ExtractInto method for handling custom Volume objects\n"
    },
    {
      "commit": "c8f12c6e39d96d0e07f0976e184ea0308cb6aaf0",
      "tree": "add0b6d121a97bbae0ac2495d38da1be0e5f4f5c",
      "parents": [
        "19e713b71ea0ba4c56057127841ad792fe249782"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Oct 11 11:29:10 2016 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 11 11:29:10 2016 -0500"
      },
      "message": "aggregate coverage metrics of unit tests across packages (#115)\n\naggregate coverage metrics of unit tests across packages"
    },
    {
      "commit": "81036a772c9b81c8caedde7f09a4615b917fe26a",
      "tree": "e184389e26f16b8cb0bba09f5840b8fbca57115e",
      "parents": [
        "c8834c1c34519f58fbb80453cb3c33c31956bbed"
      ],
      "author": {
        "name": "Joe Topjian",
        "email": "joe@topjian.net",
        "time": "Sat Aug 06 13:21:39 2016 -0600"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Sat Aug 06 14:21:39 2016 -0500"
      },
      "message": "Use Correct Block Storage v2 Volume Attachment Attributes (#36)\n\n"
    },
    {
      "commit": "e3a4cbe68641f2da5828d55cc2ddc3e8ffc624d0",
      "tree": "7ababe92a80c05330d96bf2a797aa432afcdc09b",
      "parents": [
        "94ae0ebccccff412b07bc214041c04c07d2b85c2"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Jul 11 23:01:41 2016 -0500"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Jul 11 23:01:41 2016 -0500"
      },
      "message": "add doc.go files to make testing dirs buildable\n"
    },
    {
      "commit": "9b7b9e6a417dcbe0495f02a1eb381f3bcd193230",
      "tree": "016cfe726ce815aebece6bcbd3e5c007b8089267",
      "parents": [
        "3d966168b94eef2931a8a7198e21c8467a1f6852",
        "d47105ce4ef90cea9a14b85c8dd172b760085828"
      ],
      "author": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Jul 11 22:30:50 2016 -0500"
      },
      "committer": {
        "name": "jrperritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Jul 11 22:30:50 2016 -0500"
      },
      "message": "merge lbaasv2, portsbinding, volumes v2; remove \u0027rackspace\u0027 refs; update docs\n"
    },
    {
      "commit": "cf0c7fe4ff2e137bd12db8f49312d455e39cf9a4",
      "tree": "cc6df51fa74f5e63571f5bbacd1b0c75e5b3b266",
      "parents": [
        "da5461439aa9b0bbe2a4ad652f459031d7e31c26"
      ],
      "author": {
        "name": "feisky",
        "email": "feiskyer@gmail.com",
        "time": "Thu Nov 05 22:06:17 2015 +0800"
      },
      "committer": {
        "name": "Pengfei Ni",
        "email": "feiskyer@gmail.com",
        "time": "Fri Apr 29 16:11:50 2016 +0800"
      },
      "message": "Update blockstorage v2 API\n"
    },
    {
      "commit": "da5461439aa9b0bbe2a4ad652f459031d7e31c26",
      "tree": "6a4adfdf22ee102d09ef341a2eeae55d61577881",
      "parents": [
        "c54bbac81d19eb4df3ad167764dbb6ff2e7194de"
      ],
      "author": {
        "name": "feisky",
        "email": "feiskyer@gmail.com",
        "time": "Thu Sep 17 12:28:23 2015 +0800"
      },
      "committer": {
        "name": "Pengfei Ni",
        "email": "feiskyer@gmail.com",
        "time": "Fri Apr 29 16:11:50 2016 +0800"
      },
      "message": "Copy blockstorage v1 to v2\n"
    }
  ]
}
