)]}'
{
  "log": [
    {
      "commit": "09694b918c8a03f5d353c24e70bf2a5a6afbbfa9",
      "tree": "47779b48774b89ba865bdcd6f85f44ee0b09f489",
      "parents": [
        "e7da01c28d73104467612b203d085e56b1155ec2"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 09 14:08:27 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 09 14:08:27 2014 -0400"
      },
      "message": "Ookay, last reshuffle.\n\n * openstack.NewClient() normalizes the identity endpoint with a trailing slash, and sets base and endpoint.\n * utils.ChooseVersion() checks suffixes first to short-circuit actual version calls.\n * gophercloud.ProviderClient distinguishes between the root of all identity services (IdentityBase)\n   and the endpoint of the requested auth service (IdentityEndpoint).\n"
    },
    {
      "commit": "e7da01c28d73104467612b203d085e56b1155ec2",
      "tree": "7af6d92b4e1a523b74cfad0f9bbad10526b825eb",
      "parents": [
        "51dff8a53694871d8475fbd371178ba24bb1bf1f"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 09 12:31:06 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 09 12:31:06 2014 -0400"
      },
      "message": "Lots of URL normalization.\n\nSo it doesn\u0027t matter if you have a trailing / or not.\n"
    },
    {
      "commit": "ccfccce001fa1e3cfec65d5df90f79dc89f23e36",
      "tree": "d06127eb41b8ef5ae91058ee30436944c803d0ca",
      "parents": [
        "a0c4c84cd7d87f3406ebd4dadac488dc66b7f6f1"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 09 11:43:04 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 09 11:43:04 2014 -0400"
      },
      "message": "ChooseVersion accounts for missing /s.\n"
    },
    {
      "commit": "a0c4c84cd7d87f3406ebd4dadac488dc66b7f6f1",
      "tree": "7ed8e6e37fc67d4c64bca4511ddba70254f50648",
      "parents": [
        "1cd3e69c4d0af352bc8400984b47866fe2503e5f"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 09 11:30:58 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 09 11:30:58 2014 -0400"
      },
      "message": "ChooseVersion prefers exact URL matches now.\n"
    },
    {
      "commit": "c43602004486ebadee780b8a5c3ba6dd46cfea57",
      "tree": "4c4c6ed6cfdef6df60fc5e3d0a98f8c1c14d43fb",
      "parents": [
        "054514387c1bafa462a061ce044a3a3b89920394"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 14:14:24 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 14:14:24 2014 -0400"
      },
      "message": "Choose a version from an API base endpoint.\n"
    }
  ]
}
