gh-apps

Create, authenticate, and manage GitHub Apps via the GitHub Apps REST API.

1|Updated Nov 11, 2012
One-click install
npx skills add https://github.com/fairchild/dotfiles --skill gh-apps-fairchild
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: gh-apps
Source: https://github.com/fairchild/dotfiles/tree/main/agents/shared/first-party-skills/gh-apps
Command: npx skills add https://github.com/fairchild/dotfiles --skill gh-apps-fairchild

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Managing GitHub Apps normally requires clicking through GitHub's web UI to register apps, generate JWTs, exchange installation tokens, and debug webhook deliveries. This Skill wraps the entire GitHub Apps lifecycle in a single command-line script so CI bots, webhook receivers, and org-wide automation can act as their own identity instead of a personal access token. ## Core Features & Use Cases - App creation via manifest flow: Register a new GitHub App through a browser-based manifest flow (or headless manual mode) with specified permissions and webhook events, saving credentials automatically under ~/.config/gh-apps/<slug>/. - Authentication and inspection: Generate RS256 JWTs, exchange them for installation access tokens, list installations and accessible repositories, and validate stored credentials. - Webhook management: View and update webhook configuration, list recent deliveries, and redeliver failed webhook events. - Use Case: You need a CI bot that comments on issues. Run the create command with issues:write permission, install the app on your repository, then use the token command to fetch an installation token for your pipeline's API calls. ## Quick Start Ask the agent to create a GitHub App named my-bot with issues write permission and issues event subscriptions using the gh-apps skill.

Frequently Asked Questions about gh-apps

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a GitHub App from the command line?▼

Run the create command with an app name, permissions, and events, for example: gh-apps.py create my-bot --permissions issues:write,metadata:read --events issues. It opens a browser for the manifest flow and saves credentials automatically. Use --no-browser for headless environments.

How do I get a GitHub App installation token?▼

Run gh-apps.py token after configuring credentials. The script generates a JWT, auto-detects the installation if only one exists, and exchanges it via POST /app/installations/{id}/access_tokens. Use --installation ID when multiple installations exist.

When should I use a GitHub App instead of a personal access token?▼

Use a GitHub App for CI bots, webhook receivers, and org-wide automation that should act as its own identity rather than a user. Apps get granular permissions, per-installation rate limits of 5,000 requests per hour, and independent audit trails.

Where are GitHub App credentials stored locally?▼

Credentials are stored as flat files under ~/.config/gh-apps/<slug>/ containing app-id, app.pem (chmod 600), client-id, client-secret, and webhook-secret. Environment variables GH_APPS_APP_ID, GH_APPS_PRIVATE_KEY_PATH, and GH_APPS_SLUG can override file-based config.

Can GitHub App permissions be changed from the command line?▼

No, permission changes have no API and require the GitHub web UI. The permissions command prints the settings URL and instructions; after saving changes in the web UI, existing installations must re-approve the new permissions.

How do I debug failed GitHub webhook deliveries?▼

Run gh-apps.py deliveries --limit 20 to list recent deliveries with event type and status code, then use gh-apps.py redeliver DELIVERY_ID to retry a failed delivery. The webhook-config command shows the current URL and content type.