Skip to content

CNTRLPLANE-3945: Migrate documentation tooling from mkdocs-material to zensical - #9139

Merged
celebdor merged 3 commits into
openshift:mainfrom
celebdor:zensical
Aug 11, 2026
Merged

CNTRLPLANE-3945: Migrate documentation tooling from mkdocs-material to zensical#9139
celebdor merged 3 commits into
openshift:mainfrom
celebdor:zensical

Conversation

@celebdor

@celebdor celebdor commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Replace mkdocs-material theme and mermaid2 plugin with zensical, which has built-in mermaid support
  • Replace pip/requirements.txt with uv and a hash-verified uv.lock for supply chain security
  • Remove custom docs/Dockerfile in favor of the official zensical/zensical container image
  • Update GitHub Actions CI workflow to use setup-uv with --frozen for hash verification
  • Update contributor docs to reflect new tooling

Jira

https://redhat.atlassian.net/browse/CNTRLPLANE-3945

Test plan

  • cd docs && uv run zensical build --strict passes
  • cd docs && make serve-containerized serves the site
  • Mermaid diagrams render correctly on pages that use them
  • CI docs preview deploys successfully on this PR

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Migrated documentation tooling from MkDocs to Zensical.
    • Updated build, preview, dependency-management, and CI guidance.
    • Added clearer page titles throughout the documentation.
    • Refined Mermaid diagram configuration.
    • Added visual comparison workflows and reporting for documentation changes.
  • Chores

    • Streamlined strict documentation build validation.
    • Removed obsolete container definitions, lock files, and image publishing targets.
    • Added project configuration for reproducible documentation builds.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 28, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 28, 2026

Copy link
Copy Markdown

@celebdor: This pull request references CNTRLPLANE-3945 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Replace mkdocs-material theme and mermaid2 plugin with zensical, which has built-in mermaid support
  • Replace pip/requirements.txt with uv and a hash-verified uv.lock for supply chain security
  • Remove custom docs/Dockerfile in favor of the official zensical/zensical container image
  • Update GitHub Actions CI workflow to use setup-uv with --frozen for hash verification
  • Update contributor docs to reflect new tooling

Jira

https://redhat.atlassian.net/browse/CNTRLPLANE-3945

Test plan

  • cd docs && uv run zensical build --strict passes
  • cd docs && make serve-containerized serves the site
  • Mermaid diagrams render correctly on pages that use them
  • CI docs preview deploys successfully on this PR

🤖 Generated with Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The documentation toolchain migrates from MkDocs to Zensical 0.0.51. The project uses pyproject.toml and uv.lock for dependencies. CI runs frozen strict Zensical builds through uv. Make targets support native and containerized builds. New comparison targets build base and head sites, capture Playwright screenshots, calculate pixel differences, and generate reports. Documentation pages now define explicit titles.

Sequence Diagram(s)

sequenceDiagram
  participant Makefile
  participant Zensical
  participant SiteServer
  participant Playwright
  participant ComparisonReport
  Makefile->>Zensical: build base and head sites
  Makefile->>SiteServer: serve generated sites
  SiteServer->>Playwright: provide documentation routes
  Playwright->>ComparisonReport: write screenshots and pixel differences
  ComparisonReport->>Makefile: provide JSON and HTML reports
Loading

Suggested reviewers: csrwng, muraee

🚥 Pre-merge checks | ✅ 11
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: migrating documentation tooling from MkDocs Material to Zensical.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed Changed paths contain no added or modified Ginkgo test declarations; the existing dynamic Context(workload.Name) line is unchanged from the parent commit.
Test Structure And Quality ✅ Passed The PR changes only documentation tooling, workflow, and Markdown files; no Go test files or Ginkgo test code were added or modified, so this check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed The complete PR diff contains only documentation/tooling files and a docs workflow; added lines introduce no deployment manifests, controllers, operators, or scheduling constraints.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The aggregate PR change adds documentation and a local Playwright comparison tool, but no new Ginkgo e2e tests or Ginkgo declarations; this check is not applicable.
No-Weak-Crypto ✅ Passed The PR adds no MD5, SHA-1, DES, RC4, 3DES, Blowfish, or ECB usage; existing SHA-1 documentation lines are unchanged, and new code has no crypto or secret comparisons.
Container-Privileges ✅ Passed The PR adds no privileged, host namespace, SYS_ADMIN, root, or allowPrivilegeEscalation settings; container targets use the pinned image without privilege flags, and existing examples are unchanged.
No-Sensitive-Data-In-Logs ✅ Passed New logs contain routes, page counts, diff metrics, local paths, and base commit IDs; no passwords, tokens, API keys, PII, session IDs, internal hostnames, or customer data are logged.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@openshift-ci
openshift-ci Bot requested review from csrwng and muraee July 28, 2026 10:29
@openshift-ci openshift-ci Bot added area/documentation Indicates the PR includes changes for documentation and removed do-not-merge/needs-area labels Jul 28, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (2)
docs/Makefile (1)

2-2: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Pin the container image instead of using latest.

Both containerized targets consume IMG, so :latest can silently change the documentation toolchain between runs. Pin an approved release digest and update it intentionally. (hub.docker.com)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/Makefile` at line 2, Update the IMG variable in the Makefile to use the
approved Zensical container release pinned by an immutable digest instead of the
latest tag, preserving its use by both containerized targets.
.github/workflows/docs-build-reusable.yaml (1)

18-18: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Pin the uv version used by CI.

This action has no version input. Unless another repository-level configuration constrains it, setup-uv installs the latest uv release, allowing the CI toolchain to change independently of uv.lock. (github.com)

As per path instructions, CI/CD dependencies should remain reproducible and supply-chain controlled.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/docs-build-reusable.yaml at line 18, Update the setup-uv
action invocation in the workflow to specify an explicit uv version compatible
with the repository’s lockfile, while preserving the existing action commit pin.
Use the action’s supported version input so CI does not install the moving
latest release.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/content/contribute/contribute-docs.md`:
- Around line 51-63: Update the preview URL in
docs/content/contribute/contribute-docs.md (lines 51-63) and
docs/content/how-to/ci/docs-preview.md (lines 29-36) from 0.0.0.0:8000 to
127.0.0.1:8000, leaving the serving commands unchanged.

In `@docs/Makefile`:
- Around line 4-6: Update the docs Makefile build target to invoke zensical
through uv with the frozen dependency environment, matching the docs workflow’s
`uv run --frozen` behavior while preserving the existing strict build arguments.

In `@docs/pyproject.toml`:
- Line 7: Change the Zensical dependency in the docs manifest to the exact
version 0.0.51 instead of a minimum-version constraint, then regenerate
docs/uv.lock so it remains consistent with the pinned dependency.

---

Nitpick comments:
In @.github/workflows/docs-build-reusable.yaml:
- Line 18: Update the setup-uv action invocation in the workflow to specify an
explicit uv version compatible with the repository’s lockfile, while preserving
the existing action commit pin. Use the action’s supported version input so CI
does not install the moving latest release.

In `@docs/Makefile`:
- Line 2: Update the IMG variable in the Makefile to use the approved Zensical
container release pinned by an immutable digest instead of the latest tag,
preserving its use by both containerized targets.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: d46b5a66-6b9a-4c88-a445-10931787447c

📥 Commits

Reviewing files that changed from the base of the PR and between a714699 and 29afa17.

⛔ Files ignored due to path filters (1)
  • docs/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • .github/workflows/docs-build-reusable.yaml
  • docs/Dockerfile
  • docs/Makefile
  • docs/content/contribute/contribute-docs.md
  • docs/content/how-to/ci/docs-preview.md
  • docs/mkdocs.yml
  • docs/pyproject.toml
  • docs/requirements.txt
💤 Files with no reviewable changes (2)
  • docs/Dockerfile
  • docs/requirements.txt

Comment thread docs/content/contribute/contribute-docs.md Outdated
Comment thread docs/Makefile Outdated
Comment thread docs/pyproject.toml Outdated
@celebdor

Copy link
Copy Markdown
Collaborator Author

/jira refresh

@openshift-ci-robot

openshift-ci-robot commented Jul 28, 2026

Copy link
Copy Markdown

@celebdor: This pull request references CNTRLPLANE-3945 which is a valid jira issue.

Details

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/Makefile`:
- Around line 16-21: Update the contributor instructions in docs/README.md to
remove the stale make image command and start the containerized build workflow
with make build-containerized, matching the available Makefile targets.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: d45305f3-0d30-4f67-99f5-d56baf8c2a2a

📥 Commits

Reviewing files that changed from the base of the PR and between 76220f1 and 612b238.

⛔ Files ignored due to path filters (2)
  • docs/content/reference/aggregated-docs.md is excluded by !docs/content/reference/aggregated-docs.md
  • docs/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • .github/workflows/docs-build-reusable.yaml
  • docs/Dockerfile
  • docs/Makefile
  • docs/content/contribute/contribute-docs.md
  • docs/content/how-to/ci/docs-preview.md
  • docs/mkdocs.yml
  • docs/pyproject.toml
  • docs/requirements.txt
💤 Files with no reviewable changes (2)
  • docs/requirements.txt
  • docs/Dockerfile

Comment thread docs/Makefile
@celebdor

Copy link
Copy Markdown
Collaborator Author

docs-build is expected to fail until this PR merges due to the changes in requirements.

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 2, 2026
@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 3, 2026
mkdocs-material is approaching end of life. Switch to zensical, which
provides built-in mermaid support (removing the mermaid2 plugin),
and replace pip with uv for dependency management with hash-verified
lockfile for supply chain security.

- Remove mermaid2 plugin and use zensical's native mermaid rendering
- Replace pip/requirements.txt with uv/pyproject.toml and uv.lock
- Delete custom Dockerfile in favor of official zensical/zensical image
- Update CI workflow to use setup-uv with --frozen for hash verification
- Update contributor and preview docs to reflect new tooling

Signed-off-by: Antoni Segura Puimedon <antoni@redhat.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/README.md`:
- Around line 5-6: Renumber the setup commands in the documentation list from 2.
and 3. to 1. and 2., respectively, after the removed make image step.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 1ebb98af-65cd-47d4-bddb-de53c0ecd051

