joan38/kubernetes-client
53.5
Adequate · 20 September 2026
2.4k
lines of production code
Scala
primary language
1
measurement over time
What this system is
This system is a Kubernetes client library for Scala that provides typed APIs for managing core resources such as Pods, Deployments, and Services. It supports standard configuration loading, resource watching, and operations like pod execution and file transfers. The project has migrated its build infrastructure from SBT to Mill and includes comprehensive integration tests against a live cluster to validate CRUD operations and caching behavior.
Features
Initial project scaffolding with Mill build, Apache 2.0 license, and strict code style
The repository is initialized with a Mill 1.1.0 build system (build.mill, mill launcher) supporting Scala 3.3.4, 2.13.16, and 2.12.20, replacing previous build tooling. An Apache 2.0 license file is added, and the project adopts strict code quality rules via Scalafmt 3.10.6 and Scalafix (disabling vars, nulls, returns, etc.). The README documents usage with http4s and Circe, and the .gitignore is updated to exclude Mill, Scala, and IDE artifacts.
(repo-wide) · high confidence
Initial release of the Kubernetes client library
This change introduces the core components of the Kubernetes client library, including the \KubernetesClient\ entry point, \KubeConfig\ for standard configuration loading (from environment, home directory, or cluster), and a comprehensive set of typed APIs for managing Kubernetes resources such as Pods, Deployments, Services, ConfigMaps, Secrets, Ingresses, and Custom Resources. It also provides utilities for watching resource changes, executing commands in pods, and handling file uploads/downloads.
kubernetes-client · high confidence
Removals
Removal of legacy Kubernetes client implementation
The legacy Kubernetes client implementation located in src/main/scala/com/goyeau/kubernetesclient has been completely removed. This deletion eliminates the previous Akka HTTP-based operations for managing Pods, Deployments, Jobs, CronJobs, and Services, along with the associated KubeConfig parsing and request utilities. Users relying on this specific client package will no longer have access to these Kubernetes resource interactions.
src/main/scala · high confidence
Test coverage
Added integration tests for Kubernetes API resources using mUnit; Added integration tests for Kubernetes resource operations; Added test utilities for Kubernetes client testing; Added tests for AuthorizationCache token retrieval and expiration handling.
Dependencies
Migrate build system from SBT to Mill
The project has switched its build tool from SBT to Mill. This migration replaces the SBT configuration files (build.properties, plugins.sbt) with Mill-specific build definitions (Dependencies.mill, SwaggerModelGenerator.mill, model.mill, package.mill). The build logic for dependency management and the Swagger model code generator has been rewritten in Mill's DSL, and the legacy Scala-based build definitions (Definition.scala, SwaggerModelGenerator.scala) have been removed.
project · high confidence
Migration from SBT to Mill build tool
The project has switched its build system from SBT to Mill. This change removes the SBT build configuration files (build.sbt and project/build.sbt), which previously defined dependencies for Circe, Akka HTTP, and other libraries, in favor of the new Mill-based build structure.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 53.
Lenses
- Code Health 98
- Architecture 72
- Maturity 45
- Readiness 46
- Security 72
Changes since last survey
- 300 commits — 289 feature/other, 11 fixes
By area
- (root) — 120 commits
- project/Dependencies.sc — 82 commits
- kubernetes-client/src — 35 commits
- kubernetes-client/test — 18 commits
- project/Dependencies.mill — 13 commits
- src/main — 13 commits
- .github/workflows — 10 commits
- project/build.properties — 3 commits
- src/test — 3 commits
- project/Definition.scala — 1 commit
- project/SwaggerModelGenerator.sc — 1 commit
- project/plugins.sbt — 1 commit
Notable commits
- fix: Bugfix: Refresh before token expires, not after (#254)
- fix: Fix Uri building for Proxy (#98)
- fix: Fix documentation and add KubeConfig.fromFile
- fix: Fix dynverSonatypeSnapshots
- fix: Fix in authorization type error in README
- fix: Fix not displaying Latest version
- fix: Fix tests (#178)
- fix: Fix unmoored scaladocs
- fix: Fix watchable tests (#141)
- fix: fix #242 (invalid AuthInfoExec#env model)
- fix: revert parSequence back
- change: - Refactorings - Support for proxy API
- change: Add 'Reformat with scalafmt 3.10.5' to .git-blame-ignore-revs
- change: Add 'Reformat with scalafmt 3.6.1' to .git-blame-ignore-revs
- change: Add 'Reformat with scalafmt 3.9.0' to .git-blame-ignore-revs
- change: Add 'Reformat with scalafmt 3.9.8' to .git-blame-ignore-revs
- change: Add Scala 3.0.1 cross-build (#102)
- change: Add a way to list and get details of a node.
- change: Add optional resourceVersion to watch API (#223)
- change: Add support for Kubernetes Watch API (#12)
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
joan38/kubernetes-client was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 934552c001888f929e86cb61090322d6046ec38d — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.