)]}'
{
  "log": [
    {
      "commit": "04bbf98e069c35282ab904c154356f3f9755da97",
      "tree": "dd4d30ddb860ca61789987f32aceeb07edf40bb1",
      "parents": [
        "f68f98eeb6374a865c8f40225eca7ca0cea46cad"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Nov 04 13:18:41 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Nov 04 14:23:07 2019 +0900"
      },
      "message": "-l option soong_zip can accept a file having space separated list\n\n-l option of soong_zip is used to specify the list of input files that\nshould be zipped. However, it only accepted newline-separated list in the\nfile. This prevented us from using a rspfile as paths in rspfile are\nspace-separated in a single line. Fixing the problem by splitting the\nfile content by any unicode whitespace character including newline and\nspace.\n\nTest: zip_test\nChange-Id: Iba572109e30c01540eacf20bd2794ba60c870fa3\n"
    },
    {
      "commit": "9cb51dbc0b4fe0e60ec604f3fa1440014c669e13",
      "tree": "a789d3a54ffd0dd5a26df021b0d4939de5833d61",
      "parents": [
        "5d7409ba0f13c2ed554035bba0dd19282b52a9a9"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 14:12:41 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 18 13:33:20 2019 -0700"
      },
      "message": "Support moving sources in srcjars in soong_zip\n\nAdd a -srcjar argument to soong_zip that causes it to read the\npackage statement of each .java file and use that to place the\nsource file at a path that matches the package.\n\nTest: jar_test.go, zip_test.go\nChange-Id: I36017e42445ba3b0a82a10a8d81e8ac0cca096f2\n"
    },
    {
      "commit": "7f276c6b772a1077dbe7c335830b1fdeed1d1919",
      "tree": "512361bfccd350515fb23f3a31c871326d55bbd4",
      "parents": [
        "36ab727c824f6e1a375a22ffe1a7b36c3620fca0"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sat Apr 20 21:44:18 2019 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sat Apr 20 21:45:51 2019 -0700"
      },
      "message": "Fix soong_zip --help\n\nIt was not printing out the flag descriptions because it was using the\ndefault FlagSet instead of the custom FlagSet when calling\nPrintDefaults.\n\nTest: soong_zip --help\nChange-Id: I8a5705f8701ce0c05dde144b9a14962faa384e65\n"
    },
    {
      "commit": "edc934ccc935e96ec83dc9932e03d4b23578a155",
      "tree": "ecd68c6f8cd5075c674eeb485c10254b5da419f8",
      "parents": [
        "9e4c07a92f1c39a7e6d87f7d9451e6810ec87bfb"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 27 12:41:25 2018 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 27 12:41:25 2018 -0800"
      },
      "message": "Fix soong_zip printing warnings with --ignore_missing_files\n\nWe weren\u0027t defaulting args.Stderr to os.Stderr, so we had been calling\nfmt.Fprintln with `nil`.\n\nTest: soong_zip --ignore_missing_files -C test/ -f abc -o test.zip\nChange-Id: I0421f4bfb07fa36edf86c68ffc847995777c8221\n"
    },
    {
      "commit": "4be8f9e2a3e857050f4d6d9b3d728492828445bf",
      "tree": "02d5d87c95a304bfeb58f4f436d7fa4043f06763",
      "parents": [
        "09f11056f876a9f705a53fd6f122aa7575e0b51b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 28 15:16:48 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 28 16:14:52 2018 -0700"
      },
      "message": "soong_zip: add --ignore_missing_files flag\n\nsoong_zip builds a list of files to zip early and then starts\nzipping them all.  If a directory being zipped is concurrently\nmodified, a file that existed when soong_zip started may not\nstill exist.  Add a flag that continues when an expected file\ndoes not exist.  Print a warning, since this should be rare\nin normal usages but is a sign of a problem if it happens\nregularly.\n\nTest: zip_test.go\nTest: m checkbuild\nTest: m platform\nChange-Id: I78426fe66fded8528ddd436c0f71a7442183cfeb\n"
    },
    {
      "commit": "09f11056f876a9f705a53fd6f122aa7575e0b51b",
      "tree": "d8940136685b56e986ca65bb15287228885b00fe",
      "parents": [
        "1d98ee23a322a997d28ef5dd07412db4b9564d2a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 21 15:12:39 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 28 14:01:33 2018 -0700"
      },
      "message": "Add a --symlinks argument to soong_zip\n\nAdd a --symlinks argument that defaults to true to soong_zip.\nPassing --symlinks\u003dfalse will cause it to follow symlinks instead\nof storing them in the zip file.\n\nRelands I4deb98daa9d4ba9f94e3d7670c117fe00381d2ba with tests.\n\nBug: 112843624\nTest: glob_test.go\nTest: zip_test.go\nTest: m checkbuild\nChange-Id: I0eff9c1f2dba79e873fda381ff585df55d5aaaad\n"
    },
    {
      "commit": "1d98ee23a322a997d28ef5dd07412db4b9564d2a",
      "tree": "6c7de5a9a7da78ae634fd693768912bb5b2cd8fc",
      "parents": [
        "05518bc13b3cd31e6cb7158a41aa124b224c3bc4"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 18 17:05:15 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 28 14:01:29 2018 -0700"
      },
      "message": "soong_zip: support globs in -f and -D arguments\n\n-f and -D arguments can now take globs in the Soong format.\n\nAlso update the use of soong_zip that jars resources to escape the\nglobs in the arguments, and then shell-escape them when writing to\nthe rsp file so the glob escape are not intepreted by ReadRespFile.\n\nAlso remove an unused argument to the buildAAR rule that could\nhave contained values that needed escaping.\n\nRelands I7f20bb169dc01f952d2a7681ec6ee9c05737ed37 with a fix for\ntrailing \"\\n\" in list files, which causes a call to pathtools.Glob(\"\")\nthat returns \"./\", which could then get incorrectly translated to\n\"../../../\" in the zip file. Also adds tests.\n\nTest: m checkbuild\nTest: zip_test.go\nChange-Id: I54b8eef9231875e6042a32c9f8bcc5c2f779922a\n"
    },
    {
      "commit": "05518bc13b3cd31e6cb7158a41aa124b224c3bc4",
      "tree": "65dbf6c09827df7f23d973ef6419fea543580d52",
      "parents": [
        "b051ab5cb54f8802807680a8fb24092b445a3ddb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 27 15:06:19 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 28 13:56:06 2018 -0700"
      },
      "message": "soong_zip: Add tests\n\nAdd test that cover basic command line usage of soong_zip.  -D\nis not covered yet as the implementation will be replaced with\none that is also more easily testable in the next patch.\n\nBug: 116751500\nTest: zip_test.go\nChange-Id: I5a1bcee74ebc9cb3cf332c36f89bc12c0e807ad2\n"
    },
    {
      "commit": "b051ab5cb54f8802807680a8fb24092b445a3ddb",
      "tree": "de11d0cb17d8addfdebe00b93b1eef840ab6c01b",
      "parents": [
        "fe945b4401a839cc7b177d4d745ab64c8347d93a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 27 15:04:24 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 28 13:56:06 2018 -0700"
      },
      "message": "soong_zip: move profiling from zip library to soong_zip\n\nProfiling is only used by the standalone soong_zip command,\nmove it out of the shared zip library.\n\nBug: 116751500\nTest: m checkbuild\nChange-Id: I443c34fb39cf8955e163a7720d6f7ed585e4172a\n"
    },
    {
      "commit": "fe945b4401a839cc7b177d4d745ab64c8347d93a",
      "tree": "8d32f573d679c720cc4980c3c5c972104a796c0f",
      "parents": [
        "e9b16159d54bd4063bf317bfa19cf2463df27d46"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 27 15:00:07 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 28 13:56:06 2018 -0700"
      },
      "message": "soong_zip: move args parsing into zip.FileArgsBuilder\n\nAdd a builder that can construct []FileArg for zip.Run to use.\nThis will help writing tests that cover the command line parsing.\n\nTest: later cl\nBug: 116751500\nChange-Id: I15b5144f5094ab154f13de9c8a84b82db2da4e67\n"
    },
    {
      "commit": "7f33b81ef62d3a7e8537ae7f8bdc29439581d3fb",
      "tree": "9987957d450b56ea459fe024dd74d74668c60783",
      "parents": [
        "c7feeff1e91db814a38701fe89e473f0c0dda535"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 26 21:36:22 2018 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 26 21:38:07 2018 +0000"
      },
      "message": "Revert \"soong_zip: support globs in -f and -D arguments\"\n\nThis reverts commit 08e28abc4ecd10a0e0ab2dcb683560f9c6331e1b.\n\nReason for revert: inserts extra ../../ entries in the zip file.\n\nBug: 116737386\nChange-Id: I048f94889a66fe618058e37a5827d0cf6b1a6b68\n"
    },
    {
      "commit": "c7feeff1e91db814a38701fe89e473f0c0dda535",
      "tree": "1c001d1aa0e8a5c60c8ce67f842ee8fc448b7d4f",
      "parents": [
        "d59dab94c4897f504ca7a3a2b227ca6b000bfaa4"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 26 21:36:44 2018 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 26 21:36:44 2018 +0000"
      },
      "message": "Revert \"Add a --symlinks argument to soong_zip\"\n\nThis reverts commit d59dab94c4897f504ca7a3a2b227ca6b000bfaa4.\n\nBug: 112843624\nChange-Id: I3d0f1b61e899b162e65c18662f9d27dd794a9a30\n"
    },
    {
      "commit": "d59dab94c4897f504ca7a3a2b227ca6b000bfaa4",
      "tree": "82ff63ac48d1de169cdbe5bf35a45dd53a8a4088",
      "parents": [
        "08e28abc4ecd10a0e0ab2dcb683560f9c6331e1b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 21 15:12:39 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 21 16:08:16 2018 -0700"
      },
      "message": "Add a --symlinks argument to soong_zip\n\nAdd a --symlinks argument that defaults to true to soong_zip.\nPassing --symlinks\u003dfalse will cause it to follow symlinks instead\nof storing them in the zip file.\n\nBug: 112843624\nTest: glob_test.go\nTest: m checkbuild\nChange-Id: I4deb98daa9d4ba9f94e3d7670c117fe00381d2ba\n"
    },
    {
      "commit": "08e28abc4ecd10a0e0ab2dcb683560f9c6331e1b",
      "tree": "1c001d1aa0e8a5c60c8ce67f842ee8fc448b7d4f",
      "parents": [
        "3f4d116496ac1dd6a844f8706fb547126f8211ef"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 18 17:05:15 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 21 16:08:16 2018 -0700"
      },
      "message": "soong_zip: support globs in -f and -D arguments\n\n-f and -D arguments can now take globs in the Soong format.\n\nAlso update the use of soong_zip that jars resources to escape the\nglobs in the arguments, and then shell-escape them when writing to\nthe rsp file so the glob escape are not intepreted by ReadRespFile.\n\nAlso remove an unused argument to the buildAAR rule that could\nhave contained values that needed escaping.\n\nTest: m checkbuild\nChange-Id: I7f20bb169dc01f952d2a7681ec6ee9c05737ed37\n"
    },
    {
      "commit": "b7c6911dd1e90a36af6ff6b6cd5c1e8f62fd44ae",
      "tree": "a197eb6de72f1e1a939951584273468c72a8cdae",
      "parents": [
        "df3f4c81f3a3ae1a5a39cc07cca7fed0d71b51ee"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 18 16:51:43 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 19 15:40:09 2018 -0700"
      },
      "message": "soong_zip: add support for -j to junk paths\n\nWhen -j is specified ignore the path to the source file and just\nzip it with its filename.  -j overrides -C, and -C overrides -j,\nso -j -f path1 -C dir -f path2 will junk the path for path1, but\ntreat path2 as relative to dir.\n\nRemove the filepath.Clean for the FileArgs, it would convert \"\"\nto \".\" sometimes, and everything gets cleaned in zip already for\nthe non-command-line use cases.\n\nTest: m checkbuild\nChange-Id: I7d90572c622ee0c6f35967ff31d067b5312c72eb\n"
    },
    {
      "commit": "df3f4c81f3a3ae1a5a39cc07cca7fed0d71b51ee",
      "tree": "3968cb26e146ec028752608ba88e0e6f6d392561",
      "parents": [
        "cfbea98a57a8d8fd314a3e2ebc08eb53eab328ef"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 18 16:31:09 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 18 16:31:09 2018 -0700"
      },
      "message": "soong_zip: move the -j flag to -parallel\n\nThe -j flag is going to be repurposed to match --junk-paths in zip.\n\nTest: m checkbuild\nChange-Id: Id3809d6e5e3da375531269f2372eefc565091cc2\n"
    },
    {
      "commit": "d3216291554ba3613042535f1e6918d3b50fa1bf",
      "tree": "779c68468e355dd238beab7303fcdc84a77ef30a",
      "parents": [
        "ec06db2709040ec56b55e272fa541b35b9d45fdf"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 14 15:06:31 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 14 20:20:13 2018 -0700"
      },
      "message": "Don\u0027t attempt to deflate when compression level is 0\n\nsoong_zip -L 0 would attempt to compress with deflate at compression\nlevel 0, then pick store instead of deflate because the overhead of\ndeflate would always make it larger than the uncompressed size.  Just\nuse store instead.\n\nTest: m checkbuild\nChange-Id: I69610bd755b55d97a47b8c6cf4fbbee3b5632db6\n"
    },
    {
      "commit": "297d9bcedaa14670a84c3dc4d4bf90b9ea033bea",
      "tree": "a0d8d32d8cf724bf21c5a5f80db68eae6716c529",
      "parents": [
        "87d1af0134ab9d818b892294b551de3a5d6ad332"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 22 16:37:47 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 22 23:16:16 2018 -0700"
      },
      "message": "soong_zip: set local header crc and size for symlinks\n\nGetting a crc and size into the local header requires setting it\nbefore writing the payload, or using a streaming data header after\nthe payload with the crc and size.  Stored (uncompressed) entries\nare not allowed to use a streaming data header.\n\nSymlinks are always stored uncompressed, so set the crc and size\nin the file header before writing the payload.\n\nAlso set the mode to 0777 to match the behavior of zip.\n\nThis relands I66c5d41f0a5b23b828d6a03a3790afedc5a97625 with fixes\nfor the size and mode.\n\nTest: m checkbuild\nTest: zipdetails on zip with symlink created with soong_zip has same\n      crc in local header and central header.\nTest: Compare zipdetails output of zip containing symlink created\n      by soong_zip and by zip --symlinks -X.\nBug: 110716403\nChange-Id: Iec0bc9056a0d9cdab76f015844aca9c711e72e5b\n"
    },
    {
      "commit": "5aff065626d13eb0699087f83bf28873978546ef",
      "tree": "8f4a9c5ae8cfe3db923077d703c527290eb1004c",
      "parents": [
        "b88c4dfb8794c0618067c127794445e8fd821c33"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Jun 23 06:14:01 2018 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Jun 23 06:14:01 2018 +0000"
      },
      "message": "Revert \"soong_zip: set local header crc for symlinks\"\n\nThis reverts commit b88c4dfb8794c0618067c127794445e8fd821c33.\n\nThis made it worse, now that the local header crc matches the global\nheader, unzip will attempt to unzip the symlink.  However, the local\nheader size is still incorrect, so it produces an empty file instead\nof a symlink.\n\nBug: 110716403\nChange-Id: Ifd9aabc04d180b7ead4aec8566c151206b6b7c57\n"
    },
    {
      "commit": "b88c4dfb8794c0618067c127794445e8fd821c33",
      "tree": "4f0adda92a8c7a282cd455a33ba774487b4a5c32",
      "parents": [
        "5c733856bd8e16bbd739abc388fa8ac43f073c92"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 22 16:37:47 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Jun 23 03:23:19 2018 +0000"
      },
      "message": "soong_zip: set local header crc for symlinks\n\nGetting a crc into the local header requires setting it before writing\nthe payload, or using a streaming data header after the payload with\nthe crc.  Stored (uncompressed) entries are not allowed to use a\nstreaming data header.\n\nSymlinks are always stored uncompressed, so set the crc in the file\nheader before writing the payload.\n\nTest: m checkbuild\nTest: zipdetails on zip with symlink created with soong_zip has same\n      crc in local header and central header.\nBug: 110716403\nChange-Id: I66c5d41f0a5b23b828d6a03a3790afedc5a97625\n"
    },
    {
      "commit": "674dd932d8a60877b71147bd426d7b88a613f4ad",
      "tree": "41e163d147e71c28de9076415580dba1a99d9140",
      "parents": [
        "1d29875829712eb37d0a1808716c94126018e52d"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Fri Jan 26 18:30:36 2018 -0800"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Tue Feb 13 15:13:01 2018 -0800"
      },
      "message": "Add Respfile support for soong_zip.\n\nSometime the size of our command line passed to soong_zip go program\nexceeds the cmdline size limit. So add an RespFile support with \"@\" special\ncharacter prefix.\n\nThe args in the cmdline will be considered together with the\nargs in RespFile during soong_zip running.\n\nTest: real tests in my local machine, and compare the\nres/libphonenumber.jar before and after changes.\n\n./cmd -o test.zip \u0027\"\"\u0027-C -\u003e [./cmd,-o,test.zip,\"\"-C]\n./cmd -o test.zip \u0027-C -f -\u003e [./cmd,-o,test.zip,-C -f]\n./cmd -o test.zip \u0027\\\"\u0027-C -f -\u003e [./cmd,-o,test.zip,\\\"-C -f]\n./cmd -o test.zip \u0027\\\\\u0027-C -f -\u003e [./cmd,-o,test.zip,\\\\-C -f]\n./cmd -o test.zip \u0027\\a\u0027-C -f -\u003e [./cmd,-o,test.zip,\\a-C -f]\n\n./cmd -o test.zip \\\u0027-C -\u003e [./cmd,-o,test.zip,\u0027-C]\n./cmd -o test.zip \\\\-C -\u003e [./cmd,-o,test.zip,\\-C]\n./cmd -o test.zip \\\"-C -\u003e [./cmd,-o,test.zip,\"-C]\n\n./cmd -o test.zip \"\u0027\"-C -\u003e [./cmd,-o,test.zip,\u0027-C]\n./cmd -o test.zip \"\\\\\"-C -f -\u003e [./cmd,-o,test.zip,\\a-C -f]\n./cmd -o test.zip \"\\\"\"-C -f -\u003e [./cmd,-o,test.zip,\"a-C -f]\n\nBug: b/72484223\n\nChange-Id: I83c3630b70c8396c8e8a3f266244d868d754c4e8\n"
    },
    {
      "commit": "f83c150269c933ab6b384cf5e28cbf021a6ba9e1",
      "tree": "4dd3bfdc537d90f340badafce5233327ee7480b3",
      "parents": [
        "5e6cfbead9f4a24b5807e35a9783a8630ede0d35"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Nov 10 13:11:02 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Nov 13 15:11:08 2017 -0800"
      },
      "message": "Add --write_if_changed argument to soong_zip\n\nSimplify making restat rules by adding a --write_if_changed argument\nto soong_zip that generates the output file into memory and then\ncompares it to the version on disk before writing it out.\n\nTest: builds\nChange-Id: I5059a1e3a11e79b0ca538b3b829bc7479c126ce6\n"
    },
    {
      "commit": "11b5c51d4e03369420b587dfdba2ee09be3afa33",
      "tree": "078f8bb058000706cfa273701750b66763714cdd",
      "parents": [
        "e87ae20e2593015c7d30359311a64ef96b941680"
      ],
      "author": {
        "name": "Jeff Gaston",
        "email": "jeffrygaston@google.com",
        "time": "Thu Oct 12 12:19:14 2017 -0700"
      },
      "committer": {
        "name": "Jeff Gaston",
        "email": "jeffrygaston@google.com",
        "time": "Thu Oct 19 18:18:04 2017 +0000"
      },
      "message": "split soong_zip into a library and a binary\n\nto make it faster/easier to invoke from other Go programs\n(such as multiproduct_kati)\n\nBug: 67478260\nTest: m -j\nChange-Id: Idd2671a44290550197c88f53dd11a6dd39c85cc5\n"
    }
  ]
}
