openclaw 网盘下载
OpenClaw

技能详情(站内镜像,无评论)

首页 > 技能库 > GitHub Actions Stuck Run Audit

Detect stale queued/in-progress GitHub Actions runs before they quietly block delivery.

开发与 DevOps

作者:Daniel Lummis @daniellummis

许可证:MIT-0

MIT-0 ·免费使用、修改和重新分发。无需归因。

版本:v1.0.0

统计:⭐ 0 · 144 · 0 current installs · 0 all-time installs

0

安装量(当前) 0

🛡 VirusTotal :良性 · OpenClaw :可疑

Package:daniellummis/github-actions-stuck-run-audit

安全扫描(ClawHub)

  • VirusTotal :良性
  • OpenClaw :可疑

OpenClaw 评估

The skill is mostly coherent for auditing local GitHub Actions run JSON files, but there are small mismatches (notably the SKILL.md uses the 'gh' CLI while the skill's declared required binaries omit it) and the script will process arbitrary file globs which could be pointed at sensitive files if misused.

目的

The name/description match the included script: it reads exported GitHub Actions run JSON files and computes stuck/run risk. However, SKILL.md demonstrates collecting data using the 'gh' CLI (gh run view) but the declared required binaries list only 'bash' and 'python3' — 'gh' is not declared. That mismatch is likely an omission in metadata (documentation vs declared requirements) but is an incoherence the user should be aware of.

说明范围

The runtime instructions and included script operate on local JSON files matched by RUN_GLOB and do not perform network calls or attempt to read unrelated system state. The script's behavior (filters, grouping, thresholds, exit codes) is explicit. One scope note: RUN_GLOB is user-configurable, so the skill will read any files the runner points it at; the default is a dedicated artifacts path.

安装机制

This is an instruction-only skill with a bundled script; there is no install step, no external downloads, and nothing is written to disk beyond running the provided script. Risk from installation is low.

证书

The skill declares no required environment variables or credentials (proportionate for a local JSON analyzer). But it relies on environment variables for configuration (RUN_GLOB, filters, thresholds). Because RUN_GLOB can be set to arbitrary paths, a user/agent could instruct the skill to read sensitive files — this is not malicious in the script itself but is a capability the user should intentionally control. Also, SKILL.md suggests using 'g…

持久

The skill does not request persistent installation or elevated platform privileges; always:false and normal autonomous invocation. It does not attempt to modify other skills or system-wide agent settings.

安装(复制给龙虾 AI)

将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。

请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「GitHub Actions Stuck Run Audit」。简介:Detect stale queued/in-progress GitHub Actions runs before they quietly block d…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/daniellummis/github-actions-stuck-run-audit/SKILL.md
(来源:yingzhi8.cn 技能库)

SKILL.md

打开原始 SKILL.md(GitHub raw)

---
name: github-actions-stuck-run-audit
description: Detect stale queued/in-progress GitHub Actions runs before they quietly block delivery.
version: 1.0.0
metadata: {"openclaw":{"requires":{"bins":["bash","python3"]}}}
---

# GitHub Actions Stuck Run Audit

Use this skill to catch workflows that are stuck in queued/in-progress states for too long.

## What this skill does
- Reads GitHub Actions run JSON exports
- Detects stale runs in non-terminal statuses (`queued`, `in_progress`, etc.)
- Aggregates stuck risk by repo/workflow (or repo/branch)
- Scores severity with stuck-age, stuck-run volume, and stuck-rate thresholds
- Emits `ok` / `warn` / `critical` and can fail CI gates

## Inputs
Optional:
- `RUN_GLOB` (default: `artifacts/github-actions/*.json`)
- `TOP_N` (default: `20`)
- `OUTPUT_FORMAT` (`text` or `json`, default: `text`)
- `GROUP_BY` (`repo`, `repo-workflow`, `repo-workflow-branch`; default: `repo-workflow`)
- `NOW_ISO` (optional ISO timestamp override for deterministic replay)
- `STUCK_STATUSES` (comma list, default: `queued,in_progress,pending,waiting,requested`)
- `WARN_STUCK_MINUTES` (default: `45`)
- `CRITICAL_STUCK_MINUTES` (default: `120`)
- `WARN_STUCK_RUNS` (default: `2`)
- `CRITICAL_STUCK_RUNS` (default: `4`)
- `WARN_STUCK_RATE` (0..1, default: `0.2`)
- `CRITICAL_STUCK_RATE` (0..1, default: `0.45`)
- `MIN_RUNS` (default: `1`)
- `WORKFLOW_MATCH` / `WORKFLOW_EXCLUDE` (regex, optional)
- `BRANCH_MATCH` / `BRANCH_EXCLUDE` (regex, optional)
- `EVENT_MATCH` / `EVENT_EXCLUDE` (regex, optional)
- `REPO_MATCH` / `REPO_EXCLUDE` (regex, optional)
- `STATUS_MATCH` / `STATUS_EXCLUDE` (regex, optional)
- `FAIL_ON_CRITICAL` (`0` or `1`, default: `0`)

## Collect run JSON

```bash
gh run view <run-id> 
  --json databaseId,workflowName,event,headBranch,status,conclusion,createdAt,runStartedAt,updatedAt,url,repository 
  > artifacts/github-actions/run-<run-id>.json
```

## Run

Text report:

```bash
RUN_GLOB='artifacts/github-actions/*.json' 
bash skills/github-actions-stuck-run-audit/scripts/stuck-run-audit.sh
```

JSON output + fail gate:

```bash
RUN_GLOB='artifacts/github-actions/*.json' 
OUTPUT_FORMAT=json 
FAIL_ON_CRITICAL=1 
bash skills/github-actions-stuck-run-audit/scripts/stuck-run-audit.sh
```

Run against bundled fixtures:

```bash
NOW_ISO='2026-03-08T00:00:00Z' 
RUN_GLOB='skills/github-actions-stuck-run-audit/fixtures/*.json' 
bash skills/github-actions-stuck-run-audit/scripts/stuck-run-audit.sh
```

## Output contract
- Exit `0` in report mode (default)
- Exit `1` when `FAIL_ON_CRITICAL=1` and one or more groups are critical
- Text mode prints summary + ranked stuck-risk groups
- JSON mode prints summary + ranked groups + critical groups