)]}'
{
  "commit": "1b89f2d847025e79f106ad5ec9d27d063f5faa60",
  "tree": "46eb351875394fa49de9069b2d8d503c9ea9dcbb",
  "parents": [
    "7aebdb995fb1b060df0c9687eac7f181accd0cee"
  ],
  "author": {
    "name": "Nasser Grainawi",
    "email": "nasser.grainawi@oss.qualcomm.com",
    "time": "Fri May 08 16:20:08 2026 -0700"
  },
  "committer": {
    "name": "Nasser Grainawi",
    "email": "nasser.grainawi@oss.qualcomm.com",
    "time": "Tue Aug 04 15:52:26 2026 -0700"
  },
  "message": "Fix gitcookies domain matching to correctly handle wildcard entries\n\nAuthentication silently failed for some hosts because the gitcookies\ndomain match was both too narrow and too broad. The original substring\ncheck (`domain in line`) matched the domain string anywhere in the\ncookie record, including the value field, while entries stored with the\nstandard wildcard prefix (a leading dot, e.g. `.gerrit.example.com`)\nwere skipped entirely.\n\nParse the cookie record first and match the extracted domain field\naccording to the gitcookies wildcard convention: an entry with a leading\ndot matches both the bare domain and any subdomain, while an entry\nwithout one requires an exact host match. This avoids the opposite error\nof letting a non-wildcard entry such as `my-gerrit.com` match an\nunrelated `sub.my-gerrit.com`.\n\nAdd unit tests covering wildcard subdomain and exact matches and\nconfirming non-wildcard entries do not match subdomains.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I746d2ba13e74071e5a8cc9119fa5ef8b6ae63d76\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "614e3bb42afa1f0cdf92d9236ff9ca328d7cbc42",
      "old_mode": 33188,
      "old_path": "gerrit_mcp_server/gerrit_auth.py",
      "new_id": "12b86d5dcd85e05a80e672f5740f64e13d63aca9",
      "new_mode": 33188,
      "new_path": "gerrit_mcp_server/gerrit_auth.py"
    },
    {
      "type": "modify",
      "old_id": "3838a31314d5edc72fb18312f9cad70ccca47246",
      "old_mode": 33188,
      "old_path": "tests/unit/test_gerrit_auth.py",
      "new_id": "812bf2f153798d70a5556c667c04da6a8c4287ce",
      "new_mode": 33188,
      "new_path": "tests/unit/test_gerrit_auth.py"
    }
  ]
}
