Agent skill

gh-apps

Create, authenticate, and manage GitHub Apps.

7 files · 59.0 KB · Source ↗ · Raw SKILL.md · Markdown directory · Download skill.tgz

Copy the prompt. Paste it into your agent.

Verify the bytes and inspect the files before trusting a skill. A matching hash is not a safety review.

Read the install prompt
Full inline prompt for offline use

Includes SKILL.md. Supporting files still require a download.

Install from a shell

Run this in a terminal. It downloads the pinned archive, checks its SHA-256 digest, and extracts it into ~/.claude/skills, where Claude Code loads skills. For Codex and other agents that read ~/.agents/skills, edit the SKILLS_DIR line. If the skill is already installed, the command stops and changes nothing.

GitHub Apps Management

Script: scripts/gh-apps.py

Quick Reference

Command Description
create NAME Create a GitHub App via manifest flow (opens browser)
list List locally-registered apps
info Show app info from GitHub API
setup Validate stored credentials and test API access
jwt Generate and print a JWT (10-min expiry)
token Get an installation access token
installations List app installations
repos List accessible repos for an installation
webhook-config Show webhook configuration
webhook-update Update webhook URL/secret
deliveries List recent webhook deliveries
redeliver ID Redeliver a failed webhook
rotate-key Guide through private key rotation (web UI)
permissions Guide through permission changes (web UI)
delete Guide through app deletion (web UI)

Global flag: --app SLUG selects which app (auto-detected if only one exists).

Credential Storage

~/.config/gh-apps/<slug>/
  app-id           # GitHub App ID
  app.pem          # Private key (chmod 600)
  client-id        # OAuth client ID
  client-secret    # OAuth client secret
  webhook-secret   # Auto-generated webhook secret

Env var overrides: GH_APPS_APP_ID, GH_APPS_PRIVATE_KEY_PATH, GH_APPS_SLUG.

Common Workflows

Create a new GitHub App

# Interactive browser flow — creates app and saves credentials automatically
scripts/gh-apps.py create my-bot --permissions issues:write,metadata:read --events issues,issue_comment

# Manual mode (no browser / headless)
scripts/gh-apps.py create my-bot --no-browser --permissions issues:write

# Create under an organization
scripts/gh-apps.py create org-bot --org my-org --permissions contents:read

Authenticate and use

# Verify credentials
scripts/gh-apps.py setup

# Generate JWT for API calls
scripts/gh-apps.py jwt

# Get installation token (for repo-scoped operations)
scripts/gh-apps.py token

Manage webhooks

scripts/gh-apps.py webhook-config
scripts/gh-apps.py deliveries --limit 20
scripts/gh-apps.py redeliver 12345678

What Requires Manual Steps

These operations have no API — the script prints the URL and instructions:

References

Files