)]}'
{
  "log": [
    {
      "commit": "49f0f5622f82fc02a3bb2a8b51cdee1ebd4b4f0c",
      "tree": "ffc518ac3f0eeccd2d6c27017e77eedb704922bc",
      "parents": [
        "c25ae6093a3e44cb4e427f11c31deef2397d4edb"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Wed Sep 03 08:58:20 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Wed Sep 03 08:58:20 2014 -0400"
      },
      "message": "Remove some fields from ProviderClient.\n"
    },
    {
      "commit": "001cfa5ea395ceec1725a9edc5ae2e1095068f31",
      "tree": "83dc48da57fb5089f7a876e564aa248e92ef354c",
      "parents": [
        "33c85f4e5e10d0e97cc6d39a1a5c3a92f415ea7c"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:23:23 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:23:23 2014 -0400"
      },
      "message": "Fix tests.\n"
    },
    {
      "commit": "e646c743a9b65908fc3350b3f4466411f2901223",
      "tree": "b43f346d1f5f706459028f201250f957eb62015e",
      "parents": [
        "72f7dfb0e636cb6712db036bbb2fe2f9cf6cbd15"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:06:15 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:06:15 2014 -0400"
      },
      "message": "Extrapolate OS_ env vars for other auth options.\n"
    },
    {
      "commit": "72f7dfb0e636cb6712db036bbb2fe2f9cf6cbd15",
      "tree": "d6df24ea3bf550c3369937a8001cc4325da0effd",
      "parents": [
        "ccd020bcada931a04bed29b0dac16187f8994d9c"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:06:00 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:06:00 2014 -0400"
      },
      "message": "The version endpoint returns a 300.\n"
    },
    {
      "commit": "ccd020bcada931a04bed29b0dac16187f8994d9c",
      "tree": "710da477ee38b818ee7c90c6a4a1161dce383aa3",
      "parents": [
        "6e8700398781b13892f4323c181a3eb833e41ef0"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 10:40:54 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 10:40:54 2014 -0400"
      },
      "message": "Shuffle around authentication methods.\n\nI\u0027d like to be able to explicitly authenticated with a certain version.\n"
    },
    {
      "commit": "6e8700398781b13892f4323c181a3eb833e41ef0",
      "tree": "ae72f755fda0d195c6acb4014090dd2ad3dcb041",
      "parents": [
        "773e6c37c9bd5de127ee992543555be38a4f8696"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 08:38:27 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 08:38:27 2014 -0400"
      },
      "message": "Generate a URL for a specific Service resource.\n"
    },
    {
      "commit": "773e6c37c9bd5de127ee992543555be38a4f8696",
      "tree": "af59e9c8914f44777a1715372b36f3000e59fb10",
      "parents": [
        "b73b7f8044b3dd6caaf3dd8419a10fa9abe96f52"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 08:38:07 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 08:38:07 2014 -0400"
      },
      "message": "Explicitly return a v3 endpoint on request.\n"
    },
    {
      "commit": "b73b7f8044b3dd6caaf3dd8419a10fa9abe96f52",
      "tree": "47d9aede688bcd33c5c957804b88a227d24d35be",
      "parents": [
        "4dee1b874cd37250e84f94447a6e29827697fba8"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 15:38:06 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 15:38:06 2014 -0400"
      },
      "message": "Implement and test service creation.\n"
    },
    {
      "commit": "4dee1b874cd37250e84f94447a6e29827697fba8",
      "tree": "a285b2c21cb10b3fa1926e98e00e02a5cc9aece0",
      "parents": [
        "aef9dc55a6149257cd7f73d99dacc2f81f823059"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 14:56:45 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 14:56:45 2014 -0400"
      },
      "message": "Use version negotiation in openstack.NewClient().\n"
    },
    {
      "commit": "aef9dc55a6149257cd7f73d99dacc2f81f823059",
      "tree": "6a3996c998f03c867be36f1b83acc160ff389c4e",
      "parents": [
        "c43602004486ebadee780b8a5c3ba6dd46cfea57"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 14:21:26 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 14:21:26 2014 -0400"
      },
      "message": "Don\u0027t use experimental versions.\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"
    },
    {
      "commit": "054514387c1bafa462a061ce044a3a3b89920394",
      "tree": "95cb85293ccce614ee40f2e4478d2a762f47637e",
      "parents": [
        "131b7752b9d2f582c00c5053bca59cd7cb7d9b6a"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 13:24:07 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 13:24:07 2014 -0400"
      },
      "message": "Oops, wrong package name.\n"
    },
    {
      "commit": "131b7752b9d2f582c00c5053bca59cd7cb7d9b6a",
      "tree": "72772de2b9a808578c5727c32b4dcef3838d27a9",
      "parents": [
        "6425a415dfe6dfaccea141f65add74479067b775"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:53:55 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Authentication at the identity client level.\n"
    },
    {
      "commit": "6425a415dfe6dfaccea141f65add74479067b775",
      "tree": "a79ed08c0eb05477e7b77a74223eff059ad5d7d1",
      "parents": [
        "89466cc335beb561cc88c0ef997d3de996e76a47"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:30:35 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Clarify ServiceClient and ProviderClient.\n"
    },
    {
      "commit": "89466cc335beb561cc88c0ef997d3de996e76a47",
      "tree": "bf43c27773a702ed3a55a46a641a74e19d822c0e",
      "parents": [
        "0ab4d61b15e62be8a2cad48baf2e9ee4ed10b4ff"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 11:27:39 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Rename ServiceClient to ProviderClient.\n\nRather than store state within service-level Clients, we really want that\nat the provider level. Service-level clients should be stateless.\n"
    },
    {
      "commit": "0ab4d61b15e62be8a2cad48baf2e9ee4ed10b4ff",
      "tree": "ff53f4c7a14404af79daa00f9cf8faa806e5051f",
      "parents": [
        "46d913f1d885ccda04a9711c7c6c2d5452b2f53e"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 11:10:13 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Move setup() and teardown() into testhelper, too.\n"
    },
    {
      "commit": "46d913f1d885ccda04a9711c7c6c2d5452b2f53e",
      "tree": "a25154a254e0959076f1676abfd921c92d38f066",
      "parents": [
        "e058e34e6cd08566755f088eec54a7107a19b7ce"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 11:00:11 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "And all of the rest of the token operations.\n\nPlus tests for each.\n"
    },
    {
      "commit": "e058e34e6cd08566755f088eec54a7107a19b7ce",
      "tree": "a9a42dd30baa784148d4d3221cb43accba04badd",
      "parents": [
        "4a52e2aa29f8454d0cdc0cecf5ad18f9e42a807d"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 10:31:41 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Parse token expiration from the response.\n"
    },
    {
      "commit": "4a52e2aa29f8454d0cdc0cecf5ad18f9e42a807d",
      "tree": "fbbf9967eafe8020ffce829533e73f6fed1c9ace",
      "parents": [
        "aed3db4c369cae11c45b47fa5fbe0a8fb4e2139a"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 09:28:00 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Extract the new token from headers.\n"
    },
    {
      "commit": "aed3db4c369cae11c45b47fa5fbe0a8fb4e2139a",
      "tree": "a936d8b8cae815b9471e8f2e3335b1751fe0b375",
      "parents": [
        "a8855ffc82aa64652e8f5e3e89f12bb4efe4dbe7"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 08:59:56 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Test the rest of the failure cases for Create.\n"
    },
    {
      "commit": "a8855ffc82aa64652e8f5e3e89f12bb4efe4dbe7",
      "tree": "fadd09bdad8a5110a89b23f22a6fddfadbc983b0",
      "parents": [
        "1fde61654dc0f4e9f4c801cb09194109b4e20d1b"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 08:26:29 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "First batch of failure cases.\n"
    },
    {
      "commit": "1fde61654dc0f4e9f4c801cb09194109b4e20d1b",
      "tree": "c1c7d3215d3bea6f8650d7531bc33cfb9904970b",
      "parents": [
        "053fcb0dba390019e5b8138cb68cc5df91a64834"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 08:13:06 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Unit tests for various Scopes.\n"
    },
    {
      "commit": "053fcb0dba390019e5b8138cb68cc5df91a64834",
      "tree": "7b11f7b68bbe373e8b4f8ac117c9125e3ef56952",
      "parents": [
        "d8da9e4184dd2d49afaa81ac939cdd21c4d54b5f"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 08:04:35 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Test Create with only a TokenID.\n"
    },
    {
      "commit": "d8da9e4184dd2d49afaa81ac939cdd21c4d54b5f",
      "tree": "06ca0b02373ec29f1629c8916ed85fedce789914",
      "parents": [
        "417d922b7a5969e890f04f2bfa9f5b99743785e6"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 08:01:06 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Test Username+DomainName+Password.\n"
    },
    {
      "commit": "417d922b7a5969e890f04f2bfa9f5b99743785e6",
      "tree": "c36f5a44643a6af1405b40ce8d65aee614445f8f",
      "parents": [
        "cde68123e4431d9cb5b08cbee34cdaece2b216ac"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 07:58:35 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Test Username+DomainID+Password auth.\n"
    },
    {
      "commit": "cde68123e4431d9cb5b08cbee34cdaece2b216ac",
      "tree": "5397b57005ec2553b68d7e3aa6dfdd1b830882a6",
      "parents": [
        "9e3f715811502b520f552551f0196ddbf7455dfb"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 16:15:43 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Tests and bug fixes for UserID + Password.\n"
    },
    {
      "commit": "b482d545488e56f0cd84959254fcdae2971e3181",
      "tree": "ecb7c77e2830fceb37abb8105dd43e068e8c9b94",
      "parents": [
        "8ba82247d6e3cfc7ad767e7abe08c7d564d14f43"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 15:48:04 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "A wild test appears! It\u0027s super effective!\n"
    },
    {
      "commit": "8ba82247d6e3cfc7ad767e7abe08c7d564d14f43",
      "tree": "132daa85bf60fe9d149334009e9eed9f6958aaaa",
      "parents": [
        "dd580ce39f5ae8846ff2968c82d0bfaa5e29ccc4"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 15:38:55 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:33 2014 -0400"
      },
      "message": "Stub out a provider-level Client for OpenStack.\n"
    },
    {
      "commit": "e5550862f19bee83438c92cf569dea3ecd62f219",
      "tree": "a2cb6cfb962e95fb08b369ac280dab8b86e64947",
      "parents": [
        "8a85a91873fac7d230e2e02dd7c0fa653fbac05e"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 15:37:09 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:32 2014 -0400"
      },
      "message": "Break the import cycle :wrench:\n\nI\u0027ll have to bring in an interface if we add functionality to v3.Client for\nuse in the resource packages.\n"
    },
    {
      "commit": "8a85a91873fac7d230e2e02dd7c0fa653fbac05e",
      "tree": "a7b13a645425769b247f3e871196d40a947a0759",
      "parents": [
        "d5f2f2d50648eb849c6fe181890cef154d086629"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 15:09:58 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:32 2014 -0400"
      },
      "message": "Authenticate by creating an identity/v3 Client.\n"
    },
    {
      "commit": "a1920080adac79141ceeba9c2b7be1163c948ba7",
      "tree": "fad1d7178e372647736e3a4c2f252f9731be1bb8",
      "parents": [
        "2a325803435e7d478629419c4ae176ef6c4afe5a"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 14:24:17 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:32 2014 -0400"
      },
      "message": "Move the TokenCreateResult type to its own file.\n"
    },
    {
      "commit": "2a325803435e7d478629419c4ae176ef6c4afe5a",
      "tree": "0f628550f0b225dab7dcd9c1b9415dcabf37fc8e",
      "parents": [
        "b6943e00d7d7c1bab364b235f5f7551ca7c0ef50"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 14:23:00 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:32 2014 -0400"
      },
      "message": "Move errors to their own source file.\n"
    },
    {
      "commit": "b6943e00d7d7c1bab364b235f5f7551ca7c0ef50",
      "tree": "640d86e11bdd8ae16cefdea788dc373362ac77a0",
      "parents": [
        "85d8265faaa1fbde4e7383ca5adf7e5a69407b7d"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 14:21:41 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:32 2014 -0400"
      },
      "message": "TokenID(), not GetTokenID().\n"
    },
    {
      "commit": "85d8265faaa1fbde4e7383ca5adf7e5a69407b7d",
      "tree": "c17fbf9cb41dd39c4c52a099bfb8295e49bbc381",
      "parents": [
        "70dfe0cb511fbf88b6973cf00aefdadab2eb52e0"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 13:57:46 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:32 2014 -0400"
      },
      "message": "The first identity v3 request.\n"
    },
    {
      "commit": "dda0f995a5d0c6fb4b073f4a001553a74dd9e1b2",
      "tree": "1104ff10e90d22fdf8b4c49a308195f73461ea4a",
      "parents": [
        "fd4fe577737cac03f96df5879f6ad4fbcfb3b600"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Thu Aug 28 13:56:48 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Fri Aug 29 12:56:32 2014 -0400"
      },
      "message": "Package docs linter :lipstick:\n"
    },
    {
      "commit": "a19be191b54dd626766b1d60a9176a4207539964",
      "tree": "69f0b9d2f7948129d3110539bf534c7ebfdd2ca5",
      "parents": [
        "55fa818a91dc78d0e65908102627160236d54565",
        "5f4b5c2efd0a6ee4aa2387dc67f507526773ef74"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Aug 27 10:13:42 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Aug 27 10:13:42 2014 -0700"
      },
      "message": "Merge pull request #184 from jrperritt/v0.2.0\n\nmove \u0027NewClient\u0027 to function"
    },
    {
      "commit": "5f4b5c2efd0a6ee4aa2387dc67f507526773ef74",
      "tree": "95fcba1cb94482f4fae887c7b8e90bc19191fcda",
      "parents": [
        "aab1fcd04f0de267e417cee2432a750d7d9134f9"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Aug 27 11:44:07 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Aug 27 11:44:07 2014 -0500"
      },
      "message": "move \u0027NewClient\u0027 function to \u0027utils\u0027 directory\n"
    },
    {
      "commit": "55fa818a91dc78d0e65908102627160236d54565",
      "tree": "8802f8e55fa7e0a811883b48655418ec6817ac3c",
      "parents": [
        "a7b7e8f1a830460f662c585a4eb0ebe8b4d02eda",
        "884e0314312c1feb021688b30092e327a9503ab8"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Aug 27 09:35:23 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Aug 27 09:35:23 2014 -0700"
      },
      "message": "Merge pull request #183 from jrperritt/cf-change-reader-to-interface\n\nmake object\u0027s \u0027Content\u0027 type more generic (from *bytes.Reader to io.Read..."
    },
    {
      "commit": "aab1fcd04f0de267e417cee2432a750d7d9134f9",
      "tree": "3c5ff537c52b3c3c2ebdfedc32afef1b5aca97a7",
      "parents": [
        "a7b7e8f1a830460f662c585a4eb0ebe8b4d02eda"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Aug 27 11:21:45 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Aug 27 11:21:45 2014 -0500"
      },
      "message": "move \u0027NewClient\u0027 to function\n"
    },
    {
      "commit": "e1ce29870134c9287636476f67fe6cbc46c4caca",
      "tree": "61abc5621c648bc8a03a4b03f8a425d9e8e37444",
      "parents": [
        "a8c3b81914b65ccd28831ae50f26b2f5b32ba8fd"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 22:25:08 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 22:25:08 2014 -0500"
      },
      "message": "return error if no endpoint found\n"
    },
    {
      "commit": "a8c3b81914b65ccd28831ae50f26b2f5b32ba8fd",
      "tree": "a949b65e1a0de40c4840f5e6e0cac6954ae79e35",
      "parents": [
        "6e8987896197834e4177d0d166c7e84ee779b4bb"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 22:02:31 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 22:15:16 2014 -0500"
      },
      "message": "don\u0027t use region environment variable\n"
    },
    {
      "commit": "6e8987896197834e4177d0d166c7e84ee779b4bb",
      "tree": "ba3fe9461acbd9b9ee7d1d4e39028191f3c03bc8",
      "parents": [
        "8cff5cfe80c5f86098973d86481306c9c0c6fd47"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 15:58:11 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 15:58:11 2014 -0500"
      },
      "message": "change name of \u0027ClientOpts\u0027 to \u0027EndpointOpts\u0027\n"
    },
    {
      "commit": "8cff5cfe80c5f86098973d86481306c9c0c6fd47",
      "tree": "49e75c4acac479acdbd5d0b7a3effb05ea742117",
      "parents": [
        "5eb55b1786752df2dca13f372cdbec7dece91faa"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 15:44:39 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 15:44:39 2014 -0500"
      },
      "message": "add comments\n"
    },
    {
      "commit": "5eb55b1786752df2dca13f372cdbec7dece91faa",
      "tree": "cf7e3dc999315e0731f9d8403aaba867470e542b",
      "parents": [
        "31cdefd69a09bab1a531c791c220dea01133f181"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Aug 18 14:48:23 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Aug 18 17:50:57 2014 -0500"
      },
      "message": "add versioning to identity; add generic \u0027client\u0027 function\n"
    },
    {
      "commit": "884e0314312c1feb021688b30092e327a9503ab8",
      "tree": "e53972236a800e522a088313ab7319be91601024",
      "parents": [
        "31cdefd69a09bab1a531c791c220dea01133f181"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Thu Aug 14 17:25:38 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Thu Aug 14 17:25:38 2014 -0500"
      },
      "message": "make object\u0027s \u0027Content\u0027 type more generic (from *bytes.Reader to io.Reader)\n"
    },
    {
      "commit": "a7099c6a4544da569ec365dc647596d4094a9ed4",
      "tree": "982c806af4fa2c392e0dfd479de221637e5e4c8f",
      "parents": [
        "e76ade741215c61b67d4247867e9efde1e7674e9"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Sun Aug 10 21:47:23 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Sun Aug 10 21:47:23 2014 -0500"
      },
      "message": "fix format of result of extensions query and related functions\n"
    },
    {
      "commit": "e76ade741215c61b67d4247867e9efde1e7674e9",
      "tree": "cbc54ea217aa7b97644f8c1706aeaf1709571684",
      "parents": [
        "28cadc29c18969c75effaa65ae007242d3b886ae"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Aug 08 20:43:58 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Aug 08 20:43:58 2014 -0500"
      },
      "message": "testing identity extensions\n"
    },
    {
      "commit": "a7f7047e9f65cee7efc3189c5a9fb86fda90a328",
      "tree": "1363f12cf223cc860d3af7efa65e4186390c37c8",
      "parents": [
        "38c6ad0de422d940f5b4d5d5db211f0b646f2207",
        "bef727e64bc0fc68abbdc1749bb81fddba26d9e0"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Fri May 30 11:15:28 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Fri May 30 11:15:28 2014 -0700"
      },
      "message": "Merge pull request #160 from jrperritt/cf-refactor\n\nCf refactor.\r\n\r\nI\u0027m making a command decision to merge this PR.  It\u0027s baked long enough, and people are wanting to use it.  The only issues were documentation related (if memory serves), which is not going to break the success of the project.  We\u0027ll just have to chalk it up to technical debt and move on."
    },
    {
      "commit": "bef727e64bc0fc68abbdc1749bb81fddba26d9e0",
      "tree": "c3ac96c714e5417730f70bf4ace75793a09164b9",
      "parents": [
        "eb57564524a08db36ffcd7e992fb2bd988d99815"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon May 12 22:41:55 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon May 12 22:41:55 2014 -0500"
      },
      "message": "comment types; remove ok codes\n"
    },
    {
      "commit": "38c6ad0de422d940f5b4d5d5db211f0b646f2207",
      "tree": "6eb433fec88de4d834a5af39db11aa124f2201a2",
      "parents": [
        "808bb63f2c790bb48c6e63a8abfb467a75d8d552"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue May 06 18:09:46 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue May 06 18:09:46 2014 -0700"
      },
      "message": "Complete Flavors sub-API.\n"
    },
    {
      "commit": "eb57564524a08db36ffcd7e992fb2bd988d99815",
      "tree": "16b99917c20a31a182c0f8aff6c36ed737abd47e",
      "parents": [
        "c19adea8edcf7fb6bb683961e5b66c3894958822"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Thu Apr 24 15:16:31 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Thu Apr 24 15:16:31 2014 -0500"
      },
      "message": "change from \u0027Get\u0027 to \u0027Extract\u0027; decrease dependence on perigee\n"
    },
    {
      "commit": "c19adea8edcf7fb6bb683961e5b66c3894958822",
      "tree": "9a00098ecbc5db3f43f086f0c26de61774a3af0b",
      "parents": [
        "b6b1d020b419d991cb506242f756a2567165fdd4"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Apr 15 16:56:01 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Apr 15 16:56:01 2014 -0500"
      },
      "message": "make object and container types generic\n"
    },
    {
      "commit": "b6b1d020b419d991cb506242f756a2567165fdd4",
      "tree": "b06f0e4296b8d024b923b2ea0350b18be8bb514c",
      "parents": [
        "30558646e058fd5cccc2d153d74fbb7e523eea1d"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 21:50:45 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 21:50:45 2014 -0500"
      },
      "message": "add versioning\n"
    },
    {
      "commit": "30558646e058fd5cccc2d153d74fbb7e523eea1d",
      "tree": "59e0f02556365c1ceea4b0732e38c708c6d33862",
      "parents": [
        "49d7a64c3b286055b8d328a0fcec0cfaa8c886ec"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 17:07:12 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 17:07:12 2014 -0500"
      },
      "message": "go fmt\n"
    },
    {
      "commit": "49d7a64c3b286055b8d328a0fcec0cfaa8c886ec",
      "tree": "bdbb6bac85fafc74bc26f2d423a609816044f353",
      "parents": [
        "816d2a0eac005471dc869b87ebbccc10a1e27781",
        "808bb63f2c790bb48c6e63a8abfb467a75d8d552"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 16:38:47 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 16:59:15 2014 -0500"
      },
      "message": "merging in changes from v0.2.0 branch\n"
    },
    {
      "commit": "816d2a0eac005471dc869b87ebbccc10a1e27781",
      "tree": "8ebda8d20997e480ef150e9509bf9b5217d0e138",
      "parents": [
        "cc2cb47bbbcf74286443bb19b7aa33a463dbfd93"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Mar 11 20:49:46 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Apr 01 23:43:14 2014 -0500"
      },
      "message": "openstack object storage v02.0\n"
    },
    {
      "commit": "808bb63f2c790bb48c6e63a8abfb467a75d8d552",
      "tree": "6676332944a85ac68d454723080ece6f04031f79",
      "parents": [
        "41c9f6141e442658d684cb366b75e968c31ae04c"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Mar 12 00:07:50 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Mar 12 00:07:50 2014 -0700"
      },
      "message": "Add remaining server actions, except create image.\n\nCreate image action, to leave the user\u0027s account in the same state as it was\nbefore, requires we use the Images API to delete the created image.  I do not\nyet have those tests started, but when I write them, I\u0027ll add the create image\ntest at that time.\n"
    },
    {
      "commit": "41c9f6141e442658d684cb366b75e968c31ae04c",
      "tree": "2b11e3ae7db6c87c029bb7c26c8cd35500e4c339",
      "parents": [
        "ca5f9a3b95c9f828e53f4173da6e02ff377d5c38"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Tue Mar 11 19:00:10 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Tue Mar 11 19:00:10 2014 -0700"
      },
      "message": "Add server action: reboot server\n"
    },
    {
      "commit": "ca5f9a3b95c9f828e53f4173da6e02ff377d5c38",
      "tree": "3623db177f5d0a83c3b386439ce88ece8cd2f607",
      "parents": [
        "0196830f7075599c1353dfebb590f3b49640754f"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Tue Mar 11 17:52:58 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Tue Mar 11 17:52:58 2014 -0700"
      },
      "message": "Add server action: change admin password\n"
    },
    {
      "commit": "e246ac036e0e0c3b6899bfd5eb31517008313085",
      "tree": "ed02d063c68fc78b1baddce13923d0a098f74724",
      "parents": [
        "0abdb10ec53690232b3dc216f01e7dbdd997221d"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 23:20:09 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 23:20:09 2014 -0800"
      },
      "message": "go fmt\n"
    },
    {
      "commit": "22d3b778e1a1d3bf197ac93e98581535fe85e4c6",
      "tree": "e90822d90e91c53d6f5c7ad78ed78afd4627b3e6",
      "parents": [
        "ce0007352d4d165e1b142a88c9333d39b2289850"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 19:27:05 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 19:27:05 2014 -0800"
      },
      "message": "Add update server call\n"
    },
    {
      "commit": "ce0007352d4d165e1b142a88c9333d39b2289850",
      "tree": "7ebc2ca0dcd0acba82ce3ae0b0959e2467294c84",
      "parents": [
        "10decf92eeb53fd70e35c13e45e8f61949c2ab66"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 18:53:53 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 18:53:53 2014 -0800"
      },
      "message": "Create, delete, and query server\n"
    },
    {
      "commit": "10decf92eeb53fd70e35c13e45e8f61949c2ab66",
      "tree": "da32ab0c53a57caaaeaa6b3154c29bf1cef1433a",
      "parents": [
        "db02088a03211d72330be09a530862d723a757eb"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 17:05:35 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 17:05:35 2014 -0800"
      },
      "message": "Add ability to list flavors\n"
    },
    {
      "commit": "17ae5659c5e48d0a66bb20aa06549f642172be87",
      "tree": "1ab303b3546f43b43150a1a3583c65125e6d647c",
      "parents": [
        "d793b02cb8bb6549680602b8f7e0c565e027a173"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 20:47:43 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 20:47:43 2014 -0800"
      },
      "message": "Add images resource\n"
    },
    {
      "commit": "c007c277a25250f9eaf4e87f3bea9c40da1fb4b6",
      "tree": "191ede9cf4416a5c89f40896d1e988f8da6882fe",
      "parents": [
        "c70164db95928a53bbc9d9398d0a7547cfc7b980"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Mon Feb 10 20:49:26 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Mon Feb 10 20:49:26 2014 -0800"
      },
      "message": "Implement first function of cloud compute API\n"
    },
    {
      "commit": "b8caba5be942fdf64b941dbd7784c12953311473",
      "tree": "7e024ec0b34baaed2c0efb30ee16efa82cf84288",
      "parents": [
        "2b9632115cfed895e2d0c5720d80bed4ee7e3fae"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sun Feb 09 10:56:26 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sun Feb 09 10:56:26 2014 -0800"
      },
      "message": "Update utils godocs\n"
    },
    {
      "commit": "2b9632115cfed895e2d0c5720d80bed4ee7e3fae",
      "tree": "5a25ce3e4fc956980c5ae3cddc118aeb87bdbf4d",
      "parents": [
        "9637a00bdfb5c559a81788b8a79d6afc832028bc"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sun Feb 09 02:12:30 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sun Feb 09 02:12:30 2014 -0800"
      },
      "message": "Re-implement basic identity API for v0.2.0.\n"
    },
    {
      "commit": "0262e973440f1b4954c30f76d43119804865c9d1",
      "tree": "a0cb2b92a1b856d4f2cf0d4314f145c73a4f2207",
      "parents": [
        "8a549ef401853b19af27ddb9206efd060a1bce83"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 16:06:56 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 16:06:56 2014 -0800"
      },
      "message": "First monitoring API endpoint implemented\n"
    },
    {
      "commit": "8a549ef401853b19af27ddb9206efd060a1bce83",
      "tree": "43b5e8b694053ff6f8cf5a8352657a6f3517f0d7",
      "parents": [
        "94c582cbeb75c6ac2c2886a901d28b19673122bb"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 15:20:54 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 15:20:54 2014 -0800"
      },
      "message": "Initial commit of experimental, new, v0.2.0 API\n"
    }
  ]
}
