)]}'
{
  "commit": "e53ff8dd02d0c818df6ec1a5944b340005e2c194",
  "tree": "a8b7d1a3d6504910220adc95ddb1698d59aa3779",
  "parents": [
    "9ecc49bc156a395ed06b65a854860145511ed332"
  ],
  "author": {
    "name": "David Ostrovsky",
    "email": "david@ostrovsky.org",
    "time": "Sun Feb 15 10:21:02 2026 +0100"
  },
  "committer": {
    "name": "David Ostrovsky",
    "email": "david@ostrovsky.org",
    "time": "Sat Mar 21 03:26:54 2026 -0700"
  },
  "message": "Bazel: compare runtime overlap against headless Gerrit WAR\n\nAdd a guardrail that fails if the oauth plugin bundles third-party\nruntime jars that are already provided by Gerrit.\n\nUse //:headless.war.jars.txt as the comparison manifest instead of\n//:release.war.jars.txt.\n\nThe release WAR is not the right boundary for this check because it also\nincludes the packaged core plugins via //plugins:core. Comparing against\nthat manifest would make this test depend on the full set of core plugin\nsubmodules being present during Bazel analysis.\n\nIn CI/CD the plugin is built inside a partial Gerrit clone without\nfetching the core plugin submodules. Using the release WAR manifest\nwould therefore fail analysis before the test can run.\n\nThe headless WAR already provides the correct comparison scope for this\nguardrail: jars shipped by Gerrit itself, but not jars contributed by\nthe packaged core plugins. This keeps the overlap check focused on\nlibraries provided by Gerrit runtime, while avoiding an unnecessary\ndependency on core plugin submodules.\n\nThe test remains Gerrit-tree-only and is gated via:\n\n  target_compatible_with \u003d in_gerrit_tree_enabled()\n\nso standalone plugin builds continue to report it as SKIPPED.\n\nChange-Id: I4abd5646b9a92f3ab619c74c72bf4c47bbcdc07f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a0f87a57e54389c89dbd84ce74db7531c4ec613a",
      "old_mode": 33188,
      "old_path": "BUILD",
      "new_id": "9c1e3ca79d47a205b1b6a86665aeb7df0993aa3a",
      "new_mode": 33188,
      "new_path": "BUILD"
    },
    {
      "type": "modify",
      "old_id": "d0fce9eef9d1756469bb4c00bdf28f73631b4015",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "6f47498f7350cb23241076f880a173d701282443",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "0bf40d5efec03d07059c00985036cb312525af5d",
      "old_mode": 33188,
      "old_path": "MODULE.bazel.lock",
      "new_id": "8c48193702f1e8823eba3e3aee8ede0ff063c37c",
      "new_mode": 33188,
      "new_path": "MODULE.bazel.lock"
    },
    {
      "type": "modify",
      "old_id": "763ad491969327c3c96896b292a0c8a3fff76ea1",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/build.md",
      "new_id": "76c8d06b70e8a3678bc9d992286f287b239ce6fd",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/build.md"
    }
  ]
}
