Skip to content

feat(ci): treat openshift/release PRs as revert candidates - #385

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift-eng:mainfrom
stbenjam:release-revert
Mar 19, 2026
Merged

openshift-merge-bot[bot] merged 1 commit into
openshift-eng:mainfrom
stbenjam:release-revert

Conversation

@stbenjam

@stbenjam stbenjam commented Mar 19, 2026

Copy link
Copy Markdown
Member

Summary

  • When a subagent traces a blocking job failure to a PR outside the payload (e.g., an openshift/release step registry change), include it as a revert candidate scored the same way as payload PRs
  • Previously, these were reported as "infrastructure failures" with no revert recommendation, even though they are regressions that can and should be reverted

This was discovered during analysis of 4.22.0-0.ci-2026-03-19-064431, where all 3 aggregated upgrade jobs were broken by openshift/release#76145 (a step registry bug), but the skill had no mechanism to recommend reverting it.

Test plan

  • Run /ci:analyze-payload on a payload where a openshift/release PR broke a blocking job and verify it appears as a scored revert candidate

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Analysis now includes externally traced pull requests as candidate causes and evaluates them alongside payload PRs.
    • Added a targeted evidence-gathering check for CI step/script regressions (including step-registry/script commits) when failures point to CI-step scripting issues.
  • Documentation

    • Clarified procedural steps and numbering for root-cause synthesis and recommendations.
  • Chores

    • Plugin metadata version bumped to 0.0.33.

@openshift-ci
openshift-ci Bot requested review from dgoodwin and mrunalp March 19, 2026 10:15
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 19, 2026
@coderabbitai

coderabbitai Bot commented Mar 19, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Plugin ci version bumped from 0.0.32 to 0.0.33 across manifests. Analysis procedures were updated to allow externally-traced PRs (e.g., from openshift/release) to be included as candidate PRs and scored uniformly alongside payload-originated PRs.

Changes

Cohort / File(s) Summary
Plugin Version Updates
​.claude-plugin/marketplace.json, docs/data.json, plugins/ci/.claude-plugin/plugin.json
Bumped ci plugin version from 0.0.320.0.33 in marketplace, docs, and plugin manifest files.
Candidate PR correlation & root-cause steps
plugins/ci/skills/analyze-payload/SKILL.md, plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md
analyze-payload: Step 6.1 expanded to include external PRs (e.g., openshift/release) as candidate PRs when traced by subagents; scoring applied uniformly. prow-job-analyze-test-failure: added step to check step script commits in openshift/release and include responsible PR in evidence.

Sequence Diagram(s)

sequenceDiagram
  rect rgba(200,200,255,0.5)
    actor User
  end
  rect rgba(200,255,200,0.5)
    participant Subagent
    participant Analyzer
    participant Scorer
    participant Repo as "openshift/release"
  end

  User->>Subagent: Report CI failure / payload
  Subagent->>Analyzer: Synthesize root-cause hypotheses from payload PRs
  Analyzer-->>Subagent: Hypothesis (may reference CI step script)
  alt Root cause traced to payload PR
    Analyzer->>Scorer: Score (failed job, payload PR) pairs
  else Root cause traced outside payload
    Subagent->>Repo: Check recent commits to step script
    Repo-->>Subagent: Return external PR (if found)
    Subagent->>Analyzer: Include external PR as candidate
    Analyzer->>Scorer: Score (failed job, external PR) pairs
  end
  Scorer->>Analyzer: Aggregated scores
  Analyzer->>User: Root-cause summary + recommendations
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 8
✅ Passed checks (8 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: treating openshift/release PRs as revert candidates, which is the core functionality addition across the skill documentation and version bump.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
No Real People Names In Style References ✅ Passed Pull request contains no references to real people's names used as style references, example personas, or stylistic guidance.
No Assumed Git Remote Names ✅ Passed The pull request modifies two skill documentation files without introducing git commands that assume remote names.
Git Push Safety Rules ✅ Passed PR modifies only version bumps and documentation clarifications; contains no git push commands or force push operations.
No Untrusted Mcp Servers ✅ Passed No untrusted MCP servers are introduced. Changes are version bumps and documentation updates only.
Ai-Helpers Overlap Detection ✅ Passed PR modifies two existing CI skills with enhancements to root-cause analysis; no overlapping functionality with other plugins, agents, or open PRs detected.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

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

@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 the current code and only fix it if needed.

Inline comments:
In `@plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md`:
- Around line 937-940: The guidance under the "Check for step registry changes
when the failure is in a CI step script" section currently asks for free-form PR
mention; change it to require a fixed structured attribution whenever a
step-registry PR is identified: require fields repo, pr_number, pr_url, and
evidence (a short quoted log/snippet) to be provided in the root-cause summary,
and update the sentence in SKILL.md that currently advises "Include the
responsible PR in your root cause summary" to instead mandate that exact
structured format so downstream extraction/scoring (repo, pr_number, pr_url,
evidence) can be reliably parsed.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ddbaf8ed-63f5-4097-a6da-ffc4491fa1ac

📥 Commits

Reviewing files that changed from the base of the PR and between a9e3e3f and 26e2413.

📒 Files selected for processing (5)
  • .claude-plugin/marketplace.json
  • docs/data.json
  • plugins/ci/.claude-plugin/plugin.json
  • plugins/ci/skills/analyze-payload/SKILL.md
  • plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md
✅ Files skipped from review due to trivial changes (3)
  • .claude-plugin/marketplace.json
  • plugins/ci/.claude-plugin/plugin.json
  • docs/data.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • plugins/ci/skills/analyze-payload/SKILL.md

Comment thread plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md Outdated
…-payload

When a subagent traces a failure root cause to a PR outside the payload
(e.g., an openshift/release step registry change), include it as a
candidate scored the same way as payload PRs rather than dismissing it
as an infrastructure issue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.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 the current code and only fix it if needed.

Inline comments:
In `@plugins/ci/skills/analyze-payload/SKILL.md`:
- Around line 200-203: Update the rubric text under "Score each (failed job,
candidate PR) pair using the following weighted rubric" to explicitly normalize
signals that reference originating-payload membership: state that external PRs
(e.g., an openshift/release PR) are treated as candidates but are not considered
payload members, define that the "Single candidate" bonus applies only when
there is exactly one candidate across both payload and external PRs (or specify
alternative desired behavior), and clarify timing checks to compare PR
commit/merge timestamps to the job failure time (not payload creation) so
identical evidence yields consistent scores; add one short example sentence for
each rule and a single-line normalization statement at the top of the rubric
referencing the "Single candidate" and timing-check signals.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e84732af-0f26-4c10-89b3-4ddcdf7352f5

📥 Commits

Reviewing files that changed from the base of the PR and between 26e2413 and 0c58750.

📒 Files selected for processing (5)
  • .claude-plugin/marketplace.json
  • docs/data.json
  • plugins/ci/.claude-plugin/plugin.json
  • plugins/ci/skills/analyze-payload/SKILL.md
  • plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md
✅ Files skipped from review due to trivial changes (3)
  • plugins/ci/.claude-plugin/plugin.json
  • .claude-plugin/marketplace.json
  • docs/data.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • plugins/ci/skills/prow-job-analyze-test-failure/SKILL.md

Comment thread plugins/ci/skills/analyze-payload/SKILL.md
@smg247

smg247 commented Mar 19, 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 Mar 19, 2026
@openshift-ci

openshift-ci Bot commented Mar 19, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: smg247, 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants