# Introduction to GitHub integration

SonarQube’s integration with GitHub allows you to maintain code quality and security in your GitHub repositories.

{% hint style="info" %}
For information about GitHub authentication, see [GitHub](/sonarqube-community-build/instance-administration/authentication/github.md).
{% endhint %}

## Prerequisites <a href="#prerequisites" id="prerequisites"></a>

You can use any GitHub plan. If you use GitHub Enterprise Server, we recommend using [GitHub Enterprise version 3.14+](https://docs.github.com/en/enterprise-server@3.14).

## Key features

With this integration, you’ll be able to:

* Sign in to SonarQube Community Build with your GitHub credentials.
* Import your GitHub repositories into SonarQube to easily set up SonarQube projects.
* Analyze projects with GitHub Actions: Integrate analysis into your build pipeline.

{% hint style="info" %}
SonarQube Community Build doesn’t support various features such as the analysis of multiple branches and pull requests. See [Feature comparison table](/sonarqube-community-build/feature-comparison-table.md) to know which GitHub integration features are supported by the other SonarQube deployments.
{% endhint %}

## Integration solution overview <a href="#related-pages" id="related-pages"></a>

SonarQube Community Build uses a GitHub App to access GitHub resources. The app defines the global access permissions of SonarQube Community Build. Access to your GitHub instance is required when:

* A project administrator imports a GitHub repository to create the respective project in SonarQube Community Build. SonarQube Community Build then accesses and uses the project administrator's GitHub repository permissions.
* SonarQube Community Build authenticates users through GitHub.

In SonarQube Community Build, a "GitHub Configuration" record stores the credentials used to log in to the GitHub App for SonarQube. A different Configuration record is used to manage the analysis integration and the user authentication.

<figure><img src="/spaces/KXW79zfYFiA8incTvwZK/files/hAyCLBcPZ7fnZm843CMc" alt=""><figcaption></figcaption></figure>

## Related pages <a href="#related-pages" id="related-pages"></a>

* [Setting up GitHub integration at global level](/sonarqube-community-build/devops-platform-integration/github-integration/setting-up-at-global-level.md)\
  This section explains how to set up GitHub and SonarQube for their integration at the global level. You need the global Administer System permission in SonarQube to perform this setup.
* [Importing GitHub repositories](/sonarqube-community-build/devops-platform-integration/github-integration/importing-github-repositories.md)\
  Once the integration of SonarQube with GitHub has been properly set up, you can import a GitHub repository to create the corresponding projects in SonarQube.
* [Adding analysis to GitHub Actions workflow](/sonarqube-community-build/devops-platform-integration/github-integration/adding-analysis-to-github-actions-workflow.md)\
  Once you have created your projects in SonarQube, you can add the SonarQube analysis to your GitHub Actions workflow.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sonarsource.com/sonarqube-community-build/devops-platform-integration/github-integration/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
