Skip to content

bump-plugins skill - #231

Merged
openshift-merge-bot[bot] merged 2 commits into
openshift-eng:mainfrom
pmtk:bump-plugins
Jul 16, 2026
Merged

bump-plugins skill#231
openshift-merge-bot[bot] merged 2 commits into
openshift-eng:mainfrom
pmtk:bump-plugins

Conversation

@pmtk

@pmtk pmtk commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Documentation
    • Added a user-invocable guided “bump-plugins” workflow that detects plugin changes on the current branch, determines the highest required semver bump (major/minor/patch), and presents a confirmation table before applying updates.
    • Includes safeguards for dirty working trees, already-bumped versions, new/deleted plugins, prerelease/build-metadata handling, and downgrade prevention.
    • After confirmation, it updates plugin versions, regenerates the marketplace catalog, and validates affected plugins.
  • Chores
    • Updated ignore rules to exclude node_modules/ from version control.

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Adds a user-invocable bump-plugins skill that resolves a comparison base, detects changed plugins, classifies semver updates, requests confirmation, updates versions, synchronizes the catalog, and validates selected plugins.

Changes

Plugin version bump workflow

Layer / File(s) Summary
Base resolution and plugin classification
.claude/skills/bump-plugins/SKILL.md
Defines skill metadata, prerequisites, comparison-base resolution, changed-plugin detection, semver classification, and already-bumped handling.
Confirmation and version updates
.claude/skills/bump-plugins/SKILL.md
Presents plugin changes for confirmation, updates selected versions, regenerates the marketplace catalog, and validates bumped plugins.
Usage, edge cases, and repository support
.claude/skills/bump-plugins/SKILL.md, .gitignore
Documents invocation examples and edge cases, and ignores node_modules/ in version control.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 10 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Ai-Attribution ⚠️ Warning The skill doc uses “Claude” examples, but the branch commits lack Assisted-by/Generated-by trailers; no required Red Hat AI attribution is present. Add Red Hat AI attribution trailers (Assisted-by or Generated-by) to the AI-assisted commit(s); do not use Co-Authored-By for AI tools.
✅ Passed checks (10 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: adding the bump-plugins skill document.
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.
No-Weak-Crypto ✅ Passed HEAD only adds node_modules/ to .gitignore; no crypto code, weak algorithms, or secret comparisons introduced.
Container-Privileges ✅ Passed PR only changes a skill markdown and .gitignore; no container/K8s manifests or privileged settings were added.
No-Sensitive-Data-In-Logs ✅ Passed Changed files are a skill doc and .gitignore; no logs of secrets/PII/tokens appear, only generic git log/diff instructions and status reporting.
No-Hardcoded-Secrets ✅ Passed The commit only adds node_modules/ to .gitignore, and the skill file scan found no API keys, tokens, passwords, private keys, embedded creds, or long base64 literals.
No-Injection-Vectors ✅ Passed Scanned all PR-changed files; found no listed injection patterns. The new skill doc is markdown-only, with no unsafe APIs or SQL concatenation.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 markdownlint-cli2 (0.23.0)
.claude/skills/bump-plugins/SKILL.md

markdownlint-cli2 v0.23.0 (markdownlint v0.41.0)
Finding: :.claude/skills/bump-plugins/SKILL.md !node_modules/** !two-node-toolbox/**
Linting: 1 file(s)
Summary: 0 error(s)
AggregateError: Unable to import module 'markdownlint-cli2-formatter-pretty'.
at importModule (file:///usr/local/lib/node_modules/markdownlint-cli2/markdownlint-cli2.mjs:92:11)
at async Promise.all (index 0)
at async outputResults (file:///usr/local/lib/node_modules/markdownlint-cli2/markdownlint-cli2.mjs:879:9)
at async main (file:///usr/local/lib/node_modules/markdownlint-cli2/markdownlint-cli2.mjs:1072:5)
at async file:///usr/local/lib/node_modules/markdownlint-cli2/markdownlint-cli2-bin.mjs:14:22 {
[errors]: [
Error: Cannot find module 'markdownlint-cli2-formatter-pretty'
Require stack:
- /usr/local/lib/node_modules/markdownlint-cli2/node_modules/markdownlint/lib/resolve-module.cjs
at Module._resolveFilename (node:internal/modules/cjs/loader:1476:15)
at wrapResol

... [truncated 1085 characters] ...

node:internal/modules/esm/resolve:271:11)
at moduleResolve (node:internal/modules/esm/resolve:861:10)
at defaultResolve (node:internal/modules/esm/resolve:988:11)
at #cachedDefaultResolve (node:internal/modules/esm/loader:697:20)
at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:714:38)
at ModuleLoader.resolveSync (node:internal/modules/esm/loader:746:52)
at #resolve (node:internal/modules/esm/loader:679:17)
at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:599:35)
at node:internal/modules/esm/loader:628:32
at TracingChannel.tracePromise (node:diagnostics_channel:362:14) {
code: 'ERR_MODULE_NOT_FOUND',
url: 'file:///markdownlint-cli2-formatter-pretty'
}
]
}


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.

❤️ Share

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

@openshift-ci

openshift-ci Bot commented Jul 16, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: pmtk

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

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

Copy link
Copy Markdown
Contributor

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Full review finished.

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

🤖 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 @.claude/skills/bump-plugins/SKILL.md:
- Around line 1-6: Move the bump-plugins skill definition out of the global
.claude/skills location and into the appropriate plugin-scoped directory under
plugins/. Preserve the existing skill metadata and workflow behavior, updating
any references needed so the plugin-specific skill remains discoverable and
invocable.
- Around line 1-6: Constrain the allowed-tools policy for the bump-plugins skill
by replacing unrestricted Bash access with a narrowly scoped wrapper that
permits only the required Git and marketplace operations. If a wrapper is not
available, document strict command and argument restrictions preventing
repository-controlled content from triggering unrelated filesystem, shell, or
network operations; update the YAML front matter while preserving the skill’s
required functionality.
- Around line 127-129: Update the dirty working tree guidance before Step 5 to
stop automatic progression when plugin.json or .claude-plugin/marketplace.json
has uncommitted changes. Display the exact conflicting diff, require explicit
user opt-in to continue, and preserve and verify the pre-existing changes after
the catalog rewrite.
- Around line 101-107: Update the bump workflow in SKILL.md to validate every
edited plugin manifest before invoking catalog-update, stopping immediately on
validation failure. After regeneration, verify the diff contains only the
confirmed version edits and expected marketplace catalog changes, and restore or
abort the generated catalog when unrelated changes or regeneration failures
occur; retain the existing per-plugin validation and git diff --stat steps.
- Around line 52-57: Update the plugin detection instructions around the git
diff and manifest checks to enumerate candidate directories from both the base
tree and HEAD. Classify candidates with a manifest only in the base tree as
removed, report them as changed plugins, and continue ignoring directories that
are not plugins in either tree.
- Around line 37-42: Update the upstream remote discovery instructions to match
only fetch URLs exactly anchored to github.com/openshift-eng/edge-tooling,
allowing any protocol and an optional .git suffix but rejecting names such as
edge-tooling-evil. Abort when no remotes or multiple remotes match; only fetch
and use the unique matching remote in the existing merge-base flow.
- Around line 78-83: Update the version-checking flow in the bump-plugins skill
to detect plugins absent from the base revision before running the git show
base-version lookup. For newly added plugins, apply the documented
initial-version rule and classify/report them without attempting to compare
against a nonexistent base file; retain the existing already-bumped and
under-scoped handling for plugins present in the base.
🪄 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: cae798bf-ac8a-4dee-8e03-cc7db9dde26a

📥 Commits

Reviewing files that changed from the base of the PR and between 07a4fd9 and 1f95b13.

📒 Files selected for processing (1)
  • .claude/skills/bump-plugins/SKILL.md

Comment thread .claude/skills/bump-plugins/SKILL.md
Comment thread .claude/skills/bump-plugins/SKILL.md Outdated
Comment thread .claude/skills/bump-plugins/SKILL.md Outdated
Comment thread .claude/skills/bump-plugins/SKILL.md Outdated
Comment thread .claude/skills/bump-plugins/SKILL.md
Comment thread .claude/skills/bump-plugins/SKILL.md

@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: 2

🤖 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 @.claude/skills/bump-plugins/SKILL.md:
- Around line 38-42: Update the repository-base detection instructions around
git fetch and git merge-base to verify that <upstream-remote>/main exists after
a failed fetch before using it. If unavailable, try only valid local fallbacks
such as origin/main or main; if none exist, stop with a clear error instead of
running merge-base against a missing ref, and report the failed fetch.
- Around line 86-92: Update the version-classification flow in the bump
procedure to compare the base plugin version with HEAD before calculating the
suggested bump. Add an explicit downgrade branch for existing plugins when HEAD
is lower than the base, flag and report the downgrade, and prevent Step 5’s
automatic target calculation or overwrite; retain the existing already-bumped
handling and skip this check for new plugins without a base version.
🪄 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: 4a1b504f-8e4e-4803-8081-3f0ab09d80c6

📥 Commits

Reviewing files that changed from the base of the PR and between 1f95b13 and 578ebdf.

📒 Files selected for processing (2)
  • .claude/skills/bump-plugins/SKILL.md
  • .gitignore

Comment thread .claude/skills/bump-plugins/SKILL.md Outdated
Comment thread .claude/skills/bump-plugins/SKILL.md
@eggfoobar

Copy link
Copy Markdown
Contributor

/lgtm
/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 16, 2026
@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 16, 2026
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jul 16, 2026
@openshift-ci openshift-ci Bot added the ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review label Jul 16, 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: 2

🤖 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 @.claude/skills/bump-plugins/SKILL.md:
- Around line 145-147: Update the dirty-working-tree handling in the bump
workflow to require explicit opt-in before Step 5 can rewrite any pre-existing
plugin.json or .claude-plugin/marketplace.json changes. Display the exact
conflicting diff before prompting, proceed only on affirmative consent, and
after catalog-update verify that all pre-existing hunks remain intact.
- Around line 55-67: Update the plugin classification instructions to use
mutually exclusive, base-aware cases: classify HEAD-present/base-missing
manifests as new plugins, HEAD-present/base-present manifests as active plugins,
and HEAD-missing/base-present manifests as deleted plugins. Ignore directories
where both revisions lack a manifest, and apply Step 3 or Step 4 handling only
within the corresponding case.
🪄 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: b82e1751-e922-43d4-8305-e7efad8ed9d1

📥 Commits

Reviewing files that changed from the base of the PR and between 578ebdf and 6f35dbb.

📒 Files selected for processing (2)
  • .claude/skills/bump-plugins/SKILL.md
  • .gitignore

Comment thread .claude/skills/bump-plugins/SKILL.md
Comment thread .claude/skills/bump-plugins/SKILL.md
@eggfoobar

Copy link
Copy Markdown
Contributor

/lgtm

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

Copy link
Copy Markdown
Contributor

/unhold

Code rabbit concerns have been dealt with

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 16, 2026
@openshift-merge-bot
openshift-merge-bot Bot merged commit 2561ad6 into openshift-eng:main Jul 16, 2026
6 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. lgtm Indicates that a PR is ready to be merged. ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants