get-sonar-feedback
v0.4.1
Published
A CLI tool to fetch SonarCloud feedback for pull requests
Maintainers
Readme
get-sonar-feedback
A CLI tool to fetch SonarCloud feedback for pull requests and project-wide analysis directly from your terminal.
Features
🔴 PR Analysis
- 🎯 Quality Gate status checking
- 🐛 Code issues detection
- 🔒 Security hotspots analysis
- 🔄 Code duplication metrics
- 📊 Test coverage reporting
- 🔍 Auto-detect PR number from current git branch
📊 Project-wide Analysis
- 📊 Project metrics: Get comprehensive quality metrics for any branch
- 🐛 All issues: Analyze all issues with severity breakdown and detailed reporting
- 🎆 Maintenance audits: Regular quality checks beyond PR reviews
Installation
npm install -g get-sonar-feedbackOr clone and build locally:
git clone https://github.com/chaspy/get-sonar-feedback.git
cd get-sonar-feedback
npm install
npm run buildUsage
PR Analysis
# Analyze specific pull request
get-sonar-feedback pr 123
# Auto-detect PR from current branch
get-sonar-feedback prProject Metrics
# Get metrics for main branch
get-sonar-feedback metrics
# Get metrics for specific branch
get-sonar-feedback metrics -b developIssues Analysis
# Get all issues for main branch
get-sonar-feedback issues
# Get all issues for specific branch
get-sonar-feedback issues -b feature-branch
# Show only the first N detailed issues
get-sonar-feedback issues --limit 50
# Show all detailed issues
get-sonar-feedback issues --allConfiguration
Required Environment Variables
SONAR_TOKEN: Your SonarCloud authentication tokenSONAR_PROJECT_KEY: Your SonarCloud project key (e.g.,my-org_my-project)SONAR_ORGANIZATION: Your SonarCloud organization key
Optional Environment Variables
GITHUB_TOKEN: GitHub personal access token (required for PR auto-detection if not using GitHub CLI)DEBUG: Set totrueto enable debug output (see Debug Mode section below)NODE_ENV: Set todebugto enable debug output
Alternatively, you can authenticate with GitHub CLI:
gh auth loginDebug Mode
When encountering issues like 404 errors from SonarCloud API, you can enable debug mode to see detailed information about API calls and responses:
# Using DEBUG environment variable
DEBUG=true get-sonar-feedback pr
# Or using NODE_ENV
NODE_ENV=debug get-sonar-feedback prDebug mode will display:
- SonarCloud configuration (Project Key, Organization)
- Complete API URLs being called
- Response status codes and error messages
- Response body content for failed requests
This is particularly useful for troubleshooting authentication issues or misconfigured project keys.
Release & Publish
- Merging a PR into
maintriggers an automated minor version bump, creates a Git tag and a GitHub Release, then publishes to npm. - Requirements:
- Add
NPM_TOKENin GitHub Actions Secrets with publish permission. - The
package.jsonnamemust be available on npm, and the next version must be unused.
- Add
Workflows involved:
.github/workflows/auto-minor-release.yml: bump minor on merge/push tomainand create a GitHub Release..github/workflows/publish-npm.yml: publish to npm when a GitHub Release is published.
Example Output
PR Analysis Output
==========================================
SonarCloud Analysis for PR #123
==========================================
🎯 Quality Gate Status
--------------------------------------------------
Overall Status: OK
🐛 Issues
--------------------------------------------------
Total Issues: 2
Effort Total: 10min
Debt Total: 10min
Issue Key: AY1234567890
Rule: typescript:S1234
Severity: MINOR
File: src/index.ts
Line: 42
Message: Remove this unused variable
Effort: 5min
Tags: unused
🔒 Security Hotspots
--------------------------------------------------
Total Security Hotspots: 0
✅ No security hotspots found.
🔄 Code Duplication
--------------------------------------------------
Duplication Density: 0.0%
Duplicated Lines: 0
Duplicated Blocks: 0
📊 Test Coverage
--------------------------------------------------
Coverage: 85.5%
Lines to Cover: 200
Uncovered Lines: 29
==========================================
Analysis Complete
==========================================Project Metrics Output
==========================================
Project Metrics for branch: main
==========================================
📊 Project Metrics
--------------------------------------------------
🐛 Bugs: 0
🔓 Vulnerabilities: 1
💨 Code Smells: 21
📊 Coverage: 85.2%
🔄 Duplicated Lines Density: 2.5%
🎯 Cyclomatic Complexity: 3642
🧠 Cognitive Complexity: 2102
⚡ Reliability Rating: A
🔒 Security Rating: E
🏗️ Maintainability Rating: A
📄 Lines of Code: 33025
⏱️ Technical Debt: 9h 12min
==========================================
Metrics Complete
==========================================Development
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run buildLicense
MIT
