Skip to content
| Marketplace
Sign in
Azure DevOps>Azure Pipelines>PR Reviewer Manager
PR Reviewer Manager

PR Reviewer Manager

Beto Puertas

|
1 install
| (0) | Free
Gestiona automáticamente grupos revisores obligatorios en Pull Requests basándose en análisis de criticidad de cambios de infraestructura.
Get it free

PR Reviewer Manager (Group)

Azure DevOps extension que gestiona automáticamente grupos revisores obligatorios en Pull Requests basándose en análisis de criticidad de cambios de infraestructura.

Overview

Esta extensión de Azure DevOps agrega una task inteligente para administrar automáticamente los grupos revisores requeridos en Pull Requests, en función del resultado de validaciones (por ejemplo, un análisis de criticidad). Lee un archivo de resultados (markdown) que contiene un veredicto y, con base en ello, agrega o remueve un grupo revisor requerido del PR actual usando la API oficial de Azure DevOps.

Características

  • Reemplazo directo del script bash: funciona exactamente igual que el script original
  • Mismo comportamiento: usa las mismas variables de entorno y lógica
  • Detección automática de ramas: identifica ramas base/main y destino (master/main)
  • Formato idéntico: genera el mismo formato de salida que el script bash
  • Integración nativa con Azure DevOps: funciona como task de Azure Pipelines
  • Manejo robusto de errores y logs para facilitar el troubleshooting

Instalación

  1. Instala la extensión desde el Marketplace de Azure DevOps.
  2. Obtén el GUID del grupo revisor requerido en tu organización.
  3. Asegura que el token (PAT o System.AccessToken) tenga permisos para modificar PRs.

Uso básico en pipeline

- task: pr-reviewer-manager@1
  displayName: 'Administrar revisores de PR según validación'
  inputs:
    token: $(PAT_AZDO)                        # o $(System.AccessToken)
    remoteUrl: $(REMOTE_URL)                  # https://Org@dev.azure.com/Org/Project/_git/Repo
    requiredGroupId: $(REQUIRED_GROUP_ID)     # GUID del grupo (identityId)
    resultFile: /tmp/iac_validation_result.md

Parámetros

Parámetro Descripción Requerido Default
token Personal Access Token o System.AccessToken Sí -
remoteUrl URL del repositorio Sí -
requiredGroupId GUID del grupo revisor requerido Sí -
resultFile Ruta al archivo de resultado de validación No /tmp/iac_validation_result.md

Formato del archivo de validación

El archivo debe contener una línea con el veredicto:

# Análisis de Criticidad
...
Bloquear: SI

o

# Análisis de Criticidad
...
Bloquear: NO

Comportamiento:

  • Bloquear: SI → agrega el grupo como revisor requerido
  • Bloquear: NO → remueve el grupo revisor (si existe)

Ejemplo completo

stages:
- stage: ValidateInfrastructure
  jobs:
  - job: RunValidation
    steps:
    # Análisis de criticidad (genera el archivo de resultado)
    - script: |
        # Tu lógica de validación aquí
        echo "Bloquear: SI" > /tmp/iac_validation_result.md
      displayName: 'Analizar criticidad del cambio'

    # Administrar revisores automáticamente
    - task: pr-reviewer-manager@1
      displayName: 'Aplicar política de revisores'
      inputs:
        token: '$(System.AccessToken)'
        remoteUrl: '$(Build.Repository.Uri)'
        requiredGroupId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        resultFile: '/tmp/iac_validation_result.md'

Requisitos

  • Azure DevOps Services o Azure DevOps Server 2019+
  • Token válido (PAT o System.AccessToken) con permisos para contribuir a PRs
  • Contexto de Pull Request (ejecutar dentro de una validación de PR)

Desarrollo

Estructura del proyecto

├── src/
│   ├── index.ts          # Código fuente principal
│   ├── task.json         # Definición de la task
│   └── scripts/          # Scripts auxiliares
├── dist/                 # Código compilado
├── images/               # Iconos y recursos
├── vss-extension.json    # Manifiesto de la extensión
└── package.json          # Dependencias y scripts

Comandos de desarrollo

# Instalar dependencias
npm install

# Compilar TypeScript
npm run build

# Ejecutar tests
npm test

# Empaquetar extensión
npm run package

# Publicar al marketplace
npm run publish

Configuración de la Task

Task para Azure Pipelines que:

  • Lee un archivo (ej. /tmp/iac_validation_result.md)
  • Normaliza el contenido
  • Busca Bloquear: SI o Bloquear: NO
  • Agrega o elimina un grupo revisor requerido en el PR actual

Uso en pipeline

- task: pr-reviewer-manager@1
  displayName: Agregar/Remover grupo revisor según resultado
  inputs:
    token: $(PAT_AZDO)                        # o $(System.AccessToken)
    remoteUrl: $(REMOTE_URL)                  # https://Org@dev.azure.com/Org/Project/_git/Repo
    requiredGroupId: $(REQUIRED_GROUP_ID)     # GUID del grupo (identityId)
    resultFile: /tmp/iac_validation_result.md

Parámetros

Parámetro Descripción Requerido Default
token Personal Access Token o System.AccessToken Sí -
remoteUrl URL del repositorio Sí -
requiredGroupId GUID del grupo revisor requerido Sí -
resultFile Ruta al archivo de resultado de validación No /tmp/iac_validation_result.md

Lógica de funcionamiento

  1. Lee el archivo de resultado especificado
  2. Normaliza el contenido (elimina BOM, convierte CRLF)
  3. Busca patrones: Bloquear: SI o Bloquear: NO
  4. Extrae información del PR desde remoteUrl
  5. Llama a Azure DevOps REST API para:
    • Bloquear: SI: Agregar grupo como revisor requerido
    • Bloquear: NO: Remover grupo revisor

Requisitos técnicos

  • Node.js 16+
  • TypeScript 4.5+
  • Azure DevOps Services o Server 2019+
  • Permisos de "Contribute to pull requests" en el token

Pipeline de CI/CD

La extensión incluye un pipeline de Azure DevOps (azure-pipelines.yml) que:

  1. Build: Compila TypeScript y empaqueta la extensión
  2. Approval: Requiere aprobación manual para publicación
  3. Deploy: Publica al marketplace usando tfx-cli
  4. Tag: Crea tag de versión en Git

Troubleshooting

Errores comunes

  • 401 Unauthorized: Token expirado o incorrecto
  • 403 Forbidden: Permisos insuficientes en el token
  • 404 Not Found: PR no encontrado o URL incorrecta
  • Extension not found: ID de extensión incorrecto en marketplace

Logs

La task genera logs detallados para debugging, revisar la salida de la pipeline para identificar problemas.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft