Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[BUG]: Governance "Issue Resolution Rate" counts pull requests as issues

Abierto Apto para principiantes
#398 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 3 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
86/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
github, javascript, react

Línea de trabajo

En src/pages/GovernancePage.jsx, inspecciona el cálculo de Issue Resolution Rate alrededor de las líneas 338–343 y compara su filtrado con las comprobaciones de gobernanza citadas en el issue. Excluye las pull requests de la lista de issues del repo y luego verifica que el denominador y la tasa de la tarjeta usen solo issues; el ejemplo de OrgExplorer indicado debería contar 44 issues en lugar de 100 elementos obtenidos.

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

Descripción

bug
Bug Description

The Governance "Issue Resolution Rate" card computes each repo's rate from GitHub's
/issues data without excluding pull requests. GitHub's /issues?state=all returns PRs as
well as issues (every PR is also an issue object, identified by a pull_request key), so
merged/closed PRs are counted as resolved issues and the rate is wrong.

In src/pages/GovernancePage.jsx (~lines 338-343):

const repoIssues = allIssues.filter(i => i.repoName === r.name)
const closed = repoIssues.filter(i => i.state === 'closed').length
const total = repoIssues.length
const rate = total ? Math.round(closed / total * 100) : null

allIssues (built ~lines 107-114) includes PRs and is never filtered with !i.pull_request.
Every other governance check DOES filter PRs out — Dead Issues (line 126), Zombie PRs
(line 144), and the stale-issues stats (AppContext.jsx line 422) — so this widget is the
outlier.

Verified on live data for AOSSIE-Org/OrgExplorer (first 100 of state=all): 56 of the 100
"issues" are actually PRs, so the denominator is inflated 44 -> 100 and the rate reads 42%
instead of the correct 39%.

Steps to Reproduce
  1. Explore any active org (e.g. AOSSIE-Org) and open the Governance page.
  2. Click "Run Audit".
  3. Look at the "Issue Resolution Rate" bars — closed/total includes pull requests.
  4. Compare any repo's number with GitHub's real issue count and it won't match.

Deterministic check (same logic as the page, on live data):

node f1_resolution.mjs
# fetched items (issues + PRs): 100  (PRs among them: 56)
# CURRENT (buggy, counts PRs) : 42/100 closed -> 42%
# CORRECT (issues only)       : 17/44  closed -> 39%
Logs and Screenshots

Reproducible script output (replicates GovernancePage.jsx:338-343 on live GitHub data):

=== F1 Issue Resolution Rate — AOSSIE-Org/OrgExplorer (first 100 of state=all) ===
fetched items (issues + PRs): 100 (PRs among them: 56)

CURRENT (buggy, counts PRs) : 42/100 closed -> 42%
CORRECT (issues only) : 17/44 closed -> 39%

=> PRs inflate the denominator by 56 and skew the rate by 3 points.

📎 Image file:

Image
Environment Details
  • OS: macOS (also reproduces on the live site, any OS/browser)
  • Browser: Chrome
  • Site: https://orgexplorer.aossie.org/ and local dev (npm run dev), main @ d91d2b8
  • Node.js: v20 (for the repro script)
  • Suggested fix: add && !i.pull_request to the repoIssues filter.
  • Related but separate: #302's open PR #304 rewrites this exact line for org-scoping
    (issuesData?.[${r.orgLogin}/${r.name}] || []) but still counts PRs — so this defect
    survives #304 and should be fixed on top of / within that change.
Impact

Medium - Feature works but has issues

Code of Conduct
  • I have joined the Discord server and will post updates there
  • I have searched existing issues to avoid duplicates
Lenguaje dominante
JavaScript
Estrellas
45
Forks
148
Merge medio
5 d 20 h
PR fusionados (30 d)
27

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 AOSSIE-Org/OrgExplorer

Todos los issues de AOSSIE-Org/OrgExplorer

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.