GitHub
To allow users to log in with GitHub credentials, you must use a GitHub App. We highly recommend that you set up a dedicated one.
Creating a dedicated app for authentication
If you want to use a dedicated app for GitHub authentication, you can create a GitHub OAuth app. You'll find general instructions for creating a GitHub OAuth App here. Specify the following settings in your OAuth App:
- Homepage URL – the public URL of your SonarQube server. For example,
https://sonarqube.mycompany.com
. For security reasons, HTTP is not supported, and you must use HTTPS. The public URL is configured in SonarQube at Administration > General > Server base URL. - Authorization callback URL – your instance's base URL. For example,
https://yourinstance.sonarqube.com
.
Setting your authentication settings in SonarQube
Navigate to Administration > Configuration > General Settings > Authentication > GitHub Authentication and update the following:
- Enabled – set the switch to
true
. - Client ID – the client ID is found below the GitHub App ID on your GitHub App's page.
- Client Secret – the client secret is found below the client ID on your GitHub App's page.
- Enter the allowed organizations in the Organizations field.
If the allowed organizations are not entered, any user with a GitHub account can log in to the SonarQube instance, even if the GitHub App used for authentication is private.
Now, from the login page, your users can connect their GitHub accounts with the new Log in with GitHub button.
GitHub group synchronization
To associate GitHub Teams with existing SonarQube groups of the same name, enable Synchronize user groups by navigating to Administration > Configuration > General Settings > Authentication > GitHub.
![](https://assets-eu-01.kc-usercontent.com:443/5e986e54-339c-01a9-7c7c-26cbc5a344d5/86ba032f-34a8-4b32-8ea2-3e75d37b5bc5/github-group-sync.png?w=1316&h=520&auto=format&fit=crop)
See the Group synchronization section on the Overview page for more detail about this feature’s general behavior.
When group synchronization is configured, the delegated authentication source becomes the only place to manage group membership, and the user's groups are re-fetched with each login. It is not possible to use both manual group memberships and group synchronization (via your ALM integration) for the same user.
Was this page helpful?