Compartir a través de


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

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.

Captura de pantalla de información general de seguridad.

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:

  1. Cree una nueva conexión en Azure Boards.

Captura de pantalla de conexión de GitHub con paneles.

  1. Seleccione la opción GitHub Enterprise Cloud con residencia de datos.

Captura de pantalla de la nueva conexión de GitHub.

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:

Captura de pantalla de antes de corregir

Después:

Captura de pantalla de después de la corrección.

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 devuelve value_when_true cuando condition se evalúa como true o value_when_false, de lo contrario

  • trim(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 equipos

  • allowApproversToApproveTheirOwnRuns: 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.

hacer una sugerencia

También puede obtener consejos y sus preguntas respondidas por la comunidad en Stack Overflow.

Gracias

Silviu Andrica