{"registry_version":"2026.1025.387","generated_at":"2026-10-25T06:27:00Z","content_sha256":"089d16f627d9365e3d0663cc8069203706d7cb23a76c332226e29686968811a5","signed":true,"signature":{"key_id":"ed25519:74ca19268e364242","algorithm":"ed25519","expires_at":"2026-11-24T06:27:09Z","expired":false,"manifest":"/registry/manifest.json"},"entry_sha256":"93c77c0911f39f2b244e8b1d7899e8014b000251b1ca8db0ab755066e26d25a8","entry":{"id":"github/github-app","name":"GitHub App","vendor":"GitHub","summary":"Register a GitHub App with fine-grained permissions and webhooks, generate a private key, and install it on accounts or repositories; paid Marketplace listings need a verified-publisher organisation.","category":"devtools","group":"C","homepage":"https://docs.github.com/en/apps","docs":["https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app","https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps"],"status":"researched","last_verified":null,"last_researched":"2026-10-25","sources":[{"id":"registering","url":"https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app","title":"Registering a GitHub App","accessed":"2026-10-25","supports":"Settings > Developer settings > GitHub Apps > New GitHub App; name max 34 chars, unique; homepage; callback URLs (up to 10); webhook URL and secret (strongly recommended); permissions; events; install scope \"Only on this account\" or \"Any account\"; up to 100 GitHub Apps per user or organisation.","kind":"official"},{"id":"private_keys","url":"https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps","title":"Managing private keys for GitHub Apps","accessed":"2026-10-25","supports":"Credentials > Key pairs > New key downloads a PEM (PKCS#1 RSA); up to 25 keys per app; keys don't expire and must be revoked manually; rotate with multiple keys.","kind":"official"},{"id":"marketplace_reqs","url":"https://docs.github.com/en/apps/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app","title":"Requirements for listing an app","accessed":"2026-10-25","supports":"All listings: publisher contact, description, pricing plan, privacy policy, support link, webhooks for plan changes, publicly available, Marketplace Developer Agreement; org-owned listings submitted by org owners; paid: verified-publisher org and at least 100 installations for GitHub Apps.","kind":"official"},{"id":"badges","url":"https://docs.github.com/en/apps/github-marketplace/github-marketplace-overview/about-marketplace-badges","title":"About marketplace badges","accessed":"2026-10-25","supports":"Verified publisher = org verified domain, confirmed support email, required 2FA; unverified publishers can't change pricing plans.","kind":"official"}],"allowed_domains":["github.com"],"account_model":{"summary":"A GitHub App is owned by a personal account or an organisation and is installed on accounts/repositories.","accounts":[{"name":"GitHub account or organisation (owner)","kind":"developer","required":true,"note":"Paid Marketplace listings require an organisation that is a verified publisher."}]},"have_ready":[{"kind":"other","description":"A public HTTPS webhook URL (if the app receives events)","needed_for":["register"],"auto_check":"none","source":"registering"}],"steps":[{"id":"register","title":"Register the GitHub App","summary":"Developer settings > GitHub Apps > New GitHub App. Enter a unique name (34 chars max), homepage, callback URL, webhook URL and secret, minimum permissions, events, and where it can be installed.","route":"copilot","depends_on":[],"gate":"human_submit","url":"https://github.com/settings/apps/new","capture":{"env":"GITHUB_APP_WEBHOOK_SECRET","kind":"webhook_secret"},"sources":["registering"]},{"id":"private_key","title":"Generate a private key","summary":"Edit the app > Credentials > Key pairs > New key; a PEM file (PKCS#1 RSA) downloads. Store it safely; GitHub keeps only the public part.","route":"copilot","depends_on":["register"],"gate":"human_submit","url":"https://github.com/settings/apps","recovery":[{"hiccup":"Library rejects the key format","fix":"The downloaded PEM is PKCS#1 RSAPrivateKey; convert if your library needs PKCS#8.","source":"private_keys"}],"sources":["private_keys"]},{"id":"install","title":"Install the app","summary":"From the app's public page choose Install and pick the account and repositories.","route":"copilot","depends_on":["register"],"gate":"human_submit","url":"https://github.com/settings/apps"},{"id":"marketplace","title":"List on GitHub Marketplace (optional)","summary":"Meet listing requirements and accept the Marketplace Developer Agreement. Paid plans need a verified-publisher organisation (verified domain, support email, required 2FA) and at least 100 installations.","route":"guided","depends_on":["install"],"gate":"third_party_review","url":"https://docs.github.com/en/apps/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app","optional":true,"sources":["marketplace_reqs","badges"]}],"outputs":[{"name":"GITHUB_APP_ID","description":"Numeric App ID (shown on the app's General settings)","secret":false,"example_format":"123456","from_step":"register"},{"name":"GITHUB_APP_CLIENT_ID","description":"App client ID (for user access tokens)","secret":false,"example_format":"opaque id string","from_step":"register"},{"name":"GITHUB_APP_PRIVATE_KEY","description":"PEM private key file contents (PKCS#1 RSA) or path to it","secret":true,"example_format":"PEM text block, or ./github-app.pem","from_step":"private_key"},{"name":"GITHUB_APP_WEBHOOK_SECRET","description":"Webhook secret you chose at registration","secret":true,"example_format":"random string you generate","from_step":"register"}],"terms_notes":[{"kind":"rules_say","severity":"amber","text":"Private keys never expire; revoke and rotate manually (up to 25 keys per app).","source":"private_keys"},{"kind":"rules_say","severity":"yellow","text":"Paid Marketplace listings need a verified-publisher organisation and at least 100 installations.","source":"marketplace_reqs"}],"pricing_notes":{"notes":"No fee to register; up to 100 GitHub Apps per user or organisation.","source":"registering"},"stripe_projects":false,"api_provisioning":{"available":"partial","notes":"GitHub supports registering an app from a manifest (user still confirms in the browser) [to verify]."}}}