# GitHub

GitHub works similar to Facebook (OAuth).

- Register a new application at GitHub Developers, set the callback URL to `http://example.com/complete/github/` replacing `example.com` with your domain.

- Fill the `Client ID` and `Client Secret` values from GitHub in the settings:

      SOCIAL_AUTH_GITHUB_KEY = ''
      SOCIAL_AUTH_GITHUB_SECRET = ''

- Also it’s possible to define extra permissions with:

      SOCIAL_AUTH_GITHUB_SCOPE = [...]

## GitHub for Organizations

When defining authentication for organizations, use the `GithubOrganizationOAuth2` backend instead. The settings are the same as the non-organization backend, but the names must be:

    SOCIAL_AUTH_GITHUB_ORG_*

Be sure to define the organization name using the setting:

    SOCIAL_AUTH_GITHUB_ORG_NAME = ''

This name will be used to check that the user really belongs to the given organization and discard it if they’re not part of it.

## GitHub for Teams

Similar to `GitHub for Organizations`, there’s a GitHub for Teams backend, use the backend `GithubTeamOAuth2`. The settings are the same as the basic backend, but the names must be:

    SOCIAL_AUTH_GITHUB_TEAM_*

Be sure to define the `Team ID` using the setting:

    SOCIAL_AUTH_GITHUB_TEAM_ID = ''

This `id` will be used to check that the user really belongs to the given team and discard it if they’re not part of it.

## Github for Enterprises

Check the docs GitHub Enterprise if planning to use Github Enterprises.