SourceAnt

Triaje de issues y PR

El plugin Repo Manager automatiza el triaje en su repositorio. Escucha eventos de PR e issues, luego realiza comprobaciones de deduplicación y aplica etiquetas automáticamente, para que su backlog se mantenga deduplicado y enrutado sin clasificación manual.

Funciones

  • Triaje de PR. Cuando se abre o reabre un pull request, SourceAnt lo compara con otros PR abiertos mediante un LLM y publica un comentario si se detectan posibles duplicados.
  • Triaje de issues. La misma detección de duplicados para issues, que ayuda a los mantenedores a identificar informes duplicados de forma temprana.
  • Etiquetado automático. Analiza el título, el cuerpo y el diff de los nuevos PR/issues, y luego aplica las etiquetas más relevantes del conjunto de etiquetas existente en su repositorio.

Cómo funciona

Cuando se recibe un evento pull_request.opened, pull_request.reopened, issues.opened, o issues.reopened el plugin:

  1. Obtiene otros PR o issues abiertos del repositorio.
  2. Los envía al LLM configurado junto con el nuevo elemento para su comparación.
  3. Publica un comentario idempotente si se detectan duplicados (actualiza el mismo comentario en ejecuciones posteriores).
  4. Obtiene las etiquetas del repositorio, solicita al LLM que sugiera las adecuadas, las valida y las aplica.

Configuración

El plugin está deshabilitado por defecto. Actívelo globalmente mediante variables de entorno, o por repositorio usando el modelo Config.

Variables de entorno

Variable Predeterminado Descripción
REPO_MANAGER_ENABLED false Interruptor maestro: habilitar el plugin repo manager globalmente
REPO_MANAGER_PR_TRIAGE true Habilitar comprobaciones de deduplicación de PR
REPO_MANAGER_ISSUE_TRIAGE true Habilitar comprobaciones de deduplicación de issues
REPO_MANAGER_AUTO_LABEL true Habilitar el etiquetado automático para PR e issues

Configuración por repositorio

La configuración se puede sobrescribir por repositorio usando el modelo Config Los ajustes a nivel de repositorio tienen prioridad sobre las variables de entorno.

# Example: enable repo manager for a specific repo
Config.set_value("repository", "owner/repo", "repo_manager.enabled", True, "bool")

# Disable PR triage for a specific repo
Config.set_value("repository", "owner/repo", "repo_manager.pr_triage_enabled", False, "bool")
Clave de configuración Tipo Descripción
repo_manager.enabled bool Habilitar/deshabilitar para este repositorio
repo_manager.pr_triage_enabled bool Habilitar/deshabilitar la deduplicación de PR
repo_manager.issue_triage_enabled bool Habilitar/deshabilitar la deduplicación de issues
repo_manager.auto_label_enabled bool Habilitar/deshabilitar el etiquetado automático

Orden de resolución de la configuración

La configuración se resuelve por orden de especificidad:

  1. Configuración del repositorio (entrada del modelo Config para el repositorio específico)
  2. Variable de entorno (valor global predeterminado)
  3. Valor predeterminado del plugin (deshabilitado)

Permisos de la GitHub App

El repo manager requiere los siguientes permisos en su GitHub App (además de los necesarios para las revisiones de código):

  • Issues: Lectura y escritura (para listar issues, publicar comentarios y aplicar etiquetas)
  • Pull requests: Lectura y escritura (ya requerido para las revisiones de código)

Detección de duplicados

Al comprobar duplicados, el plugin compara el título y el cuerpo del nuevo elemento con hasta 50 elementos abiertos existentes. El LLM analiza la similitud semántica (no solo la coincidencia de títulos), por lo que detecta duplicados incluso cuando están redactados de forma diferente.

Los comentarios de duplicados son idempotentes: si ya existe un comentario de deduplicación en el PR/issue, se actualiza en lugar de crear uno nuevo.

Etiquetado automático

La función de etiquetado automático solo sugiere etiquetas que ya existen en su repositorio. Nunca crea etiquetas nuevas. Para los PR, también considera el contenido del diff para realizar sugerencias más precisas.

La coincidencia de etiquetas no distingue entre mayúsculas y minúsculas: si su repositorio tiene una etiqueta llamada Bug y el LLM sugiere bugse aplicará correctamente Bug.

Siguiente: Asignación de tareas a agentes

El triaje es la primera mitad de un ciclo que estamos cerrando. La segunda mitad es la asignación de tareas a agentes: una vez que una incidencia ha sido triada, deduplicada y etiquetada, SourceAnt la entrega a un agente de programación como una tarea bien delimitada, junto con la porción relevante del grafo de conocimiento, para que el trabajo comience con las decisiones y restricciones que aplican a ese código.

Estado: en desarrollo, aún no disponible. Sigue el repositorio para ver el progreso. El triaje y el etiquetado automático descritos en esta página ya están disponibles.