📥 Commits

Reviewing files that changed from the base of the PR and between 7e31a01 and c03cd7a.

⛔ Files ignored due to path filters (2)
  • docs/content/reference/aggregated-docs.md is excluded by !docs/content/reference/aggregated-docs.md
  • docs/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (11)
  • .github/workflows/docs-build-reusable.yaml
  • docs/Dockerfile
  • docs/Makefile
  • docs/README.md
  • docs/content/contribute/contribute-docs.md
  • docs/content/how-to/ci/docs-preview.md
  • docs/content/how-to/ci/github-actions.md
  • docs/content/how-to/ci/triage/presubmit-failures.md
  • docs/mkdocs.yml
  • docs/pyproject.toml
  • docs/requirements.txt
💤 Files with no reviewable changes (2)
  • docs/Dockerfile
  • docs/requirements.txt
🚧 Files skipped from review as they are similar to previous changes (7)
  • docs/content/how-to/ci/github-actions.md
  • docs/content/how-to/ci/triage/presubmit-failures.md
  • docs/pyproject.toml
  • .github/workflows/docs-build-reusable.yaml
  • docs/mkdocs.yml
  • docs/content/how-to/ci/docs-preview.md
  • docs/content/contribute/contribute-docs.md

Comment thread docs/README.md Outdated
Comment on lines +5 to +6
2. Run `make build-containerized` to build the containerized version of the image
3. Run `make serve-containerized` to serve up the docs website locally

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Renumber the setup commands.

After removing the make image step, the first remaining command is numbered 2. and the second is 3.. Change them to 1. and 2..

