)]}'
{
  "log": [
    {
      "commit": "16bb8e281783681561c3ff6b4dbadc6eef3161a7",
      "tree": "61c7ab48457efeafe9785966559b415f4bf4f6af",
      "parents": [
        "7c44d925ea329b093cbd259113308bcba8b7804b"
      ],
      "author": {
        "name": "Ravi Mistry",
        "email": "rmistry@google.com",
        "time": "Wed Jun 02 08:38:45 2021 -0400"
      },
      "committer": {
        "name": "Ravi Mistry",
        "email": "rmistry@google.com",
        "time": "Wed Jun 02 12:39:40 2021 +0000"
      },
      "message": "Add to README of common repo\n\nChange-Id: Ibdac864ba04ec835ffc780fc2498ccfd7fa1d77b\nReviewed-on: https://skia-review.googlesource.com/c/common/+/413976\nReviewed-by: Eric Boren \u003cborenet@google.com\u003e\n"
    },
    {
      "commit": "7c44d925ea329b093cbd259113308bcba8b7804b",
      "tree": "6dc529333c4f51fa318baa8e786116f08a86793d",
      "parents": [
        "9737551d7a52c3db3262db5856e6bcd62c462b92"
      ],
      "author": {
        "name": "Aaron Gable",
        "email": "agable@chromium.org",
        "time": "Tue Nov 15 15:22:29 2016 -0800"
      },
      "committer": {
        "name": "Aaron Gable",
        "email": "agable@chromium.org",
        "time": "Thu Nov 17 22:36:15 2016 +0000"
      },
      "message": "Switch skia common to use PolyGerrit by default\n\nBUG\u003dchromium:665580\n\nChange-Id: I74b4c2be61a383cf16efaa496a757afed6178687\nReviewed-on: https://skia-review.googlesource.com/4876\nReviewed-by: Eric Boren \u003cborenet@google.com\u003e\n"
    },
    {
      "commit": "9737551d7a52c3db3262db5856e6bcd62c462b92",
      "tree": "3483ed4508a644231ed239d9b89828ce2267f921",
      "parents": [
        "c282fe0b6e392b14f88d647cbd86e1a3ef5498e0"
      ],
      "author": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Fri Oct 21 13:18:15 2016 -0400"
      },
      "committer": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Fri Oct 21 13:18:15 2016 -0400"
      },
      "message": "[common] Remove no-longer-needed DEP\n\nBUG\u003dskia:\n\nReview URL: https://codereview.chromium.org/2436403002 .\n"
    },
    {
      "commit": "c282fe0b6e392b14f88d647cbd86e1a3ef5498e0",
      "tree": "48a5a61f4e5953230c932ee8926b6be5b2f19e45",
      "parents": [
        "89823b3bbe978dec013d5a41e2ea096493e6f194"
      ],
      "author": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Wed Apr 15 07:37:35 2015 -0400"
      },
      "committer": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Wed Apr 15 07:37:35 2015 -0400"
      },
      "message": "Fix string concat in gs_utils\n\nTBR\u003djcgregorio\nBUG\u003dskia:3723\n\nReview URL: https://codereview.chromium.org/1064763003\n"
    },
    {
      "commit": "89823b3bbe978dec013d5a41e2ea096493e6f194",
      "tree": "76aeac8f58d7b2934047bf913a0a1731cd6f7d1b",
      "parents": [
        "d7c2e2b9464e70e0f3847a330b930d008dc8c8db"
      ],
      "author": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Tue Apr 14 13:24:43 2015 -0400"
      },
      "committer": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Tue Apr 14 13:24:43 2015 -0400"
      },
      "message": "Add retries to gs upload\n\nBUG\u003dskia:3723\nR\u003djcgregorio@google.com, mtklein@google.com\n\nReview URL: https://codereview.chromium.org/1088853004\n"
    },
    {
      "commit": "d7c2e2b9464e70e0f3847a330b930d008dc8c8db",
      "tree": "a64e9d501cf583533f358914970847edc63869dd",
      "parents": [
        "0f61cb64f6c968319105c5dc3328ff765f06243c"
      ],
      "author": {
        "name": "bungeman",
        "email": "bungeman@google.com",
        "time": "Tue Nov 04 06:38:10 2014 -0800"
      },
      "committer": {
        "name": "Commit bot",
        "email": "commit-bot@chromium.org",
        "time": "Tue Nov 04 06:38:10 2014 -0800"
      },
      "message": "Add source generation to GSUtils.download_file.\n\nThis enables downloading of specific revisions of a file.\n\nReview URL: https://codereview.chromium.org/697043003\n"
    },
    {
      "commit": "0f61cb64f6c968319105c5dc3328ff765f06243c",
      "tree": "b0d7ba0ec7f0cc77027455e023bcc0c7a8e9d63c",
      "parents": [
        "5eee100abacd0c2fc89121418627cf55ca2eda31"
      ],
      "author": {
        "name": "tfarina",
        "email": "tfarina@chromium.org",
        "time": "Sun Oct 19 16:37:54 2014 -0700"
      },
      "committer": {
        "name": "Commit bot",
        "email": "commit-bot@chromium.org",
        "time": "Sun Oct 19 16:37:54 2014 -0700"
      },
      "message": "Revert \"Add GetModifiedFiles() function to git_utils.\"\n\nThis reverts commit af1de867422c42855ae54ed3838c62ea445ea6b4.\n\nAfter removing svndiff.py in\nhttps://skia.googlesource.com/skia/+/70242ace3b2ed06b33ee5ea5c9ac3aedea89b194,\nnobody uses this function anymore.\n\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/655383002\n"
    },
    {
      "commit": "5eee100abacd0c2fc89121418627cf55ca2eda31",
      "tree": "6cef73214a5fc1bde9734b81ea6224979f2c03fa",
      "parents": [
        "af1de867422c42855ae54ed3838c62ea445ea6b4"
      ],
      "author": {
        "name": "borenet",
        "email": "borenet@google.com",
        "time": "Thu Oct 16 11:22:35 2014 -0700"
      },
      "committer": {
        "name": "Commit bot",
        "email": "commit-bot@chromium.org",
        "time": "Thu Oct 16 11:22:35 2014 -0700"
      },
      "message": "Add does_storage_object_exist to gs_utils\n\nNeeded for recreate_skps script\n\nBUG\u003dskia:3008\n\nReview URL: https://codereview.chromium.org/661563002\n"
    },
    {
      "commit": "af1de867422c42855ae54ed3838c62ea445ea6b4",
      "tree": "eef1b1fc8eb7585ac08a2199a1e143e58e006a2c",
      "parents": [
        "39d13eccce76b158b47778b184e665dcf0b1bf44"
      ],
      "author": {
        "name": "tfarina",
        "email": "tfarina@chromium.org",
        "time": "Wed Oct 08 09:02:34 2014 -0700"
      },
      "committer": {
        "name": "Commit bot",
        "email": "commit-bot@chromium.org",
        "time": "Wed Oct 08 09:02:34 2014 -0700"
      },
      "message": "Add GetModifiedFiles() function to git_utils.\n\nIt will be used in a follow up CL to replace _GitGetModifiedFiles() from\ntools/svndiff.py in skia.googlesource.com/skia repo.\n\nBUG\u003dNone\nTEST\u003d./py/run_unittests\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/638723002\n"
    },
    {
      "commit": "39d13eccce76b158b47778b184e665dcf0b1bf44",
      "tree": "1ca4b6e0a993f14d7d0e0c2687b9c927eec7ce35",
      "parents": [
        "5dd2918f96b277ebe04eb66469ec3d5c7ba6952a"
      ],
      "author": {
        "name": "mtklein",
        "email": "mtklein@chromium.org",
        "time": "Fri Aug 29 09:32:02 2014 -0700"
      },
      "committer": {
        "name": "Commit bot",
        "email": "commit-bot@chromium.org",
        "time": "Fri Aug 29 09:32:02 2014 -0700"
      },
      "message": "Print the command line, not [\u0027Print\u0027, \u0027the\u0027, \u0027command\u0027, \u0027line\u0027].\n\nBUG\u003dskia:\nR\u003dborenet@google.com, mtklein@google.com\n\nAuthor: mtklein@chromium.org\n\nReview URL: https://codereview.chromium.org/521473004\n"
    },
    {
      "commit": "5dd2918f96b277ebe04eb66469ec3d5c7ba6952a",
      "tree": "798179fd727c2b289b52219f1f6333ce1587ad53",
      "parents": [
        "12514f07a6b2e4579416a41957dd805834907779"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Tue Aug 19 15:02:43 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Tue Aug 19 15:02:43 2014 -0400"
      },
      "message": "git_utils.py: allow checkouts of local repositories at any commithash along master branch\n\nNeeded so that we can create new GM/SKP baselines on a shared\nrebaseline_server instance, *efficiently*.  (Create checkouts pinned to certain\ncommithashes as copies of the local Skia checkout, rather than checking out\ncopies of the main Skia repo across the internet.)\n\nBUG\u003dskia:1918\nNOTREECHECKS\u003dtrue\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/484143002\n"
    },
    {
      "commit": "12514f07a6b2e4579416a41957dd805834907779",
      "tree": "0640807d3e011f95e7750ce0d75e71af98c4b8ad",
      "parents": [
        "32fa66918f4f975d0935ff5ec50a4ce6e5fbf04b"
      ],
      "author": {
        "name": "rmistry",
        "email": "rmistry@google.com",
        "time": "Fri Aug 15 10:43:51 2014 -0700"
      },
      "committer": {
        "name": "Commit bot",
        "email": "commit-bot@chromium.org",
        "time": "Fri Aug 15 10:43:51 2014 -0700"
      },
      "message": "Whitespace change to test the common repo\u0027s new CQ\n\nBUG\u003dskia:2682\nTBR\u003d\n\nAuthor: rmistry@google.com\n\nReview URL: https://codereview.chromium.org/476213003\n"
    },
    {
      "commit": "32fa66918f4f975d0935ff5ec50a4ce6e5fbf04b",
      "tree": "d0cfaff29ddf937d1474f2d2bfec7c2a741e4064",
      "parents": [
        "1d9557f62007d3280e6a892da9a903cee0e4f251"
      ],
      "author": {
        "name": "rmistry",
        "email": "rmistry@google.com",
        "time": "Fri Aug 15 10:42:59 2014 -0700"
      },
      "committer": {
        "name": "Commit bot",
        "email": "commit-bot@chromium.org",
        "time": "Fri Aug 15 10:42:59 2014 -0700"
      },
      "message": "Change test_refspec to manualtest\n\nBUG\u003dskia:2682\nR\u003depoger@google.com\n\nAuthor: rmistry@google.com\n\nReview URL: https://codereview.chromium.org/474293002\n"
    },
    {
      "commit": "1d9557f62007d3280e6a892da9a903cee0e4f251",
      "tree": "ce4f6d9e5ae6b4a9da06a73ed5a313d477738e58",
      "parents": [
        "a7b0283c39dfdf5553859eb9790c970bb52cda47"
      ],
      "author": {
        "name": "rmistry",
        "email": "rmistry@google.com",
        "time": "Fri Aug 15 07:17:51 2014 -0400"
      },
      "committer": {
        "name": "Ravi Mistry",
        "email": "rmistry@google.com",
        "time": "Fri Aug 15 07:17:51 2014 -0400"
      },
      "message": "Testing common repo CQ by running it locally\n\nTBR\u003d\nBUG\u003dskia:2682\n\nAuthor: rmistry@google.com\n\nReview URL: https://codereview.chromium.org/479523002\n"
    },
    {
      "commit": "a7b0283c39dfdf5553859eb9790c970bb52cda47",
      "tree": "3dd16467496a8dbccdd59594d625c7d507b32d67",
      "parents": [
        "b7361435b3ef797c0bdcae55330345ae620b3bae"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Wed Aug 13 15:17:07 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Wed Aug 13 15:17:07 2014 -0400"
      },
      "message": "add NewGitCheckout to git_utils.py\n\nrebaseline_server will use this to check out expectations at specific revisions\n\nBUG\u003dskia:1918\nTBR\u003drmistry\n\nReview URL: https://codereview.chromium.org/464413003\n"
    },
    {
      "commit": "b7361435b3ef797c0bdcae55330345ae620b3bae",
      "tree": "5d8cd3d5fdd43786b531c84ce75b7a8bee02e0a9",
      "parents": [
        "94a745242fab63f4902649048979f693d04b183a"
      ],
      "author": {
        "name": "Ravi Mistry",
        "email": "rmistry@google.com",
        "time": "Mon Aug 11 13:22:44 2014 -0400"
      },
      "committer": {
        "name": "Ravi Mistry",
        "email": "rmistry@google.com",
        "time": "Mon Aug 11 13:22:44 2014 -0400"
      },
      "message": "Add project\u003dskiacommon to codereview.settings\n\nIn preparation for turning on a new CQ instance for this repository.\n\nBUG\u003dskia:2682\n\nReview URL: https://codereview.chromium.org/458743003\n"
    },
    {
      "commit": "94a745242fab63f4902649048979f693d04b183a",
      "tree": "dbaf28ffc1699eddbcc373682148f65387b57db7",
      "parents": [
        "c2200447734f13070fb3b2808dea58847241ab0e"
      ],
      "author": {
        "name": "Ravi Mistry",
        "email": "rmistry@google.com",
        "time": "Thu Aug 07 13:10:01 2014 -0400"
      },
      "committer": {
        "name": "Ravi Mistry",
        "email": "rmistry@google.com",
        "time": "Thu Aug 07 13:10:01 2014 -0400"
      },
      "message": "Whitespace change to test common repo bugdroid\n\nTBR\u003d\nBUG\u003dskia:2139\n\nReview URL: https://codereview.chromium.org/443423003\n"
    },
    {
      "commit": "c2200447734f13070fb3b2808dea58847241ab0e",
      "tree": "b98506748ced4991e9a8ba0f81a231d5d57e48d3",
      "parents": [
        "f63e1cfff23615157e28942af5f5e8298351cb10"
      ],
      "author": {
        "name": "Ravi Mistry",
        "email": "rmistry@google.com",
        "time": "Thu Aug 07 13:03:03 2014 -0400"
      },
      "committer": {
        "name": "Ravi Mistry",
        "email": "rmistry@google.com",
        "time": "Thu Aug 07 13:03:03 2014 -0400"
      },
      "message": "Initial commit of whitespace.txt\n"
    },
    {
      "commit": "f63e1cfff23615157e28942af5f5e8298351cb10",
      "tree": "37784f047d1e664d35686252419697b32be28c85",
      "parents": [
        "6683b15b039a31d5d86ce6c8af4dd56861d10ee4"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Tue Jul 29 21:11:01 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Tue Jul 29 21:11:01 2014 -0400"
      },
      "message": "add is_gs_url(), split_gs_url() static methods to gs_utils.py\n\nThis will be helpful for dealing with user input in the gs://path format.\n\nR\u003drmistry@google.com\n\nReview URL: https://codereview.chromium.org/427893002\n"
    },
    {
      "commit": "6683b15b039a31d5d86ce6c8af4dd56861d10ee4",
      "tree": "671660a4e3f8660a61ea6861859c1aa59a72bfe1",
      "parents": [
        "0b62f0ea313a0dc4f64fb3927f5ee3a47004972c"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 28 22:06:56 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 28 22:06:56 2014 -0400"
      },
      "message": "remove all uses of Python\u0027s logging module until we resolve http://skbug.com/2784\n\nBUG\u003dskia:2784\nTBR\u003dborenet\n\nReview URL: https://codereview.chromium.org/424863004\n"
    },
    {
      "commit": "0b62f0ea313a0dc4f64fb3927f5ee3a47004972c",
      "tree": "ca332aa38cc8ee38227b57dfb014551e248ddf23",
      "parents": [
        "ff9e4d8724bd1e1e8cc1bf8d6d9d86e62aae8d71"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 28 10:50:20 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 28 10:50:20 2014 -0400"
      },
      "message": "upload_dir_contents(): upload multiple files in parallel\n\nBUG\u003dskia:2780\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/424553002\n"
    },
    {
      "commit": "ff9e4d8724bd1e1e8cc1bf8d6d9d86e62aae8d71",
      "tree": "3d0f509da6bf9e3c59335719e647519fc375f3bf",
      "parents": [
        "0625d3af8dadbfe29f2596cf8301b84437e5690c"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Fri Jul 25 14:52:55 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Fri Jul 25 14:52:55 2014 -0400"
      },
      "message": "gs_utils.upload_file(): upload with temp name, verify contents, then rename\n\nI want to do this before we start uploading multiple files in parallel, so we will be protected against any failures.\n\nBUG\u003dskia:2780\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/419773003\n"
    },
    {
      "commit": "0625d3af8dadbfe29f2596cf8301b84437e5690c",
      "tree": "63e6c6256b0d84629ce5a19430fdf1cb53abe179",
      "parents": [
        "6d096df9431e61c163796c43adbf31a0c911a843"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Fri Jul 25 11:19:50 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Fri Jul 25 11:19:50 2014 -0400"
      },
      "message": "gs_utils: when uploading a whole dir using IF_NEW, check for existence of multiple files in a single operation\n\nBUG\u003dskia:2778\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/420553002\n"
    },
    {
      "commit": "6d096df9431e61c163796c43adbf31a0c911a843",
      "tree": "0b41626526eb5c81cd1b0e28bbb5a7727c452310",
      "parents": [
        "c0a68c73bd8cee924392be6a98f8a5169d38e2da"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Thu Jul 24 11:50:23 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Thu Jul 24 11:50:23 2014 -0400"
      },
      "message": "little fix: report bucket name properly in logs\n\nTBR\u003dborenet\n\nReview URL: https://codereview.chromium.org/416143002\n"
    },
    {
      "commit": "c0a68c73bd8cee924392be6a98f8a5169d38e2da",
      "tree": "91e8ece4624b113dfda069e61b318187f04dfb01",
      "parents": [
        "122ea7c63a7f6b157aa8045bb7bc70617ac2626c"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Thu Jul 24 10:49:57 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Thu Jul 24 10:49:57 2014 -0400"
      },
      "message": "GSUtils: allow uploads to happen ALWAYS, IF_NEW, or IF_MODIFIED\n\nThis will allow us to upload image files most efficiently.\n\nBUG\u003dskia:1942\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/418503005\n"
    },
    {
      "commit": "122ea7c63a7f6b157aa8045bb7bc70617ac2626c",
      "tree": "eb6b0b35979cbc4d85d50dc8a36df704b0ae77fd",
      "parents": [
        "ae3f1fb92d4fa821f38781beebac4d8bd0ec9961"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Wed Jul 23 11:02:42 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Wed Jul 23 11:02:42 2014 -0400"
      },
      "message": "add only_if_modified param to GSUtils.upload_file()\n\nNeeded so that the file history within gs://chromium-skia-skp-summaries will indicate when results changed.\n\nBUG\u003dskia:1942\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/411723002\n"
    },
    {
      "commit": "ae3f1fb92d4fa821f38781beebac4d8bd0ec9961",
      "tree": "e855bcc78ffb43a78c032fdcb547b37cb88a4693",
      "parents": [
        "15e9438a3e57ae078db7a76266e9cf1237ac0d40"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Tue Jul 22 15:07:43 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Tue Jul 22 15:07:43 2014 -0400"
      },
      "message": "make gs_utils_manualtest use a test-only bucket for safety\n\nTBR\u003dborenet\n\nReview URL: https://codereview.chromium.org/412553004\n"
    },
    {
      "commit": "15e9438a3e57ae078db7a76266e9cf1237ac0d40",
      "tree": "fd48d99671b9c01f2bab3b6fc8cd100f15393846",
      "parents": [
        "2e2cd80631489a47b24ac0747922b837fc0c81ef"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Tue Jul 22 13:01:06 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Tue Jul 22 13:01:06 2014 -0400"
      },
      "message": "allow upload_dir_contents() to write into a bucket\u0027s root dir\n\nR\u003drmistry@google.com\n\nReview URL: https://codereview.chromium.org/414453002\n"
    },
    {
      "commit": "2e2cd80631489a47b24ac0747922b837fc0c81ef",
      "tree": "14565301f21fa94b377a3f22845216e6af7f0336",
      "parents": [
        "fb32c5fbf4df5f7b3d2ae17cda411f5bd488d2ee"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 21 14:03:42 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 21 14:03:42 2014 -0400"
      },
      "message": "use better mechanism for enums in gs_utils.py\n\nThis will allow more flexible subclassing of the GSUtils class: subclasses will automatically inherit the various constants.\n\nThat more flexible subclassing will allow us to easily wrap common\u0027s gs_utils.py with an extended version within the buildbot repo, as discussed in https://codereview.chromium.org/405653004/diff/20001/slave/skia_slave_scripts/build_step.py#newcode60\n\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/405083005\n"
    },
    {
      "commit": "fb32c5fbf4df5f7b3d2ae17cda411f5bd488d2ee",
      "tree": "664f424e35b9259098e085b49aa187ef729239ed",
      "parents": [
        "006b9d40ba0154935fae4ecc4f1b242b8751367d"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Fri Jul 18 16:41:38 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Fri Jul 18 16:41:38 2014 -0400"
      },
      "message": "fix fine_grained_acl_list in upload_dir_contents(), and add unittest\n\nTBR\u003drmistry\n\nReview URL: https://codereview.chromium.org/408523004\n"
    },
    {
      "commit": "006b9d40ba0154935fae4ecc4f1b242b8751367d",
      "tree": "f7cbad7bde63c043f0383110adceebbf2ff3c5a6",
      "parents": [
        "ac762a93094a8a45e2793820ababd280766eef2a"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Fri Jul 18 13:41:00 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Fri Jul 18 13:41:00 2014 -0400"
      },
      "message": "add upload_dir_contents() and download_dir_contents() to gs_utils.py\n(with the ability to set fine-grained ACLs as we need when uploading SKPs)\n\nBUG\u003dskia:2618,skia:1942\nR\u003drmistry@google.com\n\nReview URL: https://codereview.chromium.org/407533002\n"
    },
    {
      "commit": "ac762a93094a8a45e2793820ababd280766eef2a",
      "tree": "2da1dec22900be23bad7dfccc3afebe54db9247a",
      "parents": [
        "773df58378a4b8a78c378485443952de35fb13a5"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Wed Jul 16 10:02:28 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Wed Jul 16 10:02:28 2014 -0400"
      },
      "message": "make gs_utils.py work without a .boto credential file\n\nThis is needed so developers without a .boto file can still run rebaseline_server.\n\nBUG\u003dskia:2618\nR\u003djcgregorio@google.com, rmistry@google.com\n\nReview URL: https://codereview.chromium.org/390133002\n"
    },
    {
      "commit": "773df58378a4b8a78c378485443952de35fb13a5",
      "tree": "6fb318b54597e53d9b8c47fcc04bd385efee4269",
      "parents": [
        "b38d520a4fefa28ede29ab24b37e8d90a8741b17"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Wed Jul 16 08:56:27 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Wed Jul 16 08:56:27 2014 -0400"
      },
      "message": "add set_acl() and get_acl() to gs_utils.py\n\nAs needed for uploading SKPs and their renderings (see bug 2732)\n\nBUG\u003dskia:2732\nR\u003drmistry@google.com\n\nReview URL: https://codereview.chromium.org/390193002\n"
    },
    {
      "commit": "b38d520a4fefa28ede29ab24b37e8d90a8741b17",
      "tree": "96cac31aa4ff98fc400f4ca3ba5a906927ec4ccf",
      "parents": [
        "a6986a0d307cacfd0fdfede5766c051536a52825"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 14 13:56:24 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 14 13:56:24 2014 -0400"
      },
      "message": "make gs_utils.py class-based, so credentials file can be read just once\n\nBUG\u003dskia:2618\nR\u003drmistry@google.com\n\nReview URL: https://codereview.chromium.org/385013004\n"
    },
    {
      "commit": "a6986a0d307cacfd0fdfede5766c051536a52825",
      "tree": "890e0e5c7a254e51376ed3ab4f0bf86bb725791b",
      "parents": [
        "0ad95c13aaab3bbb89a97952b83c915d470681df"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 14 09:29:25 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Mon Jul 14 09:29:25 2014 -0400"
      },
      "message": "gs_utils.py: use boto instead of google-api-python-client library so we can use .boto file credentials\n\nAlso adds these public functions:\n- delete_file(bucket, path)\n- upload_file(source_path, dest_bucket, dest_path)\nand a self-test that exercises all functions.\n\nBUG\u003dskia:2732\nR\u003djcgregorio@google.com\n\nReview URL: https://codereview.chromium.org/387233003\n"
    },
    {
      "commit": "0ad95c13aaab3bbb89a97952b83c915d470681df",
      "tree": "3025d7679a251223add1d93f93f94bb9cac1943f",
      "parents": [
        "6f68dfad740e17a9d56ff9f2ecc31797d9daeddb"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Thu Jul 10 15:45:13 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Thu Jul 10 15:45:13 2014 -0400"
      },
      "message": "add url_utils to common repo from skia repo\n\nOnce gs_utils.py is moved into common, these would be the only files left in https://skia.googlesource.com/skia/+/master/tools/pyutils/ .  So let\u0027s just move them all...\n\nBUG\u003dskia:2682\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/382933002\n"
    },
    {
      "commit": "6f68dfad740e17a9d56ff9f2ecc31797d9daeddb",
      "tree": "22df0b951cdc1f30955a8e57d8e836c5c47c56f2",
      "parents": [
        "767bf85299d7a822796b57252e7de1e84e6b2e61"
      ],
      "author": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Thu Jul 10 14:25:33 2014 -0400"
      },
      "committer": {
        "name": "Elliot Poger",
        "email": "epoger@google.com",
        "time": "Thu Jul 10 14:25:33 2014 -0400"
      },
      "message": "copy gs_utils.py from skia repo into common repo\n\nBUG\u003dskia:2618\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/385673002\n"
    },
    {
      "commit": "767bf85299d7a822796b57252e7de1e84e6b2e61",
      "tree": "1ec065d6d92050668e2578298f6900b78a3251f8",
      "parents": [
        "a50df31f67699199366c04d07b318cde515551bd"
      ],
      "author": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Tue Jun 24 14:20:58 2014 -0400"
      },
      "committer": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Tue Jun 24 14:20:58 2014 -0400"
      },
      "message": "Update common.py.utils to be used in Skia repo\n\nBUG\u003dskia:2682\nR\u003drmistry@google.com\n\nReview URL: https://codereview.chromium.org/346743008\n"
    },
    {
      "commit": "a50df31f67699199366c04d07b318cde515551bd",
      "tree": "147fdff81e927cee85b0d217a874c578b79bc377",
      "parents": [
        "c92e6d8058240b0804b28fdc4f78261b7133431d"
      ],
      "author": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Mon Jun 23 10:16:49 2014 -0400"
      },
      "committer": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Mon Jun 23 10:16:49 2014 -0400"
      },
      "message": "Add verbose option to misc.ChDir\n\nBUG\u003dskia:\nR\u003drmistry@google.com\n\nReview URL: https://codereview.chromium.org/349973004\n"
    },
    {
      "commit": "c92e6d8058240b0804b28fdc4f78261b7133431d",
      "tree": "6e0e223b2540fef49575579997e4f8aaffa6d08f",
      "parents": [
        "1946978392c7378ea858cbf98e51bdf2ef1bf678"
      ],
      "author": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Fri Jun 20 13:05:59 2014 -0400"
      },
      "committer": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Fri Jun 20 13:05:59 2014 -0400"
      },
      "message": "Add lots of utils, PRESUBMIT.py\n\nBUG\u003dskia:2682\nR\u003djcgregorio@google.com, rmistry@google.com\n\nReview URL: https://codereview.chromium.org/341193004\n"
    },
    {
      "commit": "1946978392c7378ea858cbf98e51bdf2ef1bf678",
      "tree": "a16f91d912f7423bf1fd2ab98cb4d83b67015513",
      "parents": [
        "9bda9ca2f55b584189b83457d1cfea7805713f64"
      ],
      "author": {
        "name": "Joe Gregorio",
        "email": "jcgregorio@google.com",
        "time": "Fri Jun 20 10:35:40 2014 -0400"
      },
      "committer": {
        "name": "Joe Gregorio",
        "email": "jcgregorio@google.com",
        "time": "Fri Jun 20 10:35:40 2014 -0400"
      },
      "message": "Expand README to explain directory structure and how this repo is used.\n\nBUG\u003dskia:\nR\u003dborenet@google.com\n\nReview URL: https://codereview.chromium.org/344213002\n"
    },
    {
      "commit": "9bda9ca2f55b584189b83457d1cfea7805713f64",
      "tree": "751db9fa67f07e84381960aef5550dca2b2e466d",
      "parents": [],
      "author": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Fri Jun 20 10:11:51 2014 -0400"
      },
      "committer": {
        "name": "Eric Boren",
        "email": "borenet@google.com",
        "time": "Fri Jun 20 10:11:51 2014 -0400"
      },
      "message": "Initial commit - Add README and codereview.settings\n"
    }
  ]
}
