Copilot Autofijo para el examen de código

Copilot Autofix es una característica con tecnología de inteligencia artificial de GitHub Advanced Security para Azure DevOps que genera correcciones sugeridas para las alertas de análisis de código. Cuando CodeQL identifica una vulnerabilidad o un error de codificación, puede generar una corrección para la alerta directamente desde la pestaña Seguridad avanzada. Copilot Autofix usa el agente de codificación de Copilot para generar la corrección y abre una solicitud de incorporación de cambios con el cambio propuesto, por lo que puede revisar, editar y combinarla a través del flujo de trabajo normal de la solicitud de incorporación de cambios.

Note

Esta característica está en versión preliminar pública limitada. No todos los usuarios que se suscribe a la versión preliminar reciben acceso.

Necesita tener GitHub Advanced Security para Azure DevOps o, si usa la experiencia independiente, GitHub Code Security para Azure DevOps habilitado, junto con análisis de código configurado para su repositorio.

GitHub Advanced Security para Azure DevOps funciona con Azure Repos. Para usar GitHub Advanced Security con repositorios de GitHub, consulte GitHub Advanced Security.

Prerequisites

Categoría Requisitos
Permisos - Para ver un resumen de todas las alertas de un repositorio: permisos de colaborador para el repositorio.
- Para descartar alertas en Seguridad Avanzada: permisos de administrador de Project.
- Para administrar permisos en Advanced Security: miembro del grupo Project Collection Administrators o con el permiso Advanced Security: administrar configuraciones establecido en Permitir.

Para obtener más información sobre los permisos de Advanced Security, consulte Administrar permisos de Advanced Security.

  • Examen de código configurado para el repositorio, mediante la configuración predeterminada o la configuración avanzada.
  • Al menos una alerta de análisis de código con CodeQL.

Acerca de Copilot Autofix

Copilot Autofix combina la potencia de análisis de CodeQL con el modelo de lenguaje grande que impulsa el agente de codificación Copilot. Al generar una corrección para una alerta de análisis de código compatible, Copilot Autofix analiza la alerta y el código circundante y, a continuación, abre una solicitud de incorporación de cambios que contiene:

  • Cambio de código sugerido que soluciona la vulnerabilidad subyacente.
  • Descripción de la alerta que se va a corregir, incluido el identificador de alerta, la gravedad y un resumen del cambio.

Dado que la corrección sugerida tiene en cuenta el contexto más amplio de la base de código, el cambio puede abarcar más que la única línea en la que se generó la alerta y puede incluir cambios en otros archivos cuando sea necesario.

Importante

Las sugerencias de Copilot Autofix son generadas por un modelo de IA y no se garantiza que sean correctas, completas ni seguras. Revise siempre cuidadosamente la solicitud de incorporación de cambios, compruebe que resuelve la alerta sin introducir nuevos problemas y pruebe los cambios antes de combinarlos.

Idiomas compatibles

Copilot Autofix admite los mismos lenguajes que CodeQL analiza para el análisis de código, incluidos C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby y Swift. Para obtener la lista actual de idiomas compatibles con CodeQL, consulte Compatibilidad con lenguajes y consultas.

Activar Copilot Autofix

Habilitar Copilot Autofix para cada repositorio en la configuración de seguridad del código.

  1. Inicie sesión en su organización de Azure DevOps https://dev.azure.com/{yourorganization}).
  2. Seleccione Project settings>Repositories y seleccione el repositorio que desea configurar.
  3. En la sección Seguridad avanzada , abra el panel Características de seguridad de código .
  4. Active la casilla Autofix para las alertas de análisis de código para crear correcciones automáticas para las alertas de análisis de código, generadas por el agente de codificación de Copilot.
  5. Seleccione Aplicar para guardar los cambios.

Captura de pantalla del panel de características de seguridad del código con la casilla Autocorrección para alertas de análisis de código resaltada.

CodeQL ya debe estar ejecutando y generando alertas para el repositorio. Para obtener más información, vea Configurar el análisis de código y Configurar las características de GitHub Advanced Security.

Genera una solución para una alerta

Después de habilitar Copilot Autofix, puede generar una corrección a partir de cualquier alerta de análisis de código compatible.

  1. Seleccione Repos> Seguridad avanzada.
  2. Seleccione la pestaña Análisis de código y, a continuación, seleccione una alerta para abrir su vista de detalles.
  3. Revise la ubicación, la descripción y la recomendación de la alerta para comprender la búsqueda.
  4. Seleccione Generar corrección.

Captura de pantalla de una vista de detalles de alerta de análisis de código con el botón Generar corrección en la esquina superior derecha.

Copilot Autofix genera la corrección y abre una solicitud de incorporación de cambios de una rama denominada copilot-autofix/.... Una vez generada la corrección, la solicitud de incorporación de cambios aparece en Solicitudes de incorporación de cambios relacionadas en la vista de detalles de alertas.

Revisar y fusionar la corrección

La solicitud de incorporación de cambios que abre Copilot Autofix funciona como cualquier otra solicitud de incorporación de cambios de Azure Repos. Su descripción resume la alerta que corrige la solución.

Captura de pantalla de una solicitud de incorporación de cambios creada por Copilot Autofix, mostrando el identificador de alerta, la gravedad y los detalles de corrección en la descripción.

  1. Abra la solicitud de extracción desde la sección Solicitudes de extracción relacionadas de la alerta, o desde Repos>Solicitudes de extracción.
  2. Revise el cambio propuesto en la pestaña Archivos en todos los archivos afectados.
  3. Edite el cambio si necesita coincidir con el estilo de código, las convenciones de nomenclatura o los requisitos del proyecto.
  4. Apruebe y complete la solicitud de incorporación de cambios a través del flujo de trabajo de revisión normal.

Una vez que la solicitud de incorporación de cambios se combina y se completa la siguiente ejecución de análisis de código, la alerta se cierra automáticamente si la corrección quita la vulnerabilidad subyacente.

Tip

Una corrección generada es un punto de partida, no una respuesta final. Trate la solicitud de extracción como cualquier otro cambio: revísela, pruébela y solicite revisores adicionales según sea necesario antes de fusionarla.

Cuando una corrección no está disponible

Copilot Autofix no puede generar una corrección para cada alerta. Es posible que una corrección no esté disponible cuando:

  • Actualmente, Copilot Autofix no admite este tipo de alerta.
  • Copilot determina que la alerta es un falso positivo.
  • Una consulta personalizada o una herramienta de terceros, en lugar de CodeQL, genera la alerta.

Cuando una corrección no esté disponible, use las secciones Recomendación y Ejemplo de la alerta para corregirla o descartarla manualmente. Para obtener más información, consulte Detalles de alerta.