Proposed fix
-2. Run `make build-containerized` to build the containerized version of the image
-3. Run `make serve-containerized` to serve up the docs website locally
+1. Run `make build-containerized` to build the containerized version of the image
+2. Run `make serve-containerized` to serve up the docs website locally
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
2. Run `make build-containerized` to build the containerized version of the image
3. Run `make serve-containerized` to serve up the docs website locally
1. Run `make build-containerized` to build the containerized version of the image
2. Run `make serve-containerized` to serve up the docs website locally
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/README.md` around lines 5 - 6, Renumber the setup commands in the
documentation list from 2. and 3. to 1. and 2., respectively, after the removed
make image step.

Zensical derives page titles from the file itself (frontmatter or first
heading), falling back to the filename. Pages that had no intrinsic title
previously got their displayed title from the mkdocs.yml nav label, but
now render as the raw filename (e.g. "Watching dp" instead of "Watching
the Data Plane"). Add explicit frontmatter title: fields to restore the
original titles.

Signed-off-by: Antoni Segura Puimedon <antoni@redhat.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci openshift-ci Bot added area/platform/aws PR/issue for AWS (AWSPlatform) platform area/platform/ibmcloud PR/issue for IBMCloud (IBMCloudPlatform) platform labels Aug 5, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

🧹 Nitpick comments (1)
docs/Makefile (1)

45-45: 🔒 Security & Privacy | 🔵 Trivial | 🏗️ Heavy lift

Security Misconfiguration (CWE-829): Inclusion of Functionality from Untrusted Control Sphere

Reachability: Internal · Exploitability: Difficult

Use the hash-pinned base-site dependencies.

uv run --with resolves unversioned MkDocs packages and does not consume the hash-pinned dependency contract. Use the pinned contract or a dedicated frozen lock so the build uses controlled versions and hashes.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/Makefile` at line 45, Update the docs build command in the Makefile
target around mkdocs build to stop resolving unversioned packages via uv run
--with. Reuse the repository’s hash-pinned dependency contract or dedicated
frozen lock, ensuring the MkDocs build installs only controlled versions with
verified hashes.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/compare/compare.mjs`:
- Around line 121-123: Update screenshotPages to collect and return routes where
page.goto or page.screenshot throws instead of only logging them; represent each
failed route with an explicit error status in results.json and propagate that
status into the HTML report so failures are not classified as new-only/old-only
or omitted.
- Around line 291-303: Replace the clickable `.page-header` div disclosure in
the comparison markup with a keyboard-operable native `details`/`summary` pair
or an equivalent button using `aria-expanded`. Preserve the existing page header
content and comparison body, ensuring the control exposes and toggles the open
state accessibly.
- Around line 326-329: In the comparison setup around screenshotsOld,
screenshotsNew, and screenshotsDiff, remove each existing screenshot directory
before recreating outputDir or capturing pages. Use recursive cleanup that
safely handles missing directories, then preserve the current directory creation
and capture flow.
- Around line 84-91: Validate the resolved filePath in the createServer request
handler before the existsSync and readFile operations, rejecting requests whose
normalized path falls outside siteDir, including traversal segments in req.url.
Preserve normal index.html and directory-index resolution for paths contained
within siteDir.

In `@docs/content/contribute/contribute-docs.md`:
- Line 71: Update the five new root-level fenced code blocks in the Markdown
document to comply with the repository’s MD046 indentation style, preserving
their shell-language annotations and content; alternatively, change the
repository markdownlint rule only if fenced blocks are intentionally required.
Run make verify-codespell for the Markdown changes.

In `@docs/content/labs/Dual/mgmt-cluster/compact-dual.md`:
- Line 2: Update the document title from “Openshift Compact Dual” to “OpenShift
Compact Dual,” preserving the existing title wording and capitalization of the
product name.

In `@docs/content/labs/IPv4/mgmt-cluster/compact-ipv4.md`:
- Around line 1-4: Update the frontmatter title to use the correct product
capitalization: change “Openshift” to “OpenShift” while preserving the rest of
the title.

In `@docs/content/labs/IPv6/mgmt-cluster/compact-ipv6.md`:
- Line 2: Update the document frontmatter title from “Openshift Compact IPv6” to
use the official “OpenShift” capitalization, preserving the rest of the title
unchanged.

In `@docs/content/reference/manifests/ibmcloud/4.10.md`:
- Line 2: Quote the numeric title values in
docs/content/reference/manifests/ibmcloud/4.9.md:2-2,
docs/content/reference/manifests/ibmcloud/4.10.md:2-2,
docs/content/reference/manifests/ibmcloud/4.11.md:2-2,
docs/content/reference/manifests/ibmcloud/4.12.md:2-2, and
docs/content/reference/manifests/ibmcloud/4.13.md:2-2 so YAML preserves each
version exactly, including trailing zeros.

In `@docs/Makefile`:
- Around line 54-55: Update the documentation build recipe around the zensical
build command to remove any existing site output before building, preserve and
check the build exit status instead of masking it with || true, and execute mv
site site-head only after a successful build. Ensure failed builds stop the
recipe without moving stale or partial output.
- Around line 37-46: Update the compare-build-base target to validate the
site-base cache against the resolved BASE commit and a successful-build marker,
rather than only checking directory existence. Rebuild when the cached commit
differs, metadata is missing, or the previous build did not complete
successfully; write the marker and resolved commit only after mkdocs build
succeeds, while preserving reuse for the same BASE.
- Around line 49-55: Update the compare-build-head target to rebuild site-head
on every comparison instead of skipping when the directory exists. Remove the
site-head existence guard, clear or replace the prior output before running the
zensical build, and preserve the resulting build under site-head so current
committed and uncommitted working-tree changes are included.

---

Nitpick comments:
In `@docs/Makefile`:
- Line 45: Update the docs build command in the Makefile target around mkdocs
build to stop resolving unversioned packages via uv run --with. Reuse the
repository’s hash-pinned dependency contract or dedicated frozen lock, ensuring
the MkDocs build installs only controlled versions with verified hashes.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 1ca7696e-f2a8-4d27-8100-c4fc28b45d71

📥 Commits

Reviewing files that changed from the base of the PR and between c03cd7a and 010f38c.

⛔ Files ignored due to path filters (1)
  • docs/compare/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (57)
  • docs/.gitignore
  • docs/Makefile
  • docs/compare/compare.mjs
  • docs/compare/package.json
  • docs/content/contribute/branch-process.md
  • docs/content/contribute/contribute-docs.md
  • docs/content/how-to/disconnected/idms-icsp-for-management-clusters.md
  • docs/content/how-to/sdn/other-sdn-providers.md
  • docs/content/labs/Dual/hostedcluster/baremetalhost.md
  • docs/content/labs/Dual/hostedcluster/hostedcluster.md
  • docs/content/labs/Dual/hostedcluster/index.md
  • docs/content/labs/Dual/hostedcluster/infraenv.md
  • docs/content/labs/Dual/hostedcluster/nodepool.md
  • docs/content/labs/Dual/hostedcluster/worker-nodes.md
  • docs/content/labs/Dual/hypervisor/redfish-for-vms.md
  • docs/content/labs/Dual/mgmt-cluster/compact-dual.md
  • docs/content/labs/Dual/mgmt-cluster/index.md
  • docs/content/labs/Dual/mgmt-cluster/network.md
  • docs/content/labs/IPv4/hostedcluster/baremetalhost.md
  • docs/content/labs/IPv4/hostedcluster/hostedcluster.md
  • docs/content/labs/IPv4/hostedcluster/index.md
  • docs/content/labs/IPv4/hostedcluster/infraenv.md
  • docs/content/labs/IPv4/hostedcluster/nodepool.md
  • docs/content/labs/IPv4/hostedcluster/worker-nodes.md
  • docs/content/labs/IPv4/hypervisor/redfish-for-vms.md
  • docs/content/labs/IPv4/mgmt-cluster/compact-ipv4.md
  • docs/content/labs/IPv4/mgmt-cluster/index.md
  • docs/content/labs/IPv4/mgmt-cluster/network.md
  • docs/content/labs/IPv6/hostedcluster/baremetalhost.md
  • docs/content/labs/IPv6/hostedcluster/hostedcluster.md
  • docs/content/labs/IPv6/hostedcluster/index.md
  • docs/content/labs/IPv6/hostedcluster/infraenv.md
  • docs/content/labs/IPv6/hostedcluster/nodepool.md
  • docs/content/labs/IPv6/hostedcluster/worker-nodes.md
  • docs/content/labs/IPv6/hypervisor/redfish-for-vms.md
  • docs/content/labs/IPv6/mgmt-cluster/compact-ipv6.md
  • docs/content/labs/IPv6/mgmt-cluster/index.md
  • docs/content/labs/IPv6/mgmt-cluster/network.md
  • docs/content/labs/common/hypervisor/network-manager-dispatcher.md
  • docs/content/labs/common/mce/agentserviceconfig.md
  • docs/content/labs/common/mce/index.md
  • docs/content/labs/common/mce/multicluster-engine.md
  • docs/content/labs/common/mirror/ICSP-IDMS.md
  • docs/content/labs/common/mirror/mirroring.md
  • docs/content/labs/common/tls-certificates.md
  • docs/content/labs/common/watching/watching-cp.md
  • docs/content/labs/common/watching/watching-dp.md
  • docs/content/recipes/common/control-plane-metrics-forwarding.md
  • docs/content/recipes/common/exposing-dataplane-with-metallb.md
  • docs/content/reference/architecture/mce-and-agent.md
  • docs/content/reference/infrastructure/agent.md
  • docs/content/reference/infrastructure/aws.md
  • docs/content/reference/manifests/ibmcloud/4.10.md
  • docs/content/reference/manifests/ibmcloud/4.11.md
  • docs/content/reference/manifests/ibmcloud/4.12.md
  • docs/content/reference/manifests/ibmcloud/4.13.md
  • docs/content/reference/manifests/ibmcloud/4.9.md

Comment thread docs/compare/compare.mjs
Comment thread docs/compare/compare.mjs
Comment thread docs/compare/compare.mjs Outdated
Comment on lines +291 to +303
<div class="page-header" onclick="this.nextElementSibling.classList.toggle('open')">
<span>${r.page}</span>
<span class="badge ${badge}">${r.diffPercent}% diff</span>
</div>
<div class="page-body">
<h3>Side by side</h3>
<div class="compare">
<div><h4>Old</h4><img src="screenshots-old/${file}" loading="lazy"></div>
<div><h4>New</h4><img src="screenshots-new/${file}" loading="lazy"></div>
</div>
<h3>Diff overlay</h3>
<div class="diff-img"><img src="screenshots-diff/${file}" loading="lazy"></div>
</div>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Use a keyboard-operable disclosure control.

The clickable .page-header is a div with no keyboard interaction or state semantics. Keyboard users cannot open the changed-page comparison.

Use a native details and summary pair, or use a button with aria-expanded.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/compare/compare.mjs` around lines 291 - 303, Replace the clickable
`.page-header` div disclosure in the comparison markup with a keyboard-operable
native `details`/`summary` pair or an equivalent button using `aria-expanded`.
Preserve the existing page header content and comparison body, ensuring the
control exposes and toggles the open state accessibly.

