|  |  | 
|  | This plugins allows to integrate Gerrit with external set of users configured | 
|  | on GitHub. | 
|  | It relies on the installation of the github-oauth Java library under the `$GERRIT_SITE/lib` | 
|  | in order filter all the HTTP requests through the GitHub OAuth 2.0 secure authentication. | 
|  |  | 
|  | GitHub application registration | 
|  | ------------------------------- | 
|  |  | 
|  | GitHub uses OAuth2 as protocol to allow external apps request authorization to private | 
|  | details in a user's GitHub account without getting their password. This is | 
|  | preferred over Basic Authentication because tokens can be limited to specific | 
|  | types of data, and can be revoked by users at any time. | 
|  |  | 
|  | Site owners have to register their application before getting started.  For | 
|  | more information see [GitHub application registration page](https://github.com/settings/applications/new). | 
|  | A registered OAuth application is assigned a unique `Client ID` and `Client | 
|  | Secret`. The `Client Secret` should never be shared. | 
|  |  | 
|  | The Gerrit OAuth callback `<gerrit canonical URL>/oauth` | 
|  | needs to be specified in the GitHub application registration to establish mutual | 
|  | trust between the two domains and exchange the authorization codes. The use of HTTPS | 
|  | for Gerrit is strongly recommended for keeping the secrets exchange confidential. | 
|  |  | 
|  | `auth.httpHeader` is set to `GITHUB_USER` with this authentication method and `auth.type` | 
|  | must be set to HTTP. |