Code Quality · DevSecOps
Lenguajes soportados
physeter detecta repos polyglot y monorepos, identifica subproyectos por lenguaje, aplica scanners compatibles y marca gaps de cobertura cuando un lenguaje existe pero no está protegido. Python, JavaScript, TypeScript, Go, Java, Kotlin, .NET, Ruby, PHP, Rust, Swift/mobile, Shell, SQL, Docker, Terraform, Kubernetes, Helm y CloudFormation quedan visibles en el score y en el heatmap ejecutivo.
Tier 1 — Cobertura obligatoria desde el primer paquete funcional
SAST + SCA + Secrets + IaC end-to-end. Detección automática a partir de extensiones, manifests y lockfiles.
| Lenguaje / Ecosistema | Detección | SAST | SCA | Quality | Tests |
|---|---|---|---|---|---|
| Python | .py · pyproject.toml · requirements.txt · poetry.lock | Semgrep, Bandit | pip-audit, OSV | ruff, radon | pytest |
| JavaScript | .js · package.json · lockfiles | Semgrep, ESLint security | npm audit, OSV | eslint | npm/yarn/pnpm test |
| TypeScript | .ts/.tsx · tsconfig.json | Semgrep, ESLint security | npm audit, OSV | tsc, eslint | npm/yarn/pnpm test |
| Dockerfile / Containers | Dockerfile · compose · image refs | Hadolint + Semgrep rules | Trivy image/deps | Dockerfile best practices | — |
| Terraform | .tf · .tfvars · .terraform.lock.hcl | Checkov / Trivy config | provider/module checks | fmt / validate | — |
| Kubernetes / Helm | *.yaml + apiVersion/kind · Chart.yaml · values.yaml | Checkov / Trivy config | image refs | kube-lint style | — |
| CloudFormation | *.template · AWSTemplateFormatVersion | Checkov / Trivy config | resource policy checks | cfn-lint | — |
| Secrets (cross-language) | todos los archivos de texto | Gitleaks, TruffleHog | n/a | redaction tests | — |
Tier 2 — Cobertura extendida
Stack productivo común (Go, Java, Kotlin, .NET). La plataforma mantiene visibilidad y prioriza scanners por madurez técnica y demanda.
| Lenguaje / Ecosistema | Detección | SAST | SCA | Quality | Tests |
|---|---|---|---|---|---|
| Go | .go · go.mod · go.sum | gosec, Semgrep | govulncheck, OSV | go vet, staticcheck | go test |
| Java | .java · pom.xml · build.gradle | Semgrep, SpotBugs/FindSecBugs | OWASP Dependency-Check, OSV | Checkstyle/PMD | mvn/gradle test |
| Kotlin | .kt · Gradle/Maven manifests | Semgrep, Detekt | OWASP Dependency-Check, OSV | Detekt | gradle test |
| .NET / C# | .cs · .csproj · packages.lock.json | Semgrep, Roslyn analyzers | dotnet list package --vulnerable, OSV | dotnet format | dotnet test |
Tier 3 — Soporte incremental
Detección + catálogo activos en la plataforma. Scanners y agentes se priorizan por demanda de cuenta.
| Lenguaje / Ecosistema | Detección | SAST | SCA | Quality | Tests |
|---|---|---|---|---|---|
| Ruby | .rb · Gemfile · Gemfile.lock | Brakeman, Semgrep | bundler-audit, OSV | rubocop | rspec |
| PHP | .php · composer.json · composer.lock | Psalm/PHPStan, Semgrep | composer audit, OSV | PHPStan/Psalm | phpunit |
| Rust | .rs · Cargo.toml · Cargo.lock | Semgrep | cargo audit, OSV | clippy | cargo test |
| Swift / iOS | .swift · Package.swift · Podfile | Semgrep, SwiftLint rules | audit donde aplique | SwiftLint | swift test / xcodebuild |
| Android (Kotlin/Java) | AndroidManifest.xml · Gradle | MobSF (futuro), Semgrep | Gradle deps | Detekt / Lint | gradle test |
| Shell | .sh · .bash · .zsh | ShellCheck, Semgrep | n/a | ShellCheck | shellcheck |
| SQL | .sql · migrations | Semgrep rules | n/a | SQLFluff | migration dry-run |
Coverage gaps explícitos
Si un repo tiene un lenguaje detectado pero el scanner está deshabilitado, el módulo marca el gap y penaliza el framework_coverage_score. Si un lenguaje aún no está soportado, queda visible en la UI y el gate nunca devuelve PASS sin evidencia: el estado por defecto es not_evaluated.