Article version: GitHub.com

Creating a GitHub App using URL parameters

You can preselect the settings of a new GitHub App using URL query parameters to quickly set up the new GitHub App's configuration.

In this article

About GitHub App URL parameters

You can add query parameters to these URLs to preselect the configuration of a GitHub App on a personal or organization account:

  • User account: https://github.com/settings/apps/new
  • Organization account: https://github.com/organizations/:org/settings/apps/new

The person creating the app can edit the preselected values from the GitHub App registration page, before submitting the app. If you do not include required parameters in the URL query string, like name, the person creating the app will need to input a value before submitting the app.

The following URL creates a new public app called octocat-github-app with a preconfigured description and callback URL. This URL also selects read and write permissions for checks, subscribes to the check_run and check_suite webhook events, and selects the option to request user authorization (OAuth) during installation:

https://github.com/settings/apps/new?name=octocat-github-app&description=An%20Octocat%20App&callback_url=https://example.com&request_oauth_on_install=true&public=true&checks=write&events[]=check_run&events[]=check_suite

The complete list of available query parameters, permissions, and events is listed in the sections below.

GitHub App configuration parameters

NameTypeDescription
namestringThe name of the GitHub App. Give your app a clear and succinct name. Your app cannot have the same name as an existing GitHub user, unless it is your own user or organization name. A slugged version of your app's name will be shown in the user interface when your integration takes an action.
descriptionstringA description of the GitHub App.
urlstringThe full URL of your GitHub App's website homepage.
callback_urlstringThe full URL to redirect to after someone authorizes an installation. This URL is used if your app needs to identify and authorize user-to-server requests.
request_oauth_on_installbooleanIf your app authorizes users using the OAuth flow, you can set this option to true to allow people to authorize the app when they install it, saving a step. If you select this option, the setup_url becomes unavailable and users will be redirected to your callback_url after installing the app.
setup_urlstringThe full URL to redirect to after someone installs the GitHub App if the app requires additional setup after installation.
setup_on_updatebooleanSet to true to redirect people to the setup URL when installations have been updated, for example, after repositories are added or removed.
publicbooleanSet to true when your GitHub App is available to the public or false when it is only accessible to the owner of the app.
webhook_urlstringThe full URL that you would like to send webhook event payloads to.
webhook_secretstringYou can specify a secret to secure your webhooks. See "Securing your webhooks" for more details.
eventsarray of stringsWebhook events. Some webhook events require read or write permissions for a resource before you can select the event when registering a new GitHub App. See the "GitHub App webhook events" section for available events and their required permissions. You can select multiple events in a query string. For example, events[]=public&events[]=label.
domainstringThe URL of a content reference.
single_file_namestringWhen you grant read or write access to the single_file permission, this field provides the path to the single file your GitHub App will manage.

GitHub App permissions

You can select permissions in a query string using the permission name in the following table as the query parameter name and the permission type as the query value. For example, to select Read & write permissions in the user interface for contents, your query string would include &contents=write. To select Read-only permissions in the user interface for blocking, your query string would include &blocking=read. To select no-access in the user interface for checks, your query string would not include the checks permission.

PermissionDescription
administrationGrants access to various endpoints for organization and repository administration. Can be one of: none, read, or write.
blockingGrants access to the Blocking Users API. Can be one of: none, read, or write.
checksGrants access to the Checks API. Can be one of: none, read, or write.
content_referencesGrants access to the "Create a content attachment" endpoint. Can be one of: none, read, or write.
contentsGrants access to various endpoints that allow you to modify repository contents. Can be one of: none, read, or write.
deploymentsGrants access to the Deployments API. Can be one of: none, read, or write.
emailsGrants access to the Emails API. Can be one of: none, read, or write.
followersGrants access to the Followers API. Can be one of: none, read, or write.
gpg_keysGrants access to the GPG Keys API. Can be one of: none, read, or write.
issuesGrants access to the Issues API. Can be one of: none, read, or write.
keysGrants access to the Public Keys API. Can be one of: none, read, or write.
membersGrants access to manage an organization's members. Can be one of: none, read, or write.
metadataGrants access to read-only endpoints that do not leak sensitive data. Can be read or none. Defaults to read when you set any permission, or defaults to none when you don't specify any permissions for the GitHub App.
organization_administrationGrants access to "Update an organization" endpoint and the Organization Interaction Restrictions API. Can be one of: none, read, or write.
organization_hooksGrants access to the Organization Webhooks API. Can be one of: none, read, or write.
organization_planGrants access to get information about an organization's plan using the "Get an organization" endpoint. Can be one of: none or read.
organization_projectsGrants access to the Projects API. Can be one of: none, read, write, or admin.
organization_user_blockingGrants access to the Blocking Organization Users API. Can be one of: none, read, or write.
pagesGrants access to the Pages API. Can be one of: none, read, or write.
planGrants access to get information about a user's GitHub plan using the "Get a user" endpoint. Can be one of: none or read.
pull_requestsGrants access to various pull request endpoints. Can be one of: none, read, or write.
repository_hooksGrants access to the Repository Webhooks API. Can be one of: none, read, or write.
repository_projectsGrants access to the Projects API. Can be one of: none, read, write, or admin.
single_fileGrants access to the Contents API. Can be one of: none, read, or write.
starringGrants access to the Starring API. Can be one of: none, read, or write.
statusesGrants access to the Statuses API. Can be one of: none, read, or write.
team_discussionsGrants access to the Team Discussions API and the Team Discussion Comments API. Can be one of: none, read, or write.
vulnerability_alertsGrants access to receive security alerts for vulnerable dependencies in a repository. See "About security alerts for vulnerable dependencies" to learn more. Can be one of: none or read.
watchingGrants access to list and change repositories a user is subscribed to. Can be one of: none, read, or write.

