🧪 Skills
GitHub Actions Artifact Budget Audit
Audit GitHub Actions artifact storage usage from JSON exports so bloated artifacts are flagged before they inflate CI cost.
v1.0.0
Description
name: github-actions-artifact-budget-audit description: Audit GitHub Actions artifact storage usage from JSON exports so bloated artifacts are flagged before they inflate CI cost. version: 1.0.0 metadata: {"openclaw":{"requires":{"bins":["bash","python3"]}}}
GitHub Actions Artifact Budget Audit
Use this skill to detect oversized or stale GitHub Actions artifacts across repositories.
What this skill does
- Reads one or more GitHub artifact JSON exports (
gh apioutput) - Calculates artifact size in MB and totals by repository + artifact name
- Flags warn/critical artifacts by configurable size thresholds
- Highlights soon-to-expire artifact volume to prioritize cleanup
- Supports text and JSON output for terminal or dashboards
Inputs
Optional:
ARTIFACT_GLOB(default:artifacts/github-actions-artifacts/*.json)TOP_N(default:20)OUTPUT_FORMAT(textorjson, default:text)WARN_MB(default:250)CRITICAL_MB(default:750)SOON_EXPIRES_DAYS(default:7)FAIL_ON_CRITICAL(0or1, default:0)REPO_MATCH(regex, optional)REPO_EXCLUDE(regex, optional)ARTIFACT_MATCH(regex, optional)ARTIFACT_EXCLUDE(regex, optional)
Collect artifact JSON
Single repository:
gh api repos/<owner>/<repo>/actions/artifacts --paginate \
> artifacts/github-actions-artifacts/<owner>-<repo>.json
Combined multi-repo payloads are also supported as long as each file includes an artifacts array.
Run
Text report:
ARTIFACT_GLOB='artifacts/github-actions-artifacts/*.json' \
WARN_MB=300 \
CRITICAL_MB=900 \
bash skills/github-actions-artifact-budget-audit/scripts/artifact-budget-audit.sh
JSON output for automation:
ARTIFACT_GLOB='artifacts/github-actions-artifacts/*.json' \
OUTPUT_FORMAT=json \
FAIL_ON_CRITICAL=1 \
bash skills/github-actions-artifact-budget-audit/scripts/artifact-budget-audit.sh
Filter to one repo and artifact family:
ARTIFACT_GLOB='artifacts/github-actions-artifacts/*.json' \
REPO_MATCH='^flowcreatebot/' \
ARTIFACT_MATCH='(test-results|coverage)' \
bash skills/github-actions-artifact-budget-audit/scripts/artifact-budget-audit.sh
Run with bundled fixtures:
ARTIFACT_GLOB='skills/github-actions-artifact-budget-audit/fixtures/*.json' \
bash skills/github-actions-artifact-budget-audit/scripts/artifact-budget-audit.sh
Output contract
- Exit
0in reporting mode (default) - Exit
1ifFAIL_ON_CRITICAL=1and at least one artifact is at/aboveCRITICAL_MB - In
textmode: prints summary and top oversized artifact groups - In
jsonmode: prints summary, grouped artifact stats, and critical artifact instances
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!