)]}'
{
  "log": [
    {
      "commit": "0867d08df57d708c704b7bcdb1c835c4bacb2707",
      "tree": "c693a74984ab0b5607de574707a017102b2eb744",
      "parents": [
        "277394648dac3e8214677af898935d07399ac8e1",
        "f392c0c5c58a89a02969fd85eff664c8c8757f41"
      ],
      "author": {
        "name": "Ludovic Champenois",
        "email": "ludo@google.com",
        "time": "Tue Nov 14 22:59:23 2023"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 14 22:59:23 2023"
      },
      "message": "Merge pull request #82 from GoogleCloudPlatform/dependabot/maven/java/org.json-json-20231013\n\nBump org.json:json from 20090211 to 20231013 in /java"
    },
    {
      "commit": "f392c0c5c58a89a02969fd85eff664c8c8757f41",
      "tree": "c693a74984ab0b5607de574707a017102b2eb744",
      "parents": [
        "277394648dac3e8214677af898935d07399ac8e1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Nov 14 22:30:36 2023"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 14 22:30:36 2023"
      },
      "message": "Bump org.json:json from 20090211 to 20231013 in /java\n\nBumps [org.json:json](https://github.com/douglascrockford/JSON-java) from 20090211 to 20231013.\n- [Release notes](https://github.com/douglascrockford/JSON-java/releases)\n- [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md)\n- [Commits](https://github.com/douglascrockford/JSON-java/commits)\n\n---\nupdated-dependencies:\n- dependency-name: org.json:json\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "277394648dac3e8214677af898935d07399ac8e1",
      "tree": "398a84e930945b82556ca5a3fb6d78ad28f15aee",
      "parents": [
        "b18ab0218fe221dc71047b68a4016b9c107e3664",
        "2f1930b0be21a40077676c6fc19a6b95801caa9e"
      ],
      "author": {
        "name": "Troy",
        "email": "troy.trimble@gmail.com",
        "time": "Thu Jul 07 15:55:19 2016"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 07 15:55:19 2016"
      },
      "message": "Merge pull request #70 from aozarov/master\n\nRemove a special case where the appengine-pipeline generate task_target for default module"
    },
    {
      "commit": "2f1930b0be21a40077676c6fc19a6b95801caa9e",
      "tree": "398a84e930945b82556ca5a3fb6d78ad28f15aee",
      "parents": [
        "b18ab0218fe221dc71047b68a4016b9c107e3664"
      ],
      "author": {
        "name": "aozarov",
        "email": "ozarov@google.com",
        "time": "Wed Jul 06 17:06:08 2016"
      },
      "committer": {
        "name": "aozarov",
        "email": "ozarov@google.com",
        "time": "Wed Jul 06 17:06:08 2016"
      },
      "message": "Remove a special case where the appengine-pipeline generate task_target\nimproperly when module \u003d\u003d \u0027default\u0027.\n\nThe sepecial case is causing a failure after a recent changes to\ndev_appserver (Taskqueue \u0027target\u0027 made compatible with dev_appserver)\nwhen taskqueue.py tries to parse module name.\n\nFor background see cl/126706214.\n"
    },
    {
      "commit": "b18ab0218fe221dc71047b68a4016b9c107e3664",
      "tree": "7722c585f7faedb1df647001fdc08c0f6bef7df5",
      "parents": [
        "5b4cff29e45d69bd22f24ae9231332337d10e5e9"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Thu Jan 28 18:57:30 2016"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Thu Jan 28 18:57:30 2016"
      },
      "message": "Bump version to 1.9.22.1 and depend on the CloudStorageClient 1.9.22.1\n"
    },
    {
      "commit": "5b4cff29e45d69bd22f24ae9231332337d10e5e9",
      "tree": "2ddbbd38f1ab31aa15fd910db6ae02162a00bdf3",
      "parents": [
        "c9f7aad93aa976d312f81a8b2c2dcba71e3bda50",
        "cd692c3a0ce835611e0a74fab685db3c2ba1f2fe"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Wed Jan 27 00:07:58 2016"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Wed Jan 27 00:07:58 2016"
      },
      "message": "Merge pull request #61 from someone1/patch-4\n\nFixes Issue #60"
    },
    {
      "commit": "cd692c3a0ce835611e0a74fab685db3c2ba1f2fe",
      "tree": "2ddbbd38f1ab31aa15fd910db6ae02162a00bdf3",
      "parents": [
        "c9f7aad93aa976d312f81a8b2c2dcba71e3bda50"
      ],
      "author": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Mon Nov 09 21:34:30 2015"
      },
      "committer": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Mon Nov 09 21:34:30 2015"
      },
      "message": "Fixes Issue #60\n\nThis was tried differently before in commit 443e311.\r\n\r\nFor barrier notifications, this was tried before by getting all barrier records\u0027 pipeline keys and doing a batch get, but that method did not account for situations in which barrier checks were fired but no pipes were ready yet. My method will potentially result in more RPC requests, but only pipes that are ready to be executed will be fetched. \r\n\r\nFor retries: we already have the `pipeline_record` fetched, just pass in the target parameter"
    },
    {
      "commit": "c9f7aad93aa976d312f81a8b2c2dcba71e3bda50",
      "tree": "c9372c057aa49b40d141a18e2a99a3a2a2f7417d",
      "parents": [
        "76c1f5e86a89b4198e85b60df4c0e4442745af1f",
        "160a25fae1838c7e923e1a89a9a3f0f90df08ff5"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Mon Oct 05 17:43:09 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Mon Oct 05 17:43:09 2015"
      },
      "message": "Merge pull request #51 from Loudr/supress-reabort-log-50\n\nSurpresses log: bad state for purpose \"abort\": \"aborted\""
    },
    {
      "commit": "76c1f5e86a89b4198e85b60df4c0e4442745af1f",
      "tree": "7ee264e94330add3d5875e8397ec4fd8a71d7c0a",
      "parents": [
        "95bcc505aa2c16a3d9629a5e6400481503926c01",
        "bd9fa1e7000dc6af6fe704137cc53fa6d8cde427"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Aug 14 01:21:29 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Aug 14 01:21:29 2015"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:GoogleCloudPlatform/appengine-pipelines\n"
    },
    {
      "commit": "95bcc505aa2c16a3d9629a5e6400481503926c01",
      "tree": "7ee264e94330add3d5875e8397ec4fd8a71d7c0a",
      "parents": [
        "9c6cb797a4e1dff369fc7be220290a49f7b95b8e"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Aug 14 00:32:37 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Aug 14 01:21:05 2015"
      },
      "message": "Remove copy of source in demo directory\n"
    },
    {
      "commit": "9c6cb797a4e1dff369fc7be220290a49f7b95b8e",
      "tree": "cef0005db4c7696bbed5125ce63aa5693aee4596",
      "parents": [
        "633c9fb7f75d506e3ccbd42a9775d3f54195540d"
      ],
      "author": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Jul 31 21:14:38 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Aug 14 01:18:42 2015"
      },
      "message": "Revert \"Add queue name and target to admin UI\"\n\nThis reverts commit adb3fd1580b209954252f28b8844389ba13b4733.\n"
    },
    {
      "commit": "bd9fa1e7000dc6af6fe704137cc53fa6d8cde427",
      "tree": "cef0005db4c7696bbed5125ce63aa5693aee4596",
      "parents": [
        "633c9fb7f75d506e3ccbd42a9775d3f54195540d"
      ],
      "author": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Jul 31 21:14:38 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Aug 14 00:45:50 2015"
      },
      "message": "Revert \"Add queue name and target to admin UI\"\n\nThis reverts commit adb3fd1580b209954252f28b8844389ba13b4733.\n"
    },
    {
      "commit": "633c9fb7f75d506e3ccbd42a9775d3f54195540d",
      "tree": "293d783ce9404e2cd50e04b9ef0372fa1ae75252",
      "parents": [
        "b3f56f0d4fdf45b8ee5198f6f65ba9311568afd1"
      ],
      "author": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Jul 31 21:12:51 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Aug 14 00:45:50 2015"
      },
      "message": "Revert \"Make pipelines properly propagate their targets to child pipelines\"\n\nThis reverts commit 443e3112b7f532ae70537c625c48e8b04cb326b1.\n"
    },
    {
      "commit": "160a25fae1838c7e923e1a89a9a3f0f90df08ff5",
      "tree": "e1381fe065e6670ad0278fc35d2b15853310d080",
      "parents": [
        "b3f56f0d4fdf45b8ee5198f6f65ba9311568afd1"
      ],
      "author": {
        "name": "Josh Whelchel",
        "email": "josh@jwmusic.org",
        "time": "Fri Aug 07 23:39:36 2015"
      },
      "committer": {
        "name": "Josh Whelchel",
        "email": "josh@jwmusic.org",
        "time": "Fri Aug 07 23:39:36 2015"
      },
      "message": "surpresses bad state for abort, aborted log\n"
    },
    {
      "commit": "b3f56f0d4fdf45b8ee5198f6f65ba9311568afd1",
      "tree": "6d36080c2eeaaedbd65ac3c14b673573e78ac613",
      "parents": [
        "08693d5c4412614d779af26c9aafaaf1f895535d",
        "5ec60d1af30700ccdecd5069dc7ef8fce6842517"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Aug 06 01:33:15 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Aug 06 01:33:15 2015"
      },
      "message": "Merge pull request #49 from aozarov/master\n\nignore backend service when on MVN"
    },
    {
      "commit": "5ec60d1af30700ccdecd5069dc7ef8fce6842517",
      "tree": "6d36080c2eeaaedbd65ac3c14b673573e78ac613",
      "parents": [
        "08693d5c4412614d779af26c9aafaaf1f895535d"
      ],
      "author": {
        "name": "aozarov",
        "email": "aozarov@gmail.com",
        "time": "Thu Aug 06 01:20:38 2015"
      },
      "committer": {
        "name": "aozarov",
        "email": "aozarov@gmail.com",
        "time": "Thu Aug 06 01:20:38 2015"
      },
      "message": "ignore backend service when on MVN\n"
    },
    {
      "commit": "08693d5c4412614d779af26c9aafaaf1f895535d",
      "tree": "912737be5355ad36c90c4ca0285f8dfc31826f6e",
      "parents": [
        "df89325c8731647fc3e46d7ab414696bd9d024e6",
        "a30e755f47c0216757a99d98ec92066996a4fdbb"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Jul 30 23:19:42 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Jul 30 23:19:42 2015"
      },
      "message": "Merge pull request #38 from Khan/fix_zipimport\n\nAdd zipimport compatability to ResourceHandler "
    },
    {
      "commit": "df89325c8731647fc3e46d7ab414696bd9d024e6",
      "tree": "69a543953e7b57076844f1df6514f623869b3efe",
      "parents": [
        "e1f5273d970c11757305939c7cbfef8ed238ba24",
        "32fa1cb2ffa4b861a17c90c594b8a094a97f5597"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Jul 30 23:16:28 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Jul 30 23:16:28 2015"
      },
      "message": "Merge pull request #39 from Khan/fix_tests\n\nFix testing infrastructure"
    },
    {
      "commit": "e1f5273d970c11757305939c7cbfef8ed238ba24",
      "tree": "f1495e2b33aeac66702fde5473d17f27b8cc26f8",
      "parents": [
        "2561501271f510c89db9dd2e9de1691eb539b311",
        "9aec23bd28ecaac6777cdb08bcc42e3d94928845"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Jul 30 23:00:44 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Jul 30 23:00:44 2015"
      },
      "message": "Merge pull request #34 from vendasta/fix-testutil\n\nFix common test runner."
    },
    {
      "commit": "2561501271f510c89db9dd2e9de1691eb539b311",
      "tree": "3bf6939dc917ccad9fcf226de4cc712bb2583ecc",
      "parents": [
        "d6078c7032eb5e0560d2e321f61df0c560e51f98",
        "7749346fa526bbe806dbe5bcd0f04a6658abf2a6"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Jul 30 22:54:17 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Jul 30 22:54:17 2015"
      },
      "message": "Merge pull request #44 from Loudr/fixes-43\n\nRaise Exception when default cloud storage pipeline is not set"
    },
    {
      "commit": "d6078c7032eb5e0560d2e321f61df0c560e51f98",
      "tree": "8db87e4f5e3079d7740979fae3bd52445d668042",
      "parents": [
        "8e37a5e4c570ad2473ec3791366ad29ba30b40e1"
      ],
      "author": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Thu Jul 30 22:32:49 2015"
      },
      "committer": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Thu Jul 30 22:32:49 2015"
      },
      "message": "Add build.sh to allow for running the tests easily.\n"
    },
    {
      "commit": "7749346fa526bbe806dbe5bcd0f04a6658abf2a6",
      "tree": "20a7cbdd6ec045ae39824bf706c7a37374bb1035",
      "parents": [
        "be1cc069b4bdca2958865567958f9f335ea788e6"
      ],
      "author": {
        "name": "Josh Whelchel",
        "email": "josh@loudr.fm",
        "time": "Tue Jul 28 21:07:09 2015"
      },
      "committer": {
        "name": "Josh Whelchel",
        "email": "josh@loudr.fm",
        "time": "Tue Jul 28 21:07:09 2015"
      },
      "message": "throw exception on \u0027no default bucket\u0027 state\n\n`app_identity.get_default_gcs_bucket_name()` returns `None` when no\ndefault bucket is set.\n\nThis should only affect apps created before appengine release 1.9.0.\n"
    },
    {
      "commit": "8e37a5e4c570ad2473ec3791366ad29ba30b40e1",
      "tree": "7434e68ef7c27bf0778199fcc2392e1245657210",
      "parents": [
        "0dd2d2d0af4ce2ae7ee10eb59c0c0b0f0a2cfae7",
        "8ba92cb9498620d0dd1e4b29184f4046fd10d77e"
      ],
      "author": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Mon Jul 27 19:42:46 2015"
      },
      "committer": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Mon Jul 27 19:42:46 2015"
      },
      "message": "Merge pull request #46 from GoogleCloudPlatform/revert-14-master\n\nRevert \"added method to job to get PromiseValue using handle\""
    },
    {
      "commit": "8ba92cb9498620d0dd1e4b29184f4046fd10d77e",
      "tree": "7434e68ef7c27bf0778199fcc2392e1245657210",
      "parents": [
        "0dd2d2d0af4ce2ae7ee10eb59c0c0b0f0a2cfae7"
      ],
      "author": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Sat Jul 25 04:10:20 2015"
      },
      "committer": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Sat Jul 25 04:10:20 2015"
      },
      "message": "Revert \"added method to job to get PromiseValue using handle\"\n"
    },
    {
      "commit": "0dd2d2d0af4ce2ae7ee10eb59c0c0b0f0a2cfae7",
      "tree": "4a34f29e43c3516b826217189dc56da93d033aa8",
      "parents": [
        "d7999d5191a18f88d8704e5a6d103007c04cb998",
        "461e8deb1ca2cab4ec50a1c60a908596d4b4909b"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Mon Jul 20 23:06:14 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Mon Jul 20 23:06:14 2015"
      },
      "message": "Merge pull request #45 from aozarov/master\n\nprovide a way to configure base url"
    },
    {
      "commit": "461e8deb1ca2cab4ec50a1c60a908596d4b4909b",
      "tree": "4a34f29e43c3516b826217189dc56da93d033aa8",
      "parents": [
        "42f6b6eedb0f65d306ae69373e76f3ed848a8b5d"
      ],
      "author": {
        "name": "aozarov",
        "email": "aozarov@gmail.com",
        "time": "Mon Jul 20 22:33:01 2015"
      },
      "committer": {
        "name": "aozarov",
        "email": "aozarov@gmail.com",
        "time": "Mon Jul 20 22:33:01 2015"
      },
      "message": "fix unicode issue\n"
    },
    {
      "commit": "42f6b6eedb0f65d306ae69373e76f3ed848a8b5d",
      "tree": "7683c9ba0c0ebb1894a423f4fc11f660ee2e6a11",
      "parents": [
        "d7999d5191a18f88d8704e5a6d103007c04cb998"
      ],
      "author": {
        "name": "aozarov",
        "email": "aozarov@gmail.com",
        "time": "Mon Jul 20 22:23:54 2015"
      },
      "committer": {
        "name": "aozarov",
        "email": "aozarov@gmail.com",
        "time": "Mon Jul 20 22:23:54 2015"
      },
      "message": "provide a way to configure base url\n"
    },
    {
      "commit": "be1cc069b4bdca2958865567958f9f335ea788e6",
      "tree": "b8c7232e8d5d44efba96195a757be54db1d11e30",
      "parents": [
        "d7999d5191a18f88d8704e5a6d103007c04cb998"
      ],
      "author": {
        "name": "Josh Whelchel",
        "email": "josh@loudr.fm",
        "time": "Mon Jul 20 21:37:07 2015"
      },
      "committer": {
        "name": "Josh Whelchel",
        "email": "josh@loudr.fm",
        "time": "Mon Jul 20 21:37:07 2015"
      },
      "message": "fixes #43 by supplying default bucket name\n"
    },
    {
      "commit": "d7999d5191a18f88d8704e5a6d103007c04cb998",
      "tree": "3fb74f5009ed01f8168d1e21ca81d5740ebe06a6",
      "parents": [
        "8e2c1163837f86a602aa82b7cf07a3bb069296f3",
        "d299ed6a143455e62306f059904ed6340d2273af"
      ],
      "author": {
        "name": "Josh Whelchel",
        "email": "josh@loudr.fm",
        "time": "Fri Jun 12 20:46:21 2015"
      },
      "committer": {
        "name": "Josh Whelchel",
        "email": "josh@loudr.fm",
        "time": "Fri Jun 12 20:46:21 2015"
      },
      "message": "Merge pull request #41 from maciekrb/master\n\nAdds ndb.Key JSON serialization"
    },
    {
      "commit": "d299ed6a143455e62306f059904ed6340d2273af",
      "tree": "3fb74f5009ed01f8168d1e21ca81d5740ebe06a6",
      "parents": [
        "8e2c1163837f86a602aa82b7cf07a3bb069296f3"
      ],
      "author": {
        "name": "Maciek Ruckgaber",
        "email": "maciekrb@gmail.com",
        "time": "Fri Jun 12 20:33:17 2015"
      },
      "committer": {
        "name": "Maciek Ruckgaber",
        "email": "maciekrb@gmail.com",
        "time": "Fri Jun 12 20:33:17 2015"
      },
      "message": "Adds ndb.Key JSON serialization\n\nndb JSON serialization consistency between mapreduce and pipelines. Uses\ncode commited in mapreduce.json_util by soundofjw.\n"
    },
    {
      "commit": "8e2c1163837f86a602aa82b7cf07a3bb069296f3",
      "tree": "5a53929674926882b9e06e2e5211d075c41c703e",
      "parents": [
        "bc46ac37d9a2e51ec5b0bf054d317f7fad967fcb",
        "443e3112b7f532ae70537c625c48e8b04cb326b1"
      ],
      "author": {
        "name": "Josh Whelchel",
        "email": "josh@loudr.fm",
        "time": "Fri Jun 12 16:38:28 2015"
      },
      "committer": {
        "name": "Josh Whelchel",
        "email": "josh@loudr.fm",
        "time": "Fri Jun 12 16:38:28 2015"
      },
      "message": "Merge pull request #40 from Khan/fix_target_propagation\n\nFix target propagation"
    },
    {
      "commit": "443e3112b7f532ae70537c625c48e8b04cb326b1",
      "tree": "5a53929674926882b9e06e2e5211d075c41c703e",
      "parents": [
        "adb3fd1580b209954252f28b8844389ba13b4733"
      ],
      "author": {
        "name": "Alan Pierce",
        "email": "alan@khanacademy.org",
        "time": "Tue Apr 29 02:01:15 2014"
      },
      "committer": {
        "name": "MattFaus",
        "email": "mattfaus@khanacademy.org",
        "time": "Thu Jun 11 21:50:27 2015"
      },
      "message": "Make pipelines properly propagate their targets to child pipelines\n\nSummary:\nThere are 4 ways that a pipeline can start:\n1.) It is started explicitly as a root pipeline.\n2.) It is an immediately-runnable child of a pipeline that just ran (the\n\"fanout\" case.\n3.) It runs as the result of another pipeline finishing (which triggers a\nbarrier).\n4.) It is a retry attempt for a pipeline.\n\nPipelines have a \"target\" parameter that specifies the version and module to run\non, but only the first case was actually using the target. This caused two\nproblems:\n-The target was simply being ignored when spawning a child pipeline with a\nspecific target.\n-The default target (the version/module the parent pipeline was running on) was\nbeing ignored, so flipping the default code version while a pipeline is running\nwould cause the code to change for future child pipelines.\n\nThis commit correctly sets the target for the other three cases, which should\nmake explicitly-specified targets work and should make it so the version stays\nthe same across all pipelines unless otherwise specified.\n\nTest Plan:\nTemporarily add a print statement to the taskqueue.Task constructor that prints\nthe given target whenever the URL ends with \u0027/run\u0027.\nRun /admin/bigbingo/summarize_end_to_end_test . The first print statement gives\na target of None (which is expected from my last commit), and all other print\nstatements give explicitly-specified targets.\nDelete my BigQuery token and re-run /admin/bigbingo/summarize_end_to_end_test .\nThe retry code is triggered and the retry tasks have the target explicitly\nspecified.\n\nReviewers: chris, mattfaus\n\nReviewed By: mattfaus\n\nDifferential Revision: http://phabricator.khanacademy.org/D8599\n"
    },
    {
      "commit": "adb3fd1580b209954252f28b8844389ba13b4733",
      "tree": "19e1284b8e37a5c4b2083535d89dba748d90b1ca",
      "parents": [
        "bc46ac37d9a2e51ec5b0bf054d317f7fad967fcb"
      ],
      "author": {
        "name": "Alan Pierce",
        "email": "alan@khanacademy.org",
        "time": "Fri Apr 25 23:27:14 2014"
      },
      "committer": {
        "name": "MattFaus",
        "email": "mattfaus@khanacademy.org",
        "time": "Thu Jun 11 21:50:16 2015"
      },
      "message": "Add queue name and target to admin UI\n\nSummary:\nSince I\u0027m going to be changing the way that targets are propagated in the\nfuture, this makes it easier to verify that things are working correctly (and\nnotice problems with the existing system).\n\nTest Plan:\nLoad a failed pipeline and a successful pipeline and click around to look at the\ndifferent child pipelines. All of them display the correct queue name and\ntarget.\n\nReviewers: mattfaus, chris\n\nReviewed By: chris\n\nDifferential Revision: http://phabricator.khanacademy.org/D8556\n"
    },
    {
      "commit": "32fa1cb2ffa4b861a17c90c594b8a094a97f5597",
      "tree": "355190c3d9d99517d14b655bba442c7facb596cc",
      "parents": [
        "1137cb924525bb26c92de31114c2d3b4148135ad"
      ],
      "author": {
        "name": "Alan Pierce",
        "email": "alan@khanacademy.org",
        "time": "Mon May 05 21:59:22 2014"
      },
      "committer": {
        "name": "MattFaus",
        "email": "mattfaus@khanacademy.org",
        "time": "Thu Jun 11 21:46:18 2015"
      },
      "message": "Remove an incorrect assertion in pipeline test mode\n\nSummary:\nThe implementation of evaluate_test had an assertion that all outputs of a\npipeline are always consumed by the calling pipeline, but as far as I can tell,\nthis isn\u0027t enforced for regular production mode, so maybe the test assertion was\nleft in by accident. It\u0027s breaking a test on a pipeline that has been running\nfine for a while, so I\u0027m removing the test sanity check.\n\nTest Plan: Run summarize_fast_ete_test in webapp, which ran into this bug.\n\nReviewers: mattfaus\n\nReviewed By: mattfaus\n\nSubscribers: benkraft, chris\n\nDifferential Revision: http://phabricator.khanacademy.org/D10679\n"
    },
    {
      "commit": "1137cb924525bb26c92de31114c2d3b4148135ad",
      "tree": "ed70c656282f3f741f6d352c827bf47d1aa3bda8",
      "parents": [
        "bc46ac37d9a2e51ec5b0bf054d317f7fad967fcb"
      ],
      "author": {
        "name": "Alan Pierce",
        "email": "alan@khanacademy.org",
        "time": "Fri Mar 28 19:33:37 2014"
      },
      "committer": {
        "name": "MattFaus",
        "email": "mattfaus@khanacademy.org",
        "time": "Thu Jun 11 21:46:10 2015"
      },
      "message": "Disable InOrder when running pipelines in test mode\n\nSummary:\nInOrder uses a thread-local to make sure you don\u0027t have an InOrder nested within\nanother InOrder, which works normally because each pipeline is run in a separate\nprocess. In test mode, though, everything is run in one thread, so this\nreentrancy check incorrectly throws an exception. Since InOrder has no effect in\ntest mode anyway, I fixed this by just disabling InOrder for tests.\n\nTest Plan:\nThis was breaking a new test in webapp for some code that had been running\ncorrectly in production mode for a while. With this commit, the test works.\n\nReviewers: mattfaus\n\nReviewed By: mattfaus\n\nDifferential Revision: http://phabricator.khanacademy.org/D7815\n"
    },
    {
      "commit": "a30e755f47c0216757a99d98ec92066996a4fdbb",
      "tree": "b1a9f108c79a7785cb4bfa5d915238d52208056a",
      "parents": [
        "1db442451e9f4a93684d3f9d3224ead4eab7c16b"
      ],
      "author": {
        "name": "MattFaus",
        "email": "mattfaus@khanacademy.org",
        "time": "Thu May 09 23:02:56 2013"
      },
      "committer": {
        "name": "MattFaus",
        "email": "mattfaus@khanacademy.org",
        "time": "Thu Jun 11 21:02:55 2015"
      },
      "message": "Fix /mapreduce/pipeline to properly ZipImport\n\nTest Plan:\nCraig\u0027s review\n(ZipImport\u0027s only happen in production, so hard to test locally)\n\nReviewers: csilvers\n\nDifferential Revision: http://phabricator.khanacademy.org/D2281\n"
    },
    {
      "commit": "1db442451e9f4a93684d3f9d3224ead4eab7c16b",
      "tree": "929138f5c102348b9ddb9e9686bb36f5d1a7e236",
      "parents": [
        "bc46ac37d9a2e51ec5b0bf054d317f7fad967fcb"
      ],
      "author": {
        "name": "Craig Silverstein",
        "email": "csilvers@khanacademy.org",
        "time": "Wed Oct 31 16:08:20 2012"
      },
      "committer": {
        "name": "MattFaus",
        "email": "mattfaus@khanacademy.org",
        "time": "Thu Jun 11 21:02:47 2015"
      },
      "message": "Support reading the data files even when mapreduce is in a zipfile.\n\nSummary:\nzipimport makes it possible to read python files from a .zip, but it\ndoesn\u0027t address reading data files.  The code has to be written to\nsupport that.  Change the mapreduce code so it is.  Luckily it\u0027s\npretty localized.\n\nDon\u0027t assume that zipfiles end with .zip, and .zip-things are zipfiles.\n\nJust let the zipfile module tell us whether something is a zipfile or not.\n\nTest Plan:\nDid a non-standard deploy and visited the following urls and made sure\nthey gave back non-error content:\n   http://znd-zipimport.khan-academy.appspot.com/mapreduce/status\n   http://znd-zipimport.khan-academy.appspot.com/mapreduce/status.js\n   http://znd-zipimport.khan-academy.appspot.com/mapreduce/jquery.js\n   http://znd-zipimport.khan-academy.appspot.com/mapreduce/lib/pipeline/status.js\n   http://znd-zipimport.khan-academy.appspot.com/mapreduce/lib/pipeline/images/treeview-black.gif\n\nReviewers: alpert, kamens\n\nReviewed By: alpert\n\nDifferential Revision: http://phabricator.khanacademy.org/D884\n"
    },
    {
      "commit": "bc46ac37d9a2e51ec5b0bf054d317f7fad967fcb",
      "tree": "d8fb4a2897ebf99bbfffce38532c2f7edcf4cd7f",
      "parents": [
        "35f03b1405ae6d9eb9521dc4496bc7afe12963e7"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Thu Jun 04 19:03:48 2015"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Thu Jun 04 19:03:48 2015"
      },
      "message": "bump pypi version to 1.9.21.1, contains removal of Files API dependency\n"
    },
    {
      "commit": "35f03b1405ae6d9eb9521dc4496bc7afe12963e7",
      "tree": "926b2bf3ad2973628d7d9374d67b378e15f88d03",
      "parents": [
        "824b1388f8e30d83f0eafeeb7b08243f9f1974ff",
        "95b4c6134f10a6bc42cc494e269cd01efc12e172"
      ],
      "author": {
        "name": "Troy",
        "email": "troy.trimble@gmail.com",
        "time": "Thu Jun 04 14:37:41 2015"
      },
      "committer": {
        "name": "Troy",
        "email": "troy.trimble@gmail.com",
        "time": "Thu Jun 04 14:37:41 2015"
      },
      "message": "Merge pull request #37 from mattjo/master\n\nMove to GCS client instead of files api"
    },
    {
      "commit": "95b4c6134f10a6bc42cc494e269cd01efc12e172",
      "tree": "926b2bf3ad2973628d7d9374d67b378e15f88d03",
      "parents": [
        "42ee39b3102a64afe45c907f66da43a2e707e9b5"
      ],
      "author": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Wed Jun 03 23:40:49 2015"
      },
      "committer": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Wed Jun 03 23:40:49 2015"
      },
      "message": "Make filler_pipeline_key use .name()\n"
    },
    {
      "commit": "42ee39b3102a64afe45c907f66da43a2e707e9b5",
      "tree": "747dbf3e2af527be57d30424088bdca56a83c303",
      "parents": [
        "bddb382a1ae715590520ea9e36951f8548e52af7"
      ],
      "author": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Wed Jun 03 23:37:42 2015"
      },
      "committer": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Wed Jun 03 23:37:42 2015"
      },
      "message": "Import cloudstorage in the same way as mapreduce\n"
    },
    {
      "commit": "bddb382a1ae715590520ea9e36951f8548e52af7",
      "tree": "731048ffc6cf554976aa0ae86a0fae7dcd876fa5",
      "parents": [
        "7cef80c0fe0b9482d330c5020451ae7722c491b0"
      ],
      "author": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Tue Jun 02 22:48:15 2015"
      },
      "committer": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Tue Jun 02 22:48:15 2015"
      },
      "message": "Add extra grouping by pipeline_id\n"
    },
    {
      "commit": "7cef80c0fe0b9482d330c5020451ae7722c491b0",
      "tree": "a4b68842f28e45c2b5aac8b6d6e1a0471f27e3a0",
      "parents": [
        "0cbd533f227af259a39e4ac60b94291d9491998d"
      ],
      "author": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Tue Jun 02 20:18:47 2015"
      },
      "committer": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Tue Jun 02 20:18:47 2015"
      },
      "message": "Add prefix for files\n"
    },
    {
      "commit": "0cbd533f227af259a39e4ac60b94291d9491998d",
      "tree": "3d963aab11a0369e7afa8e445c8b4be41bb0c678",
      "parents": [
        "824b1388f8e30d83f0eafeeb7b08243f9f1974ff"
      ],
      "author": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Tue Jun 02 18:18:20 2015"
      },
      "committer": {
        "name": "Matt Jones",
        "email": "mj.thelastid@gmail.com",
        "time": "Tue Jun 02 20:06:40 2015"
      },
      "message": "Move to GCS client instead of files api\n"
    },
    {
      "commit": "824b1388f8e30d83f0eafeeb7b08243f9f1974ff",
      "tree": "eba5146ac0c1b7227c0f07626170d678b2a33a79",
      "parents": [
        "574c75c51c186d20fb6b9b13494e5c173d54c4ce"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Tue May 26 05:54:57 2015"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Tue May 26 05:54:57 2015"
      },
      "message": "bump pypi version to 1.9.21\n"
    },
    {
      "commit": "9aec23bd28ecaac6777cdb08bcc42e3d94928845",
      "tree": "b003863309aa2ac3bd599e6ca45ea74abe5be8d0",
      "parents": [
        "574c75c51c186d20fb6b9b13494e5c173d54c4ce"
      ],
      "author": {
        "name": "Kevin Sookocheff",
        "email": "ksookocheff@vendasta.com",
        "time": "Fri May 22 21:57:26 2015"
      },
      "committer": {
        "name": "Kevin Sookocheff",
        "email": "ksookocheff@vendasta.com",
        "time": "Fri May 22 21:57:26 2015"
      },
      "message": "Fix common test runner.\n"
    },
    {
      "commit": "574c75c51c186d20fb6b9b13494e5c173d54c4ce",
      "tree": "660337eeb149af054df563c4919bd06846b8b727",
      "parents": [
        "aef7e75f4b4d7bbdd4ac77747069554eee5de507",
        "7349c00308901ed6203066a2a60411d8088d40f8"
      ],
      "author": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Tue May 12 16:40:45 2015"
      },
      "committer": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Tue May 12 16:40:45 2015"
      },
      "message": "Merge pull request #14 from billy1380/master\n\nadded method to job to get PromiseValue using handle"
    },
    {
      "commit": "7349c00308901ed6203066a2a60411d8088d40f8",
      "tree": "660337eeb149af054df563c4919bd06846b8b727",
      "parents": [
        "79c02c3f075753fd507e95ea0d57fd7c24a445ce",
        "32321eb4abbd8e57fbd7697c1dd8ba5c93a20b81"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Tue May 12 08:35:48 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Tue May 12 08:35:48 2015"
      },
      "message": "Merge branch \u0027master\u0027 of https://github.com/billy1380/appengine-pipelines.git"
    },
    {
      "commit": "79c02c3f075753fd507e95ea0d57fd7c24a445ce",
      "tree": "abcbf9e19a1cda657d370ff40e1fec15947ce560",
      "parents": [
        "9e418c2411a2de0189e55a7b070deaa14c4669f7"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Tue May 12 08:35:17 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Tue May 12 08:35:17 2015"
      },
      "message": "- reformatted code for 100 char line\n- added wait setting to subsequent jobs in testFilledPromiseFromHandle\n- return boolean from PromiseFromNonExistentHandleParentJob and\nasserting true\n"
    },
    {
      "commit": "32321eb4abbd8e57fbd7697c1dd8ba5c93a20b81",
      "tree": "5ac09d80389c77b0f4932a58be6e8263cc84367f",
      "parents": [
        "9e418c2411a2de0189e55a7b070deaa14c4669f7"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Mon May 11 20:25:49 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Mon May 11 20:25:49 2015"
      },
      "message": "- used java 7 syntax for declaring generic\n- updated javadoc language to highlight ansestor constraint for promises"
    },
    {
      "commit": "9e418c2411a2de0189e55a7b070deaa14c4669f7",
      "tree": "82a39776cb30f06c75e832c55c34f0848b6bf9ae",
      "parents": [
        "eba564226f6c279f6eff3c5de9dd23c9d84f16b6"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Sat May 09 14:12:59 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Sat May 09 14:12:59 2015"
      },
      "message": "added 3 tests for unfilled promise, filled promise and non-existent\npromise"
    },
    {
      "commit": "eba564226f6c279f6eff3c5de9dd23c9d84f16b6",
      "tree": "d21b16588a865b543303959c5bcb6c71c0bfe11e",
      "parents": [
        "99db1fcd9c6db80bc45905613a11edcbaedc6eed"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Sat May 09 11:42:57 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Sat May 09 11:42:57 2015"
      },
      "message": "removed note about method returning null and added to the rest of the return docs"
    },
    {
      "commit": "99db1fcd9c6db80bc45905613a11edcbaedc6eed",
      "tree": "8c23085924e369a65e90e55cc3893771b33ceacf",
      "parents": [
        "f6821af47cf17ddae7c187a7c35144ce63a2135f"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Sat May 09 11:38:43 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Sat May 09 11:38:43 2015"
      },
      "message": "removed double line spacing in javadoc"
    },
    {
      "commit": "f6821af47cf17ddae7c187a7c35144ce63a2135f",
      "tree": "cbe50d3d877decc0e2dd72f84670aacae53c48e1",
      "parents": [
        "c9ad75f6faeb3dc80585e00aa15fe054481424d8",
        "aef7e75f4b4d7bbdd4ac77747069554eee5de507"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri May 08 22:22:56 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri May 08 22:22:56 2015"
      },
      "message": "Merge remote-tracking branch \u0027upstream/master\u0027"
    },
    {
      "commit": "aef7e75f4b4d7bbdd4ac77747069554eee5de507",
      "tree": "6ef8d23561ca4f625aaed36a10e692ac2fc90e64",
      "parents": [
        "ddc050d037e7cce56ffa736aa8655dab952ae877",
        "43e77e195a64b650c8c3bade9e04ea56e1175b2b"
      ],
      "author": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Fri Apr 17 15:35:18 2015"
      },
      "committer": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Fri Apr 17 15:35:18 2015"
      },
      "message": "Merge pull request #30 from svpino/master\n\nAdded TestSetupMixin for testbed"
    },
    {
      "commit": "43e77e195a64b650c8c3bade9e04ea56e1175b2b",
      "tree": "6ef8d23561ca4f625aaed36a10e692ac2fc90e64",
      "parents": [
        "afd12f0119c623dfa196f927aff39ba464af89f7"
      ],
      "author": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Fri Apr 17 13:37:41 2015"
      },
      "committer": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Fri Apr 17 13:37:41 2015"
      },
      "message": "Fixed minor issues with TestStupMixin\n"
    },
    {
      "commit": "afd12f0119c623dfa196f927aff39ba464af89f7",
      "tree": "a1ada3ac7aaf382acabaf2fb0ba93481bb0841d6",
      "parents": [
        "8690982ee161a8a57b5dc36c2d82e30d62a6d76f"
      ],
      "author": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Fri Apr 17 00:46:10 2015"
      },
      "committer": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Fri Apr 17 00:46:10 2015"
      },
      "message": "Changed Mixin pattern\n"
    },
    {
      "commit": "8690982ee161a8a57b5dc36c2d82e30d62a6d76f",
      "tree": "9ff751259f4660e8ffa8205e18e0400dc801f9cf",
      "parents": [
        "020e4aa7125e63c75f57e12f4a51e0bacdf9aab4"
      ],
      "author": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Thu Apr 16 02:59:19 2015"
      },
      "committer": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Thu Apr 16 02:59:19 2015"
      },
      "message": "Added TestSetupMixin for testbed\n"
    },
    {
      "commit": "ddc050d037e7cce56ffa736aa8655dab952ae877",
      "tree": "28841bdf835e204c128cec7e4453b632071cc1d8",
      "parents": [
        "6a8ca40401c941263190da9b375ee5c3f244b682",
        "020e4aa7125e63c75f57e12f4a51e0bacdf9aab4"
      ],
      "author": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Thu Apr 16 01:04:42 2015"
      },
      "committer": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Thu Apr 16 01:04:42 2015"
      },
      "message": "Merge pull request #28 from svpino/master\n\nFixing issue with timezones in unit tests"
    },
    {
      "commit": "020e4aa7125e63c75f57e12f4a51e0bacdf9aab4",
      "tree": "28841bdf835e204c128cec7e4453b632071cc1d8",
      "parents": [
        "6365a1d2fc25963f653852e1bf1364058e323a82"
      ],
      "author": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Thu Apr 16 00:36:27 2015"
      },
      "committer": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Thu Apr 16 00:36:27 2015"
      },
      "message": "Replaced pytz with standard way of converting UTC to local time\n"
    },
    {
      "commit": "6365a1d2fc25963f653852e1bf1364058e323a82",
      "tree": "759f0097791978f18bb035ecdcf7243cb16f5126",
      "parents": [
        "d75f75555dd2baf025ff0eb7ed2364463b7b69e0"
      ],
      "author": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Wed Apr 15 01:26:37 2015"
      },
      "committer": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Wed Apr 15 01:26:37 2015"
      },
      "message": "Restored blobstore code in pipelines\n"
    },
    {
      "commit": "d75f75555dd2baf025ff0eb7ed2364463b7b69e0",
      "tree": "29d2aaf0fe5021a9f08ac733aefb51f8f1fa1cdd",
      "parents": [
        "a43664044136fe8ef26a59c5c5f82083e3bcb6d1"
      ],
      "author": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Wed Apr 15 01:24:16 2015"
      },
      "committer": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Wed Apr 15 01:24:16 2015"
      },
      "message": "Fixed tests to run using testbed\n"
    },
    {
      "commit": "a43664044136fe8ef26a59c5c5f82083e3bcb6d1",
      "tree": "ca14f58d4e2ef82e1a83b061031e910dc49e288f",
      "parents": [
        "38f83f4275f813ca6a65e92165e69feaee1deab9"
      ],
      "author": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Wed Apr 15 01:05:46 2015"
      },
      "committer": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Wed Apr 15 01:05:46 2015"
      },
      "message": "Fixed issue with timezones\n"
    },
    {
      "commit": "38f83f4275f813ca6a65e92165e69feaee1deab9",
      "tree": "b18c75d3e51a7f19ca20be34ab475589c98e29f9",
      "parents": [
        "6a8ca40401c941263190da9b375ee5c3f244b682"
      ],
      "author": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Wed Apr 15 00:33:16 2015"
      },
      "committer": {
        "name": "Santiago L. Valdarrama",
        "email": "svpino@gmail.com",
        "time": "Wed Apr 15 00:33:16 2015"
      },
      "message": "Ignoring .DS_Store files\n"
    },
    {
      "commit": "6a8ca40401c941263190da9b375ee5c3f244b682",
      "tree": "6c26e9a908a4c89d230cf83d9546d55a89b21ca0",
      "parents": [
        "b6b82a56ffe8e1027a6e3fe795c6da99bf820a8b",
        "d5b54ac2ba0aa6fe797e62c6e39f52165a18ddab"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Mar 19 00:18:28 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Mar 19 00:18:28 2015"
      },
      "message": "Merge pull request #26 from someone1/patch-3\n\nMissing line from Pull Request #19"
    },
    {
      "commit": "d5b54ac2ba0aa6fe797e62c6e39f52165a18ddab",
      "tree": "6c26e9a908a4c89d230cf83d9546d55a89b21ca0",
      "parents": [
        "b6b82a56ffe8e1027a6e3fe795c6da99bf820a8b"
      ],
      "author": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Mon Mar 09 20:32:33 2015"
      },
      "committer": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Mon Mar 09 20:32:33 2015"
      },
      "message": "Missing line from Pull Request #19\n\nA bad copy/paste job.\r\n\r\nAlso wanted to mention that this has nothing to do with Issue #17 - a misread on my part. It appears as if the pipeline library will already use the same queue name in which the executing task is part of - my interpretation says this should be the parent pipeline so maybe an example on how issue #17.\r\n\r\nWhat PR #19 (and this) does is fixes the situation in which child pipelines were given a target to execute to but that target was not propagated when queueing the tasks."
    },
    {
      "commit": "b6b82a56ffe8e1027a6e3fe795c6da99bf820a8b",
      "tree": "74447241a000fbc6c3fe91ae87f94c8a80bf3308",
      "parents": [
        "5a6094c88409b9f5a44d18d0ab6975dc03962ec8",
        "d9e95d83726ca59ea0dfd9b6d96aae29e3ea14d1"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Fri Mar 06 02:03:50 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Fri Mar 06 02:03:50 2015"
      },
      "message": "Merge pull request #22 from someone1/master\n\nVarious environment/import updates. (simple json -\u003e json)\r\nSee: https://github.com/GoogleCloudPlatform/appengine-pipelines/issues/9"
    },
    {
      "commit": "d9e95d83726ca59ea0dfd9b6d96aae29e3ea14d1",
      "tree": "74447241a000fbc6c3fe91ae87f94c8a80bf3308",
      "parents": [
        "cca603ca314943347f1dc5226dd54974e28a83cf",
        "5a6094c88409b9f5a44d18d0ab6975dc03962ec8"
      ],
      "author": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Thu Mar 05 16:49:31 2015"
      },
      "committer": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Thu Mar 05 16:49:31 2015"
      },
      "message": "Merge pull request #1 from GoogleCloudPlatform/master\n\nCatchup to main repository"
    },
    {
      "commit": "cca603ca314943347f1dc5226dd54974e28a83cf",
      "tree": "74447241a000fbc6c3fe91ae87f94c8a80bf3308",
      "parents": [
        "fe859ad0984119bf53e609a8f32aaa67d056a5ee"
      ],
      "author": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Thu Mar 05 16:47:28 2015"
      },
      "committer": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Thu Mar 05 16:47:28 2015"
      },
      "message": "Updated environment and imports"
    },
    {
      "commit": "5a6094c88409b9f5a44d18d0ab6975dc03962ec8",
      "tree": "ba2fadef4c49c08f5209194330c80dd23dfef0c3",
      "parents": [
        "b98aff27dc85ac22310ebe9732b6095cbdaac408",
        "06c35e31f98b43eab10af861b28d89413f2903e1"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Mar 05 01:06:19 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Mar 05 01:06:19 2015"
      },
      "message": "Merge pull request #20 from someone1/patch-2\n\nRemove unused import"
    },
    {
      "commit": "b98aff27dc85ac22310ebe9732b6095cbdaac408",
      "tree": "6e8d78a871343207e6cf5bf77697d8987c2379a0",
      "parents": [
        "fe859ad0984119bf53e609a8f32aaa67d056a5ee",
        "fb0ca3fbd909b6652dd4d41172e26e2d01fe507f"
      ],
      "author": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Mar 05 01:05:48 2015"
      },
      "committer": {
        "name": "Tom Kaitchuck",
        "email": "tom.kaitchuck@gmail.com",
        "time": "Thu Mar 05 01:05:48 2015"
      },
      "message": "Merge pull request #19 from someone1/patch-1\n\nResolves Issue #17"
    },
    {
      "commit": "06c35e31f98b43eab10af861b28d89413f2903e1",
      "tree": "d755997ac8d2ddf820f19bcb9261fd220b1f3242",
      "parents": [
        "fe859ad0984119bf53e609a8f32aaa67d056a5ee"
      ],
      "author": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Tue Feb 24 21:51:36 2015"
      },
      "committer": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Tue Feb 24 21:51:36 2015"
      },
      "message": "Remove unused import"
    },
    {
      "commit": "fb0ca3fbd909b6652dd4d41172e26e2d01fe507f",
      "tree": "6e8d78a871343207e6cf5bf77697d8987c2379a0",
      "parents": [
        "fe859ad0984119bf53e609a8f32aaa67d056a5ee"
      ],
      "author": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Tue Feb 24 19:56:58 2015"
      },
      "committer": {
        "name": "Prateek Malhotra",
        "email": "someone1@gmail.com",
        "time": "Tue Feb 24 19:56:58 2015"
      },
      "message": "Resolves Issue #17\n\nI had to make this modification in my local version and have been using it in production with the intended effects for about a year (using a version from February 2014)"
    },
    {
      "commit": "fe859ad0984119bf53e609a8f32aaa67d056a5ee",
      "tree": "c5241dd3d754ee6aac0bb9803308a683e0af913c",
      "parents": [
        "10d3f3ec9edc7ee1cf47d1910586791ae0b5ed76"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Tue Feb 17 18:26:56 2015"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Tue Feb 17 18:26:56 2015"
      },
      "message": "bump pypi version to 1.9.17.0\n"
    },
    {
      "commit": "10d3f3ec9edc7ee1cf47d1910586791ae0b5ed76",
      "tree": "7f603a7a391ca143725ecbec52ae410b8cff1e4a",
      "parents": [
        "408e26fe6bd98bcdd0cd7ff6b19484b6aa45a926"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Tue Feb 17 18:23:19 2015"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Tue Feb 17 18:23:19 2015"
      },
      "message": "Small doc change.\n\nRevision created by MOE tool push_codebase.\nMOE_MIGRATION\u003d\n"
    },
    {
      "commit": "c9ad75f6faeb3dc80585e00aa15fe054481424d8",
      "tree": "4e85b8f192f131173f2e19580c0543c4f8ec467e",
      "parents": [
        "202d8f278416f8d2ead6f5745121ca9ab1247393"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri Feb 13 12:44:02 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri Feb 13 12:44:02 2015"
      },
      "message": "added javadoc to newPromise and promise methods"
    },
    {
      "commit": "202d8f278416f8d2ead6f5745121ca9ab1247393",
      "tree": "13076cd22a74bc6b49d33d7af62be0124f5cccdd",
      "parents": [
        "9b43be5f785c154dc31d40e70044bec9dc6da50b"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri Feb 13 12:43:17 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri Feb 13 12:43:17 2015"
      },
      "message": "added method queryPromisedValueSlot that is used from getPromisedValueSlot and acceptPromisedValue"
    },
    {
      "commit": "9b43be5f785c154dc31d40e70044bec9dc6da50b",
      "tree": "c2f7df5db52bc11b03c5783036c4e8ecadd2d38f",
      "parents": [
        "b0e27bf39088261788c8abfacb5609c859977c90"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri Feb 13 12:30:47 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri Feb 13 12:30:47 2015"
      },
      "message": "fixed constructor to call this instead of super"
    },
    {
      "commit": "408e26fe6bd98bcdd0cd7ff6b19484b6aa45a926",
      "tree": "4087d090b5af590201795899f52d94899dfe3085",
      "parents": [
        "5b8b842a4cdb56de376780fc3bfd6a65f46a4a8a",
        "342cc0b8a767e562b857b6bfacd2f04c8009fcf3"
      ],
      "author": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Thu Feb 12 17:35:02 2015"
      },
      "committer": {
        "name": "Arie",
        "email": "aozarov@users.noreply.github.com",
        "time": "Thu Feb 12 17:35:02 2015"
      },
      "message": "Merge pull request #16 from sadovnychyi/patch-1\n\nFix a typo"
    },
    {
      "commit": "342cc0b8a767e562b857b6bfacd2f04c8009fcf3",
      "tree": "4087d090b5af590201795899f52d94899dfe3085",
      "parents": [
        "5b8b842a4cdb56de376780fc3bfd6a65f46a4a8a"
      ],
      "author": {
        "name": "Dmitry Sadovnychyi",
        "email": "dyriax@gmail.com",
        "time": "Thu Feb 12 07:08:42 2015"
      },
      "committer": {
        "name": "Dmitry Sadovnychyi",
        "email": "dyriax@gmail.com",
        "time": "Thu Feb 12 07:08:42 2015"
      },
      "message": "Fix a typo"
    },
    {
      "commit": "5b8b842a4cdb56de376780fc3bfd6a65f46a4a8a",
      "tree": "75df7d1c0f52687896fc434d869d796988700cba",
      "parents": [
        "8a3ab972d9ef942ae0d822f392eca5381bd82608"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Fri Feb 06 22:46:56 2015"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Fri Feb 06 22:46:56 2015"
      },
      "message": "get .gitignore back in the repo\n"
    },
    {
      "commit": "8a3ab972d9ef942ae0d822f392eca5381bd82608",
      "tree": "aed661ab8d392b6d56c38c5b20292e6a86f8059a",
      "parents": [
        "b5209e40a80d4a8de88a55e38fb7d2495523a049"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Fri Feb 06 22:39:49 2015"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Fri Feb 06 22:39:49 2015"
      },
      "message": "setup.py comma fix\n"
    },
    {
      "commit": "b5209e40a80d4a8de88a55e38fb7d2495523a049",
      "tree": "ea9f6583951de2fe7611238dbdf3566a340cb2c4",
      "parents": [
        "6c32ebeb8412389e95362d5df5b6d7e2c899fbca"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Fri Feb 06 22:37:25 2015"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Fri Feb 06 22:37:25 2015"
      },
      "message": "bump pypi to 1.9.16.0\n"
    },
    {
      "commit": "6c32ebeb8412389e95362d5df5b6d7e2c899fbca",
      "tree": "176ca12d0982aff8342e49309dafb7e4aa0ba34f",
      "parents": [
        "82e1667c3c6a0310af658d960b1d9042a731054b"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Fri Feb 06 21:56:25 2015"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "troy.trimble@gmail.com",
        "time": "Fri Feb 06 21:56:25 2015"
      },
      "message": "- Remove simplejson from repo, use built-in version.\n- Increase sharding in test.\n\nRevision created by MOE tool push_codebase.\nMOE_MIGRATION\u003d\n"
    },
    {
      "commit": "b0e27bf39088261788c8abfacb5609c859977c90",
      "tree": "5dda7599548d988ba15221358050d4b737ced582",
      "parents": [
        "82e1667c3c6a0310af658d960b1d9042a731054b"
      ],
      "author": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri Jan 30 19:20:24 2015"
      },
      "committer": {
        "name": "billy1380",
        "email": "william.shakour@gmail.com",
        "time": "Fri Jan 30 19:20:24 2015"
      },
      "message": "added method to get PromiseValue using handle"
    },
    {
      "commit": "82e1667c3c6a0310af658d960b1d9042a731054b",
      "tree": "097a19da1815b465c43bd0df3ac78d7e6aa5aca5",
      "parents": [
        "96d612e00746c3823c1d4ba5e7d9c86e0446801a"
      ],
      "author": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Tue Jan 20 23:08:30 2015"
      },
      "committer": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Tue Jan 20 23:08:30 2015"
      },
      "message": "use simplejson \u003e\u003d 3.6.5 to be in line with GoogleAppEngineMapReduce dependencies\n\nRevision created by MOE tool push_codebase.\n\nR\u003djlucena\nDELTA\u003d4 (3 added, 0 deleted, 1 changed)\n\nRevision created by MOE tool push_codebase.\nMOE_MIGRATION\u003d7283\n"
    },
    {
      "commit": "96d612e00746c3823c1d4ba5e7d9c86e0446801a",
      "tree": "1e39617cd78290412739428fe51ef530c16cd061",
      "parents": [
        "b8c71563a351baa6f7be0d49bdc678d697ceaf81"
      ],
      "author": {
        "name": "lucena",
        "email": "john@caixabaixa.com",
        "time": "Tue Jan 20 19:49:49 2015"
      },
      "committer": {
        "name": "lucena",
        "email": "john@caixabaixa.com",
        "time": "Tue Jan 20 19:49:49 2015"
      },
      "message": "Fix the \"next page\" cursor link on the root pipelines page.\n\nBefore this change it would drop the \"class_path\" parameter so you\u0027d only see the next page for *all* pipelines, not the one you already selected. This required some tricky string manipulation because the two RPCs to the server side (one to list roots, another to list pipelines) come out of order. An alternative approach is to parse the query string, but I\u0027m trying to avoid writing that code again or pulling in a dependency on a library that does it for me.\n\nAlso fixes the content-type on the JSON return value. It needs to be application/json to make sure any middleware doesn\u0027t try to do manipulations to the data as if it were JavaScript (like inserting comments!).\n\nR\u003dttrimble\nDELTA\u003d11 (8 added, 0 deleted, 3 changed)\n\nRevision created by MOE tool push_codebase.\nMOE_MIGRATION\u003d7282\n"
    },
    {
      "commit": "b8c71563a351baa6f7be0d49bdc678d697ceaf81",
      "tree": "8bc53900a34c22aab7a0ad4f148ec8c11eb56bae",
      "parents": [
        "a69dfbc7c12de2b411dbc124d922a776617ec792"
      ],
      "author": {
        "name": "lucena",
        "email": "john@caixabaixa.com",
        "time": "Tue Jan 20 19:49:22 2015"
      },
      "committer": {
        "name": "lucena",
        "email": "john@caixabaixa.com",
        "time": "Tue Jan 20 19:49:22 2015"
      },
      "message": "Handle the situation when a Barrier that relies on a Slot is missing.\n\nIf there are task and pipeline kickoff retries it\u0027s possible for a _BarrierIndex\nto exist for a _BarrierRecord that was not successfully written. It\u0027s safe to\nignore this because the original task that wrote the _BarrierIndex and\n_BarrierRecord would not have made progress to kick off a real pipeline or child\npipeline unless all of the writes for these dependent entities went through. We\nassume that the instigator retried from scratch and somehwere there exists a\ngood _BarrierIndex and corresponding _BarrierRecord that tries to accomplish the\nsame thing.\n\nR\u003dttrimble\nDELTA\u003d35 (34 added, 0 deleted, 1 changed)\n\nRevision created by MOE tool push_codebase.\nMOE_MIGRATION\u003d7281\n"
    },
    {
      "commit": "a69dfbc7c12de2b411dbc124d922a776617ec792",
      "tree": "cd565763b805d38f38ce6262c309b2c1286ae68a",
      "parents": [
        "73dd86cf7e7d43ea75f58b77c24712b039e86848",
        "9898dd8354cf9b8407c711fb933fd720cf28b2cb"
      ],
      "author": {
        "name": "Troy",
        "email": "troy.trimble@gmail.com",
        "time": "Mon Dec 22 18:14:38 2014"
      },
      "committer": {
        "name": "Troy",
        "email": "troy.trimble@gmail.com",
        "time": "Mon Dec 22 18:14:38 2014"
      },
      "message": "Merge pull request #11 from eshlox/remove-old-simplejson\n\nRemove old simplejson library, use version from requirements.txt"
    },
    {
      "commit": "9898dd8354cf9b8407c711fb933fd720cf28b2cb",
      "tree": "cd565763b805d38f38ce6262c309b2c1286ae68a",
      "parents": [
        "2c2a30497ef107320bee95b3e430ca08c7ede5a0"
      ],
      "author": {
        "name": "Przemysław Kołodziejczyk",
        "email": "eshlox@vertolabs.com",
        "time": "Wed Dec 17 18:34:14 2014"
      },
      "committer": {
        "name": "Przemysław Kołodziejczyk",
        "email": "eshlox@vertolabs.com",
        "time": "Wed Dec 17 18:34:14 2014"
      },
      "message": "Remove old simplejson library, use version from requirements.txt\n"
    },
    {
      "commit": "2c2a30497ef107320bee95b3e430ca08c7ede5a0",
      "tree": "2686f07269461e20b50744b0430bfd250071db35",
      "parents": [
        "73dd86cf7e7d43ea75f58b77c24712b039e86848"
      ],
      "author": {
        "name": "Przemysław Kołodziejczyk",
        "email": "eshlox@vertolabs.com",
        "time": "Wed Dec 17 14:30:07 2014"
      },
      "committer": {
        "name": "Przemysław Kołodziejczyk",
        "email": "eshlox@vertolabs.com",
        "time": "Wed Dec 17 14:30:07 2014"
      },
      "message": "Exclude *.pyc files\n"
    },
    {
      "commit": "73dd86cf7e7d43ea75f58b77c24712b039e86848",
      "tree": "d372159a28e443a39647f89030f5aa3e7602b2a3",
      "parents": [
        "8f007c90fbdbbf5e67ceec26d4782ffa866eae13"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "ttrimble@google.com",
        "time": "Fri Dec 05 22:28:52 2014"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "ttrimble@google.com",
        "time": "Fri Dec 05 22:28:52 2014"
      },
      "message": "missing comma fix\n"
    },
    {
      "commit": "8f007c90fbdbbf5e67ceec26d4782ffa866eae13",
      "tree": "638890bb22a3d9626028f7c65482c3ea91c7e5fe",
      "parents": [
        "521daede3d52cf2cf0a7c2945ca9fd5e1b959d39"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "ttrimble@google.com",
        "time": "Fri Dec 05 22:27:43 2014"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "ttrimble@google.com",
        "time": "Fri Dec 05 22:27:43 2014"
      },
      "message": "use simplejson \u003e\u003d 3.6.5 to be in line with GoogleAppEngineMapReduce dependencies\n"
    },
    {
      "commit": "521daede3d52cf2cf0a7c2945ca9fd5e1b959d39",
      "tree": "ffc03125644f5f13a4e7f02007573d5c75e9080f",
      "parents": [
        "a39305f2f2035d879d1527a7a7807aef33fca44b"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "ttrimble@google.com",
        "time": "Fri Dec 05 21:52:18 2014"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "ttrimble@google.com",
        "time": "Fri Dec 05 21:52:18 2014"
      },
      "message": "up pypi version to 1.9.15.1\n"
    },
    {
      "commit": "a39305f2f2035d879d1527a7a7807aef33fca44b",
      "tree": "3ed8aa242f634b350b5855368c1fa794d65f8248",
      "parents": [
        "796ca93e249982b86df0637e56dd88b492ae7016"
      ],
      "author": {
        "name": "Troy Trimble",
        "email": "ttrimble@google.com",
        "time": "Fri Dec 05 21:44:54 2014"
      },
      "committer": {
        "name": "Troy Trimble",
        "email": "ttrimble@google.com",
        "time": "Fri Dec 05 21:44:54 2014"
      },
      "message": "Put setup.py, MANIFEST.in and requirements.txt in python/src for pipelines.\n\nDELTA\u003d11 (10 added, 1 deleted, 0 changed)\n\nRevision created by MOE tool push_codebase.\nMOE_MIGRATION\u003d7177\n"
    },
    {
      "commit": "796ca93e249982b86df0637e56dd88b492ae7016",
      "tree": "79083b390020e951965a704b9828a1ad74589218",
      "parents": [
        "7d85a6fac592789aa35628a1935c9d67cf9b812a"
      ],
      "author": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Mon Nov 10 22:25:25 2014"
      },
      "committer": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Mon Nov 10 22:25:25 2014"
      },
      "message": "Readme spaces.\n\nRevision created by MOE tool push_codebase.\nMOE_MIGRATION\u003d7153\n"
    },
    {
      "commit": "7d85a6fac592789aa35628a1935c9d67cf9b812a",
      "tree": "7d8139c5d8e1a87c744d618b06c7b2d34c30b9ec",
      "parents": [
        "ee5164f486d0b512851a41eb955bb79d78da1fb5"
      ],
      "author": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Nov 07 22:51:56 2014"
      },
      "committer": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Fri Nov 07 22:51:56 2014"
      },
      "message": "Sync and update some Python docs and tests.\n"
    },
    {
      "commit": "ee5164f486d0b512851a41eb955bb79d78da1fb5",
      "tree": "f3f3725938e6b48b851b659c0c822353952c1f6f",
      "parents": [
        "19013457f94373a0a237c4af2531d243d8b105b4"
      ],
      "author": {
        "name": "John Lucena",
        "email": "john@caixabaixa.com",
        "time": "Thu Oct 30 22:48:09 2014"
      },
      "committer": {
        "name": "John Lucena",
        "email": "john@caixabaixa.com",
        "time": "Thu Oct 30 22:48:09 2014"
      },
      "message": "Update README"
    },
    {
      "commit": "19013457f94373a0a237c4af2531d243d8b105b4",
      "tree": "e898dba2df154c3406e683349f90f057863111ee",
      "parents": [
        "6d2e117603602b173d8c8f821ffdb8609e0f51cf"
      ],
      "author": {
        "name": "John Lucena",
        "email": "john@caixabaixa.com",
        "time": "Thu Oct 30 22:44:52 2014"
      },
      "committer": {
        "name": "John Lucena",
        "email": "john@caixabaixa.com",
        "time": "Thu Oct 30 22:44:52 2014"
      },
      "message": "Update README"
    },
    {
      "commit": "6d2e117603602b173d8c8f821ffdb8609e0f51cf",
      "tree": "d324b59d9167094480a47f5b7653ca17013fb988",
      "parents": [
        "cf7bbe4e5f310a3a992b957471d9f7461983c557"
      ],
      "author": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Thu Oct 23 21:54:57 2014"
      },
      "committer": {
        "name": "tkaitchuck",
        "email": "tkaitchuck@google.com",
        "time": "Thu Oct 23 21:54:57 2014"
      },
      "message": "Pushing out a bunch of changes that got held up.\n"
    }
  ],
  "next": "cf7bbe4e5f310a3a992b957471d9f7461983c557"
}
