{"skill":{"slug":"github-actions-failure-hour-audit","displayName":"GitHub Actions Failure Hour Audit","summary":"Audit GitHub Actions failure timing by day/hour to surface recurring outage windows and staffing hotspots.","description":"---\nname: github-actions-failure-hour-audit\ndescription: Audit GitHub Actions failure timing by day/hour to surface recurring outage windows and staffing hotspots.\nversion: 1.0.0\nmetadata: {\"openclaw\":{\"requires\":{\"bins\":[\"bash\",\"python3\"]}}}\n---\n\n# GitHub Actions Failure Hour Audit\n\nUse this skill to identify when failures cluster so teams can target flaky time windows and on-call coverage.\n\n## What this skill does\n- Reads one or more GitHub Actions workflow run JSON exports\n- Keeps only failure-like conclusions (`failure`, `cancelled`, `timed_out`, `action_required`, `startup_failure`)\n- Buckets failures into day/hour windows (with optional timezone offset)\n- Ranks windows by severity using failure-run thresholds\n- Emits text or JSON output for dashboards or CI gates\n\n## Inputs\nOptional:\n- `RUN_GLOB` (default: `artifacts/github-actions/*.json`)\n- `TOP_N` (default: `24`)\n- `OUTPUT_FORMAT` (`text` or `json`, default: `text`)\n- `WARN_FAILURE_RUNS` (default: `3`)\n- `CRITICAL_FAILURE_RUNS` (default: `6`)\n- `FAIL_ON_CRITICAL` (`0` or `1`, default: `0`)\n- `TZ_OFFSET_HOURS` (default: `0`) — integer timezone shift from UTC, between `-23` and `23`\n- `WORKFLOW_MATCH`, `WORKFLOW_EXCLUDE` (regex, optional)\n- `BRANCH_MATCH`, `BRANCH_EXCLUDE` (regex, optional)\n- `REPO_MATCH`, `REPO_EXCLUDE` (regex, optional)\n\n## Collect run JSON\n\n```bash\ngh run view <run-id> --json databaseId,workflowName,headBranch,conclusion,createdAt,updatedAt,url,repository \\\n  > artifacts/github-actions/run-<run-id>.json\n```\n\n## Run\n\nText report:\n\n```bash\nRUN_GLOB='artifacts/github-actions/*.json' \\\nWARN_FAILURE_RUNS=3 \\\nCRITICAL_FAILURE_RUNS=6 \\\nTZ_OFFSET_HOURS=7 \\\nbash skills/github-actions-failure-hour-audit/scripts/failure-hour-audit.sh\n```\n\nJSON output + fail gate:\n\n```bash\nRUN_GLOB='artifacts/github-actions/*.json' \\\nOUTPUT_FORMAT=json \\\nFAIL_ON_CRITICAL=1 \\\nbash skills/github-actions-failure-hour-audit/scripts/failure-hour-audit.sh\n```\n\n## Output contract\n- Exit `0` in reporting mode\n- Exit `1` when `FAIL_ON_CRITICAL=1` and one or more critical windows are found\n- Text output includes summary and top windows by severity\n- JSON output includes `summary`, ranked `windows`, and `critical_windows`\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":498,"installsAllTime":19,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1772813262448,"updatedAt":1778491754897},"latestVersion":{"version":"1.0.0","createdAt":1772813262448,"changelog":"Initial release of GitHub Actions Failure Hour Audit.\n\n- Audits GitHub Actions workflow run failures by hour/day, supporting timezone offset\n- Supports filtering by workflow, branch, and repository via regex\n- Buckets and ranks failure windows by severity thresholds\n- Outputs in text or JSON for dashboards or CI checks\n- Configurable fail gate on critical windows\n- Accepts customizable input variables for flexible usage","license":null},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"daniellummis","userId":"s17fw617wehb1y9a026bgg9yed885cv7","displayName":"Daniel Lummis","image":"https://avatars.githubusercontent.com/u/65238171?v=4"},"moderation":null}