argoproj/argo-cd
By the numbers
Quantitative snapshot of argoproj/argo-cd as of the wiki generation date (April 2026).
Data collected from the local checkout of the
masterbranch at commit5b87aa8fd. Counts exclude.git/,vendor/,node_modules/, and generated artifacts where indicated.
Size
The codebase is dominated by Go (backend) and TypeScript/SCSS (web UI), with a substantial body of generated code (CRDs, gRPC, OpenAPI).
xychart-beta horizontal
title "Source files by language"
x-axis "Files"
y-axis ["Go", "TSX (React)", "TypeScript", "SCSS", "Proto"]
bar [981, 156, 57, 63, 19]| Language / kind | Files |
|---|---|
Go (*.go) |
~981 |
React components (*.tsx) |
~156 |
TypeScript (*.ts, non-tsx) |
~57 |
| SCSS stylesheets | ~63 |
| Protobuf definitions | ~19 |
A few individual Go files exceed 100k bytes — the generated pkg/apis/application/v1alpha1/generated.pb.go, controller/appcontroller.go (105 KB), 121 KB), server/application/application.go (cmd/argocd/commands/app.go (145 KB), and 138 KB).reposerver/repository/repository.go (
Activity
xychart-beta horizontal
title "Lifetime commits"
x-axis "Commits"
y-axis ["Total", "Since 2024"]
bar [10529, 4131]- First commit: 14 February 2018.
- Total commits: ~10,529 across the lifetime of the repo.
- Recent activity (since Jan 2024): ~4,131 commits — averaging dozens of merges per week.
- The repo has shipped 10+ minor versions and three major versions; the current declared version (in
VERSION) is 3.5.0.
The most actively changed areas (by file size and historical churn) are:
| Area | Why it churns |
|---|---|
controller/ |
Reconciliation logic gets fixes every release. |
server/application/ |
The largest gRPC service, evolving with new API features. |
cmd/argocd/commands/app.go |
The CLI's argocd app … entrypoint receives near-continuous tweaks. |
applicationset/generators/ |
New generator types and bug fixes. |
reposerver/repository/repository.go |
Source rendering pipeline (Helm, Kustomize, OCI). |
util/settings/settings.go |
New settings/feature flags accumulate over time. |
Bot-attributed commits
A non-trivial share of the recent commit log is automation:
dependabot[bot]commits via Renovate and dependabot updates dominate thechore(deps): bump …messages. A spot check on the most recent 20 commits showed 8 dependency-bump commits.- This is a lower bound on automated work; inline AI assistants leave no trace in
git log.
No individual contributor stats are reported here. See MAINTAINERS.md for the official list of approvers and reviewers.
Complexity
| Metric | Value |
|---|---|
| Number of Go packages | ~250 (across cmd/, controller/, server/, reposerver/, applicationset/, commitserver/, cmpserver/, util/) |
| Largest hand-written Go file | cmd/argocd/commands/app.go (~145 KB) |
| Largest hand-written controller file | controller/appcontroller.go (~105 KB) |
| Generated CRD/protobuf surface | pkg/apis/application/v1alpha1/generated.pb.go (openapi_generated.go ( |
Top-level binaries built from cmd/ |
11 |
Server gRPC service groups (server/*/) |
~22 |
ApplicationSet generators (applicationset/generators/) |
8 (Cluster, DuckType, Git, List, Matrix, Merge, Plugin, PullRequest, SCMProvider) |
Notification trigger templates (notifications_catalog/triggers/) |
dozens of out-of-the-box triggers |
Test coverage signals
Argo CD has a strong testing culture: most production packages ship with _test.go files of similar or greater size than the source. Examples include controller/appcontroller_test.go (126 KB) versus 105 KB), and appcontroller.go (reposerver/repository/repository_test.go (220 KB) versus 138 KB). The repository.go (test/e2e/ tree is its own ecosystem with a fixture framework under test/fixture/.
For a run-by-run view, the canonical CI matrix is in .github/workflows/ci-build.yaml.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.