Skip to content

Migrate lint workflow to skillsaw GitHub Action - #456

Merged
openshift-merge-bot[bot] merged 1 commit into
mainfrom
migrate-to-skillsaw-action
May 11, 2026
Merged

openshift-merge-bot[bot] merged 1 commit into
mainfrom
migrate-to-skillsaw-action

Conversation

@stbenjam

@stbenjam stbenjam commented May 8, 2026

Copy link
Copy Markdown
Member

Summary

  • Replaces the Docker-based linting workflow with the skillsaw GitHub Action
  • Posts inline PR review comments on violations with automatic cleanup when issues are fixed
  • Simpler workflow config — no Docker build step needed

Example: in-line comments #456 (comment)

What changed

The lint-plugins.yml workflow now uses stbenjam/skillsaw@v0 instead of building and running a Docker container. The action installs skillsaw via pip, runs the linter, and posts results as individual PR comments.

Test plan

  • Verified inline comments appear on violations
  • Verified comments are resolved when violations are fixed
  • Verified summary comment appears for violations outside the diff
  • Verified summary comment is deleted when violations are fixed
  • Clean run with no violations exits successfully

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated Lint Plugins CI workflow with enhanced permissions to support additional pull request operations.
    • Transitioned linting mechanism from manual Docker commands to GitHub Action-based approach with stricter validation enforcement and verbose output reporting.
    • Refined workflow checkout configuration for improved integration.

@openshift-ci
openshift-ci Bot requested review from bryan-cox and mrunalp May 8, 2026 12:55
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 8, 2026
@coderabbitai

coderabbitai Bot commented May 8, 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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 9a6c63a8-1c1b-4267-a2d8-61c236a7abc6

📥 Commits

Reviewing files that changed from the base of the PR and between f652ee6 and 8b112d2.

📒 Files selected for processing (1)
  • .github/workflows/lint-plugins.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/lint-plugins.yml

Walkthrough

The Lint Plugins workflow now grants pull-requests: write permission, removes persist-credentials from the checkout step, and replaces manual Docker commands with the stbenjam/skillsaw@v0 GitHub Action configured with strict and verbose flags.

Changes

Lint Plugins Workflow

Layer / File(s) Summary
Job Permissions
.github/workflows/lint-plugins.yml (lines 12-15)
pull-requests: write permission added to the lint job alongside existing contents: read.
Checkout Configuration
.github/workflows/lint-plugins.yml (lines 17-19)
persist-credentials: false setting removed from the actions/checkout step.
Tool Integration
.github/workflows/lint-plugins.yml (lines 20-24)
Skillsaw execution migrated from manual docker pull/docker run of ghcr.io/stbenjam/skillsaw:main to stbenjam/skillsaw@v0 action with strict: true and verbose: true options.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 10
✅ 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 directly and concisely describes the main change: migrating the lint workflow from Docker-based to using the skillsaw GitHub Action.
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 Real People Names In Style References ✅ Passed No real people names used as style references. Names found (John Doe, Alice, Bob) are example/test data and inputs, not style references. Workflow file contains no violations.
No Assumed Git Remote Names ✅ Passed The PR modifies only lint-plugins.yml with no hardcoded git remote names ("origin"/"upstream"). The workflow uses standard GitHub Actions without assuming remote names.
Git Push Safety Rules ✅ Passed No unsafe git push operations found. The PR contains only workflow configuration changes with no git push commands, force push variants, or autonomous push operations to main/master branches.
No Untrusted Mcp Servers ✅ Passed The PR does not introduce any untrusted MCP server installations. The .mcp.json file configures gopls (standard Go tool) as an MCP server, and the workflow changes use legitimate GitHub actions.
Ai-Helpers Overlap Detection ✅ Passed PR only modifies .github/workflows/lint-plugins.yml (workflow config), not ai-helpers functional files. Check not applicable per Phase 1 skip condition.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch migrate-to-skillsaw-action

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

♻️ Duplicate comments (1)
plugins/Oops/.claude-plugin/plugin.json (1)

1-1: ⚠️ Potential issue | 🟡 Minor

Missing recommended fields (already flagged by skillsaw).

The skillsaw bot has already identified that this plugin manifest is missing recommended fields: description, version, and author. This appears to be intentional test data based on the commit message.

Remember to remove this test plugin before merging to main.

🤖 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 `@plugins/Oops/.claude-plugin/plugin.json` at line 1, The plugin manifest for
the plugin with "name": "Oops" is missing recommended fields; update
plugins/Oops/.claude-plugin/plugin.json to add the missing fields "description",
"version", and "author" alongside the existing "name" entry, providing a short
human-readable description, a semantic version string (e.g., "1.0.0"), and an
author object or string; ensure the JSON stays valid and remove or flag this
test plugin before merging to main if it’s not intended for production.
🤖 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 @.github/workflows/lint-plugins.yml:
- Line 21: The workflow is pinning the GitHub Action to a mutable tag
"stbenjam/skillsaw@v0"; replace that mutable ref with the action's immutable
commit SHA (e.g., "stbenjam/skillsaw@<commit-sha>") to eliminate supply-chain
risk and keep the human-readable tag by adding an inline comment preserving
"@v0" for readability; locate the uses entry "stbenjam/skillsaw@v0" in the
workflow and update it to the specific commit SHA while keeping the version tag
as a comment.

In `@plugins/Oops/skills/Bad-Skill/SKILL.md`:
- Around line 1-4: The SKILL.md for "Bad-Skill" contains a placeholder
description ("123") used for testing; remove this test plugin or replace the
description field in SKILL.md for Bad-Skill with a meaningful summary and intent
(or delete the entire Bad-Skill plugin/manifest added for the TEMP test) before
merging to main so no intentional violations remain in the repository.

---

Duplicate comments:
In `@plugins/Oops/.claude-plugin/plugin.json`:
- Line 1: The plugin manifest for the plugin with "name": "Oops" is missing
recommended fields; update plugins/Oops/.claude-plugin/plugin.json to add the
missing fields "description", "version", and "author" alongside the existing
"name" entry, providing a short human-readable description, a semantic version
string (e.g., "1.0.0"), and an author object or string; ensure the JSON stays
valid and remove or flag this test plugin before merging to main if it’s not
intended for production.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2e6f2e69-45e9-46db-bf45-40ee77b61c25

📥 Commits

Reviewing files that changed from the base of the PR and between 0948119 and 8799591.

📒 Files selected for processing (3)
  • .github/workflows/lint-plugins.yml
  • plugins/Oops/.claude-plugin/plugin.json
  • plugins/Oops/skills/Bad-Skill/SKILL.md

Comment thread .github/workflows/lint-plugins.yml Outdated
Comment thread plugins/Oops/skills/Bad-Skill/SKILL.md Outdated
@stbenjam
stbenjam force-pushed the migrate-to-skillsaw-action branch from 119ac52 to ce0fd5e Compare May 8, 2026 13:17
@stbenjam stbenjam changed the title Migrate to skillsaw action Migrate lint workflow to skillsaw GitHub Action May 8, 2026
Replace the Docker-based linting setup with the skillsaw GitHub Action.
Pin to commit SHA with contents: read + pull-requests: write permissions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@stbenjam
stbenjam force-pushed the migrate-to-skillsaw-action branch from b8455cd to 8b112d2 Compare May 8, 2026 13:45
@stbenjam stbenjam closed this May 11, 2026
@stbenjam stbenjam reopened this May 11, 2026

@bryan-cox bryan-cox 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.

/lgtm

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

openshift-ci Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

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