)]}'
{
  "commit": "d6427ef53e4d2a2b8e19b4bb85c6ea166b7e855e",
  "tree": "dbf874069967cf1bb99f913bde517e40ed94e71b",
  "parents": [
    "97b2becb4e70a53df1816a9ed350f33c612a43a3"
  ],
  "author": {
    "name": "harjoth",
    "email": "harjoth.khara@gmail.com",
    "time": "Sat Jun 20 05:36:36 2026 +0000"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Mon Jun 22 09:29:17 2026 -0700"
  },
  "message": "crypto/tls: document that ConnectionState is valid only after handshake\n\nConn.ConnectionState reports details that are only populated once the\nTLS handshake has completed. Callers that read it immediately after\nAccept (for example via tls.NewListener) instead observe an\nunpopulated ConnectionState whose HandshakeComplete field is false.\n\nDocument this precondition on Conn.ConnectionState and point to\nConnectionState.HandshakeComplete and Conn.Handshake, which the first\nConn.Read or Conn.Write runs automatically.\n\nFixes #79828.\n\nChange-Id: Iad8a446ae45c7eb45efba6f8c1ce50fa727db989\nGitHub-Last-Rev: a9ea8721fe40ffaa44bdab16504f04212ce9980b\nGitHub-Pull-Request: golang/go#80081\nReviewed-on: https://go-review.googlesource.com/c/go/+/792720\nReviewed-by: Roland Shoemaker \u003croland@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Filippo Valsorda \u003cfilippo@golang.org\u003e\nReviewed-by: Filippo Valsorda \u003cfilippo@golang.org\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fb1e9f00e240eabeb0c15ecf16dd41df47f054c6",
      "old_mode": 33188,
      "old_path": "src/crypto/tls/conn.go",
      "new_id": "e8102787fe5f3995801e352dab36a2878588f700",
      "new_mode": 33188,
      "new_path": "src/crypto/tls/conn.go"
    }
  ]
}
