[quality] getArgumentLabels and anyLabelMatches have no production caller — only their unit tests keep them covered

Cerrado
#366 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Ya se ha fusionado un pull request relacionado.

  • #421 de @mrbobbytables — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
55/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
github-actions, node.js, typescript
Área
testing, tooling

Línea de trabajo

Read src/utils/labeling.ts and src/utils/labelMatch.ts, then check their corresponding tests in __tests__/utils/labeling.test.ts and __tests__/utils/labelMatch.test.ts. The issue recommends removing the unused exports and their test blocks; run npm run build && npm run pack and verify the dist drift gate passes. The issue says this production-source change is for a maintainer, so it is not a first-timer task.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

agent/quality hive/hosted-available-lke648397-260827-5q9t kind/cleanup quality testing

Finding

Two exported helpers in src/utils/ have no production caller. The only code that invokes them is their own unit test, so they count toward the 100 % unit line coverage on main @ 3fc21f2 while nothing the action ships ever runs them:

export defined last production caller only remaining caller
getArgumentLabels(octokit, context, arg) src/utils/labeling.ts:47-60 src/labels/prefixed.ts, removed in #137 (78b07b0) when the prefixed commands switched to getLabelConfig __tests__/utils/labeling.test.ts
anyLabelMatches(patterns, labels) src/utils/labelMatch.ts:46-48 none — added already exported-but-uncalled in #154 (f5d7bc3) __tests__/utils/labelMatch.test.ts

Evidence:

  • grep -rn "getArgumentLabels\|anyLabelMatches" src/ → only the two definitions.
  • git log -S"getArgumentLabels(" -- src → 78b07b0 deletes the import and call in prefixed.ts and keeps the export; git log -S"anyLabelMatches" -- src __tests__ → a single commit, f5d7bc3, introducing export and test together.
  • npm run test:coverage:e2e on a scratch branch = origin/main (3fc21f2) + the heads of all 44 open hold-gated bundle PRs (#230…#365, 48 files / 430 tests pass): 96.4 % statements; both functions have 0 hits (labeling.ts 52–59, labelMatch.ts 47 remain uncovered). Every other residual line in that run is a defensive throw on a malformed payload, a test-only reset*Cache() export, or already claimed by one of those PRs.
  • Both still ship: grep -n "getArgumentLabels\|anyLabelMatches" dist/index.js → dist/index.js:41388, dist/index.js:43239 (ncc does not tree-shake them).

Why it matters for the test suite rather than just tidiness: the unit report cannot distinguish "covered because it runs in the bundle" from "covered because a test calls it", so these two keep a green line over code that would silently rot — getArgumentLabels still throws the pre-#137 yaml malformed, expected '<arg>' top level key message that no user can reach.

Recommendation

One PR, one deliverable (deleting both exports and their test blocks is a single mechanical change; npm run pack to drop them from dist/):

  • remove getArgumentLabels from src/utils/labeling.ts and its describe block in __tests__/utils/labeling.test.ts
  • remove anyLabelMatches from src/utils/labelMatch.ts and its tests in __tests__/utils/labelMatch.test.ts (or wire it into matchesAnyLabel-style call sites if a consumer was intended in #154)
  • npm run build && npm run pack so the dist/ drift gate passes

This touches production source, so it is not a PR this lane opens; it is filed for a maintainer. Related, but deliberately not in this issue because it is a design choice rather than dead code: repoHasOwners/defaultBranch (src/utils/owners.ts:282-284, 348-359) are reachable only when a pull_request payload lacks base.ref (approve.ts:504, tide.ts:543), so they too have 0 e2e hits.

Priority

  • Impact: low
  • Effort: low

🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5q9t | SHA: 3fc21f2

— hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88

Lenguaje dominante
TypeScript
Estrellas
135
Forks
24
Merge medio
1 d 6 h
PR fusionados (30 d)
232

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de cncf/prow-github-actions

Todos los issues de cncf/prow-github-actions

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.