)]}'
{
  "log": [
    {
      "commit": "47e197f641e44d4fbc5c0e697e824a4c5ec76412",
      "tree": "7251a10233b499bf9762eca6a108d22d88f7dfc4",
      "parents": [
        "25a7ddf4faefcb2fdb05ec6c8c0a670f74e10d27"
      ],
      "author": {
        "name": "Gautham V Kidiyoor",
        "email": "gauthamvk@google.com",
        "time": "Mon Aug 07 17:56:39 2017 +0800"
      },
      "committer": {
        "name": "Gautham V Kidiyoor",
        "email": "gauthamvk@google.com",
        "time": "Mon Aug 07 18:00:00 2017 +0800"
      },
      "message": "updated readme\n"
    },
    {
      "commit": "25a7ddf4faefcb2fdb05ec6c8c0a670f74e10d27",
      "tree": "715fe593b6daa7f011286aec166de18a1b1a3938",
      "parents": [
        "b90c6d0f134d2be1ab5a2832d1746f4e49f832b9"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Tue May 23 22:52:38 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Tue May 23 22:52:38 2017 -0700"
      },
      "message": "Fix 500 in attributes adapter. Add a \"rejector\".\n\nMake the attributes adapter set \"success\" but not return \"false\"\nupon error. Also add a \"rejector\" adapter that just checks for\nthe string \"false\".\n"
    },
    {
      "commit": "b90c6d0f134d2be1ab5a2832d1746f4e49f832b9",
      "tree": "f803710e9dba373e611c317e55171de5e289867b",
      "parents": [
        "8cb43e19bfdc6b6576f5af144f154eba2aac0165"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 18 14:00:17 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 18 14:00:17 2017 -0700"
      },
      "message": "Add API product data to api key validation.\n\nWe are not yet checking the path -- we\u0027re simply accepting the\nfirst API product that we see.\nWe are also not yet populating the attributes, but we will do that\nsoon.\n"
    },
    {
      "commit": "8cb43e19bfdc6b6576f5af144f154eba2aac0165",
      "tree": "65f6b41642e0b4241f62952e8dea57c8db486cef",
      "parents": [
        "4871c67516ef320dc02ba3629fd40b8d6886917e"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 18 11:31:45 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 18 12:22:52 2017 -0700"
      },
      "message": "Add \"attributes\" adapter for Apigee.\n\nThis sets attributes from the API key. A list checker can then\nbe used to reject invalid keys. Attributes are also now pushed\nto analytics.\n\nFix CI test for goimports.\n"
    },
    {
      "commit": "4871c67516ef320dc02ba3629fd40b8d6886917e",
      "tree": "b515ce7a09c319ec483061811fca010a4db3a1da",
      "parents": [
        "8be928a70aa3c887f52085ee5182e6aabe4e110e"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed May 17 14:27:45 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed May 17 14:27:45 2017 -0700"
      },
      "message": "Fix analytics so that it will pull data from the right Apigee URL using\nthe region location service. Fix analytics timestamps, which were not\nin milliseconds. Make it possible to pass a \"proxy name.\"\n"
    },
    {
      "commit": "8be928a70aa3c887f52085ee5182e6aabe4e110e",
      "tree": "4c13048cec111fc5537f914ebea62ec8a8b792bd",
      "parents": [
        "d5094d5ccaf34e5763282f1347f4243b7f9af3bb"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Tue May 16 21:50:33 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Tue May 16 21:50:33 2017 -0700"
      },
      "message": "Add report code with a mock server and tests. Add adapter config to test config.\n"
    },
    {
      "commit": "d5094d5ccaf34e5763282f1347f4243b7f9af3bb",
      "tree": "7c3c8c019c15d62a2d444d318ba3bdaac35108ad",
      "parents": [
        "659438de62665ca15ffeeb7e895f0bcf2037e8f4"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Mon May 15 17:16:18 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Mon May 15 17:16:18 2017 -0700"
      },
      "message": "Complete adapter tests. Check in a sample config.\n"
    },
    {
      "commit": "659438de62665ca15ffeeb7e895f0bcf2037e8f4",
      "tree": "6cc89d8292f90000bb6284105191bddb06447120",
      "parents": [
        "fbaae98e94ad5c1fd2c8b6ee21f4d18d77944ca3"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Fri May 12 17:50:29 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Mon May 15 10:07:44 2017 -0700"
      },
      "message": "Create a mock server for adapter testing.\nClean up licenses and other things.\n"
    },
    {
      "commit": "fbaae98e94ad5c1fd2c8b6ee21f4d18d77944ca3",
      "tree": "ad093384da3c8b8d5c01a61e5372ad147daf6379",
      "parents": [
        "1e625522169beed82329cd00cf87f12eb8683515"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Mon May 15 09:52:13 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Mon May 15 10:02:34 2017 -0700"
      },
      "message": "Fix presubmit script.\n"
    },
    {
      "commit": "1e625522169beed82329cd00cf87f12eb8683515",
      "tree": "05bca85c4bfc2d4a91a15b3beeb2a58f158f27ec",
      "parents": [
        "ce07e7376bfc4d3574a65a13d762fc97fe9ff44b"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Sun May 14 21:50:26 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Sun May 14 21:50:26 2017 -0700"
      },
      "message": "Add test scripts.\n"
    },
    {
      "commit": "ce07e7376bfc4d3574a65a13d762fc97fe9ff44b",
      "tree": "6edd01486418c4d640e36ba3aa4791b94b51f07b",
      "parents": [
        "49fdaa92850776313a86bd4b662fe557ad97e594"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Sun May 14 21:43:09 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Sun May 14 21:43:09 2017 -0700"
      },
      "message": "Fix gofmt and go vet errors.\n"
    },
    {
      "commit": "49fdaa92850776313a86bd4b662fe557ad97e594",
      "tree": "28eb8ac90f8ec1d60a7197ef25c7763ae76d5dc7",
      "parents": [
        "4e88a83311a3f09ddfe313456a673aaebb3b3db3"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 11 17:03:52 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 11 17:03:52 2017 -0700"
      },
      "message": "Simplify proto for now by taking out gogo stuff.\n"
    },
    {
      "commit": "4e88a83311a3f09ddfe313456a673aaebb3b3db3",
      "tree": "b82e05eaa4f01ed56cccccd07bff4477dc7b14b9",
      "parents": [
        "c77ca0547b1b300a53ce5c777a2ed4759a0ea3bf"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 11 15:56:05 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 11 15:56:05 2017 -0700"
      },
      "message": "Some intermediate work on protos.\n"
    },
    {
      "commit": "c77ca0547b1b300a53ce5c777a2ed4759a0ea3bf",
      "tree": "1edeb1e394c5149a2bfbd5294a73f232071a0306",
      "parents": [
        "20be1457b5dbc06a920e28e911d3d242416ff310"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 11 14:40:39 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 11 14:40:39 2017 -0700"
      },
      "message": "Move code from our old branch to this one.\n"
    },
    {
      "commit": "20be1457b5dbc06a920e28e911d3d242416ff310",
      "tree": "7d6d1a0ad9c1d56ff34d3697658b61486b03efeb",
      "parents": [],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 11 13:31:32 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Thu May 11 13:31:32 2017 -0700"
      },
      "message": "Initial README.\n"
    }
  ]
}
