)]}'
{
  "commit": "2134c3482c1382f85d05c38f010310de4e944cc3",
  "tree": "ed72c9503a79fc6ce62572119604865dfa2d6344",
  "parents": [
    "5c230cddbac5ac7c83b102c0e4b83237b0d37a1b"
  ],
  "author": {
    "name": "Thomas Dräbing",
    "email": "thomas.draebing@sap.com",
    "time": "Wed Nov 12 09:19:59 2025 +0100"
  },
  "committer": {
    "name": "David Ostrovsky",
    "email": "david@ostrovsky.org",
    "time": "Sat Mar 21 03:25:50 2026 -0700"
  },
  "message": "Adapt to Gerrit\u0027s use of bazel modules\n\nTurn off strict_visibility in the rules_jvm_external maven_install used\nfor @external_plugin_deps.\n\nWith strict_visibility enabled, transitively resolved Maven artifacts\nare generated with //visibility:private and cannot be referenced\ndirectly from plugin BUILD targets. This conflicts with Bazel strict-\ndeps, which requires direct dependencies to be listed when their types\nare used at compile time.\n\nFor example, scribejava-apis depends transitively on scribejava-core,\nbut plugin sources extending DefaultApi20 must add\n@external_plugin_deps//:com_github_scribejava_scribejava_core as a\ndirect dependency to satisfy strict-deps. With strict_visibility enabled\nthis fails due to visibility restrictions.\n\nDisabling strict_visibility allows depending on such transitively\nresolved artifacts directly, while still keeping strict-deps enabled to\nenforce explicit compile-time dependencies.\n\nTo support both standalone and in-tree build modes, split the Maven\nrepositories into:\n\n  * a shared \"external_plugin_deps\" repository that contains only\n    Gerrit-provided APIs (gerrit-plugin-api and acceptance framework)\n    and does not define a lock file\n\n  * a plugin-specific repository (\"oauth_plugin_deps\") that contains\n    the plugin\u0027s bundled runtime dependencies and owns its lock file\n\nThis allows:\n\n  - bazlets to continue referencing @external_plugin_deps for\n    Gerrit API dependencies in standalone mode without bundling\n    them into the plugin\n\n  - plugin runtime dependencies to remain reproducible via\n    lock files\n\n  - multiple plugins to coexist in an in-tree build without\n    contributing conflicting lock files for the same repository\n\nProvide a MODULE.bazel fragment that can be linked into Gerrit\u0027s\n`plugins/external_plugin_deps.MODULE.bazel` when the plugin is built\ninside the Gerrit source tree.\n\nThis allows the plugin to be built in-tree without modifying Gerrit\u0027s\nmain module configuration beyond including this fragment.\n\nUpdate the build documentation to describe how to link the fragment\nand run plugin tests in this configuration.\n\nChange-Id: Ib3e8ee4012c8180131b26622dfacc29e31834646\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d96881e57423263c398d2b93acf1f7da14d11750",
      "old_mode": 33188,
      "old_path": ".bazelrc",
      "new_id": "b79928836c3fc2587d97af385fae60b6c1f3bffb",
      "new_mode": 33188,
      "new_path": ".bazelrc"
    },
    {
      "type": "modify",
      "old_id": "9c695d36ada05e6b910e9a6298cc0f08eca1c0c1",
      "old_mode": 33188,
      "old_path": ".bazelversion",
      "new_id": "e8be68404bcb3074fc73efd48f88e3c1ec59fd3b",
      "new_mode": 33188,
      "new_path": ".bazelversion"
    },
    {
      "type": "modify",
      "old_id": "424d36c3d77f655f497f02ed944c10a300c8acd9",
      "old_mode": 33188,
      "old_path": "BUILD",
      "new_id": "d0b4c45b4ef7384b4340ef4c44827a703b5d10db",
      "new_mode": 33188,
      "new_path": "BUILD"
    },
    {
      "type": "modify",
      "old_id": "0b932b8d8c2a4225dd14103bc2e4d2e9be8f792d",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "80acb9a72b137dce43e84303d099c1ca4a45ad08",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0bf40d5efec03d07059c00985036cb312525af5d",
      "new_mode": 33188,
      "new_path": "MODULE.bazel.lock"
    },
    {
      "type": "delete",
      "old_id": "a5c7e0603d8d904e1f53de3049ee0c6fa4be8b07",
      "old_mode": 33188,
      "old_path": "WORKSPACE",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "f089af473a610e21307bf649a4fec81086cf33a5",
      "old_mode": 33188,
      "old_path": "bazlets.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eb0623ab771306def71dfd085680de33624c348b",
      "new_mode": 33188,
      "new_path": "external_plugin_deps.MODULE.bazel"
    },
    {
      "type": "delete",
      "old_id": "76d6c7f9283a977419716f11795fb72a09f94f15",
      "old_mode": 33188,
      "old_path": "external_plugin_deps.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "034495fcd75ab68dd81b3d6a42c73ea2ae48c03f",
      "new_mode": 33188,
      "new_path": "oauth_plugin_deps.lock.json"
    },
    {
      "type": "modify",
      "old_id": "33f9bd04f662af228508423d1d91be65cea4f131",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/build.md",
      "new_id": "717e0b87addf04eb22ae3467c313c48f4b09e4db",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/build.md"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "test",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "1fa2160dd5da0b700ea6ac704284335307661d0e",
      "old_mode": 33188,
      "old_path": "tools/BUILD",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "c5ed0b74084016576dc2741d7badf7a222372b36",
      "old_mode": 33188,
      "old_path": "tools/bzl/BUILD",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "c921d01c5d4b2d3ea7d748f504fe7ea9eae23d9d",
      "old_mode": 33188,
      "old_path": "tools/bzl/classpath.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "97307bd2020b7f42f247378f27f6ab2cf31c8f73",
      "old_mode": 33188,
      "old_path": "tools/bzl/junit.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "35ea8cefbb64266f579c9c5bc604c6aa881480bf",
      "old_mode": 33188,
      "old_path": "tools/bzl/maven_jar.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "4d2dbdd6c9fff278cfa26b1350d33bcbc0cd151b",
      "old_mode": 33188,
      "old_path": "tools/bzl/plugin.bzl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "f7440584bfb9a053d8defb6c4ff7567fd8e3781a",
      "old_mode": 33188,
      "old_path": "tools/eclipse/BUILD",
      "new_id": "7acd31d95f4043f3274689ca8e544872cce041c3",
      "new_mode": 33188,
      "new_path": "tools/eclipse/BUILD"
    }
  ]
}
