Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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. Microsoft actualmente no acepta usuarios adicionales para la versión preliminar.
La funcionalidad puede cambiar o quitarse sin previo aviso. Las características en versión preliminar no tienen ningún Acuerdo de Nivel de Servicio (SLA) ni soporte técnico limitado.
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.
Note
Los datos administrados por Copilot Autofix no se usan para entrenar modelos de lenguaje grandes (LLM).
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.
Billing
Copilot Autofix se incluye con tu licencia de GitHub Advanced Security para Azure DevOps. Generar una corrección consume créditos de IA del medidor de facturación de Azure de su organización.
Cada generación de correcciones consume tokens, que incluyen tokens de entrada para el contexto de código enviado al modelo, tokens de salida para el cambio sugerido y tokens almacenados en caché que reutilizan el contexto existente.
Para simplificar la facturación, estos tokens se convierten en una unidad estándar denominada crédito de ia de GitHub, donde 1 crédito es igual a 0,01 USD. Los cargos se facturan a la suscripción de Azure vinculada a la organización de Azure DevOps y aparecen como un medidor independiente en Azure Cost Management.
El costo de cada corrección varía con el tamaño del contexto de código circundante y la complejidad del cambio.
Para supervisar los cargos diarios, vaya a Suscripción>Administración de costos>Análisis de costos en el portal de Azure.
Activar Copilot Autofix
Puede habilitar Copilot Autofix a nivel de la organización, el proyecto o el repositorio. Al habilitar Autofix en un ámbito más general, la configuración se aplica a todos los repositorios dentro de ese ámbito. Elija dónde configurar Autofix según los repositorios a los que quiera aplicar la configuración:
| Ámbito | Dónde configurar Autofix |
|---|---|
| Organización | Seleccione Configuración de la organización>Repositorios para habilitar Autofix en todos los repositorios de la organización. |
| Proyecto | Seleccione Configuración del proyecto>Repositorios>Todos los repositorios para habilitar la corrección automática para todos los repositorios del proyecto. |
| Repositorio | Seleccione Configuración del proyecto>Repositorios y, a continuación, seleccione un repositorio para habilitar Autofix solo para ese repositorio. |
Para activar la Autocorrección de Copilot:
- Inicie sesión en su organización de Azure DevOps
https://dev.azure.com/{yourorganization}). - Vaya a la página de configuración del ámbito de organización, proyecto o repositorio que desea configurar.
- En la sección Seguridad avanzada , abra el panel Características de seguridad de código .
- 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.
- Seleccione Aplicar para guardar los cambios.
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.
- Seleccione Repos> Seguridad avanzada.
- Seleccione la pestaña Análisis de código y, a continuación, seleccione una alerta para abrir su vista de detalles.
- Revise la ubicación, la descripción y la recomendación de la alerta para comprender la búsqueda.
- Seleccione Generar corrección.
Mientras Copilot Autofix trabaja en la corrección, la vista de detalles de la alerta muestra que la corrección está en curso. Copilot Autofix abre una pull request cuando la solución está lista.
Copilot Autofix genera la corrección y abre una solicitud de incorporación de cambios de una rama denominada copilot-autofix/.... La solicitud de incorporación de cambios lleva la etiqueta Copilot Autofix, que puede usar para identificar las solicitudes de incorporación de cambios de Copilot Autofix en la lista de solicitudes de incorporación de cambios.
En el caso de las alertas de CodeQL, la solicitud de incorporación de cambios aparece automáticamente en Solicitudes de incorporación de cambios relacionadas en la vista de detalles de la alerta y continúa actualizando a medida que avanza la generación y finalización, por lo que no es necesario actualizar la página.
Si Copilot Autofix no genera ningún cambio de código para la alerta, no crea una rama ni una solicitud de extracción, ni incluye un enlace a una solicitud de extracción en la vista de detalles de la alerta. En este caso, corrija la alerta manualmente. Para obtener más información, consulte Corrección no está disponible.
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.
La etiqueta Copilot Autofix identifica las solicitudes de extracción de corrección automática.
- 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.
- Revise el cambio propuesto en la pestaña Archivos en todos los archivos afectados.
- Edite el cambio si necesita coincidir con el estilo de código, las convenciones de nomenclatura o los requisitos del proyecto.
- 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 incorporación de cambios como cualquier otro cambio: revísela, pruébela y solicite revisores adicionales según sea necesario antes de realizar la fusión.
Solución de problemas de Copilot Autofix
Se generó una corrección, pero no se pudo confirmar ni insertar
Copilot Autofix usa noreply@dev.azure.com como correo electrónico del autor de confirmación. Si una directiva de validación de correo electrónico del autor de confirmación no permite esta dirección, Copilot Autofix puede generar el cambio de código, pero no puede confirmarlo ni insertarlo para crear la solicitud de incorporación de cambios.
La vista detallada de la alerta muestra un error en el que se identifica la dirección de correo electrónico bloqueada del autor del commit.
Añadir noreply@dev.azure.com a los patrones de correo electrónico permitidos en la directiva de validación del correo electrónico del autor de la confirmación:
- Seleccione Configuración del proyecto>Repositorios.
- Seleccione Todos los repositorios para actualizar la directiva de nivel de proyecto o seleccione el repositorio que tiene la directiva.
- Seleccione Directivas.
- En Directivas de repositorio, busque Confirmar validación de correo electrónico del autor.
- Agregue
noreply@dev.azure.coma los patrones de correo electrónico permitidos. - Vuelva a la alerta de análisis de código y seleccione Reintentar corrección.
Se produce un error en una ejecución
Si una ejecución de Copilot Autofix no se puede completar, la alerta muestra un estado de error visible para que puedas ver rápidamente que la ejecución no se completó correctamente. Desde el estado de error, puede reintentar la ejecución para generar una nueva corrección.
Una ejecución puede producir un error por motivos transitorios o cuando la ejecución no genera un cambio de código utilizable. Vuelva a intentar la ejecución para volver a generar la corrección.
La 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 podría ser un falso positivo.
- Una consulta personalizada o una herramienta de terceros, en lugar de CodeQL, genera la alerta.
- Copilot Autofix se ejecuta, pero no produce ningún cambio en el código. En este caso, no se crea ninguna rama ni ninguna pull request.
Si Copilot Autofix determina que la alerta podría ser un falso positivo y no produce ningún cambio, la vista de detalles de alerta muestra el resultado. Puede revisar la ejecución o volver a intentar la corrección.
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.