Files
Michael Kriese 4d2d86f902 fix(bazel-module,bazelisk): add allowedUnsafeExecutions for bazel mod deps (#42323)
* fix(bazel-module,bazelisk): add `allowedUnsafeExecutions` for `bazel mod deps`

* docs: update manager readmes
2026-04-02 08:01:53 +00:00

112 lines
3.1 KiB
Markdown

The `bazel-module` manager can update [Bazel module (bzlmod)](https://bazel.build/external/module) enabled workspaces.
### Maven
It also takes care about maven artifacts initalized with [bzlmod](https://github.com/bazelbuild/rules_jvm_external/blob/master/docs/bzlmod.md). For simplicity the name of extension variable is limited to `maven*`. E.g.:
```
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
```
```
maven_1 = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
```
Both `install` and `artifact` methods are supported:
```
maven.install(
artifacts = [
"org.seleniumhq.selenium:selenium-java:4.4.0",
],
)
maven.artifact(
artifact = "javapoet",
group = "com.squareup",
neverlink = True,
version = "1.11.1",
)
```
### Docker
Similarly, it updates Docker / OCI images pulled with [oci_pull](https://github.com/bazel-contrib/rules_oci/blob/main/docs/pull.md).
Note that the extension must be called `oci`:
```
oci = use_extension("@rules_oci//oci:extensions.bzl", "oci")
oci.pull(
name = "nginx_image",
digest = "sha256:287ff321f9e3cde74b600cc26197424404157a72043226cbbf07ee8304a2c720",
image = "index.docker.io/library/nginx",
platforms = ["linux/amd64"],
tag = "1.27.1",
)
```
It also supports Docker images pulled with [rules_img pull](https://github.com/tweag/rules_img/blob/main/docs/pull.md#pull):
```
pull = use_repo_rule("@rules_img//img:pull.bzl", "pull")
pull(
name = "ubuntu",
digest = "sha256:1e622c5f9ac0c0144d577702ba5f2cce79fc8e3cf89ec88291739cd4eee3b7b9",
registry = "index.docker.io",
repository = "library/ubuntu",
tag = "24.04",
)
```
### Crate
It also supports Rust crate dependencies initialized with [rules_rust crate_universe](https://github.com/bazelbuild/rules_rust/tree/main/crate_universe). For simplicity the name of extension variable is limited to `crate*`. E.g.:
```starlark
crate = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
```
```starlark
crate_1 = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
```
The `spec` method is supported:
```starlark
crate.spec(
package = "axum",
version = "0.8.4",
)
crate.spec(
package = "tokio",
version = "1.45.1",
features = [
"full",
],
)
crate.spec(
package = "custom_crate",
git = "https://github.com/example/custom_crate.git",
tag = "v1.0.0",
)
```
### Lockfile support
The `bazel-module` manager updates the `MODULE.bazel.lock` file when dependencies change.
After updating `MODULE.bazel`, Renovate runs `bazel mod deps` to regenerate the lockfile.
Requirements:
- A `MODULE.bazel.lock` file must already exist in the repository
- [Bazelisk](https://github.com/bazelbuild/bazelisk) must be available (Renovate installs it automatically when using containerbase)
- Bazelisk determines the correct Bazel version from the `.bazelversion` file in the repository (if present)
If no `MODULE.bazel.lock` file is found, the lockfile update step is skipped.
It will only run if the [`allowedUnsafeExecutions`](../../../self-hosted-configuration.md#allowedunsafeexecutions) global option includes `bazelModDeps`.