)]}'
{
  "log": [
    {
      "commit": "ded34ce94f314a7c9ec13ef3026edcec8358151f",
      "tree": "6f19716d543c44ac5757f10d343bb8ebeaf28709",
      "parents": [
        "dc10b077ea52baaa1b7be42eb5d2ba05a8a8c860"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 16:33:42 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 16:33:42 2015 -0700"
      },
      "message": "Apply same URL workaround to clean build.\n\nChange-Id: I63e63f6ffb879f49e36ee2d09821fc6fc47952c8\n"
    },
    {
      "commit": "21988a3b1607cc4eb9f185109ed42c509b519662",
      "tree": "e8979e3b45797f371e1963f42408665dd7c712bd",
      "parents": [
        "d3fe4f1229ae0a50276b02d9c8e1efe8949a8726"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 17 17:51:39 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 17 17:57:15 2015 -0700"
      },
      "message": "Also send bionicbb logs to a file.\n\nChange-Id: If9a6fdbe004e3b4bb7d868b7255f83c232759f80\n"
    },
    {
      "commit": "d3fe4f1229ae0a50276b02d9c8e1efe8949a8726",
      "tree": "cc3d09517bf433bf3081c18562ac12a85ee5f468",
      "parents": [
        "3875744f89600027c69ea68650fff1eeb4b29723"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 17 13:01:29 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 17 17:39:36 2015 -0700"
      },
      "message": "Merge the two bionicbb services into one.\n\nChange-Id: I6490da1ec96b2e24b330296950be84424e11bd35\n"
    },
    {
      "commit": "a4061cddbefc3fd1c7eeb2ca270fd653a43372f1",
      "tree": "c769d9f942f572162cc4728e7e7b13d98c6da5ac",
      "parents": [
        "14af27a147b5e91eeb8632a3f99d4b6cc2ed26dc"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 16 14:20:13 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 16 14:20:13 2015 -0700"
      },
      "message": "Clean up \"logging\".\n\nPrint is bad and I should feel bad. Use the logging module instead.\nWill follow up by adding a persistent log destination instead of just\nthe console.\n\nChange-Id: I396ff10712f88a03f8d8183b6de29ea273815962\n"
    },
    {
      "commit": "a0ecd5b2b4bcb2979f0105c444fa48ef4a66ea8e",
      "tree": "290111b858d8575eedd1deaf94668d6c8a92c38f",
      "parents": [
        "de889741201faa338e01babdfd10bbd597769e60"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Apr 13 17:32:19 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Apr 13 17:33:51 2015 -0700"
      },
      "message": "Skip merge-failed messages from Gerrit.\n\nChange-Id: I2d8055a44cd78f95e64d6cf88e9efdd610a4fa88\n"
    },
    {
      "commit": "d032378790c787b8e03cebff92619b41ab0dffe4",
      "tree": "f9d46343b4e30398d633eef281d0c305b2b38e66",
      "parents": [
        "0a92ac884891b167d6393592fbf9ecf26218f9aa"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 09 17:18:53 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 09 17:18:53 2015 -0700"
      },
      "message": "Don\u0027t build any changes that touch bionicbb.\n\nRight now any changes in here would be innocuous because I manually\nupdate bionicbb, but I\u0027d like to check in the various job\nconfigurations. Once I have we don\u0027t want anyone to be able to make\nthe buildbot run any untrusted code.\n\nChange-Id: Ic050859cd5017615f71c75f995ba21bb45407b05\n"
    },
    {
      "commit": "dadac10fccb1558fb00bbafc3fc4f6b3a20f9591",
      "tree": "1684f8efd9dc16f40dd42e6a3c963bd7251276a9",
      "parents": [
        "4bd8f9637daaada333ff35945b00cfe6cb822376"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Apr 06 12:43:55 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Apr 06 14:22:37 2015 -0700"
      },
      "message": "Reject changes with cleanspecs.\n\nCleanspecs must not be removed once they have been built. This means\nthey can\u0027t be reverted, or reliably cherry-picked. Just skip any\nchanges that include them since they make such a mess.\n\nChange-Id: I3df8d81f93651d573485de7a75ecf5c6278c0001\n"
    },
    {
      "commit": "7d57623755e68c2310c2c87ada31128b9b1989b9",
      "tree": "8875e3fb86962c36e55e2b2f8dfb55390ba1dc5d",
      "parents": [
        "93d44ff2a6e0febe18d42d5690e85023545318b4"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Mar 24 11:43:55 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Mar 24 11:43:55 2015 -0700"
      },
      "message": "Convert result of a call to JSON.\n\nI still had the service that was relying on this running on top of\nlocal changes, so this hadn\u0027t been a problem yet.\n\nChange-Id: I63b45b8c7cf81972dbb7128013c1c777a2342d4c\n"
    },
    {
      "commit": "c889f13493e3ae5b6a75b59a575a7d2bffbd6481",
      "tree": "18d9b0a78a517706cae76655f6d833162aa00016",
      "parents": [
        "9bc8ce7c6a8abc09e76b0f35064d881385861537"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Mar 23 13:29:15 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Mar 23 13:29:15 2015 -0700"
      },
      "message": "Work around a bug in the Jenkins queue API.\n\nhttps://issues.jenkins-ci.org/browse/JENKINS-27256\n\n1.601 broke the ability to get a build\u0027s URL before the build had\nactually started. The bug is pseudo-fixed, but would require\ninstalling a new plugin and fixing the python jenkinsapi plugin for\nthe time being to use /queuefix/ rather than /queue/.\n\nJust avoiding logging a URL for now.\n\nChange-Id: Ibf90e5887fc4532dac688082ad7729787897da11\n"
    },
    {
      "commit": "d280675405e605d47c74c037b0d2b4f06826ed4d",
      "tree": "446ceb69136857319be6b1efa824a64662c2e005",
      "parents": [
        "53df4bfce81d8a6cfd4b5d991f5299f18dc4c958",
        "64390f940c321201fb8a866e80f44ced11ff07c8"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 22 22:00:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 22 22:00:37 2015 +0000"
      },
      "message": "Merge \"Add support for building other architectures.\""
    },
    {
      "commit": "2b873510634c388f6e9ae5c9cf7d05db091676ab",
      "tree": "76aa8b70e9ba99a9f481c3be11bb7430debecd79",
      "parents": [
        "f374358414812d3e5a45ba75a2b1926693924420"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jan 21 09:56:28 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jan 21 09:56:28 2015 -0800"
      },
      "message": "Report 404 errors from Gerrit and continue.\n\nCurrently, we get a 404 from Gerrit in the event that two projects\nhave the same Change-Id. We should be able to handle this and actually\ncherry-pick each change so we can check multi-project changes, but for\nnow just skip these changes.\n\nChange-Id: I7bc63208998d58beec83b71b302450d9be3ea026\n"
    },
    {
      "commit": "b4060330aa1f8c18f5957b9d9c92bcf153d3a31b",
      "tree": "f8e8d79260fbcf10a9bde2b6c5893c4e751cbd82",
      "parents": [
        "8d50e16aa96291612c95f89b49ecfacf556241a6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jan 12 16:23:53 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jan 12 16:33:17 2015 -0800"
      },
      "message": "Check the committer rather than the Gerrit owner.\n\nGuarding based on the Gerrit owner can be circumvented by an arbitrary\nuser uploading a different patch with a Change-Id that is non-unique,\nwith the other copy being owned by a Googler.\n\nChange-Id: I5414b679e361d4c38d70bf9c4516c122f668fc49\n"
    },
    {
      "commit": "ad248b7c005661e6565f6be12b3a25713f5d8aec",
      "tree": "c36a70ccd04c3d7803451518e06e78eb2022ac02",
      "parents": [
        "780ea47482854e1b58931bea928bf93bcaf6e3aa"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jan 12 12:25:31 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jan 12 13:48:46 2015 -0800"
      },
      "message": "Guard against @google.com.example.com.\n\nBegin adding some unit tests. Testing the Jenkins interface will\nprobably be difficult, but testing that we can properly handle\nmessages from Gerrit is easy enough.\n\nChange-Id: Id7e8e175e0f064fd10715febe40040a65564c701\n"
    },
    {
      "commit": "f988da47302f32c3575fa5b32f43679222fda11b",
      "tree": "c408c79692a44586c248754d302d2ff20f1ed521",
      "parents": [
        "0d0188b0c7e017e431c83b2f7e4956137430b6d9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jan 12 11:56:41 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jan 12 11:58:09 2015 -0800"
      },
      "message": "Oops. Fix dict key.\n\nChange-Id: Ia8295417d4097f38eef633089cb4539b849f3c74\n"
    },
    {
      "commit": "29be12934258f15127b0e669d6f859d0999f897d",
      "tree": "994830b799565135db2d1ea99d83b3b5e69d7c93",
      "parents": [
        "d7f935a05b25d003a721565ba64a015b3a341fbe"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sat Jan 10 10:38:53 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jan 12 11:48:04 2015 -0800"
      },
      "message": "Only build changes that come from @google.com.\n\nGooglers should be able to tell the buildbot to launch builds for an\nexternal contributor\u0027s change, but Gerrit is determined to make this\nhard for us. The email sent by Gerrit for comments doesn\u0027t actually\ncontain the email address of the commenter in any clear way, only the\nname. It does however contain a list of `Gerrit-Reviewer: Name\n\u003cemail\u003e` entries that could be used for this though.\n\nChange-Id: Iee61f06dcd8f0024f16b535ea9a34765bf01b2e7\n"
    },
    {
      "commit": "64390f940c321201fb8a866e80f44ced11ff07c8",
      "tree": "a6166e904a2b92e9c7de01254310e97ed12ebf2c",
      "parents": [
        "d7f935a05b25d003a721565ba64a015b3a341fbe"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 22:40:48 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 22:45:33 2015 -0800"
      },
      "message": "Add support for building other architectures.\n\nSince we often make changes that might break on other architectures,\nlet the buildbot deal with some of these for us. They can be invoked\nby `bionicbb:ARCH`, where `ARCH` is one of:\n\n * arm\n * aarch64\n * mips\n * mips64\n * x86\n * x86_64\n\nSpecifying arm isn\u0027t particularly interesting (since the default\ntarget for the buildbot is hammerhead), but there are some differences\nin the math instructions available for the default ARM target, so it\ncould be helpful for testing changes to the compiler-rt builtins.\n\nChange-Id: I94018fd3c30d26fcf405e747fc633cbdd08ff4e5\n"
    },
    {
      "commit": "c02df47f2039c3513a2b53d43d0284c10969faa9",
      "tree": "461b1ee076f9bd49a8525284bff6b7c0da9517b2",
      "parents": [
        "7e3766a8fcc534d92a6f7416fcbbdc092756e415"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 17:22:00 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 17:22:00 2015 -0800"
      },
      "message": "Make indentation match the style guide.\n\nApparently Google abandoned the 2 space indent for Python long ago.\nHelps to actually read the style guide before trying to adhere to it.\n\nChange-Id: I4feb019f0916f9d8e4f78c0dbeafbe45d8a46bfd\n"
    },
    {
      "commit": "8a15a4e5c4ab39aa67c8a0d8a6b7961c20b83373",
      "tree": "9f0752685fbc0b0827fdcc2ce74071073364eab1",
      "parents": [
        "2f8f6db5e4730a9f52be7415236f5ea55623d789"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 16:52:07 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 16:53:09 2015 -0800"
      },
      "message": "Use relative imports.\n\nMaking `bionicbb` its own package required `PYTHONPATH\u003d..`, which we\ndon\u0027t want. Just use a relative import instead.\n\nChange-Id: I59b9852522118ece89829288a4921902e756e4aa\n"
    },
    {
      "commit": "eb85ff0aba35deacb28de22ee21eea8275d38126",
      "tree": "051a576985517615d3ebe90173c2d1502869e0df",
      "parents": [
        "691e809edbe354f0432a0d3d33716dd65d68b155"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 16:24:17 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 16:24:17 2015 -0800"
      },
      "message": "Add JSON files and oauth storage to .gitignore.\n\nThe only JSON file is the client secret file, which we really don\u0027t\nwant leaking. Same goes for the oauth storage file.\n\nChange-Id: Ie860704574ec37ccfc50ff7c9d59717a7b9b443b\n"
    },
    {
      "commit": "691e809edbe354f0432a0d3d33716dd65d68b155",
      "tree": "bec225c573f38133d1bcac74dfd114b835c67f9c",
      "parents": [
        "84cbe0491857471d3e4208f0d9cc184adb43914b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 16:18:48 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 16:18:48 2015 -0800"
      },
      "message": "Make service URLs configurable.\n\nChange-Id: I91df77b7e0294be5e6180460b0ef26d7ead2ea7d\n"
    },
    {
      "commit": "7c78d24011696791f48a539260b22cec52d96c38",
      "tree": "9dae428fedabc6cb9090f9f4707e25ffb546f60f",
      "parents": [
        "edf87617e3355cf06cbf7eb5dd2a0119422c38fa"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 14:12:52 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 09 15:12:48 2015 -0800"
      },
      "message": "Check in bionicbb code.\n\nThese have been sitting around in a git repo on my machine for a\nwhile. They\u0027re now big an important enough that I\u0027d like to both keep\nthem securely backed up, and also have my changes reviewed.\n\nChange-Id: Ic4545149b4b07f0d57b21cac32aab8553dceb567\n"
    }
  ]
}