Comment thread docs/compare/compare.mjs
changes, navigation restructuring), you can generate a visual diff against the
current `main` branch:

```shell

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix the new MD046 violations.

The supplied markdownlint output reports MD046 for the five new root-level fenced code blocks. Convert them to the repository's expected indented style, or update the repository rule if fenced blocks are intentional.

As per coding guidelines, run make verify-codespell for Markdown files.

Example
-```shell
+    ```shell
 ...
-```
+    ```

Also applies to: 82-82, 88-88, 95-95, 113-113

🧰 Tools
🪛 markdownlint-cli2 (0.23.2)

[warning] 71-71: Code block style
Expected: indented; Actual: fenced

(MD046, code-block-style)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/content/contribute/contribute-docs.md` at line 71, Update the five new
root-level fenced code blocks in the Markdown document to comply with the
repository’s MD046 indentation style, preserving their shell-language
annotations and content; alternatively, change the repository markdownlint rule
only if fenced blocks are intentionally required. Run make verify-codespell for
the Markdown changes.

Sources: Coding guidelines, Linters/SAST tools

Comment thread docs/content/labs/IPv6/mgmt-cluster/compact-ipv6.md Outdated
Comment thread docs/content/reference/manifests/ibmcloud/4.10.md Outdated
Comment thread docs/Makefile
Comment thread docs/Makefile Outdated
Comment thread docs/Makefile Outdated
  Adds a Playwright-based screenshot comparison tool that diffs every page
  between two built doc sites and generates an HTML report with side-by-side
  views and pixel-level diff overlays.

  Usage:
    make compare              # compare working tree against main
    make compare BASE=v4.18   # compare against a specific ref
    make compare-serve        # serve the report locally
    make compare-clean        # remove generated artifacts

  Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
docs/content/contribute/contribute-docs.md (1)

