)]}'
{
  "commit": "d78676b2abbd0d124d1ad97f180ed156ead07a3a",
  "tree": "374f46192492faf98ebbf79308373a972579ae02",
  "parents": [
    "d08d22aa1e2bdcfefdae596860dd561138030772"
  ],
  "author": {
    "name": "Matt Stark",
    "email": "msta@google.com",
    "time": "Mon Oct 19 15:09:47 2026 +1100"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Oct 20 16:45:57 2026 -0700"
  },
  "message": "Refactor CheckIncludesStrictExceptions API\n\nThis refactoring prepares for disabling check_includes_strict\noptimizations when exemptions are present:\n- `empty()` allows a fast path when no exceptions are configured, enabling\n  optimizations without checking individual targets.\n- `HasGlobalException()` and `HasLocalException()` allow querying global\n  and target-specific rules independently, which is needed to inspect\n  whether a target or its private dependencies are subject to exemptions.\n- Rename `AddException` to `AddLocalException` to clearly differentiate\n  from `AddGlobalException`.\n- Rename `CanInclude` to `HasException`.\n- Update callers and unittests accordingly.\n\nBug: 556959580\nChange-Id: I62c5ef3ab553e5fdeb88b3395e5c370e6a6a6964\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/27620\nCommit-Queue: Matt Stark \u003cmsta@google.com\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a6808381eb8e2714b064483b11bcd5b2a2d537bf",
      "old_mode": 33188,
      "old_path": "src/gn/check_includes_strict_exceptions.cc",
      "new_id": "a5eb6e69c5a3ae16e59a67d3fdc2310ad924f696",
      "new_mode": 33188,
      "new_path": "src/gn/check_includes_strict_exceptions.cc"
    },
    {
      "type": "modify",
      "old_id": "c1e4c538878e9db34fb6533d1a8987d9a0b91545",
      "old_mode": 33188,
      "old_path": "src/gn/check_includes_strict_exceptions.h",
      "new_id": "2c616ed64ea26a96751f20607d7f34b936ffb894",
      "new_mode": 33188,
      "new_path": "src/gn/check_includes_strict_exceptions.h"
    },
    {
      "type": "modify",
      "old_id": "7794eb701ea050eb9d6659343565e199f07a9e59",
      "old_mode": 33188,
      "old_path": "src/gn/check_includes_strict_exceptions_unittest.cc",
      "new_id": "29c249b347484121150f11335cb5eb9deed7eec3",
      "new_mode": 33188,
      "new_path": "src/gn/check_includes_strict_exceptions_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "7f31064dfe292019e8357d48ad91c4f1edaaf57c",
      "old_mode": 33188,
      "old_path": "src/gn/header_checker.cc",
      "new_id": "69c2c95aa076a553ef0806f83d43296580dabea7",
      "new_mode": 33188,
      "new_path": "src/gn/header_checker.cc"
    },
    {
      "type": "modify",
      "old_id": "2d4146275a27a0574e35177bc65731aa98c4fc19",
      "old_mode": 33188,
      "old_path": "src/gn/header_checker_unittest.cc",
      "new_id": "7ce47af659aec923ea7f24e531cba15673c070e2",
      "new_mode": 33188,
      "new_path": "src/gn/header_checker_unittest.cc"
    }
  ]
}
