Recuperar resultados de Axe Watcher con axe-watcher-results
Utilice axe-watcher-results para extraer los resultados de un escaneo completado de Axe Watcher en una tubería de CI y bloquear la construcción en su umbral de accesibilidad
axe-watcher-results recupera los resultados de un escaneo completado de Axe Watcher desde Axe Developer Hub y los convierte en una señal de aprobación/rechazo para una tubería de CI.
axe-watcher-results no realiza escaneos de accesibilidad. Axe Watcher hace eso como parte de su suite de pruebas. Solo recupera resultados después de que un escaneo finaliza, por lo que debe ejecutarse como un paso separado y posterior en su tubería. Consulte Usar Axe Watcher en entornos de Integración Continua (CI) para saber cómo se comporta Axe Watcher en CI.
Prerrequisitos
Antes de ejecutar axe-watcher-results, necesita:
- Un Clave API de Axe Developer Hub (un UUID).
- El ID de proyecto para el proyecto de Axe Developer Hub al que se envió el escaneo (un UUID).
- Un escaneo de Axe Watcher completado para el commit que desea verificar.
Instalación
axe-watcher-results se distribuye como un binario autónomo para Linux, macOS y Windows. Descargue el binario para su plataforma desde la página de Descargas (el acceso requiere una licencia de axe DevTools for Web), luego siga Preparación de Binarios después de la Descarga para hacerlo ejecutable y, en macOS, eliminar el atributo de cuarentena.
Los binarios de macOS y Windows no están firmados con código y pueden ser bloqueados por los controles de seguridad de su sistema operativo hasta que se les permita ejecutarse.
Coloque el binario en su PATH (o refiéralo por su ruta) para que pueda ejecutarlo como axe-watcher-results.
Autenticación
axe-watcher-results lee su clave API de Axe Developer Hub de la variable de entorno AXE_DEVHUB_API_KEY. Establézcala una vez antes de ejecutar cualquier comando: en su consola para uso local, o en el almacén de secretos de su sistema CI para una tubería:
export AXE_DEVHUB_API_KEY=<your-api-key>Los ejemplos a continuación suponen que esta variable está establecida.
Buscar Resultados para un Commit (Bloqueo de CI)
Ejecute axe-watcher-results sessions get con su ID de proyecto y un SHA de commit de Git:
axe-watcher-results sessions get <project-id> <commit-sha><project-id>: el UUID del proyecto.<commit-sha>: un SHA de commit de Git de 7 a 40 caracteres que ya tiene un escaneo de Axe Watcher completado.
Esta es la búsqueda que bloquea una construcción: si el conteo de problemas del run supera el umbral de accesibilidad de su proyecto, axe-watcher-results sale con el código 10 (consulte Códigos de salida). Por ejemplo, con --format=json:
{
"project": "your-project-name",
"project-id": "7347af86-ff4e-4e14-8957-8fc2255ed4ec",
"commit-sha": "e220798b6558cdfc7c3e592378be67e1e78e7377",
"run-url": "https://axe.deque.com/axe-watcher/projects/7347af86-ff4e-4e14-8957-8fc2255ed4ec/branches/main/compare/0d4a85a2-9e6f-44ef-b814-fee8412abeb0/0d4a85a2-9e6f-44ef-b814-fee8412abeb0?settings_hash=0757ca72c5e10951ddbb2ede4edab06e&issues_over_a11y_threshold=2",
"issues": 17,
"new-issues": 17,
"resolved-issues": 0,
"issues-over-a11y-threshold": 2,
"page-states": 2,
"difference-in-page-states": 0,
"created-at": "2026-07-07T18:13:00.641Z",
"message": "Run exceeded the a11y threshold by 2."
}| Campo | Descripción |
|---|---|
project |
Nombre del proyecto. |
project-id |
UUID del proyecto. |
commit-sha |
El SHA del commit que buscó. |
run-url |
Enlace al run en Axe Developer Hub. |
issues |
Conteo total de problemas para el run. |
new-issues |
Problemas no presentes en la línea base de comparación. |
resolved-issues |
Problemas presentes en la línea base pero no en este run. |
issues-over-a11y-threshold |
Conteo de problemas sobre el umbral de accesibilidad de su proyecto; esto es lo que determina el código de salida 10. |
page-states |
Número de estados de página escaneados. |
difference-in-page-states |
Cambio en el conteo de estados de página en comparación con la línea base. |
created-at |
Marca de tiempo cuando se registró el run. |
message |
Solo presente cuando se excedió el umbral. |
Si analiza la salida en un script, use --format=json: los nombres de campo anteriores son estables. La salida --format=text predeterminada está destinada para que los humanos lean los registros de construcción, no para su análisis.
Buscar Resultados para una Sesión
También puede buscar un escaneo específico por su ID de sesión en lugar de un SHA de commit:
axe-watcher-results sessions get <project-id> <session-id><session-id> es un UUID de sesión. axe-watcher-results distingue un ID de sesión de un SHA de commit por su forma (un UUID frente a un string hexadecimal de 7 a 40 caracteres), por lo que puede pasarlo en la misma posición. El argumento <project-id> todavía se requiere y valida, aunque una búsqueda de sesión resuelve su proyecto desde la sesión y clave API en lugar de desde el argumento.
Use --detail=summary (el predeterminado) para conteos de problemas por severidad y regla, o --detail=full para obtener el documento completo de resultados como JSON bruto (esto ignora --format).
--format=json --detail=summary se ve así:
{
"report_id": "14c16b50-a6ce-46ab-9974-0ad3b94eafde",
"source": {
"product_name": "axe-devtools-html",
"product_component_name": "axe-devtools-watcher",
"product_version": "4.0.0"
},
"test_details": {
"test_id": "0d4a85a2-9e6f-44ef-b814-fee8412abeb0",
"start_date": "2026-07-07T18:13:00.641Z",
"end_date": "2026-07-07T18:13:05.472Z"
},
"commit": {
"sha": "e220798b6558cdfc7c3e592378be67e1e78e7377",
"author": "Jane Doe",
"author_email": "jane@example.com",
"message": "fix: correct login form labels",
"branch_name": "main",
"tag": "",
"repository_url": "https://github.com/your-org/your-repo"
},
"devhub_summary": {
"issue_count_total": 17,
"issue_count_by_impact": {
"critical": 0,
"serious": 2,
"moderate": 15,
"minor": 0
},
"issue_count_by_rule": [
{
"severity": "serious",
"rule_id": "color-contrast",
"rule_help": "Elements must meet minimum color contrast ratio thresholds",
"rule_help_url": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
"count": 2
}
]
}
}| Campo | Descripción |
|---|---|
report_id |
ID único para este informe de resultados. |
source |
El producto y la versión de Axe Watcher que realizaron el análisis. |
test_details.test_id |
El ID de sesión que buscaste. |
test_details.start_date / end_date |
Cuándo se ejecutó el análisis. |
commit |
Metadatos del commit de Git, si están disponibles; de lo contrario, se omite. |
devhub_summary.issue_count_total |
Recuento total de problemas para la sesión. |
devhub_summary.issue_count_by_impact |
Recuentos de problemas desglosados por critical, serious, moderate y minor. |
devhub_summary.issue_count_by_rule |
Una entrada por regla violada, con la gravedad, una URL de ayuda y un recuento. |
Una búsqueda de sesión no verifica el umbral de accesibilidad y nunca finaliza con el código 10. Usa una búsqueda por commit-SHA, no por ID de sesión, para controlar una construcción de CI.
Si el análisis todavía se está procesando, axe-watcher-results consulta el servidor (hasta 5 minutos) y escribe el avance en stderr; si el análisis no finaliza el procesamiento a tiempo, sale con el código 11.
Listar sesiones para un proyecto
El subcomando sessions list lista las sesiones de análisis registradas de un proyecto, lo que es útil para encontrar un ID de sesión para buscar:
axe-watcher-results sessions list <project-id>Filtra los resultados con --git-branch, --commit-sha, --git-url, --created-after/--created-before (timestamps ISO-8601), --created-by-user-email y --is-canonical-source. Usa --page-size (1-100) y --after para paginar los resultados. sessions list también acepta --format, --network-timeout-seconds y --verbose/-v, que se comportan igual que para sessions get.
Opciones
Estas opciones se aplican al comando sessions get (búsquedas por commit-SHA y ID de sesión):
| Opción | Variable de entorno | Por defecto | Descripción |
|---|---|---|---|
--format=text|json |
text |
Formato de salida. | |
--detail=summary|full |
summary |
Detalle del resultado para búsquedas por ID de sesión. Ignorado para búsquedas por commit-SHA. | |
--network-timeout-seconds=<n> |
AXE_WATCHER_RESULTS_NETWORK_TIMEOUT_SECONDS |
30 |
Tiempo de espera por solicitud HTTP, en segundos. |
AXE_SERVER_URL |
https://axe.deque.com |
Anula la URL del servidor de Axe Developer Hub. Consulta Especificar la URL del servidor de Axe Developer Hub si tu organización utiliza un servidor regional, en la nube privada o local. | |
--verbose, -v |
Registra la URL de la solicitud y el estado de respuesta en stderr. |
--version (en el comando raíz axe-watcher-results) imprime la versión de axe-watcher-results y sale; --help está disponible en todos los comandos.
La salida se envía a stdout como texto limpio o JSON; los mensajes de progreso y error se envían a stderr, para que puedas capturar stdout para registros de compilación sin análisis adicional.
Ejemplo de control en CI
Ejecuta axe-watcher-results como un paso después de que tu análisis de Axe Watcher se complete, utilizando un commit SHA para que el código de salida refleje el umbral de accesibilidad:
# AXE_DEVHUB_API_KEY is provided by your CI system's secret store
axe-watcher-results sessions get --format=json "$PROJECT_ID" "$GIT_COMMIT_SHA"Un código de salida distinto de cero falla en el paso que lo llama. Consulta Códigos de salida para entender qué significa cada código y cómo responder.
Si estás integrando específicamente con GitHub Actions, el GitHub Action de Axe Developer Hub proporciona un comportamiento similar de control sin requerir un binario separado. Usa axe-watcher-results cuando necesites un control independiente del proveedor para GitLab CI, CircleCI, Jenkins u otro sistema CI.
Códigos de salida
| Código | Significado |
|---|---|
| 0 | Éxito. |
| 1 | Error general (por ejemplo, un fallo al escribir la salida). |
| 2 | Falta un argumento o una variable de entorno requerida. |
| 3 | El formato o el valor de un argumento no es válido. |
| 9 | Axe Developer Hub devolvió un error. |
| 10 | Se superó el umbral de accesibilidad (solo búsquedas por commit-SHA). |
| 11 | El sondeo de sesión se agotó. |
| 12 | No hay datos de comparación disponibles para este commit. |
Recuperación del Salida 12
Salida 12 significa que el commit tiene resultados de escaneo, pero Axe Developer Hub no tiene nada con qué compararlos. Axe Developer Hub selecciona una línea base en este orden:
- Una sesión anterior en el mismo SHA del commit.
- La sesión más reciente en un SHA diferente dentro de la misma rama.
- La sesión actual en sí misma, pero solo si la sesión es canónica (ver Use Axe Watcher en entornos de Integración Continua (CI)).
Si ninguno de estos está disponible y la sesión no es canónica, Axe Developer Hub devuelve un 404 y axe-watcher-results sale con el código 12. Para recuperar:
- Vuelva a ejecutar el escaneo de Axe Watcher con
CI=trueconfigurado, para que la sesión se vuelva canónica y se compare consigo misma en un inicio en frío. - Ejecute un escaneo adicional, contra este commit o un commit anterior en la misma rama, para generar una línea base.