71-74: ⚠️ Potential issue | 🟡 Minor

Use the repository's Markdown code-block style.

The five new root-level fenced blocks trigger MD046. Convert them to the repository's expected indented style, or update the Markdown rule if fenced blocks are intentional.

As per coding guidelines, run make verify-codespell for this Markdown file.

Also applies to: 82-84, 88-90, 95-107, 113-115

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/content/contribute/contribute-docs.md` around lines 71 - 74, Convert the
referenced root-level fenced code blocks in the contribution documentation to
the repository’s expected indented Markdown code-block style, unless the
project’s Markdown configuration explicitly permits fenced blocks; update the
rule only if that style is intentional. Run make verify-codespell for the
modified Markdown file and resolve any reported issues.

Sources: Coding guidelines, Linters/SAST tools

docs/Makefile (1)

47-48: ⚠️ Potential issue | 🟠 Major

Gate cached and promoted sites on successful builds.

Both recipes continue after the Zensical command. A failed build can leave missing cache metadata, cache metadata in the detached worktree, or partial output promoted as a valid site.

  • docs/Makefile#L47-L48: run the BASE build in a subshell and write $(CURDIR)/site-base/.commit only inside a successful-build branch.
  • docs/Makefile#L53-L56: move site to site-head only after a successful build, or build into a temporary directory and rename it after success.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/Makefile` around lines 47 - 48, Gate both documentation build recipes on
