)]}'
{
  "commit": "216640cad7394846427b78a276dc5371cdca840d",
  "tree": "956fa60f3a13d2ad2595dcd5036c0962b980b155",
  "parents": [
    "2cb274b7aafb7bd54891ede276c6da0dad7f3c54"
  ],
  "author": {
    "name": "Madhav Bissa",
    "email": "48023579+mbissa@users.noreply.github.com",
    "time": "Sat Jul 25 02:22:24 2026 +0530"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Jul 25 02:22:24 2026 +0530"
  },
  "message": "metadata: re-add MD.String with redaction of sensitive metadata (#9231)\n\nFixes #7395\n\nMD.String was removed in #7372 because it could leak credentials orother\nsensitive metadata when an MD was logged (e.g. via log(md)).etcd, the\nmain consumer relying on the old behavior, has since stoppeddepending on\nit, so it is safe to re-add. This restores MD.String in aredacting form:\nit prints keys and values only for a fixed allowlist ofnon-sensitive\ngRPC/HTTP2 protocol headers, and omits (best effort) every other\nkeyentirely (key name included, since a key name may itself be\nsensitive),reporting only the count as \u003cN redacted\u003e.\n\nRELEASE NOTES:\n* metadata: re-add MD.String, which now prints only an allowlist of\nnon-sensitive protocol headers and redacts all other metadata, to help\navoid accidentally logging credentials or other sensitive data",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d2e15253bbfbc5c12fe1558613ceb24de56aaeaa",
      "old_mode": 33188,
      "old_path": "metadata/metadata.go",
      "new_id": "2b79204b482a1beaba674553a5d119518447d036",
      "new_mode": 33188,
      "new_path": "metadata/metadata.go"
    },
    {
      "type": "modify",
      "old_id": "dac81f5b9ab4ad227ff0c7c221e3cd7f10fe61ba",
      "old_mode": 33188,
      "old_path": "metadata/metadata_test.go",
      "new_id": "fb1207f7cb25014d3d2a83fe831bd31bb951d64a",
      "new_mode": 33188,
      "new_path": "metadata/metadata_test.go"
    }
  ]
}
