{"id":30920415,"url":"https://github.com/kud/sonarqube-dash-cli","last_synced_at":"2025-09-10T01:19:26.624Z","repository":{"id":313347029,"uuid":"1051063082","full_name":"kud/sonarqube-dash-cli","owner":"kud","description":"      A fast, focused CLI \u0026 TUI for SonarQube metrics, quality gates, issues and code snippets — with branch awareness and zero config friction.","archived":false,"fork":false,"pushed_at":"2025-09-05T13:19:12.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-05T13:35:24.827Z","etag":null,"topics":["cli","sonarqube"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-05T11:37:48.000Z","updated_at":"2025-09-05T13:20:32.000Z","dependencies_parsed_at":"2025-09-05T13:35:26.703Z","dependency_job_id":"9b0393b1-2891-42e4-bc6e-862c69b34676","html_url":"https://github.com/kud/sonarqube-dash-cli","commit_stats":null,"previous_names":["kud/sonarqube-dash-cli"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kud/sonarqube-dash-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fsonarqube-dash-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fsonarqube-dash-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fsonarqube-dash-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fsonarqube-dash-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kud","download_url":"https://codeload.github.com/kud/sonarqube-dash-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kud%2Fsonarqube-dash-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274395846,"owners_count":25277387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","sonarqube"],"created_at":"2025-09-10T01:19:22.476Z","updated_at":"2025-09-10T01:19:26.612Z","avatar_url":"https://github.com/kud.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sonarqube-dash\n\n\u003e A fast, focused CLI \u0026 TUI for SonarQube metrics, quality gates, issues and code snippets — with branch awareness and zero config friction.\n\n## ✨ Highlights\n\n- 🔍 One‑command project quality overview (metrics + quality gate)\n- 🧭 Branch aware (`-b` flag \u0026 in‑TUI branch picker)\n- 🧵 Issues listing with rich filters (severity / type / status / limit)\n- 🖥️ Full‑screen TUI: split panes (issues list • detail • live code snippet)\n- 🔦 Syntax‑highlighted contextual code (±5 lines) for each issue\n- ⚙️ Layered configuration (user file → env → CLI) with redacted token printouts\n- 📦 No external service deps beyond SonarQube (Node-only runtime)\n- 🔐 Uses user token only (basic auth style) – nothing stored beyond local config\n\n## 🧩 Install\n\nGlobal (recommended):\n\n```bash\nnpm install -g .\n```\n\nLocal / ad‑hoc:\n\n```bash\nnpm install\nnpx sonarqube-dash --help\n```\n\n## 🚀 Quick Start\n\n```bash\nexport SONARQUBE_DASH_TOKEN=\u003ctoken\u003e\nexport SONARQUBE_DASH_PROJECT=my-project\nexport SONARQUBE_DASH_HOST=https://sonarqube.example.com\n\n# Show metrics (auto main branch detection if -b omitted)\nsonarqube-dash metrics\n\n# List issues (plain)\nsonarqube-dash issues -l 25\n\n# Launch interactive TUI (issues + details + code) on a branch\nsonarqube-dash issues -i -b develop\n```\n\n## 🛠️ Commands Overview\n\n| Command        | Purpose                                     | Key Options                                                                      |\n| -------------- | ------------------------------------------- | -------------------------------------------------------------------------------- |\n| `metrics`      | Project metrics + quality gate              | `-p --project`, `-b --branch`, `-t --token`, `-j --json`, `--print-config`       |\n| `issues`       | List issues (plain / JSON / TUI)            | `-i` (TUI), `-l --limit`, `--severities`, `--types`, `--statuses`, `-b --branch` |\n| `config`       | Manage local config file                    | `set`, `get`, `show`, `path`                                                     |\n| `print-config` | Show merged runtime config (token redacted) | `-c --config`                                                                    |\n\n### Metrics\n\n```bash\nsonarqube-dash metrics -p myproj -b main -t $TOKEN --host https://sonar.example.com\n```\n\nPretty output example:\n\n```\n📊 Project: myproj (main)\n🚦 Quality Gate: PASSED ✅\n🎯 Gate Name: Default\n\n• Bugs                 0\n• Vulnerabilities      0\n• Code Smells          5\n• Coverage             84.2\n• Duplicated Lines     0.4\n```\n\nJSON:\n\n```bash\nsonarqube-dash metrics -p myproj -b main -j\n```\n\n### Issues (Plain)\n\n```bash\nsonarqube-dash issues -p myproj -b develop --severities CRITICAL,MAJOR --limit 20\n```\n\n### Issues (Interactive TUI)\n\n```bash\nsonarqube-dash issues -p myproj -b develop -i\n```\n\nTUI key bindings:\n\n```\nq Quit | ↑/↓ Navigate | enter Load detail+code | r Refresh snippet | b Branch picker | h Help\n```\n\n### Branch Support\n\n- Explicit: `--branch \u003cname\u003e` / `-b \u003cname\u003e`\n- Metrics: if omitted, the CLI tries to detect and display the main branch name automatically\n- TUI: press `b` to open a branch list (marks main with `*` if exposed by the API)\n- Configurable via file or env (`SONARQUBE_DASH_BRANCH`)\n\n## ⚙️ Configuration Layers\n\nPrecedence (lowest → highest):\n\n1. Config file (default: `$XDG_CONFIG_HOME/sonarqube-dash-cli/config.json` or `~/.config/sonarqube-dash-cli/config.json`, or any file passed via `-c/--config`)\n2. Environment variables\n3. CLI flags\n\nExample file (at `~/.config/sonarqube-dash-cli/config.json`):\n\n```json\n{\n  \"token\": \"abcdef123456\",\n  \"project\": \"myproj\",\n  \"branch\": \"main\",\n  \"host\": \"https://sonarqube.example.com\"\n}\n```\n\n### Env Vars\n\n| Var                      | Meaning             |\n| ------------------------ | ------------------- |\n| `SONARQUBE_DASH_TOKEN`   | Auth token          |\n| `SONARQUBE_DASH_PROJECT` | Default project key |\n| `SONARQUBE_DASH_HOST`    | Server base URL     |\n| `SONARQUBE_DASH_BRANCH`  | Default branch      |\n\n### Config CLI Helpers\n\n```bash\n# Create / update values\nsonarqube-dash config set token=abc123 project=myproj host=https://sonarqube.example.com branch=main\n\n# Read a single field\nsonarqube-dash config get project\n\n# Show stored file (token redacted)\nsonarqube-dash config show\n\n# File path in use (defaults to user config path)\nsonarqube-dash config path\n```\n\n## 🧪 Filters (Issues)\n\n| Flag           | Values                                          |\n| -------------- | ----------------------------------------------- |\n| `--severities` | `BLOCKER,CRITICAL,MAJOR,MINOR,INFO`             |\n| `--types`      | `BUG,VULNERABILITY,CODE_SMELL,SECURITY_HOTSPOT` |\n| `--statuses`   | `OPEN,CONFIRMED,REOPENED,RESOLVED,CLOSED`       |\n| `--limit`      | Max issues to fetch (default 10)                |\n\n## 🔍 Code Snippets\n\nFor each issue the tool requests the component's source via:\n\n1. `/api/sources/raw?key=\u003ccomponent\u003e` (preferred)\n2. Fallback: `/api/sources/show`\n\nDisplayed with ±5 lines context and highlighted (problematic underline color sequences stripped for terminal compatibility).\n\n\n## 🧱 Output Redaction\n\n`print-config` and `metrics --print-config` mask the token as `***` while leaving other fields intact.\n\n## 🧯 Troubleshooting\n\n| Symptom                    | Hint                                                              |\n| -------------------------- | ----------------------------------------------------------------- |\n| Empty metrics              | Check project key \u0026 token permissions                             |\n| No snippet                 | Source browsing may be disabled on server or component not a file |\n| Branch not shown           | API user lacks permissions or project has single default branch   |\n| Color artifact / odd chars | Try a simpler TERM (e.g. `export TERM=xterm`)                     |\n\n## 🧭 Roadmap (Ideas)\n\n- Paging \u0026 search inside TUI\n- On‑the‑fly severity filter toggles\n- Export reports (markdown / HTML)\n- Inline fix suggestions (where rule metadata permits)\n\n\n## 📄 License\n\nMIT\n\n---\n\nFeel free to open issues or PRs for feature requests. Fast feedback welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkud%2Fsonarqube-dash-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkud%2Fsonarqube-dash-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkud%2Fsonarqube-dash-cli/lists"}