)]}'
{
  "log": [
    {
      "commit": "8e87c1fe3bd4a16330f61dc27975a92d68f0ff42",
      "tree": "065448c693d67968b4a794b765dd53aa40d3406d",
      "parents": [
        "db80a5d31e7e5bbc6bbe6d6e78e0da35f0916b67",
        "0759cfb188bd7c4db3cbb4f9024c0c1d5c681dcb"
      ],
      "author": {
        "name": "Haoming",
        "email": "haomingzhang@users.noreply.github.com",
        "time": "Wed Sep 20 15:46:33 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 20 15:46:33 2017 -0700"
      },
      "message": "Merge pull request #6 from apid/30x-apid\n\nChange a few files to migrate GitHub repository names."
    },
    {
      "commit": "0759cfb188bd7c4db3cbb4f9024c0c1d5c681dcb",
      "tree": "065448c693d67968b4a794b765dd53aa40d3406d",
      "parents": [
        "db80a5d31e7e5bbc6bbe6d6e78e0da35f0916b67"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Sep 20 15:41:24 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Sep 20 15:41:24 2017 -0700"
      },
      "message": "Change a few files to migrate GitHub repository names.\n"
    },
    {
      "commit": "db80a5d31e7e5bbc6bbe6d6e78e0da35f0916b67",
      "tree": "2c03f0b8addd885e7a815dab4771588bbb2939c3",
      "parents": [
        "68835e7a23284346c2a11ad43effe69197c71b26"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Aug 16 10:35:33 2017 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Aug 16 10:35:33 2017 -0700"
      },
      "message": "Fixes license for open source.\n"
    },
    {
      "commit": "68835e7a23284346c2a11ad43effe69197c71b26",
      "tree": "0088971c427e06d36695a4425f0fc97d2ad9dba1",
      "parents": [
        "cbed6858015606bec730ced4b5423392667d69c6"
      ],
      "author": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Wed Feb 15 16:20:25 2017 -0800"
      },
      "committer": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Wed Feb 15 16:20:25 2017 -0800"
      },
      "message": "Return error in the format, client is expecting.\n"
    },
    {
      "commit": "cbed6858015606bec730ced4b5423392667d69c6",
      "tree": "b6315d5ebdd6c3fb08d5d4ef84412e63f91dab65",
      "parents": [
        "c83a0ec04e756aebe0e566024ede26bfefded110",
        "a360cba7d85c04c7e761389f6f24dbacc1dbab74"
      ],
      "author": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy73@users.noreply.github.com",
        "time": "Thu Feb 02 15:17:13 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 02 15:17:13 2017 -0800"
      },
      "message": "Merge pull request #3 from 30x/greg-clean-tests\n\nReplace tests that depend on Apigee SSO API with tests that generate a"
    },
    {
      "commit": "a360cba7d85c04c7e761389f6f24dbacc1dbab74",
      "tree": "b6315d5ebdd6c3fb08d5d4ef84412e63f91dab65",
      "parents": [
        "c83a0ec04e756aebe0e566024ede26bfefded110"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Feb 01 18:23:59 2017 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Feb 01 18:23:59 2017 -0800"
      },
      "message": "Replace tests that depend on Apigee SSO API with tests that generate a\nJWT token themselves and verify against a public key stored in GitHub.\nAlso, change the OAuth handler so that the stored public key is not\na global variable.\n"
    },
    {
      "commit": "c83a0ec04e756aebe0e566024ede26bfefded110",
      "tree": "268d4695fdd69c18c8731be52a8e3236e5c3ef5b",
      "parents": [
        "a6e4d75315473d45c696552906281d71a0df116c"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Feb 01 16:58:31 2017 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Feb 01 16:58:31 2017 -0800"
      },
      "message": "Add cert in the format that we are expecting.\n"
    },
    {
      "commit": "a6e4d75315473d45c696552906281d71a0df116c",
      "tree": "294e4a031515d350e436ee6ddd617b7b16bc2cc2",
      "parents": [
        "9afe0f38acf988e4934a35e607a76b227d8fffdd"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Feb 01 16:25:14 2017 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Feb 01 16:25:14 2017 -0800"
      },
      "message": "Move JWT keys where all the other keys are.\n"
    },
    {
      "commit": "9afe0f38acf988e4934a35e607a76b227d8fffdd",
      "tree": "c59d0c89b01e43008e4a103763798b3e71faad25",
      "parents": [
        "738400ba5db80f7c11f311ceaa30aaab7b72b80c"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Feb 01 16:15:37 2017 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Feb 01 16:15:37 2017 -0800"
      },
      "message": "Add some test keys for testing JWTs.\n"
    },
    {
      "commit": "738400ba5db80f7c11f311ceaa30aaab7b72b80c",
      "tree": "f1b508a7ba2f12beebd59f2a7acaadcfcbc644be",
      "parents": [
        "20996cb0ca22288f78b44c9a88ea560fbd7efddf"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Jan 25 22:51:48 2017 +0000"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Wed Jan 25 22:51:48 2017 +0000"
      },
      "message": "Update Glide stuff.\n"
    },
    {
      "commit": "20996cb0ca22288f78b44c9a88ea560fbd7efddf",
      "tree": "67fc1e51c48635c1a4aa964fb2259b010e20779e",
      "parents": [
        "ec3b42155553dfe1d248f39dbca67501d823a64b"
      ],
      "author": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Wed Jan 25 14:34:58 2017 -0800"
      },
      "committer": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Wed Jan 25 14:34:58 2017 -0800"
      },
      "message": "Fix minor review comments.\n"
    },
    {
      "commit": "ec3b42155553dfe1d248f39dbca67501d823a64b",
      "tree": "411c1be33ed6a327b2c2559427178ef1371784fa",
      "parents": [
        "e14688108c09cc1e3b4a0cc7bd2f75a46c339524"
      ],
      "author": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Wed Jan 25 14:27:24 2017 -0800"
      },
      "committer": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Wed Jan 25 14:27:24 2017 -0800"
      },
      "message": "Minor review comment based updates.\n"
    },
    {
      "commit": "e14688108c09cc1e3b4a0cc7bd2f75a46c339524",
      "tree": "b134f168136d0360117b2a041408d9e3a4b3c1c7",
      "parents": [
        "8b64b1f0a5809a7c69753b5a3b1d845f04541395"
      ],
      "author": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Tue Jan 24 23:11:20 2017 -0800"
      },
      "committer": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Tue Jan 24 23:11:20 2017 -0800"
      },
      "message": "Add test cases for JWT verification feature.\n"
    },
    {
      "commit": "8b64b1f0a5809a7c69753b5a3b1d845f04541395",
      "tree": "9cf824d7527bd4218cb17efa345ea5de2c117137",
      "parents": [
        "d4b1653a00426b138f7fa0e5db4a2b168e9b6e60"
      ],
      "author": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Mon Jan 23 16:38:18 2017 -0800"
      },
      "committer": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Mon Jan 23 16:38:18 2017 -0800"
      },
      "message": "Dont panic on first time oath failure, error and continue...\n"
    },
    {
      "commit": "d4b1653a00426b138f7fa0e5db4a2b168e9b6e60",
      "tree": "3595e4f99e986f9e59a4ba51f2c22291c291cb9a",
      "parents": [
        "f6dc5f82804320826081c37f8fd478418b411508"
      ],
      "author": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Mon Jan 23 15:57:24 2017 -0800"
      },
      "committer": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Mon Jan 23 15:57:24 2017 -0800"
      },
      "message": "Cache public key, so we dont hit server each time.\n"
    },
    {
      "commit": "f6dc5f82804320826081c37f8fd478418b411508",
      "tree": "eaba855f3d85774a796f5210cc7297a62f2f1b7b",
      "parents": [
        "a05e1bd923f57ef322a9e0b65b6b5688e27648b1"
      ],
      "author": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Mon Jan 23 11:13:35 2017 -0800"
      },
      "committer": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Mon Jan 23 11:13:35 2017 -0800"
      },
      "message": "Added the option of validating JWT on user selected http handlers.\n"
    },
    {
      "commit": "a05e1bd923f57ef322a9e0b65b6b5688e27648b1",
      "tree": "7505ebec4bf5ce1b3701346730931e2e88d9ca89",
      "parents": [
        "9ef07bbc2b57dbdb8ac2000b338dff4915fa09bf"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Fri Jan 13 16:26:40 2017 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Fri Jan 13 16:26:40 2017 -0800"
      },
      "message": "Plug \"pprof\" into the management listener.\n"
    },
    {
      "commit": "9ef07bbc2b57dbdb8ac2000b338dff4915fa09bf",
      "tree": "503e3525360f0f8eabe20a4b5f01b76d4df2e0b5",
      "parents": [
        "6d7e9de1ebc85bce86f1c83408746b01e98c8ede"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Fri Jan 13 15:55:33 2017 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Fri Jan 13 15:55:33 2017 -0800"
      },
      "message": "Fix signal handling so it keeps running after getting SIGHUP.\n"
    },
    {
      "commit": "6d7e9de1ebc85bce86f1c83408746b01e98c8ede",
      "tree": "357079f4d11573441c3485aa9b1b391c582f122b",
      "parents": [
        "96cdf64fed74d06bdde413a60b66ceed44f2875c"
      ],
      "author": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Wed Jan 11 10:43:54 2017 -0800"
      },
      "committer": {
        "name": "Sundar Ramamoorthy",
        "email": "sramamoorthy@apigee.com",
        "time": "Wed Jan 11 10:43:54 2017 -0800"
      },
      "message": "Add a new feature (optional) to configure local IP address to bind to.\n"
    },
    {
      "commit": "96cdf64fed74d06bdde413a60b66ceed44f2875c",
      "tree": "ef2c605575beb6fbdd7635feef6bac42577358a7",
      "parents": [
        "bc27656c53f79500b27ef1648c3a12ac8d06a084"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Fri Dec 16 16:25:57 2016 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Fri Dec 16 16:25:57 2016 -0800"
      },
      "message": "Break listen down in to two parts -- start listening, and wait.\n"
    },
    {
      "commit": "bc27656c53f79500b27ef1648c3a12ac8d06a084",
      "tree": "024c68d4c6abfbf4a8b3e1317b58577dc33af25e",
      "parents": [
        "584cecee6ca8118c7dd7916844df88db6f9fc13b"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Tue Nov 22 14:58:37 2016 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "gregbrail@google.com",
        "time": "Tue Nov 22 14:58:37 2016 -0800"
      },
      "message": "Fixed a bug in handling an \"*/*\" Accept header.\n"
    },
    {
      "commit": "584cecee6ca8118c7dd7916844df88db6f9fc13b",
      "tree": "7108c86b7d4e55878be9f8da3e9048ff734b65fd",
      "parents": [
        "9ff3c289539b03a5cc49c088b855f0eb8a8a4ccb"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Thu Nov 10 13:56:39 2016 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Thu Nov 10 13:56:39 2016 -0800"
      },
      "message": "Just use plain old unencrypted TLS keys right now.\n"
    },
    {
      "commit": "9ff3c289539b03a5cc49c088b855f0eb8a8a4ccb",
      "tree": "a314442d33234b80d8328164060555ecf40433df",
      "parents": [
        "f350475fd0bcb69d7611c2e10d541d6c24a7361e"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Thu Nov 10 13:54:42 2016 -0800"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Thu Nov 10 13:54:42 2016 -0800"
      },
      "message": "Do work to handle all kinds of encrypted TLS keys.\n"
    },
    {
      "commit": "f350475fd0bcb69d7611c2e10d541d6c24a7361e",
      "tree": "d3d95f49d37b00c63a6fad991fd5d27aada88676",
      "parents": [
        "7df924f98295baba72022ce4567b042413cf2b41"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Fri Oct 28 16:09:09 2016 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Fri Oct 28 16:09:09 2016 -0700"
      },
      "message": "Just update the tests a bit.\n"
    },
    {
      "commit": "7df924f98295baba72022ce4567b042413cf2b41",
      "tree": "dace81aa37c7d6f9da28a76abb26c56803242065",
      "parents": [
        "3884433b5644a945d024e3eee00a4a78683ea03e"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Fri Oct 28 15:55:11 2016 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Fri Oct 28 15:55:11 2016 -0700"
      },
      "message": "Add \"markdown\" path.\n"
    },
    {
      "commit": "3884433b5644a945d024e3eee00a4a78683ea03e",
      "tree": "247d786ff20b299e902bc5b0f13396e0b7ae69af",
      "parents": [
        "e6ad074ec2064a3cb8fe0c8a028f01532cca2257"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Wed Oct 26 16:37:51 2016 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Wed Oct 26 16:37:51 2016 -0700"
      },
      "message": "Update sample.\n"
    },
    {
      "commit": "e6ad074ec2064a3cb8fe0c8a028f01532cca2257",
      "tree": "49eedff8593c44b8cbbe705d5a41a1af1911f67d",
      "parents": [
        "0e599d4dbaae70df9eea7d953d250ff384804700"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Wed Oct 26 16:27:20 2016 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Wed Oct 26 16:27:20 2016 -0700"
      },
      "message": "Add health check functions.\n"
    },
    {
      "commit": "0e599d4dbaae70df9eea7d953d250ff384804700",
      "tree": "1830743c47ed19b672afca4255d905d0533e3292",
      "parents": [
        "ef16b6944cb012fd0ea08465a4938c0913ecda3c"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Wed Oct 26 09:30:55 2016 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Wed Oct 26 09:30:55 2016 -0700"
      },
      "message": "Add signal handling.\n"
    },
    {
      "commit": "ef16b6944cb012fd0ea08465a4938c0913ecda3c",
      "tree": "aa687488f1b16d23eea4620d443360b67fffc674",
      "parents": [
        "3e252c23e41b9d2753a1ae6851bced22c5d52d55"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Tue Oct 25 13:35:23 2016 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Tue Oct 25 13:35:23 2016 -0700"
      },
      "message": "Add an HTTP wrapper that does graceful shutdown.\n"
    },
    {
      "commit": "3e252c23e41b9d2753a1ae6851bced22c5d52d55",
      "tree": "e4686f09dfa461c772691ba88299ed7c67f68c17",
      "parents": [
        "eb5ec716f86350e9b471f4f4a2ac88ca10e81e02"
      ],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Tue Oct 04 17:35:06 2016 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Tue Oct 04 17:35:06 2016 -0700"
      },
      "message": "Add license.\n"
    },
    {
      "commit": "eb5ec716f86350e9b471f4f4a2ac88ca10e81e02",
      "tree": "bc9045bd95c3be857c97d65b54579442c16be2cb",
      "parents": [],
      "author": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Tue Oct 04 17:34:31 2016 -0700"
      },
      "committer": {
        "name": "Gregory Brail",
        "email": "greg@apigee.com",
        "time": "Tue Oct 04 17:34:31 2016 -0700"
      },
      "message": "Initial checkin.\nOnly feature so far is accept header parsing.\n"
    }
  ]
}
