GitHub Apps documentation
Go deeper with GitHub by integrating with our APIs and webhooks, customizing your GitHub workflow, and building and sharing apps with the community.
Start here
About using GitHub Apps
Learn about what a GitHub App is and why you would use a GitHub App.
About creating GitHub Apps
GitHub Apps let you build integrations to automate processes and extend GitHub's functionality.
Differences between GitHub Apps and OAuth apps
In general, GitHub Apps are preferred to OAuth apps because they use fine-grained permissions, give more control over which repositories the app can access, and use short-lived tokens.
About authentication with a GitHub App
Your GitHub App can authenticate as itself, as an app installation, or on behalf of a user.
Popular
Registering a GitHub App
You can register a GitHub App under your personal account or under any organization you own.
Authorizing GitHub Apps
You can authorize a GitHub App to retrieve information about your GitHub account and to make changes on your behalf.
Building a GitHub App that responds to webhook events
Learn how to build a GitHub App that makes an API request in response to a webhook event.
Building a "Login with GitHub" button with a GitHub App
Follow this tutorial to write Ruby code to generate a user access token via the web application flow for your GitHub App.
Building a GitHub App that responds to webhook events
Learn how to build a GitHub App that makes an API request in response to a webhook event.
Building a "Login with GitHub" button with a GitHub App
Follow this tutorial to write Ruby code to generate a user access token via the web application flow for your GitHub App.
Building a CLI with a GitHub App
Follow this tutorial to write a CLI in Ruby that generates a user access token for a GitHub App via the device flow.
Making authenticated API requests with a GitHub App in a GitHub Actions workflow
You can use an installation access token from a GitHub App to make authenticated API requests in a GitHub Actions workflow. You can also pass the token to a custom action to enable the action to make authenticated API requests.