Flujos de trabajo de seguridad y canalización mejorados
Con este sprint, estamos mejorando el flujo de trabajo de DevOps con mayor visibilidad de seguridad y flujos de trabajo de canalización simplificados. GitHub Advanced Security ahora incluye un seguimiento detallado de habilitación para análisis de dependencias, análisis de códigoy análisis de secretos, lo que ofrece información más detallada sobre la cobertura de seguridad de su organización.
Además, nos complace introducir mejoras centradas en la canalización, incluidas nuevas funciones de expresión YAML y controles expandidos para tareas de validación manual, lo que le permite crear flujos de trabajo más eficaces y seguros.
Consulte las notas de la versión para obtener más información.
Seguridad avanzada de GitHub para Azure DevOps
Azure Boards:
Azure Repos
- Desprotección dispersa para Azure Repos
- Hacer que las políticas entre repositorios distingan mayúsculas de minúsculas
Azure Pipelines
Planes de prueba
Seguridad avanzada de GitHub para Azure DevOps
Cobertura de información general de seguridad específica de la herramienta
La información general de seguridad de GitHub Advanced Security para Azure DevOps ahora proporciona un desglose detallado del estado de habilitación de cada herramienta de examen, incluido examen de dependencias, análisis de códigoy examen de secretos. Esta mejora le permite ver los estados de habilitación específicos en todos los repositorios de la organización.
Para obtener más información, consulte Descripción general de la seguridad para Seguridad Avanzada.
Azure Boards
Integración de Azure Boards con GitHub Enterprise Cloud con residencia de datos (versión preliminar)
Nota
Esta característica está actualmente en versión preliminar. Por favor, envíenos un correo electrónico si está interesado en probar la integración de Boards con GitHub Enterprise Cloud with Data Residency.
Azure Boards ahora admite la integración con organizaciones de GitHub Enterprise Cloud que tienen habilitada la residencia de datos. Esta actualización se ajusta al anuncio de GitHub de septiembre de 2024 sobre la introducción de la residencia de datos para los clientes de Enterprise Cloud, empezando por los de la Unión Europea (UE).
Para conectar un proyecto de Azure Boards a tu organización de GitHub Enterprise Cloud con residencia de datos:
- Cree una nueva conexión en Azure Boards.
- Seleccione la opción GitHub Enterprise Cloud con residencia de datos.
Azure Repos
Desprotección dispersa para Azure Repos
El comando git sparse-checkout ahora se admite en la tarea de desprotección de YAML, junto con el filtro de clonación parcial, para mejorar el rendimiento de la desprotección del repositorio. Puede usar las propiedades sparseCheckoutDirectories
y sparseCheckoutPatterns
.
Establecer sparseCheckoutDirectories
habilita el modo cono, donde el proceso de desprotección usa la coincidencia de directorios. Como alternativa, puede configurar sparseCheckoutPatterns
, que desencadena el modo no cono, lo que permite una coincidencia de patrones más compleja.
Si se establecen ambas propiedades, el agente inicializa el modo cono con la coincidencia de directorios. Si no se especifica ninguna propiedad en la tarea de desprotección, el proceso de desprotección dispersa está deshabilitado. Los problemas encontrados durante la ejecución del comando provocan que falle la tarea de verificación.
Ejemplo de YAML para el modo de cono de desprotección dispersa:
checkout: repo
sparseCheckoutDirectories: src
Ejemplo de YAML para el modo no de cono de desprotección dispersa:
checkout: repo
sparseCheckoutPatterns: /* !/img
Importante
La característica de desprotección dispersa requiere el agente v3.248.0 (v4.248.0 para .NET 8) o versiones posteriores.
Puede encontrar el agente en la página de versiones.
Hacer que las políticas entre repositorios distingan mayúsculas de minúsculas
Anteriormente, la vista previa del candidato de rama para las directivas entre repositorios mostraba resultados que no distinguían mayúsculas de minúsculas, a pesar de que la coincidencia de ramas distinguía mayúsculas de minúsculas. Esta incoherencia creó una posible desalineación, ya que podría parecer que ciertas ramas estaban protegidas cuando no lo eran. Para resolver este problema, hemos actualizado la vista previa del patrón de rama para ajustarlo al comportamiento que distingue mayúsculas de minúsculas de la aplicación de directivas.
Previamente:
Después:
Azure Pipelines
Nuevas funciones de expresión de canalización
Las funciones de expresión de canalización permiten escribir canalizaciones YAML eficaces. En este sprint, hemos introducido dos nuevas funciones:
iif(condition, value_when_true, value_when_false)
que devuelvevalue_when_true
cuandocondition
se evalúa comotrue
ovalue_when_false
, de lo contrariotrim(string)
que devuelve una nueva cadena en la que se quitan los espacios en blanco al principio y al final de la cadena.
Por ejemplo, puede usar la función iif
para seleccionar dinámicamente un grupo para ejecutar su canalización. Si desea crear solicitudes de incorporación de cambios utilizando el grupo de Azure Pipelines, pero todas las demás ejecuciones deben usar un grupo de DevOps administrado, podrá escribir la siguiente canalización.
variables:
poolToUse: ${{ iif(eq(variables['Build.Reason'], 'PullRequest'), 'Azure Pipelines', 'ManagedDevOpsPool')}}
stages:
- stage: build
pool: ${{variables.poolToUse}}
jobs:
- job:
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'build'
Puede usar la función trim
para que yaML sea más resistente a la entrada del usuario. Por ejemplo, en la canalización siguiente, usamos la función trim
para asegurarnos de que el nombre de la fase no empiece por espacios en blanco.
parameters:
- name: regions
type: string
default: ' wus1, wus2, wus3,wus4'
stages:
- ${{ each region in split(parameters.regions, ',')}}:
- stage: stage_${{trim(region)}}
displayName: Deploy to ${{trim(region)}}
jobs:
- job: deploy
steps:
- script: ./deploy.sh ${{trim(region)}}
Mejoras en la tarea ManualValidation
La tarea ManualValidation le permite pausar la ejecución de canalización y esperar la intervención manual. Un escenario para usar esta tarea es la prueba manual.
Para aumentar la seguridad de la canalización, puede restringir quién puede completar la tarea y reanudar la ejecución de la canalización. Para ello, presentamos una nueva versión de la tarea que proporciona dos parámetros adicionales:
approvers
: restringir quién puede completar la tarea en un conjunto predefinido de usuarios, grupos de seguridad o equiposallowApproversToApproveTheirOwnRuns
: restringir al usuario que ha puesto en cola la ejecución de canalización para reanudarla.
Por ejemplo, el siguiente fragmento de código YAML restringe el conjunto de personas que pueden reanudar la ejecución de canalización a los miembros del grupo Aprobadores de versión, pero excluye al usuario que inició la ejecución de canalización.
- task: ManualValidation@1
inputs:
notifyUsers: 'Release Approvers'
approvers: 'Release Approvers'
allowApproversToApproveTheirOwnRuns: false
En la propiedad approvers
, puede usar los siguientes valores (separados por comas) :
- Dirección de correo electrónico,
- Permiso-Grupo.
- Equipo de Proyecto
- [Nombre de proyecto][Grupo de permisos],
- [Org][Grupo de permisos],
- [Nombre de proyecto][Equipo de proyecto]
Planes de prueba
Correcciones de errores de Azure Test Plans
Con este sprint, hemos realizado actualizaciones en Azure Test Plans para resolver varios errores y mejorar la facilidad de uso. Esto es lo que se ha corregido:
Los resultados de los pasos compartidos son visibles: se ha corregido un error en el que los resultados de los pasos compartidos no aparecían en el editor de consultas al acceder a casos de prueba en el Nuevo centro de paneles.
Sesiones en modo de partes interesadas mejoradas: se ha resuelto un problema en la extensión de prueba y comentarios que impedía a los usuarios con acceso de parte interesada iniciar sesión.
Copia del plan de pruebas de eliminación: se ha corregido un problema por el que los requisitos se duplicaban al copiar un plan de prueba mediante la opción "Hacer referencia a casos de prueba existentes".
Pasos siguientes
Nota
Estas características se implementarán en las próximas dos a tres semanas.
Vaya a Azure DevOps y eche un vistazo.
Cómo proporcionar comentarios
Nos encantaría escuchar lo que piensas sobre estas características. Use el menú ayuda para notificar un problema o proporcionar una sugerencia.
También puede obtener consejos y sus preguntas respondidas por la comunidad en Stack Overflow.
Gracias
Silviu Andrica