)]}'
{
  "commit": "4ab3523684876ba6feb4340120f735aab82d6c9e",
  "tree": "be05ddf050c03823b0581c1e184f9a02f1ec0bd0",
  "parents": [
    "a1266d72e4e7fac336bea1588e06172bcebad497"
  ],
  "author": {
    "name": "JingsongLi",
    "email": "jingsonglee0@gmail.com",
    "time": "Mon Jun 08 15:03:29 2026 +0800"
  },
  "committer": {
    "name": "JingsongLi",
    "email": "jingsonglee0@gmail.com",
    "time": "Mon Jun 08 15:03:29 2026 +0800"
  },
  "message": "Replace strict allowlist with structural validation in ASF yaml checker\n\nThe previous allowlist was incomplete and would reject valid ASF config\nkeys (e.g. pull_requests, copilot_code_review, commits_by_path) as the\nASF infra schema evolves. Now validates only structural correctness:\n- YAML syntax and root mapping type\n- Known section types (github, notifications must be mappings)\n- Field type constraints (features→bool, merge_buttons→bool/string,\n  labels→list)\n\nUnknown keys are accepted, matching ASF gitbox behavior which silently\nignores unrecognized fields.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e01c7cce50b0814f06cf8a25bf30b68d4e78c943",
      "old_mode": 33188,
      "old_path": "tools/validate_asf_yaml.py",
      "new_id": "e1891251b75b0f7a615eef39b296e3897d8cdb51",
      "new_mode": 33188,
      "new_path": "tools/validate_asf_yaml.py"
    }
  ]
}