GitHub App webhook events

Webhook event nameRequired permissionDescription
check_runchecksCheck run activity has occurred. The type of activity is specified in the action property of the payload object. For more information, see the "check runs" REST API.
check_suitechecksCheck suite activity has occurred. The type of activity is specified in the action property of the payload object. For more information, see the "check suites" REST API.
commit_commentcontentsA commit comment is created. The type of activity is specified in the action property of the payload object. For more information, see the "commit comment" REST API.
content_referencecontent_referencesA new content reference is created. A new content reference is created when the body or comment of an issue or pull request includes a URL that matches a configured content reference domain. For more information, see "Using content attachments" to learn more about content references and attachments.
createcontentsA Git branch or tag is created. For more information, see the "Git data" REST API.
deletecontentsA Git branch or tag is deleted. For more information, see the "Git data" REST API.
deploymentdeploymentsA deployment is created. The type of activity is specified in the action property of the payload object. For more information, see the "deployment" REST API.
deployment_statusdeploymentsA deployment is created. The type of activity is specified in the action property of the payload object. For more information, see the "deployment statuses" REST API.
forkcontentsA user forks a repository. For more information, see the "forks" REST API.
gollumcontentsA wiki page is created or updated. For more information, see the "About wikis".
issuesissuesActivity related to an issue. The type of activity is specified in the action property of the payload object. For more information, see the "issues" REST API.
issue_commentissuesActivity related to an issue comment. The type of activity is specified in the action property of the payload object. For more information, see the "issue comments" REST API.
labelmetadataActivity related to an issue. The type of activity is specified in the action property of the payload object. For more information, see the "labels" REST API.
membermembersActivity related to repository collaborators. The type of activity is specified in the action property of the payload object. For more information, see the "collaborators" REST API.
membershipmembersActivity related to team membership. The type of activity is specified in the action property of the payload object. For more information, see the "team members" REST API.
milestonepull_requestActivity related to milestones. The type of activity is specified in the action property of the payload object. For more information, see the "milestones" REST API.
org_blockorganization_administrationActivity related to people being blocked in an organization. The type of activity is specified in the action property of the payload object. For more information, see the "blocking organization users" REST API.
organizationmembersActivity related to an organization and its members. The type of activity is specified in the action property of the payload object. For more information, see the "organizations" REST API.
page_buildpagesRepresents an attempted build of a GitHub Pages site, whether successful or not. A push to a GitHub Pages enabled branch (gh-pages for project pages, master for user and organization pages) triggers this event.
projectrepository_projects or organization_projectsActivity related to project boards. The type of activity is specified in the action property of the payload object. For more information, see the "projects" REST API.
project_cardrepository_projects or organization_projectsActivity related to project cards. The type of activity is specified in the action property of the payload object. For more information, see the "project cards" REST API.
project_columnrepository_projects or organization_projectsActivity related to columns in a project board. The type of activity is specified in the action property of the payload object. For more information, see the "project columns" REST API.
publicmetadataWhen a private repository is made public. Without a doubt: the best GitHub event.
pull_requestpull_requestsActivity related to pull requests. The type of activity is specified in the action property of the payload object. For more information, see the "pull requests" REST API.
pull_request_reviewpull_requestActivity related to pull request reviews. The type of activity is specified in the action property of the payload object. For more information, see the "pull request reviews" REST API.
pull_request_review_commentpull_requestActivity related to pull request review comments in the pull request's unified diff. The type of activity is specified in the action property of the payload object. For more information, see the "pull request review comments" REST API.
pushcontentsOne or more commits are pushed to a repository branch or tag.
releasecontentsActivity related to a release. The type of activity is specified in the action property of the payload object. For more information, see the "releases" REST API.
repositorymetadataActivity related to a repository. The type of activity is specified in the action property of the payload object. For more information, see the "repositories" REST API.
repository_dispatchcontentsAllows integrators using GitHub Actions to trigger custom events.
statusstatusesWhen the status of a Git commit changes. The type of activity is specified in the action property of the payload object. For more information, see the "statuses" REST API.
teammembersActivity related to an organization's team. The type of activity is specified in the action property of the payload object. For more information, see the "teams" REST API.
team_addmembersWhen a repository is added to a team.
watchmetadataWhen someone stars a repository. The type of activity is specified in the action property of the payload object. For more information, see the "starring" REST API.

Ask a human

Can't find what you're looking for?

Contact us