Claude Code Plugins

Community-maintained marketplace

Feedback

|

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name mastering-github-cli
description GitHub CLI (gh) command reference for repository search, code discovery, CI/CD monitoring, workflow authoring, and automation. Triggers on "gh" commands, "github cli", searching repos for files/directories (.skilz, .cursor, .codex, Dockerfile), monitoring GitHub Actions workflows, checking PR CI status, downloading artifacts, creating PRs/issues/repos from command line, triggering workflows, forking repos, batch operations, "write a workflow", "github actions", "CI/CD pipeline", "workflow yaml", and "matrix builds". Use for gh search, gh run, gh pr, gh issue, gh repo, gh workflow, gh api, workflow authoring, and automating GitHub operations.
license MIT
allowed-tools Bash, Read, Write, Glob, Grep

Mastering GitHub CLI

Command-line interface for GitHub operations: search, monitoring, resource creation, workflow authoring, and automation.

Contents


Quick Start

Find repos with specific files/directories

gh search code "path:.skilz" --json repository --jq '.[].repository.fullName'
gh search code --filename SKILL.md
gh search code --filename Dockerfile --language python

Monitor CI/CD

gh run list --workflow=CI --status=failure --limit 10
gh run watch 12345 --exit-status      # Block until complete
gh run view 12345 --log-failed        # Failed logs only
gh pr checks 123 --watch              # PR CI status

Create resources

gh pr create --title "Feature" --body "Description" --reviewer @user
gh issue create --title "Bug" --label bug,urgent --assignee @me
gh repo fork owner/repo --clone

Trigger and monitor workflow

gh workflow run deploy.yml -f environment=staging
sleep 5
RUN_ID=$(gh run list --workflow=deploy.yml --limit 1 --json databaseId --jq '.[0].databaseId')
gh run watch "$RUN_ID" --exit-status

Command Reference

Task Command Reference
Find repos with file gh search code --filename FILE search.md
Find repos with directory gh search code "path:DIR" search.md
List failed runs gh run list --status=failure monitoring.md
Watch run gh run watch ID --exit-status monitoring.md
Download artifacts gh run download ID -n NAME monitoring.md
Create PR gh pr create --fill resources.md
Check PR CI gh pr checks --watch monitoring.md
Trigger workflow gh workflow run NAME.yml automation.md
Fork repo gh repo fork REPO --clone resources.md
REST/GraphQL API gh api repos/{owner}/{repo} api.md

JSON Output

gh pr list --json                              # Discover fields
gh pr list --json number,title,author,labels   # Select fields
gh run list --json status --jq '.[] | select(.status=="completed")'

Environment & Auth

Variable Purpose
GH_TOKEN Authentication token
GH_REPO Default owner/repo
GH_HOST GitHub Enterprise host
GH_PROMPT_DISABLED=1 Disable prompts (CI)

Rate Limits

Endpoint Limit Notes
REST API 5,000/hour Per authenticated user
Search API 30/minute All search endpoints
Code Search 10/minute More restrictive
Search results 1,000 max Use date partitioning for more

Workflow Authoring

GitHub Actions workflow YAML patterns for CI/CD pipelines.

Basic Structure

name: CI Pipeline
on:
  push:
    branches: [main]
  pull_request:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: make build
      - run: make test

Caching Patterns

# Python/Poetry
- uses: actions/setup-python@v5
  with:
    python-version: '3.11'
- uses: actions/cache@v4
  with:
    path: .venv
    key: venv-${{ runner.os }}-${{ hashFiles('poetry.lock') }}

# Node.js
- uses: actions/setup-node@v4
  with:
    node-version: '20'
    cache: 'npm'

Matrix Builds

strategy:
  matrix:
    os: [ubuntu-latest, windows-latest]
    node: [18, 20]
  fail-fast: false

OIDC Authentication (AWS/GCP)

permissions:
  id-token: write
  contents: read

steps:
  - uses: aws-actions/configure-aws-credentials@v4
    with:
      role-to-assume: arn:aws:iam::123456789012:role/GitHubActionsRole
      aws-region: us-east-1

Full reference: references/workflow-authoring.md

Advanced Patterns

For enterprise CI/CD pipelines:

  • Ephemeral PR Environments - Auto-create/destroy per PR
  • Release Please - Automated semantic versioning
  • PR Cleanup - Resource cleanup on close
  • Testing Patterns - pytest, Gradle, Jest with coverage
  • Deployment Status Checks - Wait for stack readiness
  • Separate Build/Deploy Roles - Fine-grained OIDC permissions
  • Multi-Stack Ordering - Foundation → Schemas → Application

Additional References:

  • Workflow Summaries - Rich markdown output with $GITHUB_STEP_SUMMARY
  • Container Security - Multi-stage builds, Trivy scanning, image tagging
  • Security Scanning - CodeQL, Dependabot, IaC scanning (Checkov, tfsec)
  • Troubleshooting - Debug mode, flaky tests, common issues
  • Performance - Limits, runner specs, optimization tips

Scripts

Pre-built automation scripts with error handling and rate limit awareness.

Script Purpose Usage
find-repos-with-path.sh Find repos containing specific paths ./scripts/find-repos-with-path.sh .skilz [owner]
wait-for-run.sh Block until workflow completes ./scripts/wait-for-run.sh RUN_ID [timeout]
batch-search.sh Search >1000 results via date partitioning ./scripts/batch-search.sh "query" START END

Exit Codes

Script 0 1 2 3
wait-for-run.sh success failure cancelled timeout
find-repos-with-path.sh success error - -
batch-search.sh success error - -

Validation Checklist

Before completing a GitHub CLI task, verify:

- [ ] gh authenticated (`gh auth status`)
- [ ] Command syntax matches documentation
- [ ] Exit codes checked and handled appropriately
- [ ] Rate limits considered (code search: 10/min, repo search: 30/min)
- [ ] JSON output parsed correctly (if using --json)
- [ ] Artifacts downloaded to correct directory (if applicable)
- [ ] PR/Issue created with proper labels and assignees (if applicable)
- [ ] Workflow triggered and monitored to completion (if applicable)

When Not to Use

This skill covers gh CLI and GitHub Actions workflow authoring. Do not use for:

  • Git commands: git push, git commit, git pull (use git directly)
  • GitHub web UI: Questions about github.com interface navigation
  • GitHub Desktop: Different application entirely
  • Direct curl/HTTP: API calls without gh wrapper
  • GitHub mobile app: Mobile-specific features