Skip to main content

github-actions-inspection

Failing step, stack trace, and test output from a completed GitHub Actions run; rerun failed jobs. Use when a CI check finished red and you need the error extracted from its log.

معلومات المصدر

المستودع
laurigates/claude-plugins
آخر نشاط في المصدر
٢٤ سبتمبر ٢٠٢٦ في ١٠:٤٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٦٠
التفرعات
٦

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
created
2025-12-16T00:00:00.000Z
modified
2026-09-24T00:00:00.000Z
reviewed
2026-04-25T00:00:00.000Z
name
github-actions-inspection
description
Failing step, stack trace, and test output from a completed GitHub Actions run; rerun failed jobs. Use when a CI check finished red and you need the error extracted from its log.
user-invocable
false
allowed-tools
Bash, Read, Grep, Glob, mcp__github
# GitHub Actions Inspection ## When to Use This Skill | Use this skill when... | Use the linked sibling instead when... | |---|---| | Pulling status, logs, and conclusions from `gh run` for a failing workflow | Authoring or modifying a workflow YAML file — see claude-code-github-workflows | | Diagnosing flaky tests, timeouts, or auth-permission errors in a CI run | Searching upstream OSS issues for a library bug — see github-issue-search | | Rerunning failed jobs or extracting error lines from a completed run | Use `git-plugin:gh-workflow-monitoring` to block until an in-progress run finishes, or `git-plugin:git-fix-pr` to patch and push the fix | Expert knowledge for inspecting, debugging, and troubleshooting GitHub Actions workflow runs using gh CLI and GitHub API. For detailed examples, advanced patterns, and best practices, see [REFERENCE.md](REFERENCE.md). ## Core Expertise **Workflow Run Inspection** - Check workflow run status and conclusions - List recent workflow runs with filtering - View detailed run information - Monitor in-progress workflows **Log Analysis** - Fetch workflow run logs - Identify failing steps and jobs - Extract error messages and stack traces - Parse test failure output **Debugging Workflows** - Diagnose common failure patterns - Correlate errors with code changes - Identify flaky tests and race conditions - Analyze timing and performance issues ## Essential Commands ### List Workflow Runs ```bash # List all workflow runs gh run list # List runs for specific workflow gh run list --workflow=ci.yml # Filter by status gh run list --status=failure gh run list --status=in_progress # Filter by branch gh run list --branch=main # Combine filters gh run list --workflow=ci.yml --status=failure --limit 5 # JSON output for parsing gh run list --json databaseId,status,conclusion,name,createdAt,headBranch ``` ### View Workflow Run Details ```bash # View specific run gh run view <run-id> # View failed logs only gh run view <run-id> --log-failed # View specific job gh run view <run-id> --job=<job-id> # JSON output gh run view <run-id> --json status,conclusion,jobs,startedAt,updatedAt ``` ### Download and Analyze Logs ```bash # Download logs for run gh run download <run-id> # View failed step logs only gh run view <run-id> --log-failed # Extract specific job logs gh api repos/:owner/:repo/actions/runs/<run-id>/logs | less ``` ### Watch Running Workflows ```bash # Watch workflow progress gh run watch <run-id> # Watch with exit status gh run watch <run-id> --exit-status ``` ### Rerun Workflows ```bash # Rerun entire workflow gh run rerun <run-id> # Rerun only failed jobs gh run rerun <run-id> --failed # Rerun with debug logging gh run rerun <run-id> --debug ``` ### Cancel Workflows ```bash # Cancel specific run gh run cancel <run-id> ``` ## Analysis Patterns ### Find Recent Failures ```bash # Get last 10 failed runs gh run list --status=failure --limit 10 # Get failures with details gh run list --workflow=ci.yml --status=failure --limit 5 \ --json databaseId,conclusion,name,createdAt,headBranch,headSha ``` ### Identify Flaky Tests ```bash # Get runs for specific commit gh run list --commit=<sha> # Find tests that sometimes pass gh run list --workflow=test.yml --limit 20 --json conclusion \ | jq 'group_by(.conclusion) | map({conclusion: .[0].conclusion, count: length})' ``` ### Extract Error Messages ```bash # View failed logs gh run view <run-id> --log-failed # Extract error lines gh run view <run-id> --log-failed | grep -i "error\|failed\|exception" # Parse JSON for errors gh api repos/:owner/:repo/actions/runs/<run-id>/jobs \ | jq '.jobs[] | select(.conclusion == "failure") | {name, steps: [.steps[] | select(.conclusion == "failure")]}' ``` ### Read job conclusions, not the workflow's A run's `conclusion: success` also covers jobs that were **skipped**. Jobs gated on a tag push or a release event (`if: github.event_name == 'push'`, `if: startsWith(github.ref, 'refs/tags/')`, release-please pre-release only) report `skipped` on every PR, so PR CI is green for them by construction. A change that breaks one merges cleanly and fails on the next release, which can be weeks later. ```bash gh run view <run-id> --json jobs --jq '.jobs[] | {name, conclusion}' ``` - To judge whether a specific job (an image build, a release upload) actually ran, read that job's `conclusion`. `skipped` means it verified nothing. - Before merging a change to a release-gated job, exercise it: trigger it with `workflow_dispatch`, push a throwaway tag, or run the step locally (for example `docker build --file <Dockerfile> .`). ### Check Workflow Timing ```bash # Get run duration gh run view <run-id> --json startedAt,completedAt,durationMs # Compare run times gh run list --workflow=ci.yml --limit 10 \ --json databaseId,createdAt,updatedAt,durationMs \ | jq '.[] | {id: .databaseId, duration_min: (.durationMs / 60000)}' ``` ### Monitor Workflow Status ```bash # Check current status gh run list --status=in_progress # Summary of run statuses gh run list --limit 50 --json conclusion \ | jq 'group_by(.conclusion) | map({conclusion: .[0].conclusion, count: length})' ``` ## Common Failure Pattern Summary | Pattern | Symptoms | Quick Fix | |---------|----------|-----------| | Authentication | "403 Forbidden", "Resource not accessible" | Check GITHUB_TOKEN scope, workflow permissions | | Timeout | "exceeded maximum execution time" | Increase timeout-minutes, split parallel jobs | | Flaky tests | Same test passes/fails inconsistently | Fix race conditions, mock external deps | | Dependency install | "Could not find package", "Version conflict" | Lock versions, use cache | | Environment | "Command not found", "Module not found" | Verify setup steps, check runner version | | Resource constraints | "out of disk space", "Process killed" | Clean artifacts, increase runner size | ## Agentic Optimizations | Context | Command | |---------|---------| | Quick failure check | `gh run list --status=failure --limit 5 --json databaseId,conclusion,name` | | Failed logs only | `gh run view <id> --log-failed` | | JSON run details | `gh run view <id> --json status,conclusion,jobs` | | Failure rate | `gh run list --limit 50 --json conclusion \| jq 'group_by(.conclusion)'` | | Rerun failed only | `gh run rerun <id> --failed` | | Per-job conclusions | `gh run view <id> --json jobs --jq '.jobs[] \| {name, conclusion}'` | ## Quick Reference ### gh run Commands - `gh run list` - List workflow runs - `gh run view <id>` - View run details - `gh run watch <id>` - Watch run progress - `gh run download <id>` - Download logs/artifacts - `gh run rerun <id>` - Rerun workflow - `gh run cancel <id>` - Cancel running workflow ### Useful Filters - `--workflow=<name>` - Specific workflow - `--status=<status>` - Filter by status (in_progress, completed, queued, waiting) - `--conclusion=<conclusion>` - Filter by conclusion (success, failure, cancelled, skipped) - `--branch=<branch>` - Specific branch - `--event=<event>` - Specific trigger event - `--limit=<n>` - Limit results - `--json <fields>` - JSON output ### Status Values - `queued` - Waiting to start - `in_progress` - Currently running - `completed` - Finished (check conclusion) - `waiting` - Waiting for approval ### Conclusion Values - `success` - All jobs succeeded - `failure` - At least one job failed - `cancelled` - Manually cancelled - `skipped` - Skipped (conditional) - `timed_out` - Exceeded time limit ## Integration with Other Skills This skill complements: - **claude-code-github-workflows** - Creating workflows - **github-actions-mcp-config** - MCP configuration - **github-actions-auth-security** - Authentication setup ## Resources - **gh CLI Manual**: https://cli.github.com/manual/gh_run - **GitHub Actions API**: https://docs.github.com/en/rest/actions - **Troubleshooting Guide**: https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows
عرض على GitHub