Harness Open Source (formerly Drone) — Overview#
Identity#
- Module path: github.com/harness/gitness
- Go version: 1.25.8 (go.mod)
- License: Apache 2.0
- Repository: https://github.com/harness/harness (main branch = Harness Open Source;
dronebranch = classic Drone CI snapshot)
Purpose#
Harness Open Source (internally named “gitness”) is a self-hosted, end-to-end open source DevOps platform. It solves the problem of needing a unified, self-hosted alternative to GitHub + GitHub Actions + Docker Hub — combining git code hosting, automated CI/CD pipelines (the Drone heritage), cloud development environments (Gitspaces), and OCI-compatible artifact registries in a single deployable binary. It targets platform engineering teams and organizations that need full control over their DevOps toolchain without cloud vendor lock-in.
Significance#
Drone CI was one of the most influential container-native CI systems in the Go ecosystem, pioneering pipeline-as-code with Docker containers and YAML-defined stages. Harness Open Source is its evolution into a full platform — a bold architectural pivot from a focused CI tool to a GitHub-scale platform. The drone/go-scm library (a dependency here) became a standard Go abstraction for multi-provider SCM APIs. The project demonstrates how a successful OSS tool grows into an enterprise platform while preserving its Go-native, container-centric roots.
Key metrics#
- Go files: ~2,578 (XL tier)
- Top-level directories:
app/,audit/,blob/,cache/,cli/,client/,cmd/,contextutil/,crypto/,encrypt/,errors/,events/,git/,http/,infraprovider/,job/,langstats/,livelog/,lock/,logging/,profiler/,pubsub/,registry/,resources/,secret/,ssh/,store/,stream/,tests/,types/,version/,web/ - Direct dependencies: ~106 (excluding indirect)
- First visible commit: snapshot of existing large codebase (no shallow history available)
Notable characteristics#
- Dual-heritage architecture: The
app/pipelinesubsystem retains Drone’s runner-based CI engine (usingdrone-runners/drone-runner-docker,drone/runner-go,drone/drone-yaml), whileapp/gitspace,registry/, andgit/are entirely new domains added post-Drone, making this an example of organic platform growth. - Google Wire for DI at scale: With 2,500+ Go files, the project uses
github.com/google/wirefor compile-time dependency injection — one of the largest Wire-based codebases in the open source Go ecosystem, showing how Wire scales (and where it strains). - Self-contained git server: The
git/package wraps bare git operations (not Gitea/Gogs), andssh/usesgliderlabs/sshto provide a native SSH server — the platform hosts actual git repositories, not just CI metadata. - OCI artifact registry as a sub-module:
registry/is declared as a Go workspace replace directive (replace github.com/harness/gitness/registry => ./registry), demonstrating modular decomposition within a monorepo while still compiling to a single binary. - Polyglot surface: Despite being a Go backend, the project ships a full React/TypeScript frontend (
web/), gRPC+protobuf internal services, Swagger/OpenAPI external API, SSH protocol, and Starlark scripting for pipeline definitions — a rare breadth of interface types in a single Go project.