Skip to content

Add autodl metrics for Claude eval jobs - #83023

Open
stbenjam wants to merge 8 commits into
openshift:mainfrom
stbenjam:agent/claude-autodl-artifacts
Open

Add autodl metrics for Claude eval jobs#83023
stbenjam wants to merge 8 commits into
openshift:mainfrom
stbenjam:agent/claude-autodl-artifacts

Conversation

@stbenjam

@stbenjam stbenjam commented Aug 6, 2026

Copy link
Copy Markdown
Member

Summary

  • generate claude-session-metrics-autodl.json directly in the Claude eval step's artifact directory
  • account separately for the /eval-run orchestrator and the much larger per-model agent-eval-harness spend
  • append rows safely when discovery mode runs multiple eval configs
  • emit stable synthetic session IDs for harness aggregates while preserving real orchestrator session IDs
  • avoid SHARED_DIR entirely for metrics, so the 1 MiB shared-data limit is not involved

The edge-tooling eval command is a symlink to the shared OpenShift Claude eval command, so it receives the same coverage.

Why

Eval jobs retain enough data to measure spend but do not currently publish a session-metrics AutoDL artifact. A 30-day artifact audit recovered $2,452.71 from the affected jobs; $2,328.28 was in harness case runs and only $124.44 was in the top-level orchestrators.

Validation

  • bash -n
  • ShellCheck at warning severity
  • make registry-metadata
  • make ci-operator-checkconfig
  • exercised extraction against a retained expensive eval artifact: two rows, $181.127816 harness plus $4.862971 orchestrator, totaling $185.990787
  • verified multi-config append, orchestrator-only, and harness-only cases

The separate openshift-api-eval workflow is not covered because its historical jobs retained neither Claude stream logs nor agent-eval-harness run results.

Summary by CodeRabbit

This PR adds AutoDL metrics generation to Claude evaluation jobs in OpenShift CI.

  • Parses Claude stream logs and agent-eval-harness results into claude-session-metrics-autodl.json.
  • Reports usage, cost, tokens, cache rates, tools, skills, duration, errors, and session metadata.
  • Separates /eval-run orchestrator spend from per-model harness spend.
  • Preserves orchestrator session IDs and creates stable synthetic IDs for harness aggregates.
  • Appends metrics safely across multiple evaluation configurations without using SHARED_DIR.
  • Extends metrics coverage to edge-tooling evaluations through the shared Claude eval command.
  • Documents AutoDL metrics and archived evaluation traces and reports.
  • Validates shell syntax, ShellCheck, registry metadata, CI operator configuration, and retained evaluation artifacts. The openshift-api-eval workflow remains unvalidated because it lacks retained Claude logs and harness results.

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Aug 6, 2026
@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

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

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 25482d56-46f1-405f-8fdb-683049ac8fd9

📥 Commits

Reviewing files that changed from the base of the PR and between bbd3bca and 94f79fb.

📒 Files selected for processing (2)
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-ref.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-ref.yaml
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh

Walkthrough

The evaluation step parses Claude stream data and harness results into AutoDL session metrics. It captures per-evaluation stream logs, handles missing inputs, writes metrics atomically, and documents the new outputs.

Changes

Claude evaluation metrics

Layer / File(s) Summary
Metric extraction and persistence
ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh
write_eval_metrics parses stream and harness JSON, records usage, costs, tokens, cache rates, tools, skills, durations, errors, and session metadata, then atomically updates shared metrics.
Evaluation wiring and output documentation
ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh, ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-ref.yaml
Each evaluation captures a stream log, locates run_result.json, invokes metric extraction with warnings, and documents AutoDL session metrics and archived traces and reports.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Evaluation
  participant Claude
  participant Harness
  participant write_eval_metrics
  participant SharedMetrics
  Evaluation->>Claude: capture evaluation stream log
  Evaluation->>Harness: locate matching run_result.json
  Evaluation->>write_eval_metrics: provide log and harness result
  write_eval_metrics->>SharedMetrics: atomically append AutoDL metrics
Loading

Possibly related PRs

Suggested reviewers: cblecker, bryan-cox


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error The changed claude ... --output-format stream-json --verbose 2>&1 | tee sends full prompts, assistant text, tool inputs/results, and session data to Prow logs and retained artifacts. Capture stream-json in a temporary file, extract allowlisted metrics, and delete it. Do not pipe it through tee; avoid logging raw EVAL_EXTRA_ARGS or real session IDs.
✅ Passed checks (14 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 main change: adding AutoDL metrics for Claude evaluation jobs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 The patch changes only a shell command and YAML documentation; it adds no Go files or Ginkgo It/Describe/Context/When test titles.
Test Structure And Quality ✅ Passed The PR changes only a shell script and YAML documentation; the patch adds no Ginkgo test code, so the listed Ginkgo quality requirements are not applicable.
Microshift Test Compatibility ✅ Passed The pull request changes only a shell command and YAML documentation; it adds no Ginkgo e2e tests or MicroShift-sensitive API usage.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The PR changes only a shell command file and YAML documentation; it adds no Go files or Ginkgo declarations, so SNO compatibility checks do not apply.
Topology-Aware Scheduling Compatibility ✅ Passed The PR changes only a Claude eval shell script and step documentation; it adds no deployment, controller, pod, affinity, topology, node selector, toleration, replica, or PDB scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The PR changes only a shell CI step and YAML documentation; it adds no OTE binary or Go suite process code subject to the JSON stdout contract.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The feature diff adds only shell/YAML changes; it adds no Ginkgo e2e tests, IPv4 assumptions, or new external connectivity use.
No-Weak-Crypto ✅ Passed The complete PR diff adds JSON parsing and metrics only; scans found no MD5/SHA1/DES/RC4/Blowfish/ECB, custom crypto, or secret/token comparisons.
Container-Privileges ✅ Passed The branch-base diff adds only metrics/stream shell logic and documentation; no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, root, or allowPrivilegeEscalation settings were added.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@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 (1)
ci-operator/step-registry/openshift/claude/post/openshift-claude-post-commands.sh (1)

223-224: 🗄️ Data Integrity & Integration | 🔵 Trivial | 💤 Low value

Consider recording models with zero reported cost.

Line 223 drops any model whose cost_usd is zero or missing. A model that consumed tokens but has no price entry in the harness produces no row. The token totals for that model are then lost from the aggregate.

If the intent is only to suppress fully idle models, test the token counts instead of the cost.

🤖 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
`@ci-operator/step-registry/openshift/claude/post/openshift-claude-post-commands.sh`
around lines 223 - 224, Update the filtering condition in the model-recording
loop to skip only fully idle models by checking their token counts, rather than
treating zero or missing cost_usd as grounds for exclusion. Preserve records for
models that consumed tokens even when their reported cost is zero or
unavailable.
🤖 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
`@ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh`:
- Around line 240-249: Update the Claude pipeline around the timeout/tee
invocation to preserve the exit status from claude or timeout rather than tee.
Enable pipefail for the script or explicitly capture PIPESTATUS[0], while
retaining the assignment to THIS_EXIT so evaluation failures are propagated.

In
`@ci-operator/step-registry/openshift/claude/post/openshift-claude-post-commands.sh`:
- Line 44: Contain all metrics-extraction failures in extract_session_metrics so
they cannot prevent continue-session page generation: at
ci-operator/step-registry/openshift/claude/post/openshift-claude-post-commands.sh
lines 44-44, wrap the eval-harness python3 heredoc in an if ! block that emits a
warning; at lines 279-295, similarly guard the merge heredoc and row_count read,
assigning row_count a fallback when the read fails.
- Around line 202-218: Handle null or non-dictionary values when reading
per_model_turns and eval_params in the result-processing flow: normalize each to
an empty dictionary before calling values() or get(). Keep the existing
aggregation and prompt-generation behavior unchanged for valid dictionaries,
matching the defensive pattern already used for per_case.

---

Nitpick comments:
In
`@ci-operator/step-registry/openshift/claude/post/openshift-claude-post-commands.sh`:
- Around line 223-224: Update the filtering condition in the model-recording
loop to skip only fully idle models by checking their token counts, rather than
treating zero or missing cost_usd as grounds for exclusion. Preserve records for
models that consumed tokens even when their reported cost is zero or
unavailable.
🪄 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: fbab831f-7e0f-469c-b1d6-0072e26667ed

📥 Commits

Reviewing files that changed from the base of the PR and between b8ce723 and 525f406.

📒 Files selected for processing (3)
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh
  • ci-operator/step-registry/openshift/claude/post/openshift-claude-post-commands.sh
  • ci-operator/step-registry/openshift/claude/post/openshift-claude-post-ref.yaml

Comment thread ci-operator/step-registry/openshift/claude/post/openshift-claude-post-commands.sh Outdated
Comment thread ci-operator/step-registry/openshift/claude/post/openshift-claude-post-commands.sh Outdated

@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

🧹 Nitpick comments (2)
ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh (2)

377-381: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Zero-cost models are dropped with their token counts.

Line 380 skips any model whose cost_usd is missing or zero. If a harness result reports token usage but no cost (for example, a cached or free-tier model, or a schema that omits cost_usd), the token data never reaches AutoDL. Consider emitting the row when token counts are non-zero, and skipping only fully empty entries.

♻️ Proposed change
     for model, usage in usages.items():
         turns = int(model_turns.get(model, 0) or 0)
         cost = float(usage.get("cost_usd", 0) or 0)
-        if cost <= 0:
-            continue
+        tokens = sum(
+            int(usage.get(key, 0) or 0)
+            for key in ("input", "output", "cache_read", "cache_creation")
+        )
+        if cost <= 0 and tokens <= 0:
+            continue
🤖 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
`@ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh`
around lines 377 - 381, Update the usage-row filtering in the usages loop to
skip only entries with both zero cost and zero token turns. Preserve rows when
turns is non-zero even if cost_usd is missing or zero, while continuing to omit
fully empty entries.

427-434: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Harden the append path against a foreign or truncated artifact.

Line 431 assumes the existing file contains a rows list that matches metrics.SCHEMA. A file written by a different producer, or a truncated file, raises KeyError or silently mixes two schemas in one table. Use setdefault for the key and validate the schema before extending.

The atomic write with with_suffix plus replace at Lines 435-438 is correct.

♻️ Proposed change
 output = pathlib.Path(output_path)
-if output.is_file():
-    with output.open() as stream:
-        document = json.load(stream)
-    document["rows"].extend(rows)
-else:
+document = None
+if output.is_file():
+    try:
+        with output.open() as stream:
+            document = json.load(stream)
+    except (json.JSONDecodeError, OSError):
+        document = None
+if isinstance(document, dict) and document.get("schema") == metrics.SCHEMA:
+    document.setdefault("rows", []).extend(rows)
+else:
     document = metrics.build_autodl(rows[0])
     document["rows"] = rows
🤖 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
`@ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh`
around lines 427 - 434, Harden the existing-file branch around document["rows"]:
use setdefault to ensure the rows key exists, then validate the loaded document
against metrics.SCHEMA before extending it. Reject foreign or truncated
artifacts rather than appending incompatible rows, while preserving the current
atomic write behavior.
🤖 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
`@ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh`:
- Around line 321-322: Update the ttft_ms and num_turns mappings in the
result-row construction to use the same null-safe `or 0` fallback as the other
numeric fields, while preserving the is_primary conditional so non-primary
results remain zero.

---

Nitpick comments:
In
`@ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh`:
- Around line 377-381: Update the usage-row filtering in the usages loop to skip
only entries with both zero cost and zero token turns. Preserve rows when turns
is non-zero even if cost_usd is missing or zero, while continuing to omit fully
empty entries.
- Around line 427-434: Harden the existing-file branch around document["rows"]:
use setdefault to ensure the rows key exists, then validate the loaded document
against metrics.SCHEMA before extending it. Reject foreign or truncated
artifacts rather than appending incompatible rows, while preserving the current
atomic write behavior.
🪄 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: e158f09c-70d6-47f2-a94e-a957618d77de

📥 Commits

Reviewing files that changed from the base of the PR and between 525f406 and 7ed4f71.

📒 Files selected for processing (2)
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-ref.yaml

@stbenjam
stbenjam marked this pull request as ready for review August 6, 2026 11:01
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Aug 6, 2026
@openshift-ci
openshift-ci Bot requested review from bryan-cox and cblecker August 6, 2026 11:01

@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
`@ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh`:
- Around line 376-384: The per-model row construction must not substitute
aggregate turns when per_model_turns exists but a model’s count is zero or
missing. Update the turns fallback near the usages loop and the result.num_turns
handling around the per-model metric creation so aggregate turns are used only
when per_model_turns is absent and exactly one usage model exists; otherwise
preserve zero or the model-specific count.
🪄 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: 9c071bea-27f8-4589-a4a7-ba2686284169

📥 Commits

Reviewing files that changed from the base of the PR and between 7ed4f71 and bbd3bca.

📒 Files selected for processing (2)
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-commands.sh
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-ref.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • ci-operator/step-registry/openshift/claude/agent-eval/openshift-claude-agent-eval-ref.yaml

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@stbenjam: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-openshift-eng-ai-helpers-main-eval-payload-analysis openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-payload-analysis-changed openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-payload-analysis-minimal openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-prow-job-analysis openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-prow-job-analysis-minimal openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-classify-review-comment openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-address-reviews openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-ready-to-solve openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-jira-solve openshift-eng/ai-helpers presubmit Registry content changed
periodic-ci-openshift-eng-ai-helpers-main-periodics-eval-payload-analysis N/A periodic Registry content changed
periodic-ci-openshift-eng-ai-helpers-main-periodics-eval-ready-to-solve N/A periodic Registry content changed
periodic-ci-openshift-eng-ai-helpers-main-periodics-eval-jira-solve N/A periodic Registry content changed
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@stbenjam: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-openshift-eng-ai-helpers-main-eval-payload-analysis openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-payload-analysis-changed openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-payload-analysis-minimal openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-prow-job-analysis openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-prow-job-analysis-minimal openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-classify-review-comment openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-address-reviews openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-ready-to-solve openshift-eng/ai-helpers presubmit Registry content changed
pull-ci-openshift-eng-ai-helpers-main-eval-jira-solve openshift-eng/ai-helpers presubmit Registry content changed
periodic-ci-openshift-eng-ai-helpers-main-periodics-eval-ready-to-solve N/A periodic Registry content changed
periodic-ci-openshift-eng-ai-helpers-main-periodics-eval-jira-solve N/A periodic Registry content changed
periodic-ci-openshift-eng-ai-helpers-main-periodics-eval-payload-analysis N/A periodic Registry content changed
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@stbenjam

stbenjam commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

/pj-rehearse pull-ci-openshift-eng-ai-helpers-main-eval-payload-analysis-minimal

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@stbenjam: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

@stbenjam: 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.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@stbenjam: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Aug 6, 2026
@enxebre

enxebre commented Aug 6, 2026

Copy link
Copy Markdown
Member

/lgtm

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

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: enxebre, stbenjam

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

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. lgtm Indicates that a PR is ready to be merged. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants