USHIFT-6764: Introduce bug correlation in analyze-ci:doctor reports#6420
Conversation
|
@ggiguash: This pull request references USHIFT-6764 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 "4.22.0" version, but no target version was set. DetailsIn response to this: 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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
WalkthroughDocumentation updates across five analyze-ci command docs: removed CI failure filtering, added machine-readable bug mapping output and consumption, parallelized dry-run create-bugs runs, broadened accepted job URL formats, and added Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Skipping CI for Draft Pull Request. |
|
@coderabbitai perform full review |
|
✅ Actions performedFull review triggered. |
|
@ggiguash: This pull request references USHIFT-6764 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 "4.22.0" version, but no target version was set. DetailsIn response to this:
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. |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.claude/commands/analyze-ci/create-report.md (1)
286-290: Good correlation strategy with a caveat.The fuzzy keyword matching approach using distinctive terms (tool names, test IDs, error codes) is pragmatic and robust. However, the fuzzy nature means the implementation will need careful tuning to avoid false positives (linking unrelated bugs) or false negatives (missing valid matches).
Consider documenting expected match confidence criteria or providing examples of what constitutes a "significant keyword match".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.claude/commands/analyze-ci/create-report.md around lines 286 - 290, Update the "Bug Correlation" section to document match-confidence rules and examples: describe how fuzzy keyword matches against ERROR_SIGNATURE are scored (e.g., required minimum shared distinctive-term count, weighted terms like tool names/test IDs/error codes, and thresholds for exact vs. fuzzy matches), note safeguards to avoid false positives (e.g., require matches on at least one high-weight token and overall score >= threshold), and show 2–3 concrete examples mapping an issue title/description or job root cause to a BUG CANDIDATE (including when to treat JIRA_DUPLICATES and JIRA_REGRESSIONS as matches vs. when to show <span class="no-bugs">No tracked bugs</span>); reference ERROR_SIGNATURE, JIRA_DUPLICATES, JIRA_REGRESSIONS, and the "Bug Correlation" section so reviewers can find and tune thresholds.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In @.claude/commands/analyze-ci/create-report.md:
- Around line 286-290: Update the "Bug Correlation" section to document
match-confidence rules and examples: describe how fuzzy keyword matches against
ERROR_SIGNATURE are scored (e.g., required minimum shared distinctive-term
count, weighted terms like tool names/test IDs/error codes, and thresholds for
exact vs. fuzzy matches), note safeguards to avoid false positives (e.g.,
require matches on at least one high-weight token and overall score >=
threshold), and show 2–3 concrete examples mapping an issue title/description or
job root cause to a BUG CANDIDATE (including when to treat JIRA_DUPLICATES and
JIRA_REGRESSIONS as matches vs. when to show <span class="no-bugs">No tracked
bugs</span>); reference ERROR_SIGNATURE, JIRA_DUPLICATES, JIRA_REGRESSIONS, and
the "Bug Correlation" section so reviewers can find and tune thresholds.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
Run ID: 49d57cc5-b998-4f63-8057-cfdfe29fd004
📒 Files selected for processing (5)
.claude/commands/analyze-ci/create-bugs.md.claude/commands/analyze-ci/create-report.md.claude/commands/analyze-ci/doctor.md.claude/commands/analyze-ci/prow-job.md.claude/commands/analyze-ci/test-job.md
|
@ggiguash: This pull request references USHIFT-6764 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 "4.22.0" version, but no target version was set. DetailsIn response to this:
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. |
|
@ggiguash: This pull request references USHIFT-6764 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 "4.22.0" version, but no target version was set. DetailsIn response to this:
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. |
|
@ggiguash: This pull request references USHIFT-6764 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 "4.22.0" version, but no target version was set. DetailsIn response to this:
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. |
|
@ggiguash: This pull request references USHIFT-6764 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 "4.22.0" version, but no target version was set. DetailsIn response to this:
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. |
|
@ggiguash: This pull request references USHIFT-6764 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 "4.22.0" version, but no target version was set. DetailsIn response to this:
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. |
|
/verified by @ggiguash |
|
@ggiguash: This PR has been marked as verified by DetailsIn response to this:
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. |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
.claude/commands/analyze-ci/create-report.md (1)
256-260: Consider using CSS padding instead of empty paragraphs.While the empty paragraphs work, using CSS padding on the container would be more semantic.
♻️ Alternative approach
- <!-- Extra spacing to ensure tab content is fully visible in Prow Spyglass iframe --> - <p> </p> - <p> </p> - <p> </p> - <p> </p> + <!-- Ensure tab content is fully visible in Prow Spyglass iframe -->And add to CSS:
.container { padding-bottom: 80px; }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.claude/commands/analyze-ci/create-report.md around lines 256 - 260, Replace the four empty spacer paragraphs (<p> </p>) with a semantic padding approach: remove those <p> elements, add a class (e.g., "container") to the parent tab/container element in create-report.md, and add a CSS rule on that class to provide bottom padding (approximately 80px) so the tab content remains fully visible in the Prow Spyglass iframe.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/commands/analyze-ci/create-report.md:
- Around line 198-201: Update the fuzzy matching comments in the matching block
(near the <!-- Match by comparing ... --> comments and the <div
class="bug-links">) to specify a concrete algorithm: normalize strings to
lowercase and strip stopwords/punctuation, perform simple stemming, extract
distinctive tokens (tool names, error codes, test IDs), compute token overlap
and coverage, and consider a match when either (a) ≥3 distinctive token overlaps
or (b) token overlap ≥60%; prefer exact substring matches and assign a
confidence score based on overlap percentage; document case sensitivity,
stemming approach, and tie-breaking rules so the matching behavior is
deterministic.
- Line 69: Update the sentence so it states the rebase PR bug mapping filename
deterministically uses the rebase pattern: replace "may be
`analyze-ci-bugs-rebase-release-<version>.txt`" with "is
`analyze-ci-bugs-rebase-release-<version>.txt`" so the text reflects the actual
deterministic naming for rebase PRs (string:
analyze-ci-bugs-rebase-release-<version>.txt).
- Around line 41-43: The sentence claiming bug mapping files are "produced by
`analyze-ci:create-bugs` dry-run" is misleading; update the wording in
.claude/commands/analyze-ci/create-report.md so it says these mappings
(`${WORKDIR}/analyze-ci-bugs-*.txt`) are written by `analyze-ci:create-bugs` in
both dry-run and create modes (per create-bugs.md Step 7b), e.g., change
"produced by ... dry-run" to "produced by `analyze-ci:create-bugs` (in both
dry-run and create modes)"; keep note that they are optional and used to show
JIRA bug links.
---
Nitpick comments:
In @.claude/commands/analyze-ci/create-report.md:
- Around line 256-260: Replace the four empty spacer paragraphs (<p> </p>)
with a semantic padding approach: remove those <p> elements, add a class (e.g.,
"container") to the parent tab/container element in create-report.md, and add a
CSS rule on that class to provide bottom padding (approximately 80px) so the tab
content remains fully visible in the Prow Spyglass iframe.
🪄 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), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
Run ID: 8c91bdf2-1b75-4a98-a67d-c3dc973d86f7
📒 Files selected for processing (1)
.claude/commands/analyze-ci/create-report.md
|
/verified by @ggiguash |
|
@ggiguash: This PR has been marked as verified by DetailsIn response to this:
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. |
|
@ggiguash: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions 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. |
|
/verified by @ggiguash |
|
@ggiguash: This PR has been marked as verified by DetailsIn response to this:
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. |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ggiguash, pmtk The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |


Overview
analyze-ci:create-bugscommand now saves a machine-readable bug mapping fileanalyze-ci:create-bugsto improve predictability of the resultanalyze-ci:create-reportcommand uses the bug mapping file to include JIRA issues in the generate reportanalyze-ci:doctoradds a step to perform bug correlation based on the above functionalitySample Report
microshift-ci-doctor-report.html
When Related Bugs Are Found
When Related Bugs Are Missing
Sample Run