)]}'
{
  "log": [
    {
      "commit": "01d53f483a7531ad4899b522060e8913dca309fb",
      "tree": "5e0defc327b49ed329aa9022cb6ea884052239a7",
      "parents": [
        "68c1506715d834c5ab274a622a67bab207936ac7"
      ],
      "author": {
        "name": "Neil Williams",
        "email": "neil@reddit.com",
        "time": "Tue Jul 07 07:27:29 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu Aug 06 08:27:55 2020 -0700"
      },
      "message": "THRIFT-5248: Python: Make TSocket.isOpen check if server still connected\n\nClient: py\n\nThis is inspired by changes to the Go library (THRIFT-5214) and, by\nproxy, this blog post[1]. The idea is that if the other end of the\nsocket has closed their end of the connection, we can figure that out by\ndoing a non-blocking read on our socket before we waste time serializing\nand sending a message just to find out the socket is closed when we try\nto read the response.\n\n[1]: https://github.blog/2020-05-20-three-bugs-in-the-go-mysql-driver/\n"
    },
    {
      "commit": "797fe252e0df18a24aa025d00d1d53c288ef2d4f",
      "tree": "ed80962526773a1a4392253dedc3465a3a605040",
      "parents": [
        "e6d7d13c35f5c9fe57889d7e77b0ba63910b1052"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Wed May 20 15:20:07 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue May 26 21:46:16 2020 +0200"
      },
      "message": "Supplement TNonblockingServer.py testcase\nClient: py\nPatch: Zezeng Wang\n\nThis closes #2150\n"
    },
    {
      "commit": "26e6c84cde490a22d39c43ba3903dd94bbb8497f",
      "tree": "7e0c022937406cdedd6ab75100cba3a7d51b99a3",
      "parents": [
        "64ac65ea7e0763c32d6dca988a2c779f89bece84"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Wed May 06 14:37:43 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 13 23:56:08 2020 +0200"
      },
      "message": "Add testcase for compactprotocol(python)\nClient: py\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2129\n"
    },
    {
      "commit": "bbc5e06a2e36d788b095fb37a52c90fc4d54b211",
      "tree": "844251f7c5958b6629e48d9b3298934fcc70d628",
      "parents": [
        "abc2ec60964538558fd99f72a4d4c16820e8bfb4"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Thu May 07 17:10:32 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri May 08 09:18:46 2020 +0200"
      },
      "message": "Supplement TZlibTransport.py testcase\nClient: py\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2132\n"
    },
    {
      "commit": "39381695eb456349b02e68d9167181ae41656b73",
      "tree": "4dd236706cf4e65468cedf3ee3bb144fa6a4abec",
      "parents": [
        "371d92f159d4e518f1de81519b3a9de629ba8970"
      ],
      "author": {
        "name": "Zezeng Wang",
        "email": "51382517@qq.com",
        "time": "Tue Apr 28 14:24:58 2020 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 07:24:58 2020 +0100"
      },
      "message": "Add file and memory buffer tests for Python\n\nClient: py"
    },
    {
      "commit": "c3728122d2ddb2e0236b1e08bdb5e24b8baae9dd",
      "tree": "d24ac1387ab21c6cccd1b1163d1e5b01b539abb0",
      "parents": [
        "b416ffa72dbcab8ed8a156c95cb8e480ed46a438"
      ],
      "author": {
        "name": "Zezeng Wang",
        "email": "51382517@qq.com",
        "time": "Mon Apr 27 15:48:19 2020 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 08:48:19 2020 +0100"
      },
      "message": "Supplement TBinaryprotocol module testcase\n\nClient: py"
    },
    {
      "commit": "b83ae2cedf8a345142c3b96e9b529a65fe41bc16",
      "tree": "5d9b9bdb1a94ac978abe7efc9da6dc9bb043b6c0",
      "parents": [
        "b94c16638555c4efa191092bf0f14ce45c3621b8"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Fri Apr 24 11:35:55 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Apr 26 13:29:48 2020 +0200"
      },
      "message": "supplementary testcase for TJSONProtocol\nClient: py\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2113\n"
    },
    {
      "commit": "3131fe975ce2efd2887e41f86e73f7205a02a2a4",
      "tree": "990eb27ed20aedcaa942790b30cbd5f0d64d1409",
      "parents": [
        "93ff9b00531682ece08a1a43883e55fd2aa83a15"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Jul 02 14:21:05 2019 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Jul 07 12:16:52 2019 -0400"
      },
      "message": "THRIFT-4904: Fix python unit test errors and exception escapes\n\nDue to the way SSL layers on top of sockets, it was possible\nto complete a connection and then have the server close it.\nThis would happen if the client is not checking certificates\nbut the server is.  The TSSLSocket unit test was enhanced to\ndo a read and a write as well as just connecting to ensure a\nmore complete test.\n\nThe TSocket read() and write() calls were leaking OSError,\nsocker.error, and ssl.Error exceptions.  These cases are now\nwrapped into a TTransportException of the appropriate type,\nand the original exception is added as an argument named inner.\n"
    },
    {
      "commit": "fe11c48ee185c9aead78d0c67c644c575df255a8",
      "tree": "1ab58eef8ffabba6ddf48edf712556857a19f99f",
      "parents": [
        "4eac57abcfc5f6fb591d894fe446add243392557"
      ],
      "author": {
        "name": "junnplus",
        "email": "junnplus@gmail.com",
        "time": "Sat Jan 12 02:15:05 2019 +0800"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jan 14 12:10:24 2019 -0500"
      },
      "message": "THRIFT-4733: Fix test unix socket address already in use\n"
    },
    {
      "commit": "eb9f65b74ec6babf85cf6e2686125e665e0e8e45",
      "tree": "42d969d639d0649b5eaa9987b206173f6c54e193",
      "parents": [
        "88591e32e710a0524327153c8b629d5b461e35e0"
      ],
      "author": {
        "name": "Aki Sukegawa",
        "email": "nsukeg@gmail.com",
        "time": "Sun Jun 03 19:15:53 2018 +0900"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Jun 07 09:38:49 2018 -0400"
      },
      "message": "THRIFT-4577 Outdated cipher string in python unit test\n\nAlso fixes a bug where unit test execution hanged forever on SSL initialization failure.\n"
    },
    {
      "commit": "0ad20bdbfe9abcbb0cc5332ff95651b5c975da91",
      "tree": "7e713c9380844afe41019a7c6ebe4e508eba3464",
      "parents": [
        "8b8a8efea13d1c97f856053af0a5c0e6a8a76354"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Sat Sep 30 15:44:16 2017 -0700"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Thu Oct 19 11:29:04 2017 -0400"
      },
      "message": "THRIFT-4351: use travis build stages to optimize build,\navoiding duplicate rebuilds of the same image, and also\nallow personal docker hub repositories for private fork\nbuilds to be optimized. Move ubsan build to artful image\nbecause it catches more stuff and fix what was found.\n\nTHRIFT-4345: solidify docker build strategy for maximum\ncoverage: trusty, xenial, artful as stock as they can be\n\nTHRIFT-4344: add top level language summary markdown and\nupdate readme with a new image on the layered architecture\n\nTHRIFT-3847: remove VERSION macro from config.h which\nwas causing a conflict on artful builds.\n\nTHRIFT-4359: fix haxe map/set decode when key is binary,\nas a missing break statement caused it to use an int\nduring decode\n\nThis closes #1389\n"
    },
    {
      "commit": "e8ba7877baec6f9871a88db8d3885361a2260ab2",
      "tree": "9a2dc1c722241c96359c00829c7149d74f09be0c",
      "parents": [
        "4626fd889da53462023d42d99d1d82e13a6e890f"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 12 21:14:48 2017 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 12 21:14:48 2017 +0900"
      },
      "message": "THRIFT-4026 TSSLSocket doesn\u0027t work with Python \u003c 2.7.9\n\nThis closes #1166\n"
    },
    {
      "commit": "d2b4f248368be36ff24c5a54fa4f8cfb86b7ab36",
      "tree": "a5ca568e5bd4b6222b9055f88979e63ef173c354",
      "parents": [
        "d4eecda6b2f8b3b27a191605a054aa3bf79a4684"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Sep 04 18:49:23 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Sep 04 18:49:23 2016 +0900"
      },
      "message": "THRIFT-3917 Check backports.ssl_match_hostname module version\n\nThis closes #1076\n"
    },
    {
      "commit": "d479e23a1d408ab73e416f547003c4f7d9975081",
      "tree": "9e919c0f372fb01f8029fd06fbe1180b4f5d5bd5",
      "parents": [
        "2c5ed27a25087f541312d35938056890c4784fc6"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 28 11:28:19 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 28 12:05:14 2016 +0900"
      },
      "message": "THRIFT-3691 Run flake8 Python style check on Travis-CI\nClient: Build (Python)\nPatch: Nobuaki Sukegawa\n\nThis closes #907\n"
    },
    {
      "commit": "66f50531405ac558d78725eaf01c95eb55621540",
      "tree": "30e054f96743d0d06c44d5c537c5b808fe755273",
      "parents": [
        "8b411a0c8f9f6dc4fa7f6660b5b15fe27a76741d"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 14 21:47:38 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 14 22:47:19 2016 +0900"
      },
      "message": "THRIFT-3614 Improve logging of test_sslsocket.py\n\nSuppress server exception log for expected connection failures\nClient: Test (Python)\nPatch: Nobuaki Sukegawa\n\nThis closes #866\n"
    },
    {
      "commit": "6a0ca7ff2750d45346d6d7faaf931de2b6254321",
      "tree": "78f3caa6bb379bc30b9c96d48e7adc7fac9bd3e3",
      "parents": [
        "7af189a2366383538bb9aae394fd5f735976f1d5"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 03:11:16 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 23:12:34 2016 +0900"
      },
      "message": "THRIFT-3618 Python TSSLSocket deprecation message should print caller\u0027s location\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #852\n"
    },
    {
      "commit": "7af189a2366383538bb9aae394fd5f735976f1d5",
      "tree": "9e9fd94cda9dd673250cc6d6c1b279c83f3ae1c1",
      "parents": [
        "6525f6ae8786a2bcb596e471efb1d76ae74aabee"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 11 16:21:01 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 23:12:34 2016 +0900"
      },
      "message": "THRIFT-3613 Port Python C extension to Python 3\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #845\n"
    },
    {
      "commit": "ac06704a0c62df9ca03782cb05b0f8cc05387a45",
      "tree": "212581fee5c432f66ffac3e81516e32cb0a7cbd4",
      "parents": [
        "9ed45e9a416374775d8a4d1ae3b28b3680e525a5"
      ],
      "author": {
        "name": "John Sirois",
        "email": "jsirois@apache.org",
        "time": "Fri Feb 12 08:10:13 2016 -0700"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 02:32:12 2016 +0900"
      },
      "message": "THRIFT-3616 Improve TSSLSocketTest robustness.\nClient: Test (Python)\nPatch: John Sirois\n\nPreviously a combination of fixed ports, fixed paths and delays was used\nin all TSSLSocketTest tests that involved making a client-server\nconnection; now ephemeral ports, unique tmp files and no delays for\nsuccessful connection tests are all implemented. A delay still remains\nfor the failed connection tests to allow for SSL handshake initiation\nbut not wait too long.\n\nThis closes #850\n"
    },
    {
      "commit": "355116eb1d7e903e6aba7b239db49951919e48c5",
      "tree": "8872ad4b13db37ffea922ca55ee31dff628f87a1",
      "parents": [
        "144bbef3ddd3a66ff038e5ad271500aa06b63aae"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 11 18:01:20 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 11 20:07:02 2016 +0900"
      },
      "message": "THRIFT-3614 Improve logging of test_sslsocket.py\nClient: Test (Python)\nPatch: Nobuaki Sukegawa\n\nThis closes #846\n"
    },
    {
      "commit": "f39f7dbd26fe090f0fc6566c100ca7adc9ace714",
      "tree": "1c9d7094eeb14b226c8b33027543dd3f4c43aaa3",
      "parents": [
        "25536ad83a85cfda6d5388278e4e378f2d4df73e"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 15:09:41 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 22:20:00 2016 +0900"
      },
      "message": "THRIFT-3599 Validate client IP address against cert\u0027s SubjectAltName\n"
    },
    {
      "commit": "25536ad83a85cfda6d5388278e4e378f2d4df73e",
      "tree": "ceb7f5bb28cdfdd2273c288d96a04d7c8c1148a8",
      "parents": [
        "5b44612d20e762e0774a19b7ef42a28f7fc0b481"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 15:08:55 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 22:20:00 2016 +0900"
      },
      "message": "THRIFT-2103 [python] Support for SSL certificates with Subject Alternative Names\n"
    },
    {
      "commit": "10308cb975ac090584068d0470b81e41555b2f35",
      "tree": "bc0bb670626a8a196dc00df6429ae4dcc838b4c4",
      "parents": [
        "d094e79de7e0bd61320f006c83c0de669363bce8"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Feb 03 01:57:03 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 14:28:24 2016 +0900"
      },
      "message": "THRIFT-3596 Better conformance to PEP8\n\nThis closes #832\n"
    },
    {
      "commit": "f07b4a14dfc30a397d49b18c3f50230a08310bd1",
      "tree": "21c42fd3359bc3ac5b0d80f55db905fc233e13a3",
      "parents": [
        "1ea3ca589f8020526aeeb394185ea651c0e3a9f3"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Mon Feb 01 23:44:02 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Feb 03 01:07:43 2016 +0900"
      },
      "message": "Adjust Python SSL test delay in an attempt to avoid flakiness on CI\n"
    },
    {
      "commit": "ad8358664e6aa2de9094ca68c8b626b953b572c0",
      "tree": "677c369a367b0f451a929b661f84d4c28b9edae1",
      "parents": [
        "b78d781b2e55a066d53577402e42b4d509998978"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Dec 23 23:32:09 2015 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Jan 03 02:39:51 2016 +0900"
      },
      "message": "THRIFT-3505 Enhance Python TSSLSocket\n\nThis closes #760\n"
    },
    {
      "commit": "369d62e5e925654fa6d1ca3bfe5d73023456adb1",
      "tree": "22b652c87ea3188b28834ad3606f4bbd6c51a872",
      "parents": [
        "517aa1491b1e16c88d17d6d83dcc7ef83bc85164"
      ],
      "author": {
        "name": "Phongphan Phuttha",
        "email": "phongphan.p@gmail.com",
        "time": "Mon Nov 09 02:05:09 2015 +0700"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Nov 14 17:03:57 2015 +0900"
      },
      "message": "THRIFT-2413 Add JSON escaped unicode support for python3.\nClient: Python\nPatch: Phongphan Phuttha\n\nThis closes #686\n"
    },
    {
      "commit": "7f01e2a8f869d8622bc56e7584cce98865fa8b0f",
      "tree": "b0e9343bd76726658cb36f5166849e913a1b1689",
      "parents": [
        "f264884901d0e2a1197ae1511ee0fa0b8ca0d2aa"
      ],
      "author": {
        "name": "Phongphan Phuttha",
        "email": "phongphan.p@gmail.com",
        "time": "Fri Nov 06 15:46:50 2015 +0700"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Mon Nov 09 02:34:28 2015 +0900"
      },
      "message": "THRIFT-2413: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol\nClient: Python\nPatch: Phongphan Phuttha\n\nThis patch allows readJSONString to decode escaped unicode string including encoded surrogate pair.\n\nThis closes #673\n"
    }
  ]
}