successful Zensical completion: in docs/Makefile lines 47-48, run the BASE build
in a subshell and write site-base/.commit only from its success branch; in lines
53-56, promote site to site-head only after the build succeeds, preferably by
building to a temporary directory and renaming it after success.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/Makefile`:
- Line 47: The base-site build command in the Makefile target must use the
toolchain and dependency files from BASE rather than assuming the worktree
contains Zensical configuration. Update the command around the BASE/worktree
build flow to invoke BASE’s established build command with its pyproject.toml
and uv.lock, while preserving the existing output directory.

---

Duplicate comments:
In `@docs/content/contribute/contribute-docs.md`:
- Around line 71-74: Convert the referenced root-level fenced code blocks in the
contribution documentation to the repository’s expected indented Markdown
code-block style, unless the project’s Markdown configuration explicitly permits
fenced blocks; update the rule only if that style is intentional. Run make
verify-codespell for the modified Markdown file and resolve any reported issues.

In `@docs/Makefile`:
- Around line 47-48: Gate both documentation build recipes on successful
Zensical completion: in docs/Makefile lines 47-48, run the BASE build in a
subshell and write site-base/.commit only from its success branch; in lines
53-56, promote site to site-head only after the build succeeds, preferably by
building to a temporary directory and renaming it after success.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 4b09f64b-ccfe-4d40-8f8c-5cc9658502a2

📥 Commits

Reviewing files that changed from the base of the PR and between 8317d4c and a3bd3ea.

⛔ Files ignored due to path filters (3)
  • docs/compare/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • docs/content/reference/aggregated-docs.md is excluded by !docs/content/reference/aggregated-docs.md
  • docs/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (66)
  • .github/workflows/docs-build-reusable.yaml
  • docs/.gitignore
  • docs/Dockerfile
  • docs/Makefile
  • docs/README.md
  • docs/compare/compare.mjs
  • docs/compare/package.json
  • docs/content/contribute/branch-process.md
  • docs/content/contribute/contribute-docs.md
  • docs/content/how-to/ci/docs-preview.md
  • docs/content/how-to/ci/github-actions.md
  • docs/content/how-to/ci/triage/presubmit-failures.md
  • docs/content/how-to/disconnected/idms-icsp-for-management-clusters.md
  • docs/content/how-to/sdn/other-sdn-providers.md
  • docs/content/labs/Dual/hostedcluster/baremetalhost.md
  • docs/content/labs/Dual/hostedcluster/hostedcluster.md
  • docs/content/labs/Dual/hostedcluster/index.md
  • docs/content/labs/Dual/hostedcluster/infraenv.md
  • docs/content/labs/Dual/hostedcluster/nodepool.md
  • docs/content/labs/Dual/hostedcluster/worker-nodes.md
  • docs/content/labs/Dual/hypervisor/redfish-for-vms.md
  • docs/content/labs/Dual/mgmt-cluster/compact-dual.md
  • docs/content/labs/Dual/mgmt-cluster/index.md
  • docs/content/labs/Dual/mgmt-cluster/network.md
  • docs/content/labs/IPv4/hostedcluster/baremetalhost.md
  • docs/content/labs/IPv4/hostedcluster/hostedcluster.md
  • docs/content/labs/IPv4/hostedcluster/index.md
  • docs/content/labs/IPv4/hostedcluster/infraenv.md
  • docs/content/labs/IPv4/hostedcluster/nodepool.md
  • docs/content/labs/IPv4/hostedcluster/worker-nodes.md
  • docs/content/labs/IPv4/hypervisor/redfish-for-vms.md
  • docs/content/labs/IPv4/mgmt-cluster/compact-ipv4.md
  • docs/content/labs/IPv4/mgmt-cluster/index.md
  • docs/content/labs/IPv4/mgmt-cluster/network.md
  • docs/content/labs/IPv6/hostedcluster/baremetalhost.md
  • docs/content/labs/IPv6/hostedcluster/hostedcluster.md
  • docs/content/labs/IPv6/hostedcluster/index.md
  • docs/content/labs/IPv6/hostedcluster/infraenv.md
  • docs/content/labs/IPv6/hostedcluster/nodepool.md
  • docs/content/labs/IPv6/hostedcluster/worker-nodes.md
  • docs/content/labs/IPv6/hypervisor/redfish-for-vms.md
  • docs/content/labs/IPv6/mgmt-cluster/compact-ipv6.md
  • docs/content/labs/IPv6/mgmt-cluster/index.md
  • docs/content/labs/IPv6/mgmt-cluster/network.md
  • docs/content/labs/common/hypervisor/network-manager-dispatcher.md
  • docs/content/labs/common/mce/agentserviceconfig.md
  • docs/content/labs/common/mce/index.md
  • docs/content/labs/common/mce/multicluster-engine.md
  • docs/content/labs/common/mirror/ICSP-IDMS.md
  • docs/content/labs/common/mirror/mirroring.md
  • docs/content/labs/common/tls-certificates.md
  • docs/content/labs/common/watching/watching-cp.md
  • docs/content/labs/common/watching/watching-dp.md
  • docs/content/recipes/common/control-plane-metrics-forwarding.md
  • docs/content/recipes/common/exposing-dataplane-with-metallb.md
  • docs/content/reference/architecture/mce-and-agent.md
  • docs/content/reference/infrastructure/agent.md
  • docs/content/reference/infrastructure/aws.md
  • docs/content/reference/manifests/ibmcloud/4.10.md
  • docs/content/reference/manifests/ibmcloud/4.11.md
  • docs/content/reference/manifests/ibmcloud/4.12.md
  • docs/content/reference/manifests/ibmcloud/4.13.md
  • docs/content/reference/manifests/ibmcloud/4.9.md
  • docs/mkdocs.yml
  • docs/pyproject.toml
  • docs/requirements.txt
💤 Files with no reviewable changes (2)
  • docs/requirements.txt
  • docs/Dockerfile
🚧 Files skipped from review as they are similar to previous changes (61)
  • docs/content/labs/Dual/hostedcluster/infraenv.md
  • docs/content/how-to/sdn/other-sdn-providers.md
  • docs/content/how-to/ci/github-actions.md
  • docs/content/how-to/ci/triage/presubmit-failures.md
  • docs/content/labs/IPv4/hostedcluster/hostedcluster.md
  • docs/content/reference/manifests/ibmcloud/4.12.md
  • docs/content/labs/Dual/hypervisor/redfish-for-vms.md
  • docs/content/labs/common/mce/multicluster-engine.md
  • docs/content/labs/Dual/mgmt-cluster/network.md
  • .github/workflows/docs-build-reusable.yaml
  • docs/content/labs/common/watching/watching-cp.md
  • docs/content/labs/common/watching/watching-dp.md
  • docs/content/labs/Dual/hostedcluster/index.md
  • docs/content/contribute/branch-process.md
  • docs/content/reference/manifests/ibmcloud/4.11.md
  • docs/content/labs/IPv4/hypervisor/redfish-for-vms.md
  • docs/content/labs/IPv6/mgmt-cluster/network.md
  • docs/content/recipes/common/control-plane-metrics-forwarding.md
  • docs/content/labs/common/hypervisor/network-manager-dispatcher.md
  • docs/content/labs/IPv6/hostedcluster/nodepool.md
  • docs/content/labs/IPv6/hostedcluster/infraenv.md
  • docs/content/reference/manifests/ibmcloud/4.10.md
  • docs/content/reference/infrastructure/agent.md
  • docs/content/labs/Dual/hostedcluster/baremetalhost.md
  • docs/content/labs/IPv6/hypervisor/redfish-for-vms.md
  • docs/content/reference/architecture/mce-and-agent.md
  • docs/content/labs/IPv6/hostedcluster/index.md
  • docs/content/labs/IPv4/hostedcluster/nodepool.md
  • docs/content/labs/IPv4/hostedcluster/infraenv.md
  • docs/content/labs/IPv4/hostedcluster/index.md
  • docs/content/labs/Dual/mgmt-cluster/index.md
  • docs/.gitignore
  • docs/content/labs/Dual/hostedcluster/nodepool.md
  • docs/content/labs/IPv4/hostedcluster/baremetalhost.md
  • docs/content/labs/Dual/hostedcluster/worker-nodes.md
  • docs/content/labs/IPv6/hostedcluster/baremetalhost.md
  • docs/content/reference/manifests/ibmcloud/4.13.md
  • docs/content/labs/IPv6/mgmt-cluster/index.md
  • docs/content/labs/Dual/mgmt-cluster/compact-dual.md
  • docs/content/how-to/ci/docs-preview.md
  • docs/content/labs/common/tls-certificates.md
  • docs/compare/package.json
  • docs/content/labs/common/mce/index.md
  • docs/content/labs/IPv6/mgmt-cluster/compact-ipv6.md
  • docs/content/reference/infrastructure/aws.md
  • docs/content/labs/Dual/hostedcluster/hostedcluster.md
  • docs/pyproject.toml
  • docs/content/labs/common/mirror/mirroring.md
  • docs/content/labs/common/mirror/ICSP-IDMS.md
  • docs/content/labs/IPv4/hostedcluster/worker-nodes.md
  • docs/compare/compare.mjs
  • docs/content/how-to/disconnected/idms-icsp-for-management-clusters.md
  • docs/content/labs/IPv6/hostedcluster/hostedcluster.md
  • docs/content/labs/IPv4/mgmt-cluster/network.md
  • docs/content/labs/IPv4/mgmt-cluster/compact-ipv4.md
  • docs/mkdocs.yml
  • docs/content/labs/IPv4/mgmt-cluster/index.md
  • docs/content/labs/common/mce/agentserviceconfig.md
  • docs/content/recipes/common/exposing-dataplane-with-metallb.md
  • docs/content/reference/manifests/ibmcloud/4.9.md
  • docs/content/labs/IPv6/hostedcluster/worker-nodes.md

Comment thread docs/Makefile
WORKTREE=$$(mktemp -d); \
trap 'git -C .. worktree remove --force "$$WORKTREE" 2>/dev/null' EXIT; \
git -C .. worktree add --detach "$$WORKTREE" "$(BASE)"; \
cd "$$WORKTREE/docs" && uv run --frozen zensical build -d "$(CURDIR)/site-base"; \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

base_ref="${BASE:-main}"

for path in docs/pyproject.toml docs/uv.lock docs/requirements.txt docs/Makefile; do
  if git cat-file -e "$base_ref:$path" 2>/dev/null; then
    printf '== %s:%s ==\n' "$base_ref" "$path"
    git show "$base_ref:$path" | sed -n '1,160p'
  else
    printf 'MISSING %s:%s\n' "$base_ref" "$path"
  fi
done

printf '== build-tool references ==\n'
git show "$base_ref:docs/Makefile" 2>/dev/null |
  rg -n 'mkdocs|zensical|uv run|pip' || true

Repository: openshift/hypershift

Length of output: 12762


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf '%s\n' '== docs/Makefile =='
cat -n docs/Makefile | sed -n '1,110p'

printf '%s\n' '== relevant changes =='
git diff -- docs/Makefile | sed -n '1,220p'

printf '%s\n' '== related comparison/build references =='
rg -n -C 3 'WORKTREE|BASE|site-base|zensical|mkdocs|verify-parallel|comparison' . \
  -g 'Makefile' -g '*.yml' -g '*.yaml' -g '*.md' -g '*.sh'

Repository: openshift/hypershift

Length of output: 50377


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf '%s\n' '== docs/Makefile =='
cat -n docs/Makefile | sed -n '1,100p'

printf '%s\n' '== docs/Makefile diff =='
git diff --unified=30 -- docs/Makefile | sed -n '1,240p'

printf '%s\n' '== narrow references =='
rg -n -C 5 'WORKTREE|site-base|BASE|zensical|mkdocs|verify-parallel' \
  docs/Makefile Makefile .github docs \
  -g 'Makefile' -g '*.yml' -g '*.yaml' -g '*.md' -g '*.sh' \
  --glob '!docs/site/**' --glob '!docs/site-base/**' \
  | sed -n '1,320p'

Repository: openshift/hypershift

Length of output: 21023


Build the base site with the toolchain from BASE. For the default main ref, docs/pyproject.toml and docs/uv.lock are absent, while docs/Makefile uses mkdocs build. Line 47 therefore cannot reliably build the base site. Use the BASE build command and dependency files, or add a compatibility path for MkDocs Material.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/Makefile` at line 47, The base-site build command in the Makefile target
must use the toolchain and dependency files from BASE rather than assuming the
worktree contains Zensical configuration. Update the command around the
BASE/worktree build flow to invoke BASE’s established build command with its
pyproject.toml and uv.lock, while preserving the existing output directory.

@openshift-ci

openshift-ci Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

@celebdor: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@csrwng csrwng added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 11, 2026
@openshift-ci

openshift-ci Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by: celebdor

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@muraee

muraee commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 11, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification

No second-stage tests were triggered for this PR.

This can happen when:

  • The changed files don't match any pipeline_run_if_changed patterns
  • All files match pipeline_skip_if_only_changed patterns
  • No pipeline-controlled jobs are defined for the main branch

Use /test ? to see all available tests.

@celebdor
celebdor merged commit 6c3f984 into openshift:main Aug 11, 2026
19 of 21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/documentation Indicates the PR includes changes for documentation area/platform/aws PR/issue for AWS (AWSPlatform) platform area/platform/ibmcloud PR/issue for IBMCloud (IBMCloudPlatform) platform jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants