# Basic principles of SonarQube analysis

The SonarQube code analysis process unfolds as follows:

1. **Commit and trigger**: A developer commits changes to their repository, which triggers the Continuous Integration (CI) pipeline.
2. **Analysis start**: The CI pipeline initiates the code analysis.
3. **Scanning and setup**: The SonarScanner scans the repository. It uses the analysis parameters configured for the bound SonarQube project to determine the code to be analyzed. It then instructs the language analyzer(s) to perform their analyses.
4. **Analysis execution**: Each analyzer executes its analysis based on the configured language-specific quality profile, which is a set of defined rules. The analyzer sends the results (issues and measures) back to the SonarScanner, which forwards this information to SonarQube.
5. **Result processing**: SonarQube processes the analysis results, distinguishing between new code and overall code.
   * It identifies, assigns, and surfaces new issues within the uploaded code. (SonarQube uploads the code during analysis to show users where issues are raised; unanalyzed changes are not visible.)
   * It calculates metrics and determines the quality gate status.
   * It generates reports.
6. **Review and fix**: Developers can review the raised issues in SonarQube. Using connected mode, they have the option to fix these issues directly within their Integrated Development Environment (IDE).

<figure><img src="/spaces/KXW79zfYFiA8incTvwZK/files/22TOfGGYyvyBtnLR0TSi" alt="An analysis is started on a developer&#x27;s commit. The SonarScanner analyzes the code and sends the results to SonarQube."><figcaption></figcaption></figure>

## SonarScanner

Stand-alone program running on the CI/CD host that orchestrates the code analysis. It scans the code to retrieve the files to be analyzed according to the configured analysis parameters, sends these files to the analyzers for analysis; sends the analysis results to SonarQube.

The Sonar Solution offers SonarScanners that integrate with the following build systems: Gradle, Maven, .NET, NPM, and Python. For other project types, the SonarScanner CLI which requires more manual configuration is used.

To learn more, see [Scanners](/sonarqube-server/2026.1/analyzing-source-code/scanners.md).

## Analysis parameters

Parameters processed by the SonarScanner to manage the code analysis.

To learn more, see [Configuration overview](/sonarqube-server/2026.1/analyzing-source-code/analysis-parameters/configuration-overview.md).

## Project

Analyzing code with SonarQube involves creating a project in SonarQube. A project corresponds to a repository on your DevOps platform.

## Language analyzer

Program running on the CI/CD host that executes code analysis. An analyzer is specific to a language or language family.

To learn more, see [Languages](/sonarqube-server/2026.1/analyzing-source-code/languages.md).

## Quality profile

A quality profile defines the set of rules to be applied by a given language analyzer during code analysis.

To learn more, see [Understanding quality profiles](/sonarqube-server/2026.1/quality-standards-administration/managing-quality-profiles/understanding-quality-profiles.md).

## Rule

Coding rules define how code should be written, formatted, and organized to ensure security, reliability, and maintainability.

To learn more, see [SonarQube rules](/sonarqube-server/2026.1/quality-standards-administration/managing-rules/rules.md).

## Issue

When a rule is broken, an issue is raised.

To learn more, see [SonarQube analysis process](/sonarqube-server/2026.1/discovering/analysis-overview/process-steps.md#identification-and-assignment).

## New code

New code is code that you’ve recently added or modified. It is identified based on the New Code Definition.

SonarQube differentiates the analysis results on new code from overall code (overall code includes new and old code) to allow focusing your efforts on new code.

To learn more, see [Quality standards and new code](/sonarqube-server/2026.1/user-guide/about-new-code.md#focus-on-new-code).

## New Code Definition

The New Code Definition tells SonarQube which part of the code is considered new during analysis. It can be configured at the global, project, or branch level and several definition options are available.

To learn more, see [Quality standards and new code](/sonarqube-server/2026.1/user-guide/about-new-code.md#new-code-definitions)..

## Quality gate

A quality gate consists of a set of conditions against which the code is measured during analysis. A condition is defined on either new code or overall code. Depending on the result, the code will pass or fail the quality gate, giving developers indications on whether to fix issues or merge the code.

To learn more, see [Understanding quality gates](/sonarqube-server/2026.1/quality-standards-administration/managing-quality-gates/introduction-to-quality-gates.md).

## Metric

Quantitative, measurable indicators used by SonarQube Cloud to assess the quality, complexity, and security of your code.

To learn more, see [Understanding measures and metrics](/sonarqube-server/2026.1/user-guide/code-metrics/metrics-definition.md).

## Connected mode

Connected mode binds your SonarQube (Cloud, Server) or SonarQube Community Build project to your IDE project through SonarQube for IDE. This way, issues detected by SonarQube (Cloud, Server) or SonarQube Community Build are also raised in your IDE.

To learn more, see [Connected mode](/sonarqube-server/2026.1/user-guide/connected-mode.md).


---

# 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-server/2026.1/discovering/analysis-overview/basic-principles.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.
