Hire me
BoxBoxJason Logo
← Back to Projects Go developers and platform teams integrating SonarQube

SonarQube Client Go

Production-ready Go SDK and CLI for SonarQube, with strong API coverage, safer typing, and reliable input validation.

Origin Story: Rescuing a Broken SDK

This project began with a fork of a stalled SonarQube SDK that relied heavily on generated code. In practice, that approach produced fragile behavior and inconsistent typing. I took ownership of the codebase and rebuilt it into a toolchain that teams could safely use in production.

Rebuild Strategy

Instead of patching generated output, I switched to manual implementation and verification:

  • Reworked service clients and request/response models by hand.
  • Tightened typing and option structures for safer usage patterns.
  • Added explicit input validation to prevent ambiguous or invalid API calls.
  • Kept package boundaries clean so contributors can extend features without regressions.

What the Project Delivers Today

  • Production-grade Go SDK coverage across 50+ services.
  • 100% of the SonarQube API surface is covered by the SDK.
  • 95%+ code coverage on the codebase.
  • 80%+ real end-to-end coverage through integration-style execution paths.
  • A full CLI (sonar-cli) for automation workflows and CI usage.
  • Stronger behavioral reliability through deeper tests and safer inputs.
  • Ongoing releases driven by a maintained roadmap, not reactive issue churn.

How I Run Delivery

I execute through milestone tracks to keep parallel progress on capability and quality:

  • E2E Tests Framework
  • API V2 Support
  • CLI Support
  • User Production Readiness

Execution snapshot at capture time:

  • 83 closed pull requests
  • 109 closed issues
  • 100% SonarQube API coverage in the SDK
  • 95%+ code coverage
  • 80%+ end-to-end coverage

Community Signals

Star History

Star History Chart

Contributors

Contributors

Technologies Used

IconTechnologyHow it was used
Go LogoGoCore SDK and CLI implementation, typed models, validation, and tests
SonarQube LogoSonarQube Web APIAPI surface modeled and implemented in the client for SDK and CLI features

Project History

Project Rescue and Technical Reset

Took over a fork of a dead SDK project that relied on OpenAPI-driven generation. The generated output was frequently invalid and unsafe in practice, so I replaced that direction with a manual, correctness-first implementation strategy.

Manual Reimplementation with Type and Input Safety

Reworked services, request/response types, and option structs by hand. Added stronger input safety and validation patterns to prevent malformed usage and ambiguous API behavior.

Full SDK + CLI Productization

Expanded coverage to 50+ services and shipped a production-grade CLI (`sonar-cli`) on top of the SDK. Added consistent UX features like pagination control, structured outputs, and flexible authentication.

Milestone-Driven Delivery and Quality Hardening

Ran delivery through milestone tracks (E2E Tests Framework, API V2 Support, CLI Support, User Production Readiness), while pushing deep test coverage, release discipline, and maintainability improvements.

Project Details

Role
Owner, Maintainer, Lead Engineer
Client
Go developers and platform teams integrating SonarQube
Duration
Ongoing
Published

Technologies

Key Outcomes

SonarQube API Coverage
100%
Code Coverage
95%+
End-to-End Coverage
80%+

Other Projects

Kubernetes GitOps Architecture

Homelab Configuration

Podman Compose + Terraform homelab platform for self-hosted GitLab, SonarQube, storage, and observability with backups and operational tooling

Podman Linux Terraform Nginx GitLab SonarQube Prometheus Grafana PostgreSQL Synology NAS
gitlab-sync logo

GitLab Sync

CLI tool to synchronize GitLab projects and groups between two GitLab instances for migrations, DR, and multi-instance operations

Go GitLab Docker CI/CD
Vscode Achievements Extension Illustration

VSCode Achievements

Visual Studio Code extension that rewards developers with achievements for actions in the editor

TypeScript React VSCode Node