# Supporting SCM providers

The SonarScanners use information from the project’s SCM provider, if available, to:

* Assign a new issue to the person who introduced it. The last committer on the related line of code is considered to be the author of the issue.
* Estimate the coverage on new code, including added and changed code since in your new code.
* Display the most recent commit on each line in the code viewer.

<figure><img src="https://512221655-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyDv2XwTC1xoOKBYeCK45%2Fuploads%2Fgit-blob-b21a8213ae1f88d313c5db10c4e44481da3107a5%2Fexecutable-lines-python-exception.png?alt=media" alt="Exempt a block of Python code from coverage"><figcaption><p>Exempt a block of Python code from coverage</p></figcaption></figure>

The only required SCM command is "blame", which gets the last committer of each line for a given file. This command is executed by a SonarQube Server plugin through the extension point `org.sonar.api.batch.scm.ScmProvider`. See the embedded [scm-integration](https://docs.sonarsource.com/sonarqube-server/2025.4/analyzing-source-code/scm-integration "mention") documentation for more details.
