)]}'
{
  "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"
    }
  ]
}
