agentleFS
G1JoshiG1Joshi/Agent-Skills/skills/security/sonarqube/SKILL.md

sonarqube

Skill15 starsChanged 42 days agoMITView on GitHub

Expert SonarQube code quality and security scanning covering Quality Gates, static analysis (SAST), and test coverage tracking. Use when configuring SonarQube/SonarCloud, measuring code debt, or enforcing quality gates.

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

3 rules. 0 are common, 3 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run Sonar analysis during standard build jobs:

    line 74
  2. Distinctive:

    Use SonarLint in IDEs: Run instant local analysis in VS Code/JetBrains to fix code smells before committing.

    line 92
  3. Distinctive:

    Run SonarScanner on untested code: Run tests and generate coverage reports before executing the Sonar scanner step.

    line 98

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

SonarQube

SonarQube is the leading tool for continuous inspection of code quality. It detects bugs, vulnerabilities (SAST), and code smells in over 30 programming languages.

When to Use

  • Continuous Code Quality & Clean Code Auditing: Analyzing codebases for bugs, vulnerabilities, security hotspots, and code smells.
  • Quality Gates in Pull Requests: Enforcing that new code meets strict quality standards (test coverage, zero new bugs) before merging.
  • Technical Debt & Maintainability Tracking: Measuring duplication percentage, complexity scores, and estimated remediation time.
  • Enterprise Security Compliance: Ensuring codebases comply with security standards (OWASP Top 10, CWE, SANS Top 25).

Quick Start

docker run -d --name sonarqube -p 9000:9000 sonarqube:lts
# Login: admin/admin at http://localhost:9000
# sonar-project.properties
sonar.projectKey=my-project
sonar.sources=src
sonar.host.url=http://localhost:9000
sonar.login=...

Core Concepts

The "Clean as You Code" Methodology

Focuses quality gate enforcement on "New Code" (modified in the PR) rather than legacy debt:

[ Developer Branch ] ──Pull Request──→ [ CI Scanner ] ──Analyze New Code──→ [ Quality Gate PASS / FAIL ]

sonar-project.properties Configuration

Defines source paths, exclusions, test execution reports, and lcov coverage targets:

# sonar-project.properties
sonar.projectKey=enterprise-api-service
sonar.projectName=Enterprise API Service
sonar.sources=src
sonar.tests=tests
sonar.exclusions=**/node_modules/**,**/dist/**,**/*.spec.ts
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.qualitygate.wait=true

SonarScanner CLI Execution

Runs static analysis and uploads results to SonarQube Server or SonarCloud:

sonar-scanner \
  -Dsonar.host.url=https://sonarqube.internal.corp \
  -Dsonar.token=$SONAR_TOKEN

Common Patterns

Maven / Gradle Sonar Scanner Pipeline

Problem: Code smells and security hotspots merge to main branch unnoticed.

Solution: Run Sonar analysis during standard build jobs:

# Analyze with Maven passing project key and token
mvn clean verify sonar:sonar \
  -Dsonar.projectKey=my_enterprise_app \
  -Dsonar.host.url=https://sonarqube.internal.net \
  -Dsonar.token=$SONAR_TOKEN \
  -Dsonar.qualitygate.wait=true

Best Practices

Do:

  • Enforce the Quality Gate on Pull Requests: Block merges if code coverage on new code is under 80% or if new security vulnerabilities are found.
  • Upload Real Code Coverage Reports: Ensure unit test runs output valid LCOV or JaCoCo XML reports consumed by SonarQube.
  • Review Security Hotspots Interactively: Investigate flagged security hotspots to confirm safe usage of cryptography and deserialization.
  • Use SonarLint in IDEs: Run instant local analysis in VS Code/JetBrains to fix code smells before committing.

Don't:

  • Attempt to fix all legacy technical debt at once: Adopt the Clean as You Code strategy; fix debt incrementally as files are modified.
  • Disable rules to bypass failing Quality Gates: Address underlying architectural smells rather than weakening inspection rules.
  • Run SonarScanner on untested code: Run tests and generate coverage reports before executing the Sonar scanner step.

Troubleshooting

ErrorCauseSolution
Quality Gate failed: Coverage is below thresholdNew code lacks adequate unit tests or report file missing.Ensure coverage reports (lcov, jacoco) are generated and path specified in config.
You are not authorized to run the analysisInvalid or expired SONAR_TOKEN.Regenerate user/project token in SonarQube user security settings.
Task failed: SonarQube server unreachableNetwork firewall or proxy blocking connection to internal Sonar server.Verify server status and ensure runner has network egress to host URL.

References

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.