)]}'
{
  "log": [
    {
      "commit": "08d809b6c916eadcd59fc0479491f7d260ef25d8",
      "tree": "54b81cbf09146c1ae661a41bd9be16196b59ac00",
      "parents": [
        "230d0a6a5ff8a70201f5637532b380be7dc5b256"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Tue Jun 09 13:36:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 13:36:23 2026 +0200"
      },
      "message": "Add \"project\" attribute to gcloud calls (#2670)\n\nFixes [this\nerror](https://buildkite.com/bazel/bazel-bazel-github-presubmit/builds/33494#019e88da-a199-4425-94ed-f9cb5955cd1c/L1125)\nby adding the project to the call.\nIt seems like mac doesn\u0027t have a default project in the gcloud configs."
    },
    {
      "commit": "230d0a6a5ff8a70201f5637532b380be7dc5b256",
      "tree": "dd4ee5cbae155431fce6d0e6af699648bf042cb0",
      "parents": [
        "a29c1a2bfa892ed44497559875e62ad2c3e6ad13"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Mon Jun 08 16:03:11 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 20:03:11 2026 +0000"
      },
      "message": "Re-enable BazelCI for rules_android_ndk (#2669)\n\nAll linked github issues are now closed (and have been for some time)."
    },
    {
      "commit": "a29c1a2bfa892ed44497559875e62ad2c3e6ad13",
      "tree": "58254d73e543246f9d8a221378c4302af2fca41d",
      "parents": [
        "7595b5a5b909a40ad35bf782c7681af0317729c6"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Mon Jun 08 20:43:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 18:43:24 2026 +0000"
      },
      "message": "Categorize data by platform for better metrics (#2664)\n\nTo be able to see more meaningful data for the agents utilization and\nqueue depth, we need to be able to categorize agents and jobs by\nplatform.\n\n---------\n\nCo-authored-by: Xùdōng Yáng \u003cwyverald@gmail.com\u003e"
    },
    {
      "commit": "7595b5a5b909a40ad35bf782c7681af0317729c6",
      "tree": "d322fdc326dc6c797c9d73e7b4c5c7d575dd81e7",
      "parents": [
        "fef6672d60c832fc6108964afc1511a8f03e53d3"
      ],
      "author": {
        "name": "Katika Mohaseen",
        "email": "mohaseenhackerone@gmail.com",
        "time": "Mon Jun 08 23:58:37 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 18:28:37 2026 +0000"
      },
      "message": "Shell-quote task names when building Buildkite step commands (#2666)\n\nWhile reading how the pipeline steps get generated, I noticed the task\nname is interpolated straight into the runner command with no quoting:\n\n```python\ncommand \u003d f\"{py} {RUNNER_CMD} --task\u003d{task}\"\n```\n\nThe task name is just a key under `tasks:` in a project\u0027s\n`.bazelci/presubmit.yml`, so it\u0027s whatever the config author wrote. If a\ntask name contains shell metacharacters it breaks out of the `--task\u003d`\nargument when the agent runs the command — e.g. a task key like `foo;\necho hi; #` turns into two separate shell commands.\n\nThis wraps the interpolated values in `shlex.quote` so they\u0027re always\npassed as a single argument. I applied the same to the other\nconcatenated values (`http_config`, `file_config`, `git_repository`,\n`git_commit`) for consistency. `shlex.quote` is a no-op for normal\nvalues — paths, URLs and commit hashes only use shell-safe characters —\nso existing pipelines are unaffected.\n\nAdded tests under `ShellQuoting` that build a step with a `;`-containing\ntask name and assert, via `shlex.split`, that it stays one `--task\u003d`\nargument and that no injected command leaks out as its own token.\n\nTested with `python3 -m unittest bazelci_test` — all green.\n\n---------\n\nCo-authored-by: Mohaseen \u003ch1-mrz@users.noreply.github.com\u003e\nCo-authored-by: Xùdōng Yáng \u003cwyverald@gmail.com\u003e"
    },
    {
      "commit": "fef6672d60c832fc6108964afc1511a8f03e53d3",
      "tree": "55c77344f5866dffe3b21094f05690db464d229a",
      "parents": [
        "b5ad6d8958275f2ed873df9a5e2c834b0cad22b6"
      ],
      "author": {
        "name": "Xùdōng Yáng",
        "email": "wyverald@gmail.com",
        "time": "Mon Jun 08 07:55:34 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 11:55:34 2026 +0000"
      },
      "message": "Set `RBE_CONFIG_BAZEL_PATH` for downstream jobs on RBE (#2667)\n\nWe\u0027re seeing failures in the downstream pipeline for jobs on RBE\n(currently just Bazel itself: for example\nhttps://buildkite.com/bazel/bazel-at-head-plus-downstream/builds/5517/list?sid\u003d019e90d4-7293-4dbe-bc2f-b581c15d379b\u0026tab\u003doutput)\n\nThe reason is that, when the downstream pipeline builds Bazel at HEAD,\nit supplies a fake embed label\n([code](https://github.com/bazelbuild/continuous-integration/blob/b5ad6d8958275f2ed873df9a5e2c834b0cad22b6/buildkite/bazelci.py#L1541)).\nThis fake label is synthesized, and looks something like\n`10.0.0-pre-\u003ccommit_hash\u003e`. The RBE config generator then tries to fetch\nthis nonexistent Bazel version from Bazelisk, running into the error\nreported above.\n\nThis fix sets the `RBE_CONFIG_BAZEL_PATH` for all downstream jobs that\nuse this \"Bazel built from HEAD\". This environment variable tells the\nRBE config generator to just use this Bazel instead of fetching\nsomething from Bazelisk, which should fix the error."
    },
    {
      "commit": "b5ad6d8958275f2ed873df9a5e2c834b0cad22b6",
      "tree": "5b3de27996b74c1c4f7d2bfe5621ef83ceb64fe3",
      "parents": [
        "a97eae0cd2269343118f37c6a77c0673e6f21d1c"
      ],
      "author": {
        "name": "Xùdōng Yáng",
        "email": "wyverald@gmail.com",
        "time": "Wed Jun 03 17:59:06 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 17:59:06 2026 -0400"
      },
      "message": "BCR Presubmit: Use `bazel run` to run the BCR validation script\n\nWould\u0027ve caught https://github.com/bazelbuild/bazel-central-registry/pull/9106#issuecomment-4614743467"
    },
    {
      "commit": "a97eae0cd2269343118f37c6a77c0673e6f21d1c",
      "tree": "26662921f617ac0bfad959f2598304f1b59dce2b",
      "parents": [
        "3100f01658c397e2f8f4814c762d476c36595021"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Wed Jun 03 14:02:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 14:02:07 2026 +0200"
      },
      "message": "Split \"get_org_metrics\" into smaller functions (#2663)"
    },
    {
      "commit": "3100f01658c397e2f8f4814c762d476c36595021",
      "tree": "e8e5b9e4f2b662ac77c7a4de16886f3e9ccba319",
      "parents": [
        "bf621e39f65e4f2183fa694aac6921651e503aec"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Wed Jun 03 13:19:28 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 13:19:28 2026 +0200"
      },
      "message": "Fix Buildkite scheduled job api (#2662)\n\nThe old API call returned scheduled builds, but the script counted them\nas jobs.\n\nFix: The script now checks the nested \"jobs\" array within all active\n(scheduled/running) builds and counts only the individual jobs that are\nin the \"scheduled\" state."
    },
    {
      "commit": "bf621e39f65e4f2183fa694aac6921651e503aec",
      "tree": "8131f53b88d94adeccda9b58bccf666f984806dd",
      "parents": [
        "0f1cad0c11a5f70c1ac4bc0d3fc03392a7bd24d5"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Wed Jun 03 00:27:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 00:27:31 2026 +0200"
      },
      "message": "Bring back CentOS hack. (#2661)\n\nIt was removed in\nhttps://github.com/bazelbuild/continuous-integration/pull/2630, but\nthere are still 20ish configs that use the centos7 platform, thus\nbreaking BCR Bazel Compatibility Test:\nhttps://buildkite.com/bazel/bcr-bazel-compatibility-test/builds/1041\n\nThis is a temporary solution - eventually we should migrate all configs\nvia https://github.com/bazelbuild/bazel-central-registry/pull/9102"
    },
    {
      "commit": "0f1cad0c11a5f70c1ac4bc0d3fc03392a7bd24d5",
      "tree": "3b57f61e70e7010d112fa2ab5be02f6793ad111b",
      "parents": [
        "f5bfccddd5dc0dc13451d2ccaa809f96f2b18557"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Mon Jun 01 11:41:17 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 15:41:17 2026 +0000"
      },
      "message": "Revert \"Revert \"Fix cross-project secret access.\"\" (#2657)\n\nReverts bazelbuild/continuous-integration#2656\n\nThis is actually probably not the root cause."
    },
    {
      "commit": "f5bfccddd5dc0dc13451d2ccaa809f96f2b18557",
      "tree": "b0c66bc2e63a9c5dd86aa214819f925f893d6acb",
      "parents": [
        "52827e78019cab4c99aff73637887b6264a60720"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Mon Jun 01 11:36:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 11:36:39 2026 -0400"
      },
      "message": "Revert \"Fix cross-project secret access.\" (#2656)\n\nReverts bazelbuild/continuous-integration#2654\n\nPossibly causing MacOS BazelCI presubmit to error out. See\nhttps://buildkite.com/bazel/bazel-bazel/builds/35648#019e838f-e442-4cd2-aaed-05773afd0551."
    },
    {
      "commit": "52827e78019cab4c99aff73637887b6264a60720",
      "tree": "3b57f61e70e7010d112fa2ab5be02f6793ad111b",
      "parents": [
        "adedcc9ce81c9ef0da1760fb8c658e009fbe15d5"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Mon Jun 01 15:05:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 15:05:10 2026 +0200"
      },
      "message": "Fix cross-project secret access. (#2654)"
    },
    {
      "commit": "adedcc9ce81c9ef0da1760fb8c658e009fbe15d5",
      "tree": "b0c66bc2e63a9c5dd86aa214819f925f893d6acb",
      "parents": [
        "23ed43b8894cb4cfc617ae4cca0d6669e0103755"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Mon Jun 01 14:00:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 14:00:09 2026 +0200"
      },
      "message": "Strip Buildkite token from URLs in error messages (#2651)\n\nCo-authored-by: Salma Samy \u003c16399431+SalmaSamy@users.noreply.github.com\u003e"
    },
    {
      "commit": "23ed43b8894cb4cfc617ae4cca0d6669e0103755",
      "tree": "25568f1f022db67c76e7541cfb1ec544c8e8ee71",
      "parents": [
        "8fae15fdb0532109a35cae0ca16041fc424c0a9b"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Mon Jun 01 13:52:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 13:52:38 2026 +0200"
      },
      "message": "Use correct org for fetching token secret (#2652)"
    },
    {
      "commit": "8fae15fdb0532109a35cae0ca16041fc424c0a9b",
      "tree": "09ff800ec91f6ab0bd40808aec040f7e7efa5d3d",
      "parents": [
        "98c10ec151734e0ebfea1438e606a5a350e277ae"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Fri May 29 23:47:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 17:47:24 2026 -0400"
      },
      "message": "Fetch BuildkiteClient tokens from Secret Manager. (#2648)\n\nThis change does not improve security directly. However, it makes it\neasier to rotate tokens.\n\nWe should also migrate the analytics tokens and get rid of all encrypted\nfiles in GCS buckets.\n\nTested:\nhttps://buildkite.com/bazel-testing/bazel-bazel/builds/9788#019e7577-f4cd-47de-b522-aa3eeab3408d"
    },
    {
      "commit": "98c10ec151734e0ebfea1438e606a5a350e277ae",
      "tree": "a00800b5e6e3e2beed0bc82d1d69df98c088326b",
      "parents": [
        "3d8663cb5406076255c6865af23cb85d6eff5c35"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Thu May 28 20:10:35 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 14:10:35 2026 -0400"
      },
      "message": "Always fail on Mintlify parsing errors (#2646)\n\nFor some reason Mintlify CLI returns 0 even when parsing errors exist -\nthis is likely the case when these errors appear in files that are not\n(yet) referenced by docs.json."
    },
    {
      "commit": "3d8663cb5406076255c6865af23cb85d6eff5c35",
      "tree": "21584ea0f4d418bce63a0672be50535fca7e0244",
      "parents": [
        "b0f59b964df3445997bd0bae2b68c439f138f88c"
      ],
      "author": {
        "name": "Xùdōng Yáng",
        "email": "wyverald@gmail.com",
        "time": "Wed May 27 11:49:06 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 15:49:06 2026 +0000"
      },
      "message": "BCR PR reviewer: properly deal with user renames (#2629)\n\nWe\u0027re currently querying GitHub with the maintainer\u0027s username to see\nwhether it matches the user ID. This doesn\u0027t work when the user has been\nrenamed. Instead, we can use the user ID to query for the up-to-date\nusername, and post a comment to the PR in case of a mismatch.\nEffectively, this treats the user ID as the source of truth, which is\nmore stable and secure anyway.\n\nTested at https://github.com/Wyverald/bazel-central-registry/pull/1"
    },
    {
      "commit": "b0f59b964df3445997bd0bae2b68c439f138f88c",
      "tree": "1f4dc6c01c5d47ef764a4805e608120e52d47408",
      "parents": [
        "426a2e8906b6a61100428bb33530aa44f62fab91"
      ],
      "author": {
        "name": "KarolinaKalin",
        "email": "160865751+KarolinaKalin@users.noreply.github.com",
        "time": "Wed May 27 17:45:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 15:45:10 2026 +0000"
      },
      "message": "Update nginx.conf (#2643)"
    },
    {
      "commit": "426a2e8906b6a61100428bb33530aa44f62fab91",
      "tree": "174690a0d4bef6a0b6d83b63f23bacda25f4f751",
      "parents": [
        "4fea9a2b66c6bad8b440fe637e4c6f9a23118afe"
      ],
      "author": {
        "name": "Chi Wang",
        "email": "chiwang@google.com",
        "time": "Wed May 27 13:45:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 13:45:14 2026 +0200"
      },
      "message": "Release bazel_ci_rules 2.0.0 (#2645)\n\n# Release Notes: `bazel_ci_rules` v2.0.0 🚀\n`bazel_ci_rules` v2.0.0 is a major release introducing **fully dynamic,\non-the-fly Remote Build Execution (RBE) toolchain generation**,\neliminating the need for pre-generated configs stored in GCS.\n## 🌟 Key Highlights\n* **Dynamic RBE Toolchain Bootstrapper**: Compiles `rbe_configs_gen`\non-the-fly and generates toolchain configs dynamically inside\nDocker-out-of-Docker (DooD). Maintenance-free and compatible with any\nBazel version.\n* **First-Class Bzlmod Support**: Fully compatible with Bazel\u0027s new\npackage management system via the `rbe_config_extension` module\nextension.\n* **Decoupled Presets (`rbe_presets.json`)**: Toolchain presets are\nfetched dynamically from `master` at runtime, enabling configuration\nupdates without ruleset pin bumps.\n* **Intelligent Bazel Version Detection**: Automatically detects the\nrunning Bazel version (`native.bazel_version`) and respects the\n`BAZEL_REAL` environment variable.\n---\n## 🛠 Quick Start \u0026 Usage\n### Bzlmod (Bazel 8+)\n```bazel\nbazel_dep(name \u003d \"bazel_ci_rules\", version \u003d \"2.0.0\")\nrbe \u003d use_extension(\"@bazel_ci_rules//:rbe_config.bzl\", \"rbe_config_extension\")\nrbe.config(name \u003d \"rbe_ubuntu\", preset \u003d \"ubuntu\")\nuse_repo(rbe, \"rbe_ubuntu\")\n```\n### Legacy WORKSPACE\n```python\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nhttp_archive(\n    name \u003d \"bazel_ci_rules\",\n    strip_prefix \u003d \"continuous-integration-rules-2.0.0\",\n    url \u003d \"https://github.com/bazelbuild/continuous-integration/releases/download/rules-2.0.0/bazel_ci_rules-2.0.0.tar.gz\",\n)\nload(\"@bazel_ci_rules//:rbe_config.bzl\", \"rbe_config\")\nrbe_config(name \u003d \"rbe_ubuntu\", preset \u003d \"ubuntu\")\n```\n---\nThank you to everyone who contributed to this release, especially\n@coeuvre, @milundy, and @mmorel35!"
    },
    {
      "commit": "4fea9a2b66c6bad8b440fe637e4c6f9a23118afe",
      "tree": "cc3f9c8baf52e9c61efc8610972129fa494fe239",
      "parents": [
        "09dc240673dc2247db8d36e7985e80bb10905af6"
      ],
      "author": {
        "name": "Chi Wang",
        "email": "chiwang@google.com",
        "time": "Wed May 27 08:52:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 06:52:40 2026 +0000"
      },
      "message": "install docker on ubuntu2404 (#2642)\n\nso that we can use rules/rbe_config to generate rbe toolchains\ndynamically."
    },
    {
      "commit": "09dc240673dc2247db8d36e7985e80bb10905af6",
      "tree": "9864c73b5a6285cbb48795f40f7f90ec9c56fa90",
      "parents": [
        "0fd2a39dee6b4faf8804762eaa589f5c2ae85d1c"
      ],
      "author": {
        "name": "UebelAndre",
        "email": "github@uebelandre.com",
        "time": "Tue May 26 11:52:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 14:52:14 2026 -0400"
      },
      "message": "Update llvm-project-redist repo URL (#2644)\n\nRelates to\nhttps://github.com/bazelbuild/continuous-integration/pull/2594"
    },
    {
      "commit": "0fd2a39dee6b4faf8804762eaa589f5c2ae85d1c",
      "tree": "b6a1c6777f24bd9d5decd4079841c156327cbab9",
      "parents": [
        "b493d6a78787bf5915db22a00f09ded208611a93"
      ],
      "author": {
        "name": "Chi Wang",
        "email": "chiwang@google.com",
        "time": "Tue May 26 10:06:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 08:06:22 2026 +0000"
      },
      "message": "rbe_config: Detect native.bazel_version and support BAZEL_REAL (#2639)\n\n- Automatically detect the running Bazel version via\n`native.bazel_version` inside the repository rule `_rbe_config_impl`.\n- If detected, pass it as `--bazel_version` to `rbe_configs_gen`,\navoiding copying host binaries into the container.\n- Fallback to locating host Bazel path (via system `PATH` scan) and\npassing `--host_bazel_path` if version detection fails.\n- Added native support for `BAZEL_REAL` environment variable (often set\nby wrappers like Bazelisk) to locate the host Bazel binary.\n- Established a clear precedence lookup strategy:\n  1. `RBE_CONFIG_BAZEL_PATH` (explicit user override)\n  2. `BAZEL_REAL` (auto-detected real path)\n  3. `native.bazel_version` (auto-detected version)\n  4. System `PATH` scan (fallback)"
    },
    {
      "commit": "b493d6a78787bf5915db22a00f09ded208611a93",
      "tree": "b6f0c1db4df412f283d8e28b7ca4e0212099d5df",
      "parents": [
        "b03aa421397d77d70f3e533a61143de59f22255b"
      ],
      "author": {
        "name": "Chi Wang",
        "email": "chiwang@google.com",
        "time": "Fri May 22 19:15:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 17:15:22 2026 +0000"
      },
      "message": "update release-rules workflow to release `bazel_ci_rules` artifact (#2638)\n\nto align with the rule name."
    },
    {
      "commit": "b03aa421397d77d70f3e533a61143de59f22255b",
      "tree": "b1f610f56fb6a8b2af481d82183ca1871ad49465",
      "parents": [
        "a632b204a3192cc52f05e37bd9b06ce06cb7b6e4"
      ],
      "author": {
        "name": "Chi Wang",
        "email": "chiwang@google.com",
        "time": "Fri May 22 10:14:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 10:14:40 2026 +0200"
      },
      "message": "Dynamic RBE Toolchain Bootstrapper (#2635)\n\n- Discards deprecated GCS bucket pre-generation and implements\non-the-fly compilation of rbe_configs_gen via Docker-out-of-Docker\n(DooD) sibling container.\n- Introduces the rules/rbe_presets.json dynamic presets mapping on the\nmaster branch, providing zero-configuration upgrades without changing\nrule pins.\n- Provides the rbe_config repository rule/macro and rbe_config_extension\nmodule extension."
    },
    {
      "commit": "a632b204a3192cc52f05e37bd9b06ce06cb7b6e4",
      "tree": "3705b715bf6623f8e80d31592168ef894cdb27a0",
      "parents": [
        "8b5273769c345dda046c1139bb50067107be9ddd"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Thu May 21 23:53:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 23:53:41 2026 +0200"
      },
      "message": "Update Mintlify CLI before every run (#2637)"
    },
    {
      "commit": "8b5273769c345dda046c1139bb50067107be9ddd",
      "tree": "1de71586e9a9695a1faa23ab2ce1994d79a04887",
      "parents": [
        "56f969a8812921ee47381412b7c6870893eab61a"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Thu May 21 19:28:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 19:28:45 2026 +0200"
      },
      "message": "Print mintlify version (#2636)"
    },
    {
      "commit": "56f969a8812921ee47381412b7c6870893eab61a",
      "tree": "5fca0046400e7582c645c558dcccdab4a1ac2ffd",
      "parents": [
        "b4839df333db666e70c40b4ada5df9ab11d2ee42"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu May 21 16:09:39 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 16:09:39 2026 +0200"
      },
      "message": "Bump ws and mint in /mintlify (#2632)\n\nBumps [ws](https://github.com/websockets/ws) to 8.20.1 and updates\nancestor dependency\n[mint](https://github.com/mintlify/mint/tree/HEAD/packages/mint). These\ndependencies need to be updated together.\n\nUpdates `ws` from 8.17.1 to 8.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/websockets/ws/releases\"\u003ews\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.20.1\u003c/h2\u003e\n\u003ch1\u003eBug fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an uninitialized memory disclosure issue in\n\u003ccode\u003ewebsocket.close()\u003c/code\u003e\n(c0327ec1).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eProviding a \u003ccode\u003eTypedArray\u003c/code\u003e (e.g. \u003ccode\u003eFloat32Array\u003c/code\u003e)\nas the \u003ccode\u003ereason\u003c/code\u003e argument for\n\u003ccode\u003ewebsocket.close()\u003c/code\u003e, rather than the supported string or\n\u003ccode\u003eBuffer\u003c/code\u003e types, caused\nuninitialized memory to be disclosed to the remote peer.\u003c/p\u003e\n\u003cpre lang\u003d\"js\"\u003e\u003ccode\u003eimport { deepStrictEqual } from \u0027node:assert\u0027;\nimport { WebSocket, WebSocketServer } from \u0027ws\u0027;\n\u003cp\u003econst wss \u003d new WebSocketServer(\n{ port: 0, skipUTF8Validation: true },\nfunction () {\nconst { port } \u003d wss.address();\nconst ws \u003d new WebSocket(\u003ccode\u003ews://localhost:${port}\u003c/code\u003e, {\nskipUTF8Validation: true\n});\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ews.on(\u0027close\u0027, function (code, reason) {\n  deepStrictEqual(reason, Buffer.alloc(80));\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e}\n);\u003c/p\u003e\n\u003cp\u003ewss.on(\u0027connection\u0027, function (ws) {\nws.close(1000, new Float32Array(20));\n});\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eThe issue was privately reported by \u003ca\nhref\u003d\"https://github.com/ChALkeR\"\u003eNikita Skovoroda\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e8.20.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded exports for the \u003ccode\u003ePerMessageDeflate\u003c/code\u003e class and\nutilities for the\n\u003ccode\u003eSec-WebSocket-Extensions\u003c/code\u003e and\n\u003ccode\u003eSec-WebSocket-Protocol\u003c/code\u003e headers (d3503c1f).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.19.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003ecloseTimeout\u003c/code\u003e option (\u003ca\nhref\u003d\"https://redirect.github.com/websockets/ws/issues/2308\"\u003e#2308\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandled a forthcoming breaking change in Node.js core\n(19984854).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/5d9b316230ea931532a6671cc450f18c11edd02f\"\u003e\u003ccode\u003e5d9b316\u003c/code\u003e\u003c/a\u003e\n[dist] 8.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/c0327ec15a54d701eb6ccefaa8bef328cfc03086\"\u003e\u003ccode\u003ec0327ec\u003c/code\u003e\u003c/a\u003e\n[security] Fix uninitialized memory disclosure in\n\u003ccode\u003ewebsocket.close()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/ce2a3d62437995a47e6056d485a33d21b6a8f867\"\u003e\u003ccode\u003ece2a3d6\u003c/code\u003e\u003c/a\u003e\n[ci] Test on node 26\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/58e45b872bb0f35a3edd553c27e105300a4f5bd0\"\u003e\u003ccode\u003e58e45b8\u003c/code\u003e\u003c/a\u003e\n[ci] Do not test on node 25\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/5f26c245231a4b018479a9269e8c3da4773fe42f\"\u003e\u003ccode\u003e5f26c24\u003c/code\u003e\u003c/a\u003e\n[ci] Run the lint step on node 24\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/843925544e2f4cffe445e0179947f56d6c5b608f\"\u003e\u003ccode\u003e8439255\u003c/code\u003e\u003c/a\u003e\n[dist] 8.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/d3503c1fd36a310985108f62b343bae18346ab67\"\u003e\u003ccode\u003ed3503c1\u003c/code\u003e\u003c/a\u003e\n[minor] Export the \u003ccode\u003ePerMessageDeflate\u003c/code\u003e class and header\nutils\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/3ee5349a0b1580f6e1f347b59ec3371011bd8481\"\u003e\u003ccode\u003e3ee5349\u003c/code\u003e\u003c/a\u003e\n[api] Convert the \u003ccode\u003eisServer\u003c/code\u003e and \u003ccode\u003emaxPayload\u003c/code\u003e\nparameters to options\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/91707b470ebd803aaa3fd1e896217740f39267d4\"\u003e\u003ccode\u003e91707b4\u003c/code\u003e\u003c/a\u003e\n[doc] Add missing space\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/websockets/ws/commit/8b553192268810a83253e2a4a39ac16768e75bb3\"\u003e\u003ccode\u003e8b55319\u003c/code\u003e\u003c/a\u003e\n[pkg] Update eslint to version 10.0.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/websockets/ws/compare/8.17.1...8.20.1\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mint` from 4.2.521 to 4.2.573\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/mintlify/mint/commits/HEAD/packages/mint\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/bazelbuild/continuous-integration/network/alerts).\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b4839df333db666e70c40b4ada5df9ab11d2ee42",
      "tree": "72a7efd30903830ce97e24ae896beb6e859da67d",
      "parents": [
        "a9148f613514122dd1584274e1eb039117cbb592"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Thu May 21 13:19:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 13:19:38 2026 +0200"
      },
      "message": "Remove CentOS7 fallback logic and clean up configurations (#2630)\n\nFollow up on the migration done in #2272: I Verified via the\ngs://bazel-centos-deprecation/ GCS bucket that **no** CentOS7 platform\nmapping has been triggered in over a year.\n\n* Removed the deprecated CentOS 7 platform redirection in bazelci.py and\nbcr_presubmit.py.\n* Deleted the unused log_deprecated_platform_usage function.\n* Updated the postsubmit-skymeld task to Rocky Linux 8.\n* Stop publishing Linux release binaries to legacy centos7 and\nubuntu1404 buckets.\n* Deleted bazel-release-arm64.yml file, which was forgotten after\ndeleting bazel-release-arm64 pipeline from Terraform\n[here](https://github.com/bazelbuild/continuous-integration/commit/e23c007c049ada891fe9caf2b690bd68802c949b#diff-eadc17d6dde68dd2fb3a36c531c6172a9a94d4d7004bdfe9b1f418c0fa639174L189)."
    },
    {
      "commit": "a9148f613514122dd1584274e1eb039117cbb592",
      "tree": "59c840d9bcb245cbf3e51acbbcbafbc9f21b5986",
      "parents": [
        "4023f792d9762a16b8973bdadecdbf299483f5c7"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Thu May 21 13:13:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 13:13:33 2026 +0200"
      },
      "message": "Fix terraform workflow (#2633)\n\nCombines \u0027all_changed_files\u0027 and \u0027deleted_files\u0027 in GHA with\nempty-checks to prevent crashes when files are deleted."
    },
    {
      "commit": "4023f792d9762a16b8973bdadecdbf299483f5c7",
      "tree": "5058bec6ffce0866ff973e180e03dd591635a2df",
      "parents": [
        "eed5faf3232c745698ab4b38b88e4db916ad32b8"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Thu May 21 12:48:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 12:48:43 2026 +0200"
      },
      "message": "Consider deleted files too inside the Terraform folder (#2631)"
    },
    {
      "commit": "eed5faf3232c745698ab4b38b88e4db916ad32b8",
      "tree": "8544896d52fa1453c67545397fc702d23afe62c9",
      "parents": [
        "0faa45605cafa89416b433b1e978e25da7fae90c"
      ],
      "author": {
        "name": "Lily Gorsheneva",
        "email": "bgorshenev@google.com",
        "time": "Wed May 20 13:28:03 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 15:28:03 2026 -0400"
      },
      "message": "Pass deleted_packages to blaze query for test resolution. (#2628)\n\nThis would be convenient for tests that need to run with specific\nversions of bazel or other rules for compatibility.\n\nA recent rules_cc change https://github.com/bazelbuild/rules_cc/pull/556\ntried to use it to exclude tests that would fail to parse under some\nblaze versions. However, this didn\u0027t get passed to the query and caused\nfailures anyway (these were presubmit-only, continuous integration ran\nfine, making it hard to debug (I assumed we had an inconsistency in our\nexported presubmit versions)).\n\nAs a workaround we wrap these rules in macros that check bazel_features.\nhttps://github.com/bazelbuild/rules_cc/commit/eed4b510fde0c8ddca659d575c21dc943d857d3a"
    },
    {
      "commit": "0faa45605cafa89416b433b1e978e25da7fae90c",
      "tree": "1466305b9a29ed714cb2e7dc23868430cc75ba4d",
      "parents": [
        "1e1317b07c538f2b4b18dc4ff7b29b3113c8e2c3"
      ],
      "author": {
        "name": "Chi Wang",
        "email": "chiwang@google.com",
        "time": "Tue May 19 14:16:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 12:16:10 2026 +0000"
      },
      "message": "rbe-configs: add ubuntu2204 for Bazel 9.1.0. (#2625)\n\naddress https://github.com/bazel-contrib/rules_python/pull/3778."
    },
    {
      "commit": "1e1317b07c538f2b4b18dc4ff7b29b3113c8e2c3",
      "tree": "4317adbef99b4a05c834aa51db7c9e4c7e026976",
      "parents": [
        "379c7512894b21d83dc1318d6506c94fae81e8f7"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Mon May 18 13:40:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 13:40:41 2026 +0200"
      },
      "message": "Generate and parse build bep file (#2614)\n\nGenerate build-bep-file and parse it to collect build data for CI\nmetrics.\nThis may cause a very small increase in the build time but will give us\ngood insights to the build metrics."
    },
    {
      "commit": "379c7512894b21d83dc1318d6506c94fae81e8f7",
      "tree": "7eab80bbcc57f6fef5ab38325a6761d7c36da6fb",
      "parents": [
        "1b8caecf96fc1242b5eb2b9942278152c4fb09a5"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Fri May 15 17:18:42 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 17:18:42 2026 -0400"
      },
      "message": "Make the BES result clickable (#2623)\n\nWe already upload the BEP to the GCP Build Event Service (BES) API. This\nchange makes the resulting Build Test eXplorer (BTX) page clickable.\n\n(dupe of #2622)\n\nExample BES result:\nhttps://btx.cloud.google.com/invocations/26a14903-0d90-4e77-9d3c-de4e4b264330/targets\n\nFrom\nhttps://buildkite.com/bazel/rules-android/builds/4498/canvas?sid\u003d019e2cdc-d098-447b-ad14-636d484f5788\u0026tab\u003doutput"
    },
    {
      "commit": "1b8caecf96fc1242b5eb2b9942278152c4fb09a5",
      "tree": "519f2e9001d0252fc20f95fed2d1fe49a90d8a18",
      "parents": [
        "4abfc06fbb6141560a439d4d3356f72f0a6caadd"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Thu May 14 15:02:55 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 19:02:55 2026 +0000"
      },
      "message": "Use updated `--bes_instance_name` flag (#2620)\n\nThe legacy `--project_id` flag was renamed to `--bes_instance_name` in\n2021, which is far outside of the 2 year Bazel LTS window. We should not\nbe testing Bazel binaries from ~2021 any more."
    },
    {
      "commit": "4abfc06fbb6141560a439d4d3356f72f0a6caadd",
      "tree": "7c98e2782c7ea2e8ba44a95fad7491ecb5cec2ef",
      "parents": [
        "1b6852a5c509dda5f8af1daf1a0cba1814ca599d"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Wed May 13 16:36:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 14:36:17 2026 +0000"
      },
      "message": "Skip auto review for PRs with more than 500 file changes (#2618)\n\nSkip auto review for PRs with more than 500 file changes."
    },
    {
      "commit": "1b6852a5c509dda5f8af1daf1a0cba1814ca599d",
      "tree": "ef9f35429e8872b1ef56f90ad3164877c5d07eab",
      "parents": [
        "6fafa6190df4b6935a2decf5a7c798b9adf06015"
      ],
      "author": {
        "name": "Chi Wang",
        "email": "chiwang@google.com",
        "time": "Wed May 13 10:31:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 08:31:47 2026 +0000"
      },
      "message": "rbe-configs: add more toolchains (#2617)"
    },
    {
      "commit": "6fafa6190df4b6935a2decf5a7c798b9adf06015",
      "tree": "97ce1beb0a393c725655a4a425e88895c10213ac",
      "parents": [
        "cc1d81ed0953f358df7827a3bb6e194019e4a414"
      ],
      "author": {
        "name": "deepalak56",
        "email": "deepalakshmib@google.com",
        "time": "Wed May 13 13:25:31 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 07:55:31 2026 +0000"
      },
      "message": "fix gh cli install permissions and cleanup release pipeline (#2616)\n\nSummary:\nThis change fixes permission and syntax errors in the release pipeline\nthat were blocking the installation of the GitHub CLI.\n\n  Key Changes:\n* Resolved Permissions: Added sudo to administrative commands (apt,\nmkdir, tee) in pipelines/bazel-release.yml to fix \"Permission denied\"\nerrors when creating /etc/apt/keyrings.\n\n* Corrected Escaping: Properly escaped shell variables (\\$(...)) to\nensure they execute inside the Docker container rather than being\ninterpolated by Buildkite.\n\n   * Pipeline Cleanup: \n* Removed the sed command that was dynamically modifying\nscripts/ci/build.sh, favoring a cleaner approach.\n\n* Syntax Fix: Corrected a line-break issue in the GitHub CLI repository\nconfiguration command.\n   \nfollowup to\nhttps://github.com/bazelbuild/continuous-integration/pull/2602/changes"
    },
    {
      "commit": "cc1d81ed0953f358df7827a3bb6e194019e4a414",
      "tree": "3c1b8eb648e6adc0c8cff9a8501a067f9f47c5e9",
      "parents": [
        "289e96230cc29a926231cd2023055fbb879db9e2"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Tue May 12 23:25:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 23:25:34 2026 +0200"
      },
      "message": "Rename BuildMetrics to BazelMetrics (#2615)\n\nThis class will later hold data for test and build so the new name is\nbetter for less confusion."
    },
    {
      "commit": "289e96230cc29a926231cd2023055fbb879db9e2",
      "tree": "2b14d51d1b77a3f5388c990f308f453fd020b26c",
      "parents": [
        "97d827836f07cd4ed29e9dfea723f240ff3f0a99"
      ],
      "author": {
        "name": "deepalak56",
        "email": "deepalakshmib@google.com",
        "time": "Tue May 12 15:19:20 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 11:49:20 2026 +0200"
      },
      "message": "ci: update Buildkite pipeline for GitHub CLI migration (#2602)\n\nPurpose\nThis PR updates the .buildkite/pipeline.yml configuration to support the\nmigration of our release scripts to the official GitHub CLI (gh).\n\nKey Changes\nTool Provisioning: The legacy ubuntu1804-java11 release image does not\nhave gh pre-installed. Added a step to securely install gh via the\nofficial apt repository before the release script executes.\n\nScript Patching: The previous pipeline used sed -i -e \u0027403,410d\u0027 to\nremove the GPG signing loop from build.sh. Because the release script\nhas been refactored, those line numbers are no longer accurate. This PR\nupdates the sed command to use content-based pattern matching (/rm\n-f.*sha256/,/done/d), making it immune to future line-number shifts.\n\nVariable Escaping: Ensured all Bash variables (\\${ARTIFACTS},\n\\${keyfile}) are properly escaped so they are evaluated at runtime\ninside the Docker container, not interpolated by Buildkite on the host.\n\nVerification\n[x] Verified gh installation commands for Ubuntu 18.04.\n\n[x] Confirmed sed regex accurately targets the correct code block in\nbuild.sh.\n\n[29452](https://github.com/bazelbuild/bazel/pull/29452) - Github CLI\nmigration for release"
    },
    {
      "commit": "97d827836f07cd4ed29e9dfea723f240ff3f0a99",
      "tree": "f40218d38c7eb585e0d33b14bde495e9682f4cf1",
      "parents": [
        "45ab36276a661ecd1e5168df550b6b9c783a7089"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon May 11 14:34:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 14:34:49 2026 -0400"
      },
      "message": "Bump urllib3 from 2.6.0 to 2.7.0 in /buildkite/docker/ubuntu1604 (#2610)\n\nBumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.0 to 2.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca\nhref\u003d\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3\nis raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure\nlong-term sustainable maintenance of the project after a sharp decline\nin financial support. If your company or organization uses Python and\nwould benefit from HTTP/2 support in Requests, pip, cloud SDKs, and\nthousands of other projects \u003ca\nhref\u003d\"https://opencollective.com/urllib3\"\u003eplease consider contributing\nfinancially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and\nmaintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003eAddressed high-severity security issues. Impact was limited to\nspecific use cases detailed in the accompanying advisories; overall user\nexposure was estimated to be marginal.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDecompression-bomb safeguards of the streaming API were bypassed:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eWhen \u003ccode\u003eHTTPResponse.drain_conn()\u003c/code\u003e was called after the\nresponse had been read and decompressed partially. (Reported by \u003ca\nhref\u003d\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDuring the second \u003ccode\u003eHTTPResponse.read(amt\u003dN)\u003c/code\u003e or\n\u003ccode\u003eHTTPResponse.stream(amt\u003dN)\u003c/code\u003e call when the response was\ndecompressed using the official \u003ca\nhref\u003d\"https://pypi.org/project/brotli/\"\u003eBrotli\u003c/a\u003e library. (Reported by\n\u003ca\nhref\u003d\"https://github.com/kimkou2024\"\u003e\u003ccode\u003e@​kimkou2024\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eSee GHSA-mf9v-mfxr-j63j for details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHTTP pools created using\n\u003ccode\u003eProxyManager.connection_from_url\u003c/code\u003e did not strip sensitive\nheaders specified in \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e when\nredirecting to a different host. (GHSA-qccp-gfcp-xxvc reported by \u003ca\nhref\u003d\"https://github.com/christos-spearbit\"\u003e\u003ccode\u003e@​christos-spearbit\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUsed \u003ccode\u003eFutureWarning\u003c/code\u003e instead of\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e for better visibility of existing\ndeprecation notices. Rescheduled the removal of deprecated features to\nversion 3.0. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3763\"\u003eurllib3/urllib3#3763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved support for end-of-life Python 3.9. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3720\"\u003eurllib3/urllib3#3720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved support for end-of-life PyPy3.10. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/4979\"\u003eurllib3/urllib3#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum supported pyOpenSSL version to 19.0.0. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3777\"\u003eurllib3/urllib3#3777\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eHTTPResponse.read(amt\u003dNone)\u003c/code\u003e was\nignoring decompressed data buffered from previous partial reads. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3636\"\u003eurllib3/urllib3#3636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eHTTPResponse.read()\u003c/code\u003e could cache only\npart of the response after a partial read when\n\u003ccode\u003ecache_content\u003dTrue\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/4967\"\u003eurllib3/urllib3#4967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.stream()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to handle \u003ccode\u003eamt\u003d0\u003c/code\u003e.\n(\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3793\"\u003eurllib3/urllib3#3793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003e_TYPE_BODY\u003c/code\u003e type alias to include missing\n\u003ccode\u003eIterable[str]\u003c/code\u003e, matching the documented and runtime behavior\nof chunked request bodies. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3798\"\u003eurllib3/urllib3#3798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eLocationParseError\u003c/code\u003e when paths resembling\nschemeless URIs were passed to\n\u003ccode\u003eHTTPConnectionPool.urlopen()\u003c/code\u003e. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3352\"\u003eurllib3/urllib3#3352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eBaseHTTPResponse.readinto()\u003c/code\u003e type annotation to\naccept \u003ccode\u003ememoryview\u003c/code\u003e in addition to \u003ccode\u003ebytearray\u003c/code\u003e,\nmatching the \u003ccode\u003eio.RawIOBase.readinto\u003c/code\u003e contract and enabling\nuse with \u003ccode\u003eio.BufferedReader\u003c/code\u003e without type errors. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3764\"\u003eurllib3/urllib3#3764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca\nhref\u003d\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3\nis raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure\nlong-term sustainable maintenance of the project after a sharp decline\nin financial support. If your company or organization uses Python and\nwould benefit from HTTP/2 support in Requests, pip, cloud SDKs, and\nthousands of other projects \u003ca\nhref\u003d\"https://opencollective.com/urllib3\"\u003eplease consider contributing\nfinancially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and\nmaintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the\nstreaming API were bypassed when HTTP redirects were followed.\n(CVE-2026-21441 reported by \u003ca\nhref\u003d\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High,\nGHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours\nas 6 hours by default. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on\nEmscripten. (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.7.0 (2026-05-07)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003eAddressed high-severity security issues.\nImpact was limited to specific use cases detailed in the accompanying\nadvisories; overall user exposure was estimated to be marginal.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDecompression-bomb safeguards of the streaming API were bypassed:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eWhen \u003ccode\u003eHTTPResponse.drain_conn()\u003c/code\u003e was called after the\nresponse had been\nread and decompressed partially.\u003c/li\u003e\n\u003cli\u003eDuring the second \u003ccode\u003eHTTPResponse.read(amt\u003dN)\u003c/code\u003e or\n\u003ccode\u003eHTTPResponse.stream(amt\u003dN)\u003c/code\u003e call when the response was\ndecompressed\nusing the official \u003ccode\u003eBrotli\n\u0026lt;https://pypi.org/project/brotli/\u0026gt;\u003c/code\u003e__ library.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eSee \u003ccode\u003eGHSA-mf9v-mfxr-j63j\n\u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-mf9v-mfxr-j63j\u0026gt;\u003c/code\u003e__\nfor details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHTTP pools created using\n\u003ccode\u003eProxyManager.connection_from_url\u003c/code\u003e did not strip\nsensitive headers specified in\n\u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e when\nredirecting to a different host.\n(\u003ccode\u003eGHSA-qccp-gfcp-xxvc\n\u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-qccp-gfcp-xxvc\u0026gt;\u003c/code\u003e__)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUsed \u003ccode\u003eFutureWarning\u003c/code\u003e instead of\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e for better\nvisibility of existing deprecation notices. Rescheduled the removal of\ndeprecated features to version 3.0.\n(\u003ccode\u003e[#3763](https://github.com/urllib3/urllib3/issues/3763)\n\u0026lt;https://github.com/urllib3/urllib3/issues/3763\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved support for end-of-life Python 3.9.\n(\u003ccode\u003e[#3720](https://github.com/urllib3/urllib3/issues/3720)\n\u0026lt;https://github.com/urllib3/urllib3/issues/3720\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved support for end-of-life PyPy3.10.\n(\u003ccode\u003e[#4979](https://github.com/urllib3/urllib3/issues/4979)\n\u0026lt;https://github.com/urllib3/urllib3/issues/4979\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eBumped the minimum supported pyOpenSSL version to 19.0.0.\n(\u003ccode\u003e[#3777](https://github.com/urllib3/urllib3/issues/3777)\n\u0026lt;https://github.com/urllib3/urllib3/issues/3777\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eHTTPResponse.read(amt\u003dNone)\u003c/code\u003e was\nignoring decompressed\ndata buffered from previous partial reads.\n(\u003ccode\u003e[#3636](https://github.com/urllib3/urllib3/issues/3636)\n\u0026lt;https://github.com/urllib3/urllib3/issues/3636\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eHTTPResponse.read()\u003c/code\u003e could cache only\npart of the\nresponse after a partial read when \u003ccode\u003ecache_content\u003dTrue\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/9a950b92d999f906b6020bb2d1076ee56cddd5d2\"\u003e\u003ccode\u003e9a950b9\u003c/code\u003e\u003c/a\u003e\nRelease 2.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/5ec0de499b9166ca71c65ab04f2a7e4eb0d66fcc\"\u003e\u003ccode\u003e5ec0de4\u003c/code\u003e\u003c/a\u003e\nMerge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/2bdcc44d1e163fb5cc48a8662425e35e15adfe6a\"\u003e\u003ccode\u003e2bdcc44\u003c/code\u003e\u003c/a\u003e\nMerge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/f45b0df09d8620ac6ed0491eb9362c8c87b7bc2c\"\u003e\u003ccode\u003ef45b0df\u003c/code\u003e\u003c/a\u003e\nFix a misleading example for \u003ccode\u003eProxyManager\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/577193ca029872384f82c133449e0935f6d8a64b\"\u003e\u003ccode\u003e577193c\u003c/code\u003e\u003c/a\u003e\nSwitch to nightly PyPy3.11 in CI for now (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/e90af45bb006c3a452a3a21644a2681523f5c7fc\"\u003e\u003ccode\u003ee90af45\u003c/code\u003e\u003c/a\u003e\nAvoid infinite loop in \u003ccode\u003eHTTPResponse.read_chunked\u003c/code\u003e when\n\u003ccode\u003eamt\u003d0\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/4974\"\u003e#4974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/67ed74fdaec6659a6534621ec8e3aaaa6f976210\"\u003e\u003ccode\u003e67ed74f\u003c/code\u003e\u003c/a\u003e\nBump dev dependencies (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/4972\"\u003e#4972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/3abd481097b54d87b574ac7ea593c3f40938a84d\"\u003e\u003ccode\u003e3abd481\u003c/code\u003e\u003c/a\u003e\nUpgrade mypy to version 1.20.2 (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/2b8725dfcac4f21d4d93cc0cc3a64a33af08f890\"\u003e\u003ccode\u003e2b8725d\u003c/code\u003e\u003c/a\u003e\nDrop support for EOL PyPy3.10 (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/commit/2944b2a0a6c573f5548a39cfd17196f98ee21b33\"\u003e\u003ccode\u003e2944b2a\u003c/code\u003e\u003c/a\u003e\nUpgrade \u003ccode\u003esetup-chrome\u003c/code\u003e and \u003ccode\u003esetup-firefox\u003c/code\u003e to fix\nwarnings (\u003ca\nhref\u003d\"https://redirect.github.com/urllib3/urllib3/issues/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/urllib3/urllib3/compare/2.6.0...2.7.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003durllib3\u0026package-manager\u003dpip\u0026previous-version\u003d2.6.0\u0026new-version\u003d2.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/bazelbuild/continuous-integration/network/alerts).\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "45ab36276a661ecd1e5168df550b6b9c783a7089",
      "tree": "ad8923cc878191450394e2bb4221a9d4f37283d1",
      "parents": [
        "5b6db2b1d4727e569ace54d766f3b4a81c9dbed3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat May 09 19:30:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 09 19:30:07 2026 +0200"
      },
      "message": "Bump fast-uri from 3.1.0 to 3.1.2 in /mintlify (#2609)\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to\n3.1.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/releases\"\u003efast-uri\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.2\u003c/h2\u003e\n\u003ch2\u003e⚠️ Security Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix for \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/security/advisories/GHSA-v39h-62p7-jpjc\"\u003ehttps://github.com/fastify/fast-uri/security/advisories/GHSA-v39h-62p7-jpjc\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed fragment decoding as a parse error by \u003ca\nhref\u003d\"https://github.com/mcollina\"\u003e\u003ccode\u003e@​mcollina\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/171\"\u003efastify/fast-uri#171\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/compare/v3.1.1...v3.1.2\"\u003ehttps://github.com/fastify/fast-uri/compare/v3.1.1...v3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1.1\u003c/h2\u003e\n\u003ch2\u003e⚠️ Security Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix for \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/security/advisories/GHSA-q3j6-qgpj-74h6\"\u003ehttps://github.com/fastify/fast-uri/security/advisories/GHSA-q3j6-qgpj-74h6\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump tsd from 0.32.0 to 0.33.0 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/148\"\u003efastify/fast-uri#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/149\"\u003efastify/fast-uri#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(.npmrc): ignore scripts by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/150\"\u003efastify/fast-uri#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): remove \u003ccode\u003e@​fastify/pre-commit\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/151\"\u003efastify/fast-uri#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 4 to 5 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/152\"\u003efastify/fast-uri#152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(ci): add concurrency config by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/153\"\u003efastify/fast-uri#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 5 to 6 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/154\"\u003efastify/fast-uri#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 5 to 6 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/156\"\u003efastify/fast-uri#156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(license): standardise license notice by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/159\"\u003efastify/fast-uri#159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003estyle: remove trailing whitespace by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/161\"\u003efastify/fast-uri#161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: remove unused github files by \u003ca\nhref\u003d\"https://github.com/Tony133\"\u003e\u003ccode\u003e@​Tony133\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/162\"\u003efastify/fast-uri#162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update readme by \u003ca\nhref\u003d\"https://github.com/Tony133\"\u003e\u003ccode\u003e@​Tony133\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/164\"\u003efastify/fast-uri#164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump\nfastify/workflows/.github/workflows/plugins-ci-package-manager.yml from\n5 to 6 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/165\"\u003efastify/fast-uri#165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump fastify/workflows/.github/workflows/plugins-ci.yml\nfrom 5 to 6 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/166\"\u003efastify/fast-uri#166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump neostandard from 0.12.2 to 0.13.0 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/167\"\u003efastify/fast-uri#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add lock-threads workflow by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/169\"\u003efastify/fast-uri#169\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Tony133\"\u003e\u003ccode\u003e@​Tony133\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/162\"\u003efastify/fast-uri#162\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.1\"\u003ehttps://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/919dd8ea7689fcc220d0d9b71307f5095e723ef9\"\u003e\u003ccode\u003e919dd8e\u003c/code\u003e\u003c/a\u003e\nBumped v3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/c65ba573714af6b8e19e481d9444c27bc4355d07\"\u003e\u003ccode\u003ec65ba57\u003c/code\u003e\u003c/a\u003e\nfixup: linting\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/6c86c17c3d76fb93aa3700ec6c0fa00faeb97293\"\u003e\u003ccode\u003e6c86c17\u003c/code\u003e\u003c/a\u003e\nMerge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/a95158ad308df4d92bbde4eba699ce5165e9f796\"\u003e\u003ccode\u003ea95158a\u003c/code\u003e\u003c/a\u003e\nHandle malformed fragment decoding without throwing (\u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/issues/171\"\u003e#171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/cea547c91c6aae610041b17b75792ca4aa035a6d\"\u003e\u003ccode\u003ecea547c\u003c/code\u003e\u003c/a\u003e\nBumped v3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/876ce79b662c3e5015e4e7dffe6f37752ad34f35\"\u003e\u003ccode\u003e876ce79\u003c/code\u003e\u003c/a\u003e\nMerge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/dcdf690b71a7bb3a19887ada65a9ab160d83bcc0\"\u003e\u003ccode\u003edcdf690\u003c/code\u003e\u003c/a\u003e\nci: add lock-threads workflow (\u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/issues/169\"\u003e#169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/c860e6589b1ac346f66e114b4eadb9613768108c\"\u003e\u003ccode\u003ec860e65\u003c/code\u003e\u003c/a\u003e\nbuild(deps-dev): bump neostandard from 0.12.2 to 0.13.0 (\u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/9b4c6dc82fde0ca44e674403ece9185d85bb6d5f\"\u003e\u003ccode\u003e9b4c6dc\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump fastify/workflows/.github/workflows/plugins-ci.yml (\u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/85d09a9f7aa76b32c2bb005a90a71e144c361d24\"\u003e\u003ccode\u003e85d09a9\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump\nfastify/workflows/.github/workflows/plugins-ci-package-mana...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5b6db2b1d4727e569ace54d766f3b4a81c9dbed3",
      "tree": "31e88b19c50223462b0114f65406ba0f1d80d663",
      "parents": [
        "653da2ad781615b3f5bbf27757e8b71a9734624d"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Sat May 09 17:13:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 09 17:13:04 2026 +0200"
      },
      "message": "Fix DOCS_DIR env variable (#2606)"
    },
    {
      "commit": "653da2ad781615b3f5bbf27757e8b71a9734624d",
      "tree": "03fd869879ec3ed94afe8a641e7dde8818f7b767",
      "parents": [
        "06dd289b31f7ccfd6e8afc825ef172950092ed60"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Fri May 08 12:12:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 12:12:06 2026 +0200"
      },
      "message": "Print cwd for easier debugging (#2607)"
    },
    {
      "commit": "06dd289b31f7ccfd6e8afc825ef172950092ed60",
      "tree": "cd75ff9ee84306097fdc1d91396b8d49ecf567ba",
      "parents": [
        "58ebd08bd01c908af8f41abefd600b3d9b29f622"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Thu May 07 21:37:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 21:37:41 2026 +0200"
      },
      "message": "Fix typo (#2605)"
    },
    {
      "commit": "58ebd08bd01c908af8f41abefd600b3d9b29f622",
      "tree": "957b2ffa113e77049a71e1794c3e9da0e4b8a50b",
      "parents": [
        "e23c007c049ada891fe9caf2b690bd68802c949b"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Thu May 07 18:13:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 18:13:52 2026 +0200"
      },
      "message": "Limit github checkout time in bazel-testing org (#2604)\n\nAdding variables to the environment to limit git minimum speed:\nGIT_HTTP_LOW_SPEED_LIMIT: \"102400\" (Sets a minimum speed threshold of\n100 KB/s)\nGIT_HTTP_LOW_SPEED_TIME: \"180\" (Sets a time limit of 180 seconds / 3\nminutes)\n\nIf the Git download speed drops below 100 KB/s for a continuous 3\nminutes during the checkout phase, Git will automatically abort the\noperation and fail the build. This prevents the job from hanging\nindefinitely on a stalled or extremely slow network connection in the\n\"Preparing working directory\" step."
    },
    {
      "commit": "e23c007c049ada891fe9caf2b690bd68802c949b",
      "tree": "a1d04f426f0bd2c1dcc536108268e7fffa3d5331",
      "parents": [
        "7962132e684312aa0ebfc52c67d2d90dafadfc67"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Wed May 06 14:28:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 14:28:12 2026 +0200"
      },
      "message": "Delete redundant pipelines (#2600)\n\nDelete pipelines according to [this\ndoc](https://docs.google.com/document/d/1dEErVjbBPlaoYsc9idJGcP4qAicsnf0V_n_JGKQcHhA/edit?tab\u003dt.0#heading\u003dh.8jsaf2ycnl9s)"
    },
    {
      "commit": "7962132e684312aa0ebfc52c67d2d90dafadfc67",
      "tree": "ed0a85d0d5b144aafef47a72a7c8180e8f67c080",
      "parents": [
        "1151216eb780ffc4bc43956513b9cf22c7dcf7bc"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Wed May 06 14:23:57 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 14:23:57 2026 +0200"
      },
      "message": "Enable metrics for presubmit \u0026 fix llvm-project setup (#2601)\n\n- Enable metrics for presubmit\n- Fix llvm project setup"
    },
    {
      "commit": "1151216eb780ffc4bc43956513b9cf22c7dcf7bc",
      "tree": "7feeebc23c9e4f708273356f56387f9936c70aaa",
      "parents": [
        "8e39c913e35bc4e9a76f5665b59614ace18e0f11"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Wed May 06 11:44:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 11:44:04 2026 +0200"
      },
      "message": "Remove deprecated ubuntu1804 task from pipeline\n\nRemoved deprecated ubuntu1804 task and its configurations."
    },
    {
      "commit": "8e39c913e35bc4e9a76f5665b59614ace18e0f11",
      "tree": "0b969507cc426bcaa715c70ef7c053276705635c",
      "parents": [
        "9681263f9079f38065d141062e12326de308547b"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Mon May 04 19:42:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 19:42:43 2026 +0200"
      },
      "message": "Add organization to metrics table  (#2599)"
    },
    {
      "commit": "9681263f9079f38065d141062e12326de308547b",
      "tree": "d875a1f6b412f0cdb0cfccc79d120e45a922b0cf",
      "parents": [
        "553ae009e24397ff44e15ccc6a2fac3fd297625d"
      ],
      "author": {
        "name": "deepalak56",
        "email": "deepalakshmib@google.com",
        "time": "Mon May 04 19:14:36 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 13:44:36 2026 +0000"
      },
      "message": "Fix: Prevent Docker \u0027latest\u0027 tag regression on older maintenance releases (#2598)\n\nProblem:\n\nThe Docker tagging logic was blindly following GitHub\u0027s \"latest\"\nredirect. When an older maintenance patch (e.g., 8.7.0) was released\nafter a newer major version (e.g., 9.1.0), the Docker latest tag would\nincorrectly regress to the older version.\n\nSolution:\n\nIntroduced a semantic version check using sort -V. The script now\ncompares the current build version against the GitHub \"latest\" version\nand only updates the Docker latest tag if the current build is\nsemantically greater than or equal to the version on GitHub.\n\nImpact:\n\n   - bazel:latest is guaranteed to point to the highest version number.\n- Maintenance releases for older branches will no longer \"hijack\" the\nlatest tag.\n   - Eliminates manual tag corrections after legacy branch updates.\n\nPR https://github.com/bazelbuild/continuous-integration/pull/2598\n(Continuous-integration): Fixes the Docker Registry (bazel:latest tag).\nPR https://github.com/bazelbuild/bazel/pull/29452 (Bazel): Fixes the\nGitHub Releases Page (the green \"Latest\" badge)."
    },
    {
      "commit": "553ae009e24397ff44e15ccc6a2fac3fd297625d",
      "tree": "9bedf7e1926571956cd76481d8179c7cd87f36f5",
      "parents": [
        "ee5ba8422a610abe834d379252881d903890d560"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Mon May 04 09:30:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 15:30:54 2026 +0200"
      },
      "message": "All terraform configs have -euo pipefail (#2597)\n\nFixes #2441.\n\nSee this successful run in bazel-testing:\n\nhttps://buildkite.com/bazel-testing/bazel-bazel/builds/9702#019dd4b0-7877-45e8-93c2-31f3201475e1\n\nAnd see this example of a bad yml edit failing BazelCI in rules_android,\nwhich was the pilot repo for prod pipefail:\n\nhttps://buildkite.com/bazel/rules-android/builds/4450#019ddf2c-a635-4fde-a3a8-b8426ead7448"
    },
    {
      "commit": "ee5ba8422a610abe834d379252881d903890d560",
      "tree": "40166ddcebb797eb94a4cf489e156881ce318ffb",
      "parents": [
        "249bf944a01c73c3c12c925d594ba8ed1c146194"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Thu Apr 30 16:08:23 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 16:08:23 2026 +0200"
      },
      "message": "Add llvm-project-redist pipeline (#2594)\n\nThis PR adds the https://github.com/UebelAndre/llvm-project-redist\nrepository as a new pipeline for the bazel organization in Terraform.\nThis PR is created from a branch pushed directly to the origin\nrepository."
    },
    {
      "commit": "249bf944a01c73c3c12c925d594ba8ed1c146194",
      "tree": "d3e08f9fa9c2f338e34b4397776106a4224985d1",
      "parents": [
        "983681bb6ac2ae9db0d61137fb10833a41a10aa5"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Thu Apr 30 08:29:10 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 12:29:10 2026 +0000"
      },
      "message": "Android CI: No google Android presubmit, set pipefail for rules_android prod (#2592)\n\n* Remove improperly configured Google Android presubmit\n* Enable pipefail experiment for rules_android BazelCI."
    },
    {
      "commit": "983681bb6ac2ae9db0d61137fb10833a41a10aa5",
      "tree": "2bec5ea08f1f84cb7b9c8416a0603f8336f2d741",
      "parents": [
        "65f410ff42f3e2bbbf638cb73a717dd94b8d9123"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Thu Apr 30 14:01:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 14:01:00 2026 +0200"
      },
      "message": "actions/bcr-pr-reviewer: Update PR activity filter to 6 hours (#2596)\n\nThis PR updates the review_prs action type to only review PRs that have\nhad activity in the past 6 hours."
    },
    {
      "commit": "65f410ff42f3e2bbbf638cb73a717dd94b8d9123",
      "tree": "77d1bc98af2b58e9d4dd85d28af1ddc473776e46",
      "parents": [
        "da613edea5beabf9fab79fb7e8577bf46a21f3e8"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Tue Apr 28 10:49:02 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 10:49:02 2026 -0400"
      },
      "message": "Explicitly call /bin/bash for bazelci.py step (#2590)\n\n/bin/sh doesn\u0027t accept `set -o pipefail`.\n\nPart of #2441."
    },
    {
      "commit": "da613edea5beabf9fab79fb7e8577bf46a21f3e8",
      "tree": "ac5d38f9b9c82dbf7ed1b61c356a6ab2d29bcd89",
      "parents": [
        "d278956fd70b42a482f3839ccf77fbb35b211d48"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Tue Apr 28 15:09:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 15:09:56 2026 +0200"
      },
      "message": "Revert \"Migrate from gsutil to gcloud storage\" (#2589)\n\nReverts bazelbuild/continuous-integration#2588\n\nNo way to prevent `gcloud storage rsync` from patching metadata for all\nBCR files..."
    },
    {
      "commit": "d278956fd70b42a482f3839ccf77fbb35b211d48",
      "tree": "bbae31bdfff391796905537bcf432666e9cd43cf",
      "parents": [
        "64e3cf61b3c19251b3deb57c1b9b7db597158a8f"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Tue Apr 28 14:37:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 12:37:50 2026 +0000"
      },
      "message": "Migrate from gsutil to gcloud storage (#2588)\n\nRollforward\nhttps://github.com/bazelbuild/continuous-integration/pull/2587"
    },
    {
      "commit": "64e3cf61b3c19251b3deb57c1b9b7db597158a8f",
      "tree": "ac5d38f9b9c82dbf7ed1b61c356a6ab2d29bcd89",
      "parents": [
        "708d7b86b8d6007791d76b0f6aaa60abef34f971"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Tue Apr 28 13:59:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 13:59:05 2026 +0200"
      },
      "message": "Revert \"Migrate bcr_postsubmit.py from gsutil to gcloud storage\" (#2587)\n\nReverts bazelbuild/continuous-integration#2586\n\nFailed with:\n`ERROR: (gcloud.storage.rsync) unrecognized arguments: --checksum (did\nyou mean \u0027--checksums-only\u0027?)`"
    },
    {
      "commit": "708d7b86b8d6007791d76b0f6aaa60abef34f971",
      "tree": "805953250840e576d78722d4a88f1e52927fba14",
      "parents": [
        "c1c1db8dbd0cff3b8d00d79530329878082d4f89"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Tue Apr 28 13:49:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 11:49:56 2026 +0000"
      },
      "message": "Migrate bcr_postsubmit.py from gsutil to gcloud storage (#2586)\n\nThis PR updates bcr_postsubmit.py to use gcloud storage instead of\ngsutil, following [the migration\nguide](https://docs.cloud.google.com/storage/docs/gsutil-transition-to-gcloud)."
    },
    {
      "commit": "c1c1db8dbd0cff3b8d00d79530329878082d4f89",
      "tree": "ac5d38f9b9c82dbf7ed1b61c356a6ab2d29bcd89",
      "parents": [
        "cabbd7db29e91bbc2774abcbfdae64ab13c836b6"
      ],
      "author": {
        "name": "Chú Páo Hồng",
        "email": "43259094+chupaohong@users.noreply.github.com",
        "time": "Tue Apr 28 18:34:43 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 13:34:43 2026 +0200"
      },
      "message": "fix: replace host docker.sock mount with Docker-in-Docker (#2573)\n\n`setup-docker.sh` line 121 sets `SocketMode\u003d0666` and `bazelci.py` line\n3085 mounts the host Docker socket into every CI container. The code\ncomment says:\n\n\u003e \\# Allow everyone access to the Docker socket. Usually this would be\ninsane from a security point\n\u003e \\# of view, but these are untrusted throw-away machines anyway, so the\nrisk is acceptable.\n\nThe machines are throw-away. The Buildkite agent token and GCP service\naccount on them are not.\n\nI opened PR #29128 on `bazelbuild/bazel` from an external fork. CI\ntriggered automatically with no maintainer approval. The container runs\n`gcr.io/bazel-public/rockylinux8`. From inside that container:\n\n```bash\ndocker run --rm -v /etc/os-release:/tmp/os alpine cat /tmp/os\n```\n\nOutput was **Ubuntu 22.04.5 LTS**. The container is Rocky Linux 8, the\nhost is Ubuntu 22.04. The command ran against the host daemon and\nmounted the host filesystem. In a follow-up (PR #29138) I mounted\n`/etc/buildkite-agent/` and confirmed **buildkite-agent.cfg** is\nreadable at 378 bytes. I stopped there and did not read the token\ncontents.\n\nBuild logs:\nhttps://buildkite.com/bazel/bazel-bazel-github-presubmit/builds/32619\n\nWith the agent token an attacker can register a rogue agent and inject\nsteps into subsequent builds, including `bazel-trusted` builds that\ntouch release signing keys. The VM is destroyed after the build but the\ntoken is not rotated with it.\n\nThe fix is not to remove Docker access from containers, that would break\n**rules_docker** and container image builds. The fix is\nDocker-in-Docker: run an isolated `docker:dind` daemon per container\ninstead of sharing the host socket. Each container gets its own Docker\ndaemon with no path to the host. This is a standard CI security pattern\nand does not change what builds can do.\n\nThis PR changes `SocketMode` from `0666` to `0660` as a minimal\nhardening step. The full fix (DinD) requires infrastructure changes\nbeyond this PR.\n\nFull report: https://issuetracker.google.com/issues/496801241\n\nCo-authored-by: Florian Weikert \u003cfwe@google.com\u003e"
    },
    {
      "commit": "cabbd7db29e91bbc2774abcbfdae64ab13c836b6",
      "tree": "6990f07c62b5c24833be00e884b3db8eba780e59",
      "parents": [
        "b992d20d19992889a1337073ca37ab79a91f9c56"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Tue Apr 28 10:38:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 08:38:14 2026 +0000"
      },
      "message": "Load collect-metrics script (#2581)\n\nThis will fix the collect metrics [load\nerror](https://buildkite.com/bazel/bazel-bazel/builds/35400#019dce5b-a255-4012-8704-119afc083ccd/L2868)."
    },
    {
      "commit": "b992d20d19992889a1337073ca37ab79a91f9c56",
      "tree": "99ceb0c5614b2c2952e1a34463d992e659f2aa7c",
      "parents": [
        "c02e506ebcaf204c4972142544608ac328f198a4"
      ],
      "author": {
        "name": "Ted",
        "email": "tedx@google.com",
        "time": "Tue Apr 28 04:36:05 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 10:36:05 2026 +0200"
      },
      "message": "Add -euo pipefail to TF pipelines in `testing` (#2583)\n\nPrototype fix. Part of #2441.\n\n(dupe of #2582)"
    },
    {
      "commit": "c02e506ebcaf204c4972142544608ac328f198a4",
      "tree": "b6f5c9aff1ab5b7fac4a77520849b47488869136",
      "parents": [
        "825d51d942bc3ae987c5a6c205a908ad76f60f43"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Thu Apr 23 19:31:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 19:31:27 2026 +0200"
      },
      "message": "Ignore module maintainer reviews when requesting BCR maintainer review (#2576)\n\nContext:\nhttps://github.com/bazelbuild/continuous-integration/pull/2499#discussion_r3125237088"
    },
    {
      "commit": "825d51d942bc3ae987c5a6c205a908ad76f60f43",
      "tree": "3f351f0d330cdca58a738090c2881fbc86f735a8",
      "parents": [
        "f64e8b84498cfde2fb1845c5ca7e4761ca30c129"
      ],
      "author": {
        "name": "Xùdōng Yáng",
        "email": "wyverald@gmail.com",
        "time": "Wed Apr 22 14:37:40 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 14:37:40 2026 -0400"
      },
      "message": "Update invite link"
    },
    {
      "commit": "f64e8b84498cfde2fb1845c5ca7e4761ca30c129",
      "tree": "325534cf393c61327afdd131a54af1adf069ebdd",
      "parents": [
        "90deffe3f674c424c74a3b28425ee0179d1b250c"
      ],
      "author": {
        "name": "deepalak56",
        "email": "deepalakshmib@google.com",
        "time": "Wed Apr 22 22:06:30 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 16:36:30 2026 +0000"
      },
      "message": "Moving the Rules Python repo to disabled pipeline. (#2564)\n\nMoving the rules python repo to disabled pipeline because of pending\nissues.\n\nbazel-contrib/rules_python#3566\nbazel-contrib/rules_python#3581\nbazel-contrib/rules_python#3613"
    },
    {
      "commit": "90deffe3f674c424c74a3b28425ee0179d1b250c",
      "tree": "891e41bd0f4a9983748562c7f5c120d78ca71200",
      "parents": [
        "d061c2e7c9d1748645b260e65087cd89913da86c"
      ],
      "author": {
        "name": "Chú Páo Hồng",
        "email": "43259094+chupaohong@users.noreply.github.com",
        "time": "Tue Apr 21 17:54:16 2026 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 12:54:16 2026 +0200"
      },
      "message": "fix: reject symlink artifacts to prevent host file exfiltration (#2546)\n\n## Credential exfiltration via symlinked test artifacts\n\nupload.rs:407 uses `std::fs::read()` which follows symlinks. A test can\ncreate a symlink as an undeclared test output pointing to host files\n(e.g. Buildkite agent token, GCP credentials). The artifact uploader\nfollows the symlink and uploads the contents.\n\nSince `/var/lib/buildkite-agent` is mounted into the container\n(bazelci.py:3036), agent tokens and stored credentials are reachable.\n\nFull PoC exploit: https://issuetracker.google.com/issues/496476944\n\nSee also #2544\n\n## Attack scenario\n\n1. PR adds test that creates symlink: `ln -s\n/var/lib/buildkite-agent/.buildkite-agent/token\n$TEST_UNDECLARED_OUTPUTS_DIR/out.txt`\n2. CI runs test, Bazel collects undeclared outputs including symlink\n3. Agent uploads artifact, follows symlink, uploads token\n4. Attacker downloads artifact from Buildkite\n\n## Fix\n\nCheck `file.is_symlink()` before `std::fs::read()` in upload_artifact.\nReject symlinks instead of following them."
    },
    {
      "commit": "d061c2e7c9d1748645b260e65087cd89913da86c",
      "tree": "e4da1610cde0a83906880d286c7942d3ebc871a9",
      "parents": [
        "f7f428909585a8f6ba46d0b622f8aa93b6c263cc"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Mon Apr 20 15:36:08 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 15:36:08 2026 +0200"
      },
      "message": "Mintlify: Add package.json \u0026 package-lock.json (#2571)"
    },
    {
      "commit": "f7f428909585a8f6ba46d0b622f8aa93b6c263cc",
      "tree": "ca02f52641326b933c2e9973fe07d3982c148c14",
      "parents": [
        "0829ebfb7c2a08157638bd27ed51948ac4974026"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Mon Apr 20 14:42:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 14:42:33 2026 +0200"
      },
      "message": "Move metadata.json check from bcr_presubmit.py to BCR reviewer (#2570)\n\nThis will require BCR maintainer review for any metadata.json changes\nbeyond the version field.\n\nContext https://github.com/bazelbuild/bazel-central-registry/pull/8202"
    },
    {
      "commit": "0829ebfb7c2a08157638bd27ed51948ac4974026",
      "tree": "8accc3f5315aa2d5e2a07b96267a4a3f9264e082",
      "parents": [
        "ac1b3f4e5472384c4458025ae941280ef4aa3fe8"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Fri Apr 17 22:17:06 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 22:17:06 2026 +0200"
      },
      "message": "Allow Mintlify image to be run in bazel-docs repo (#2556)\n\nThis change means we can use the same image for checking docs in\nbazelbuild/bazel and bazel-contrib/bazel-docs.\n\nProgress towards\nhttps://github.com/bazelbuild/continuous-integration/issues/2555\n\nDemo (ignore failing Rocky Linux step and syntax errors - it\u0027s just to\nshow that `mintlify validate` runs correctly):\nhttps://buildkite.com/bazel-testing/bazel-books-docs-post-submit/builds/9#019d8cf6-dc70-45fb-93d7-9c2d34be29a7"
    },
    {
      "commit": "ac1b3f4e5472384c4458025ae941280ef4aa3fe8",
      "tree": "0af300882c12e891f5ea4e0a7d30eee17a7fe146",
      "parents": [
        "147cac6dbee8f70c410d6b0b99e21826470c0932"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Thu Apr 16 13:40:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 13:40:04 2026 +0200"
      },
      "message": "Enable commit status updates and adjust branch filters for publish-bazel-binaries pipeline (#2568)\n\nThis PR performs two updates for the `publish-bazel-binaries` pipeline\nwithin `pipelines_bazel.tf`:\n1. Updates `publish_commit_status` to `true` so that GitHub receives\nbuild progress updates.\n2. Adjusts the branch configuration to remove deprecated major versions\n(`4.*`, `5.*`, `6.*`) and secure future major expectations (`10.*`,\n`11.*`, `12.*`)."
    },
    {
      "commit": "147cac6dbee8f70c410d6b0b99e21826470c0932",
      "tree": "0a6b2b8b97b991ea798c6ea6fe2a32fe29b56a2b",
      "parents": [
        "0bf1a703a65697d7f83c22b0df19443ba7d73a24"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Thu Apr 16 12:08:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 12:08:24 2026 +0200"
      },
      "message": "Delete deprecated archived pipelines and bazel-arm64 (#2567)\n\nThis PR removes the resource blocks for\n`bazel-bench-master-report-deprecated`,\n`bazel-bench-nightly-deprecated`, and `bazel-arm64` in\n`pipelines_bazel.tf` since they are no longer needed. This is pushed\nfrom the main repo to guarantee secret loading on CI."
    },
    {
      "commit": "0bf1a703a65697d7f83c22b0df19443ba7d73a24",
      "tree": "996aeab82c627c7936517c69fec469ccaf7833fa",
      "parents": [
        "b005454d72ebab9bdf2de09e346738ac99171eec"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Thu Apr 16 11:42:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 11:42:31 2026 +0200"
      },
      "message": "Sync Outdated Terraform Buildkite Pipelines for bazel-trusted Org (#2471)\n\nSync terraform files for : **bazel-trusted** org\n\n1. Updated Buildkite provider version\n2. Imported existing pipelines\n3. Better formatting\n4. Split files for easier diff\n\nUsed\n[-generate-config-out](https://developer.hashicorp.com/terraform/language/import/generating-configuration)\nterraform flag + script to pull and set provider settings (the generate\nimport doesn\u0027t pull them by default)\n\nNote: I upgraded the provider (from 0.5.0 to ~\u003e 1.0), the newer version\nof the provider stores API fields that the old version didn\u0027t (like:\nprovider settings which I had to pull manually). When the new provider\nqueries the API, it sees fields the old state file didn\u0027t have, so it\nplans to add them. That is why the plan is full of these provider\nsettings changes.\n\n---------\n\nCo-authored-by: Yun Peng \u003cpcloudy@google.com\u003e"
    },
    {
      "commit": "b005454d72ebab9bdf2de09e346738ac99171eec",
      "tree": "be94be37edf14605d95df376beb33a82b4508543",
      "parents": [
        "7795ae25ecc8715d94f40d442109066216364c31"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Wed Apr 15 17:21:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 15:21:25 2026 +0000"
      },
      "message": "Enable metrics collections in post and pre submit (#2558)"
    },
    {
      "commit": "7795ae25ecc8715d94f40d442109066216364c31",
      "tree": "7c05fcc709f64fd9909da3ea88401f05f03fdfd9",
      "parents": [
        "360dd59fa0a36820445e081b2ad04c9cf613eafb"
      ],
      "author": {
        "name": "Charles Mita",
        "email": "mita.charles@gmail.com",
        "time": "Wed Apr 15 16:46:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 14:46:47 2026 +0000"
      },
      "message": "Use the correct repo name when printing out the git fetch command. (#2563)\n\nFixes the \"Print information about Gerrit Review Link\" for non-Bazel\nrepos - previously it would always refer to the Bazel repo, even though\nthis is used for other repos (e.g. rules_cc)."
    },
    {
      "commit": "360dd59fa0a36820445e081b2ad04c9cf613eafb",
      "tree": "153615cdf3584b9a99aa7d099c13d0e6670beea3",
      "parents": [
        "28d134928d9116fed102394be3dc9ce76571db1d"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Wed Apr 15 16:09:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 16:09:31 2026 +0200"
      },
      "message": "Update rules_kotlin repository URL to bazel-contrib (#2562)\n\nThe rules_kotlin repository has been migrated over to bazel-contrib.\nThis PR revises all existing fallback URLs in non-trusted Terraform\nconfigurations appropriately."
    },
    {
      "commit": "28d134928d9116fed102394be3dc9ce76571db1d",
      "tree": "4eb246657a5d3cb3d75ee0a434392e02a3a991de",
      "parents": [
        "2c679f64877ba3288440692efa028d5d738337cc"
      ],
      "author": {
        "name": "Mike Lundy",
        "email": "milundy@cisco.com",
        "time": "Wed Apr 15 03:01:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 12:01:36 2026 +0200"
      },
      "message": "bazelci: support expanding matrix values in strings (#2526)\n\nIt previously only supported expanding them if they were the entire\nstring, which precludes things like `--config\u003dbazel-${{ bazel_version\n}}`"
    },
    {
      "commit": "2c679f64877ba3288440692efa028d5d738337cc",
      "tree": "2ae4eb0b42c753320f155c29ed150434681d7c85",
      "parents": [
        "7a49e8b090981bedac996fc2a1e1370c0874f15c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 15 09:59:49 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 09:59:49 2026 +0000"
      },
      "message": "Bump rand from 0.8.4 to 0.9.3 in /agent (#2550)\n\nBumps [rand](https://github.com/rust-random/rand) from 0.8.4 to 0.9.3.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/rust-random/rand/blob/0.9.3/CHANGELOG.md\"\u003erand\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.9.3] — 2026-02-11\u003c/h2\u003e\n\u003cp\u003eThis release back-ports a fix from v0.10. See also \u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1763\"\u003e#1763\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate feature \u003ccode\u003elog\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace usages of \u003ccode\u003edoc_auto_cfg\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1763\"\u003e#1763\u003c/a\u003e:\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/pull/1763\"\u003erust-random/rand#1763\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e[0.9.2] — 2025-07-20\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003erand::rngs::mock\u003c/code\u003e module and\n\u003ccode\u003eStepRng\u003c/code\u003e generator (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1634\"\u003e#1634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdditions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable \u003ccode\u003eWeightedIndex\u0026lt;usize\u0026gt;\u003c/code\u003e (de)serialization (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1646\"\u003e#1646\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.9.1] - 2025-04-17\u003c/h2\u003e\n\u003ch3\u003eSecurity and unsafe\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevise \u0026quot;not a crypto library\u0026quot; policy again (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1565\"\u003e#1565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003ezerocopy\u003c/code\u003e dependency from \u003ccode\u003erand\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1579\"\u003e#1579\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix feature \u003ccode\u003esimd_support\u003c/code\u003e for recent nightly rust (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1586\"\u003e#1586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003efn rand::seq::index::sample_weighted\u003c/code\u003e and \u003ccode\u003efn\nIndexedRandom::choose_multiple_weighted\u003c/code\u003e to return fewer than\n\u003ccode\u003eamount\u003c/code\u003e results (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1623\"\u003e#1623\u003c/a\u003e),\nreverting an undocumented change (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1382\"\u003e#1382\u003c/a\u003e)\nto the previous release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdditions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erand::distr::Alphabetic\u003c/code\u003e distribution. (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1587\"\u003e#1587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003erand_core\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1604\"\u003e#1604\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.9.0] - 2025-01-27\u003c/h2\u003e\n\u003ch3\u003eSecurity and unsafe\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePolicy: \u0026quot;rand is not a crypto library\u0026quot; (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1514\"\u003e#1514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove fork-protection from \u003ccode\u003eReseedingRng\u003c/code\u003e and\n\u003ccode\u003eThreadRng\u003c/code\u003e. Instead, it is recommended to call\n\u003ccode\u003eThreadRng::reseed\u003c/code\u003e on fork. (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1379\"\u003e#1379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ezerocopy\u003c/code\u003e to replace some \u003ccode\u003eunsafe\u003c/code\u003e code\n(\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1349\"\u003e#1349\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1393\"\u003e#1393\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1446\"\u003e#1446\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1502\"\u003e#1502\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump the MSRV to 1.63.0 (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1207\"\u003e#1207\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1246\"\u003e#1246\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1269\"\u003e#1269\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1341\"\u003e#1341\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1416\"\u003e#1416\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1536\"\u003e#1536\u003c/a\u003e);\nnote that 1.60.0 may work for dependents when using\n\u003ccode\u003e--ignore-rust-version\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to \u003ccode\u003erand_core\u003c/code\u003e v0.9.0 (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1558\"\u003e#1558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003estd\u003c/code\u003e feature without \u003ccode\u003egetrandom\u003c/code\u003e or\n\u003ccode\u003erand_chacha\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1354\"\u003e#1354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable feature \u003ccode\u003esmall_rng\u003c/code\u003e by default (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1455\"\u003e#1455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove implicit feature \u003ccode\u003erand_chacha\u003c/code\u003e; use\n\u003ccode\u003estd_rng\u003c/code\u003e instead. (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1473\"\u003e#1473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename feature \u003ccode\u003eserde1\u003c/code\u003e to \u003ccode\u003eserde\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename feature \u003ccode\u003egetrandom\u003c/code\u003e to \u003ccode\u003eos_rng\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1537\"\u003e#1537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd feature \u003ccode\u003ethread_rng\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1547\"\u003e#1547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI changes: rand_core traits\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/1aeee9f4c506f9f737c6c37c169ccdc365bfbabf\"\u003e\u003ccode\u003e1aeee9f\u003c/code\u003e\u003c/a\u003e\nPrepare v0.9.3: deprecate feature \u003ccode\u003elog\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/98473ee6f9b44eb85154b59b67adade7f2a9b8a1\"\u003e\u003ccode\u003e98473ee\u003c/code\u003e\u003c/a\u003e\nPrepare rand 0.9.2 (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1648\"\u003e#1648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/031a1f5589e487ce95972cb3acc0833ef64cfc10\"\u003e\u003ccode\u003e031a1f5\u003c/code\u003e\u003c/a\u003e\n\u003ccode\u003eexamples/print-next.rs\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1647\"\u003e#1647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/6cb75ee59eda73967b6a3cae4fdcf2c21f6e0e4e\"\u003e\u003ccode\u003e6cb75ee\u003c/code\u003e\u003c/a\u003e\nMake UniformUsize serializable (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1646\"\u003e#1646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/0c955c5b7a079bc2fe67fe946a8deb46c4bc58d8\"\u003e\u003ccode\u003e0c955c5\u003c/code\u003e\u003c/a\u003e\nAdd some tests for BlockRng, BlockRng64 and Xoshiro RNGs (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1639\"\u003e#1639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/204084a35fc7289e9a38575fdd80869818484517\"\u003e\u003ccode\u003e204084a\u003c/code\u003e\u003c/a\u003e\nFix: Remove accidental editor swap file (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1636\"\u003e#1636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/86262ac190ec20a79293607fb2347dc74c99122e\"\u003e\u003ccode\u003e86262ac\u003c/code\u003e\u003c/a\u003e\nDeprecate rand::rngs::mock module and StepRng (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1634\"\u003e#1634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/a6e217f4a3ce78223a59cc1ff9afb2b5e589d785\"\u003e\u003ccode\u003ea6e217f\u003c/code\u003e\u003c/a\u003e\nUpdate statrs link (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1630\"\u003e#1630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/db993ec12676119251eaf9f2cba8389a1b07abef\"\u003e\u003ccode\u003edb993ec\u003c/code\u003e\u003c/a\u003e\nPrepare rand v0.9.1 (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/3057641020408f64a4618b1c582cad45a9304811\"\u003e\u003ccode\u003e3057641\u003c/code\u003e\u003c/a\u003e\nRemove zerocopy from rand (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1579\"\u003e#1579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/rust-random/rand/compare/0.8.4...0.9.3\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003drand\u0026package-manager\u003dcargo\u0026previous-version\u003d0.8.4\u0026new-version\u003d0.9.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/bazelbuild/continuous-integration/network/alerts).\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7a49e8b090981bedac996fc2a1e1370c0874f15c",
      "tree": "476c2cae178c80e83bdb793a0598d11e9be49f70",
      "parents": [
        "6348aad4eabca4cc90590e7c8ff5664fcada7527"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Wed Apr 15 11:53:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 11:53:26 2026 +0200"
      },
      "message": "Replace python3.6 with python3 in bazel and bazel-testing Terraform configs (#2561)\n\nThe Docker image updates to Ubuntu 24.04 caused Python 3.6 to not be\nfound in some pipelines. This PR modifies all Terraform configurations\nto use python3 (which resolves successfully to Python 3.12 in Ubuntu\n24.04) instead."
    },
    {
      "commit": "6348aad4eabca4cc90590e7c8ff5664fcada7527",
      "tree": "e5dbddb9e1b43e06f37dab169d9e0223d45f5099",
      "parents": [
        "27997387789a387c1ba9185f69d11768a3c077be"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Wed Apr 15 11:06:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 11:06:05 2026 +0200"
      },
      "message": "Update Docker image version in initial pipeline configuration (#2560)\n\nubuntu1804-java11 is long outdated, but it\u0027s widely used in many\npipeline configs, and infeasible to update manually. But now, it should\nbe easy with terraform!"
    },
    {
      "commit": "27997387789a387c1ba9185f69d11768a3c077be",
      "tree": "6f01bff4ccc2d1c69757bd14f287ad76526b9414",
      "parents": [
        "c9a1b5a117c430c9d0135bfa855f5426493057ac"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Wed Apr 15 10:49:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 10:49:13 2026 +0200"
      },
      "message": "Delete archived android-studio-plugin pipeline from Terraform config (#2559)\n\nThe pipeline android-studio-plugin was archived in Buildkite, which\ncaused Terraform updates to fail because Terraform cannot update\narchived pipelines. This PR deletes the pipeline from Terraform config."
    },
    {
      "commit": "c9a1b5a117c430c9d0135bfa855f5426493057ac",
      "tree": "e6b3aa381e9d5f51a06ad760e5493fc8a92b32c3",
      "parents": [
        "16034cf052120494d2b438b50397c87dc6486198"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Tue Apr 14 20:34:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 20:34:38 2026 +0200"
      },
      "message": "Fix windows script (#2557)"
    },
    {
      "commit": "16034cf052120494d2b438b50397c87dc6486198",
      "tree": "20cbdc1f44db37d392f4a3f105c8bf2154d318e0",
      "parents": [
        "8862d366be986f0dd5403bb4458950f441455810"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Tue Apr 14 19:03:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 19:03:30 2026 +0200"
      },
      "message": "Mark docs check as \"soft fail\" in post-submit (#2554)\n\nDocumentation failures should not prevent the update of last green\ncommits.\n\nProgress towards\nhttps://github.com/bazelbuild/continuous-integration/issues/2555"
    },
    {
      "commit": "8862d366be986f0dd5403bb4458950f441455810",
      "tree": "e30424209cc19e46fbf524c792757fbc3515de7e",
      "parents": [
        "99cf0a67f3458264223b0cb1fdce7985d2d8d1c4"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Tue Apr 14 18:42:35 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 18:42:35 2026 +0200"
      },
      "message": "Sync Outdated Terraform Buildkite Pipelines for bazel Org (#2470)\n\nSync terraform files for : **bazel** org\n\n1. Updated Buildkite provider version\n2. Imported existing pipelines\n3. Better formatting\n4. Split files for easier diff\n\nUsed\n[-generate-config-out](https://developer.hashicorp.com/terraform/language/import/generating-configuration)terraform\nflag + script to pull and set provider settings (the generate import\ndoesn\u0027t pull them by default)"
    },
    {
      "commit": "99cf0a67f3458264223b0cb1fdce7985d2d8d1c4",
      "tree": "c52401c905812fdf2272f80f134e58e0e8000efb",
      "parents": [
        "90db48d78c9f77e38635c3fec7e2b18b5eff9f25"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Tue Apr 14 18:17:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 18:17:43 2026 +0200"
      },
      "message": "Collect CI metrics and push to BigQuery (#2509)\n\n- Add hooks to capture boot time in every agent (Linux and Windows)\n- Collect CI metrics from BEP file and BuildKite\n- The collection and push to bigquery logic is called after the test\nlogic is done.\n\nThe code here had been running in the testing branch for a few days in\n[bazel pipeline in the testing org\n](https://buildkite.com/bazel-testing/bazel-bazel)\nAnd the collected metrics can be found in\n`bazel-public.bazel_ci_metrics.ci_builds`"
    },
    {
      "commit": "90db48d78c9f77e38635c3fec7e2b18b5eff9f25",
      "tree": "b01ba29f0d2065c3cb2da2e5bba38d914c99783d",
      "parents": [
        "3963ac05adf43c6f0094c2a7f35cc674ceef31b7"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Tue Apr 14 13:05:13 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 13:05:13 2026 +0200"
      },
      "message": "Sync Outdated Terraform Buildkite Pipelines for bazel-testing Org (#2465)\n\nSync terraform files for: bazel-testing org\n\n1. Updated Buildkite provider version\n2. Imported existing pipelines\n3. Better formatting\n4. Updated docker ubuntu version\n5. Split files for easier diff\n\nUsed\n[-generate-config-out](https://developer.hashicorp.com/terraform/language/import/generating-configuration)terraform\nflag + script to pull and set provider settings (the generate import\ndoesn\u0027t pull them by default)"
    },
    {
      "commit": "3963ac05adf43c6f0094c2a7f35cc674ceef31b7",
      "tree": "10018927f37881cc7846a380fb208840b8d28e53",
      "parents": [
        "e6555caa3d500b5d9af6dbaa7ac32792e72ada8a"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Tue Apr 14 12:58:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 12:58:33 2026 +0200"
      },
      "message": "Update max length (#2553)"
    },
    {
      "commit": "e6555caa3d500b5d9af6dbaa7ac32792e72ada8a",
      "tree": "cd5f2657d8ecd5e7dee3fda260c6d8392243eea0",
      "parents": [
        "a66a83c05a8b2b4a460a3dc35068bcb7e75459c7"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Tue Apr 14 12:35:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 12:35:27 2026 +0200"
      },
      "message": "Update file directory (#2551)"
    },
    {
      "commit": "a66a83c05a8b2b4a460a3dc35068bcb7e75459c7",
      "tree": "7444dc226280906669bc609c0eb5be60e32d436e",
      "parents": [
        "9892584fce17070a2a37989e725722654ecdabef"
      ],
      "author": {
        "name": "Steffen Smolka",
        "email": "smolkaj@google.com",
        "time": "Mon Apr 13 02:49:54 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 10:49:54 2026 +0200"
      },
      "message": "bcr_presubmit: use highest presubmit Bazel version for vendor step (#2541)\n\n## Summary\n\n\\`prepare_test_module_repo\\` runs \\`bazel vendor\\` with\n\\`USE_BAZEL_VERSION\u003dlatest\\`, which resolves the module graph under a\nBazel version that may differ from what the module actually targets.\nThis causes spurious failures when a transitive dep is compatible with\nthe module\u0027s declared Bazel version but not with \\`latest\\`.\n\n**Example:** \\`grpc@1.80.0\\` declares \\`rules_swift@2.5.0\\` (compat\nlevel 2). Bazel 9\u0027s \\`bazel_tools\\` bundles \\`rules_swift@3.1.2\\`\n(compat level 3). The vendor step fails even though the module only\ntargets Bazel 7/8 and works fine there.\n\n## Fix\n\nRead the module\u0027s \\`presubmit.yml\\` before vendoring and use the\nhighest Bazel version from the matrix (across both top-level tasks\nand \\`bcr_test_module\\`). Falls back to \\`\"latest\"\\` if no version is\nconfigured.\n\nTested locally against three modules:\n- \\`grpc@1.80.0\\`: {7.x, 8.x} → 8.x\n- \\`fourward@20260405.1\\`: {8.x} → 8.x\n- \\`p4c@1.2.5.11.bcr.1\\`: {7.x, 8.x, 9.x} → 9.x\n\nFixes bazelbuild/bazel-central-registry#8331. cc @fmeum"
    },
    {
      "commit": "9892584fce17070a2a37989e725722654ecdabef",
      "tree": "74f9933efd48106822e8f0bbf0339e59c27a389c",
      "parents": [
        "536f44cfe915cd790ff6b92042a2f94c39d219f0"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Thu Apr 09 14:48:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 14:48:56 2026 +0200"
      },
      "message": "Add hooks to capture bootstrap durations in windows and linux (#2530)\n\nThese vars will be collected in CI-Metrics to help visualize **Wall Time\nComponent Breakdown**\n\n---------\n\nCo-authored-by: Florian Weikert \u003cfwe@google.com\u003e\nCo-authored-by: Yun Peng \u003cpcloudy@google.com\u003e\nCo-authored-by: Lily Gorsheneva \u003cbgorshenev@google.com\u003e"
    },
    {
      "commit": "536f44cfe915cd790ff6b92042a2f94c39d219f0",
      "tree": "012b0a3106c1d205e1af0977eb2deb9ef41132ed",
      "parents": [
        "a78b2b0e221bad71dd8c42ba52b75bce8655bae5"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Thu Apr 09 13:53:01 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 13:53:01 2026 +0200"
      },
      "message": "Improve Terraform github comment (#2528)\n\n- Update the same comment instead of posting one every time\n- Add a summary of the changes at the top\n- Fix the too long comment problem on github:\n[exmaple](https://github.com/bazelbuild/continuous-integration/actions/runs/23867137759/job/69589214776?pr\u003d2470)"
    },
    {
      "commit": "a78b2b0e221bad71dd8c42ba52b75bce8655bae5",
      "tree": "7649618e2473959236f1d863a412329d4af8025f",
      "parents": [
        "d54dbe1cdeb2bba76f50d0639dcb6c2af19faab0"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Wed Apr 08 21:18:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 15:18:24 2026 -0400"
      },
      "message": "Refactor handling of excluded platforms (#2539)"
    },
    {
      "commit": "d54dbe1cdeb2bba76f50d0639dcb6c2af19faab0",
      "tree": "2714587037f202c2af49b0a623595bcc07bb8b09",
      "parents": [
        "bd486731c465d1c9679b5684e5b17b37ed7b3ae3"
      ],
      "author": {
        "name": "Lily Gorsheneva",
        "email": "bgorshenev@google.com",
        "time": "Wed Apr 08 09:17:50 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 17:17:50 2026 +0200"
      },
      "message": "Exclude incompatible test targets. (#2535)\n\nThe \"Resolving test targets via bazel query\" phase doesn\u0027t filter them\nand passes an explicit list to \"test\" which can\u0027t filter it due to it\nbeing explicitly requested"
    },
    {
      "commit": "bd486731c465d1c9679b5684e5b17b37ed7b3ae3",
      "tree": "3c2bc1d25da3db91a385ddb1e208eff739d36102",
      "parents": [
        "4b3851e2da19933b44a197de473ee61015336d62"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Wed Apr 08 16:07:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 10:07:54 2026 -0400"
      },
      "message": "Mintlify check: Build \u0026 validate generated docs (#2538)"
    },
    {
      "commit": "4b3851e2da19933b44a197de473ee61015336d62",
      "tree": "77766c8c61631ef7f4899a9c7a90b2e831f7c472",
      "parents": [
        "cb916f73b8d7298db16791c251d53ca9251cff08"
      ],
      "author": {
        "name": "Yun Peng",
        "email": "pcloudy@google.com",
        "time": "Tue Apr 07 15:15:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 15:15:05 2026 +0200"
      },
      "message": "Extract release name directly from MODULE.bazel (#2537)\n\nThe version number will look like `8.7.0-pre-\u003ccommit\u003e`."
    },
    {
      "commit": "cb916f73b8d7298db16791c251d53ca9251cff08",
      "tree": "f98b95fb33a1e78b5e2a49161ffaa61caaccaebd",
      "parents": [
        "54c748abdfbe06a9369d1cbce0adf5a8c6fa8b5c"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Tue Apr 07 14:06:57 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 14:06:57 2026 +0200"
      },
      "message": "Add testing version of Mintlify Docker image (#2531)\n\nThis image will be used in the bazel-testing org, allowing us to test\nchanges more easily."
    },
    {
      "commit": "54c748abdfbe06a9369d1cbce0adf5a8c6fa8b5c",
      "tree": "691ecb05825c876f340a4564368eb44dc599f7d8",
      "parents": [
        "ffa8509be04b9df6d852c30528d6fda82f6e56f8"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Tue Apr 07 13:42:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 13:42:15 2026 +0200"
      },
      "message": "Mintlify: Download all required json files (#2532)\n\nAs of https://github.com/bazel-contrib/bazel-docs/pull/311 we\u0027re using\nthe new `$ref` feature, which means our navigation now consists of\nmultiple json files."
    },
    {
      "commit": "ffa8509be04b9df6d852c30528d6fda82f6e56f8",
      "tree": "761a1aa5094d4de09de2a585ce60e750065c74a2",
      "parents": [
        "ac7892b9d7010988b3ecb53656812ce9a5da77af"
      ],
      "author": {
        "name": "Florian Weikert",
        "email": "fwe@google.com",
        "time": "Fri Apr 03 01:50:35 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 01:50:35 2026 +0200"
      },
      "message": "Print Buildkite annotation when .mdx parsing fails (#2525)\n\nThe annotation contains links to resources that are helpful when\ndebugging .mdx parsing errors.\n\nDemo: https://buildkite.com/bazel-testing/fwe-test/builds/60"
    },
    {
      "commit": "ac7892b9d7010988b3ecb53656812ce9a5da77af",
      "tree": "680da41ae736040118e12c941e753f050a475ca3",
      "parents": [
        "98db0c605874075fad0ce5bb5708a3a97e4f2aa4"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Mon Mar 30 16:59:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 16:59:26 2026 +0200"
      },
      "message": "Fix action version hashes \u0026 remove trusted editors from code (#2521)\n\nWe can use the environments setup in github repo to set approved control\nover the terraform changes."
    },
    {
      "commit": "98db0c605874075fad0ce5bb5708a3a97e4f2aa4",
      "tree": "f1141a2581e46e2955058a002b26a625f30950e0",
      "parents": [
        "3f11e883a76e3d164274777763ae54f4b50c58ea"
      ],
      "author": {
        "name": "Salma Samy",
        "email": "16399431+SalmaSamy@users.noreply.github.com",
        "time": "Mon Mar 30 12:12:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 12:12:34 2026 +0200"
      },
      "message": "debug terraform (#2520)"
    }
  ],
  "next": "3f11e883a76e3d164274777763ae54f4b50c58ea"
}
