Approve pending GitHub Actions workflows and add /ok-to-test comments to PRs that need testing
Automates PR approval by adding `/ok-to-test` comments to PRs with the "needs-ok-to-test" label and approving pending GitHub Actions workflow runs. Use when external contributors submit PRs that need verification or when workflows are waiting for approval.
/plugin marketplace add stbenjam/claude-nine/plugin install pr-automation@claude-nineThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill automates the approval of pending GitHub Actions workflows and adds /ok-to-test comments to pull requests that require external contributor verification.
Use this skill when you need to:
/ok-to-test comments to PRs labeled with "needs-ok-to-test"GitHub CLI (gh) installed
which ghGitHub authentication
gh auth loginRepository context
owner/repo formatIf a repository argument is provided, use it. Otherwise, detect from the current directory:
# If no repo provided, detect from git remote
if [ -z "$repo" ]; then
repo=$(git remote get-url origin | sed -E 's/.*github\.com[:/]([^/]+\/[^.]+)(\.git)?/\1/')
fi
Query all open PRs with the "needs-ok-to-test" label:
gh pr list --repo "$repo" --limit 100 --json number,title,labels --state open \
--jq '.[] | select(.labels[]? | .name == "needs-ok-to-test") | {number: .number, title: .title}'
For each PR found:
/ok-to-test:
gh pr comment $pr_number --repo "$repo" --body "/ok-to-test"
Query GitHub Actions API for workflow runs that need approval. There are two scenarios:
Scenario A: Completed runs with action_required (already timed out) These cannot be approved but should be reported:
gh api "repos/$repo/actions/runs?per_page=100" \
--jq '.workflow_runs[] | select(.conclusion == "action_required") | {id: .id, name: .name, branch: .head_branch, created: .created_at}'
Scenario B: Waiting runs (can be approved) These are the ones we can actually approve:
gh api "repos/$repo/actions/runs" \
--jq '.workflow_runs[] | select(.status == "waiting") | {id: .id, name: .name, branch: .head_branch}'
For each workflow run that needs approval (status == "waiting"):
gh api "repos/$repo/actions/runs/$run_id/approve" -X POST
Track which runs were successfully approved vs which failed.
Create a summary report with:
PRs that received /ok-to-test comments:
Workflow runs approved:
Action required runs (informational):
Handle the following error cases:
No repository found: If not provided and can't detect from git, prompt user for repository name
GitHub API errors:
No PRs or workflows found: Report that everything is up to date
Rate limiting: If GitHub API rate limit is hit, report and suggest trying again later
Provide a structured summary:
# PR Workflow Approval Summary
## PRs Marked as /ok-to-test (3)
- PR #116: CLID-473: subagent to generate weekly reports
- PR #105: Add claude interactive google service account creation
- PR #76: an olmv1 claude plugin for managing clusterextensions
## GitHub Actions Workflows Approved (2)
- Run 18977369749: Lint Plugins (branch: add_qa_assignee_query) ✓
- Run 18979766265: Lint Plugins (branch: gh2jira) ✓
## Timed Out Workflows (informational) (5)
These workflows timed out waiting for approval. New commits will trigger new runs.
- Run 18968492733: Lint Plugins (branch: raise_pr_debug_cluster)
- Run 18967558922: Lint Plugins (branch: ovn_analyzer)
...
## Status
✓ All pending approvals completed successfully
# User invokes: /pr-automation:approve-workflows openshift-eng/ai-helpers
# Step 1: Set repo variable
repo="openshift-eng/ai-helpers"
# Step 2: Find PRs needing ok-to-test
prs=$(gh pr list --repo "$repo" --limit 100 --json number,title,labels --state open \
--jq '.[] | select(.labels[]? | .name == "needs-ok-to-test")')
# Step 3: Comment on each PR
echo "$prs" | jq -r '.number' | while read pr; do
gh pr comment $pr --repo "$repo" --body "/ok-to-test"
done
# Step 4: Find and approve waiting workflows
gh api "repos/$repo/actions/runs" \
--jq '.workflow_runs[] | select(.status == "waiting") | .id' | \
while read run_id; do
gh api "repos/$repo/actions/runs/$run_id/approve" -X POST
done
# User invokes: /pr-automation:approve-workflows
# Detect repo from git remote
repo=$(git remote get-url origin | sed -E 's/.*github\.com[:/]([^/]+\/[^.]+)(\.git)?/\1/')
# Continue with same steps as Example 1...
/ok-to-test command is specific to Prow CI and triggers Prow jobs, not GitHub ActionsCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.