gh-issues

Security checks across static analysis, malware telemetry, and agentic risk

Overview

This skill is a powerful GitHub issue-fixing automator, but it needs review because it can use your GitHub token for autonomous repository changes and may expose credentials during setup.

Install only if you are comfortable granting this skill a least-privilege GitHub token and allowing it to automate repository work. Start with --dry-run, avoid --yes, --watch, and --cron until you have narrow filters and review controls, and ensure tokens are not printed or stored in logs.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Your GitHub token could be exposed in command output or logs, and the token may allow repository reads, pushes, PR creation, or other account actions depending on its scopes.

Why it was flagged

Using a GitHub token is expected for this skill, but printing it with echo and reading local config files for an API key increases the chance that credentials appear in logs or are reused outside a clearly bounded credential flow.

Skill content
First, ensure GH_TOKEN is available. Check environment:

echo $GH_TOKEN

If empty, read from config:

cat ~/.openclaw/openclaw.json | jq -r '.skills.entries["gh-issues"].apiKey // empty'
...
cat /data/.clawdbot/openclaw.json | jq -r '.skills.entries["gh-issues"].apiKey // empty'
Recommendation

Do not echo secrets. Use a secure secret lookup, declare any config files read, and use a least-privilege GitHub token limited to the intended repositories.

What this means

If invoked with broad filters, --yes, or --cron, the agent may process many issues and create code changes or PRs without per-issue approval.

Why it was flagged

The skill directs agents to perform high-impact GitHub actions and includes modes that bypass confirmation for all filtered issues.

Skill content
description: "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments..." ... "--yes | false | Skip confirmation and auto-process all filtered issues" ... "--cron ... Force `--yes`"
Recommendation

Use --dry-run first, avoid --yes/--cron unless you fully trust the filters, and require explicit review before pushes, PR creation, or review-response changes.

What this means

Automation could continue acting on new issues or review comments after the initial command, creating changes the user may not immediately see.

Why it was flagged

The skill supports long-running polling and a cron mode that can launch sub-agents and stop waiting, but the visible artifact does not describe strong containment, cancellation, or audit controls.

Skill content
"--watch | false | Keep polling for new issues and PR reviews after each batch" ... "--cron | false | Cron-safe mode: fetch issues and spawn sub-agents, exit without waiting for results."
Recommendation

Only use watch/cron modes with narrow filters, clear logs, a kill switch, and repository permissions that limit possible damage.

What this means

Installation may add an unnecessary tool or fail at runtime if jq is missing.

Why it was flagged

The declared dependencies do not line up with the runtime instructions: gh is installed despite being described as unused, while jq is used but not declared.

Skill content
"requires": { "bins": ["curl", "git", "gh"] } ... "formula": "gh" ... "IMPORTANT — No `gh` CLI dependency. This skill uses curl + the GitHub REST API exclusively." ... "cat ~/.openclaw/openclaw.json | jq -r ..."
Recommendation

Align the metadata with the actual commands: remove unused gh if not needed and declare jq if the skill relies on it.

What this means

If configured, PR links and repository activity summaries may be shared to the specified Telegram channel.

Why it was flagged

The skill discloses an optional external notification path to Telegram for PR summaries.

Skill content
"--notify-channel | _(none)_ | Telegram channel ID to send final PR summary to ... Only the final result with PR links is sent, not status updates."
Recommendation

Use this option only with trusted private channels, especially for private repositories.