)]}'
{
  "log": [
    {
      "commit": "5ead1ada782b18c7b38a3c2798a40a334801c7b6",
      "tree": "1023cc294297b9e803716825e31da533329e9c37",
      "parents": [
        "758e6fd0c473d054f13e3553a84cdbff57a5faed"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Fri Dec 02 13:09:20 2016 -0800"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Mon Dec 05 22:17:37 2016 +0000"
      },
      "message": "Brotli: update Brotli to 222564a.\n\nThis update includes the following changes:\n\n222564a Fix encoder (#472)\n6a4bf43 Fix build with -Wconditional-uninitialized. (#471)\n396309a Update (#470)\n\nChange-Id: I4a28195dffe8878f90f27a405adf4cdbe7c481d2\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/2680\nReviewed-by: Gurgen Hrachyan \u003cgugo@google.com\u003e\n"
    },
    {
      "commit": "758e6fd0c473d054f13e3553a84cdbff57a5faed",
      "tree": "93abeaf3d208fdf1c3cd75d94c489651f6f4cf7e",
      "parents": [
        "4af174168a64fbabd2280979e2cd174e8b4ae018"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Nov 29 19:15:18 2016 -0800"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Fri Dec 02 00:04:43 2016 +0000"
      },
      "message": "Brotli: bundle Brotli library.\n\nChange-Id: I4e2e5d5625616cd6f2abb1774fa966b825cb0eca\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/2640\nReviewed-by: Gurgen Hrachyan \u003cgugo@google.com\u003e\n"
    },
    {
      "commit": "4af174168a64fbabd2280979e2cd174e8b4ae018",
      "tree": "62adc3e2db6e6b8c8fa68224a6f6e11fc03631ab",
      "parents": [
        "baebc4504ec93d79025108cb8af3c894956e562f"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Sep 08 10:25:22 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Sep 08 21:52:12 2016 +0000"
      },
      "message": "Brotli: fix build after recent changes in libbrotli.\n\nHeaders are now in \u003cbrotli/...\u003e and not \u003cbrotli/enc/...\u003e.\n\nChange-Id: Id1d70792df5b21b3c5ba6d66eb942eece725df7c\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/2481\nReviewed-by: Lizan Zhou \u003czlizan@google.com\u003e\n"
    },
    {
      "commit": "baebc4504ec93d79025108cb8af3c894956e562f",
      "tree": "ad0062bf03e8b036750cb95528516a5861fc4846",
      "parents": [
        "01a2a6555f436f3b7ae5191d423b23a95f7d0169"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Sep 08 10:25:05 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Sep 08 21:51:56 2016 +0000"
      },
      "message": "Brotli: link against libm.\n\nChange-Id: I19da397875e0aecd7fad15699411df1bb18da6b0\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/2480\nReviewed-by: Lizan Zhou \u003czlizan@google.com\u003e\n"
    },
    {
      "commit": "01a2a6555f436f3b7ae5191d423b23a95f7d0169",
      "tree": "987c39ac3b17e080297e751940633865a1af68d8",
      "parents": [
        "65bbbaf19b71130bf4dfc28813766e1f88433c4c"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Wed Aug 24 04:37:06 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Sat Aug 27 01:18:21 2016 +0000"
      },
      "message": "Bazel: migrate to self-contained workspace.\n\nChange-Id: I19b14578da8bc7f207aadd9940499e4c147c97e4\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/2402\nReviewed-by: Gurgen Hrachyan \u003cgugo@google.com\u003e\n"
    },
    {
      "commit": "65bbbaf19b71130bf4dfc28813766e1f88433c4c",
      "tree": "fbd1565dc53c25476320bfa8a273f6987a3a3a07",
      "parents": [
        "b6c7170e40af14b6fc02000e7f3327cd91903761"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Jun 16 03:43:31 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Fri Jun 17 03:22:27 2016 +0000"
      },
      "message": "Brotli: style.\n\nChange-Id: Id399efe2e8a3af0c1bb7dc4f5463639be36f99ac\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1234\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "b6c7170e40af14b6fc02000e7f3327cd91903761",
      "tree": "5c5a270d87da38f061729def24af0c2ad5b84901",
      "parents": [
        "98801c06690ade33d10a322616163acdb60f2e46"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Jun 16 03:42:42 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Fri Jun 17 03:22:13 2016 +0000"
      },
      "message": "Brotli: use NGINX\u0027s memory pool for Brotli\u0027s memory management.\n\nChange-Id: I80135c49b116549baf9692ff2cc4927a94c2e990\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1233\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "98801c06690ade33d10a322616163acdb60f2e46",
      "tree": "f49de116403cbc62476411d23b758650c68e6186",
      "parents": [
        "fe039f44f0373fb0765aa7af44b44ec8bd99201c"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Jun 16 03:41:13 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Fri Jun 17 03:21:49 2016 +0000"
      },
      "message": "Brotli: migrate to C API.\n\nChange-Id: Ic1884b068bcb87d85396d22ee1e5a7dd2e3d39d9\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1232\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "fe039f44f0373fb0765aa7af44b44ec8bd99201c",
      "tree": "2f7412f14940316726bc7292a7255d6b7bc2f308",
      "parents": [
        "18d98d31faf4a7a222934a9051b20821f736a179"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Wed Jun 15 21:59:11 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Fri Jun 17 03:21:06 2016 +0000"
      },
      "message": "Brotli: send special buffers down the pipe.\n\nPreviously, special \"flush\" buffer was discarded if there was nothing\nto flush from Brotli filter, which resulted in HTTP headers not being\nflushed to the client in case of upstream read timeout.\n\nThis should have been included in 67d077a.\n\nChange-Id: I9581a7bb6abeed12e5be7e0737c8899f97de4d20\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1230\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "18d98d31faf4a7a222934a9051b20821f736a179",
      "tree": "809c196466b7e7c0dbf931f00963a230de04fa7a",
      "parents": [
        "67d077a03baff200e222cc0c359f9ad2959c3884"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Wed May 11 11:31:48 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Wed May 25 19:15:47 2016 +0000"
      },
      "message": "Brotli: prefer new C++ API header (compressor.h).\n\nNo functional changes.\n\nChange-Id: Ie88775d3451483ac65d0d5d9d61b896b48fe6a0e\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1171\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "67d077a03baff200e222cc0c359f9ad2959c3884",
      "tree": "e97e9fefaa27f3273890afc677ce5746113b9923",
      "parents": [
        "58f1d6451c615f75a94d5c62edc0c731817c786b"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Mar 17 15:53:27 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Apr 19 22:59:24 2016 +0000"
      },
      "message": "Brotli: fix handling of upstream read timeout.\n\nOutput filters receive only special buffer with \"flush\" flag set\nin case when upstream sent headers, but timed out before sending\nrequest body.\n\nPreviously, this case wasn\u0027t handled correctly, because of the wrong\nassumption that Brotli compressor always produces output when called\nwith \"flush\" parameter, which isn\u0027t the case if there is no input to\ncompress.\n\nReported by Tomas Kvasnicka on GitHub (issue #20).\n\nChange-Id: I96dacc625c9c2509276800d7ac80a2d622a95463\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1110\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "58f1d6451c615f75a94d5c62edc0c731817c786b",
      "tree": "f44e471c2f270012c56770800c4f390c8f2989ec",
      "parents": [
        "cacb0b703f87d6decba2b40fd5b6408919a24fa9"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Apr 12 17:36:21 2016 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Apr 19 22:25:10 2016 +0000"
      },
      "message": "Bazel: add default (strict) compiler flags.\n\nChange-Id: I7c908c628213545f71f623a39e83d887bfc2346d\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1151\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "cacb0b703f87d6decba2b40fd5b6408919a24fa9",
      "tree": "56cdf4be8c7adb96e3f72afbc4d7f8ea877fc43d",
      "parents": [
        "76d82975d82e304a258b963b1ef24b22c9e997f2"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Feb 09 19:34:36 2016 -0800"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Mar 17 22:08:49 2016 +0000"
      },
      "message": "Brotli: add support for dynamic modules.\n\nFixes build with nginx-1.9.11+.\n\nChange-Id: I34f0b2e49eb5923f6cac1062df404728c455b21b\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1079\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "76d82975d82e304a258b963b1ef24b22c9e997f2",
      "tree": "28ae540daf8ad348cd01fa30c0abe558816431ed",
      "parents": [
        "63cfc8fd9c42f6251e1f9e5aa562d63ff5def1ec"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Thu Feb 25 13:38:20 2016 -0800"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Fri Feb 26 01:45:01 2016 +0000"
      },
      "message": "Bazel: implement \"depend-on-what-you-include\" semantics.\n\nAdd direct dependencies on targets exporting included headers\nin order to remove all transitive dependencies.\n\nChange-Id: I993a58ffbdc1c1e9ea8dafd96a609464bc469a5e\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1076\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "63cfc8fd9c42f6251e1f9e5aa562d63ff5def1ec",
      "tree": "2884b93c484ad02496a72b7c5a2e5406a5a6033a",
      "parents": [
        "788615eab7c5e0a984278113c55248305620df14"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Dec 01 00:00:13 2015 -0800"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Wed Dec 02 04:50:49 2015 +0000"
      },
      "message": "Bazel: add support for building ngx_brotli with Bazel.\n\nChange-Id: I1eb63fcd07d6ceffa329ba3cc6b82f3bb5c8a736\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/1022\nReviewed-by: Martin Maly \u003cmmaly@google.com\u003e\n"
    },
    {
      "commit": "788615eab7c5e0a984278113c55248305620df14",
      "tree": "f326d1fc4a920474ce76afe697d9a019a17fa764",
      "parents": [
        "019c0ee2356e10f5209266b457a3596360108a16"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Nov 17 17:41:47 2015 -0800"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Nov 17 17:41:47 2015 -0800"
      },
      "message": "Brotli: reinterpret_cast from nullptr_t to char * is not allowed.\n\nFound on FreeBSD with -std\u003dc++11.\n\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\n"
    },
    {
      "commit": "019c0ee2356e10f5209266b457a3596360108a16",
      "tree": "a19f36b83a09b4cd17c0df3b58b5be50de47d94a",
      "parents": [
        "55748612fc4537b401358fdafe9f3a4f33b2fede"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Fri Nov 13 16:44:58 2015 -0800"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Fri Nov 13 16:44:58 2015 -0800"
      },
      "message": "Brotli: fix interaction with other filters.\n\nPreviously, Brotli filter was installed using HTTP_AUX_FILTER_MODULES,\nwhich meant that it was executed before most of the core HTTP filters,\nbreaking them in the process (because they couldn\u0027t process compressed\nresponses).\n\nReported by George Liu (eva2000) on GitHub (issue #8).\n\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\n"
    },
    {
      "commit": "55748612fc4537b401358fdafe9f3a4f33b2fede",
      "tree": "a3f1f5d5daecb33ea23e23fc6e75380ce4f8ce7e",
      "parents": [
        "8c7b19e1ffd5d8ed6b7d915fbc99b7a54613c88e"
      ],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Sun Oct 11 14:52:08 2015 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Sun Oct 11 14:52:08 2015 -0700"
      },
      "message": "Brotli: fix build.\n\n/bin/sh\u0027s equal operator is \"\u003d\" not \"\u003d\u003d\".\n\nReported by rkd77 on GitHub (issue #3).\n\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\n"
    },
    {
      "commit": "8c7b19e1ffd5d8ed6b7d915fbc99b7a54613c88e",
      "tree": "69bea03a04a31288ab4ecb35e79a4ca1f72bab30",
      "parents": [
        "6a46f0079b6093fd5b05bc91632908b7d7b47b78"
      ],
      "author": {
        "name": "Ted Kornish",
        "email": "ted.kornish+github@gmail.com",
        "time": "Fri Oct 09 18:15:38 2015 -0700"
      },
      "committer": {
        "name": "Ted Kornish",
        "email": "ted.kornish+github@gmail.com",
        "time": "Fri Oct 09 18:15:38 2015 -0700"
      },
      "message": "Fix typo in README: libbroti -\u003e libbrotli\n"
    },
    {
      "commit": "6a46f0079b6093fd5b05bc91632908b7d7b47b78",
      "tree": "e0b339ee69695d6d6624f4e48072c544e8745180",
      "parents": [],
      "author": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Oct 06 19:24:46 2015 -0700"
      },
      "committer": {
        "name": "Piotr Sikora",
        "email": "piotrsikora@google.com",
        "time": "Tue Oct 06 19:24:46 2015 -0700"
      },
      "message": "Brotli: add support for Brotli compression.\n\nThis commit adds initial versions of two modules:\n- ngx_brotli filter module - used to compress responses on-the-fly,\n- ngx_brotli static module - used to serve pre-compressed files.\n\nSigned-off-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\n"
    }
  ]
}
