Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Las directivas de rama ayudan a los equipos a proteger las ramas de desarrollo más importantes. Las directivas aplican los estándares de administración de cambios y la calidad del código del equipo. En este artículo se describe cómo configurar y administrar directivas de rama. Para obtener información general sobre todas las directivas y configuraciones de repositorio y rama, vea Configuración y directivas de repositorio Git.
Una rama con directivas obligatorias no se puede eliminar y requiere solicitudes de incorporación de cambios en todos los cambios.
Requisitos previos
Para establecer directivas de rama, hay que ser miembro del grupo de seguridad Administradores de proyectos o tener permisos Editar directivas de nivel de repositorio. Para obtener más información, vea Establecimiento de permisos de repositorios Git.
Para establecer directivas de rama, hay que ser miembro del grupo de seguridad Administradores de proyectos o tener permisos Editar directivas de nivel de repositorio. Para obtener más información, vea Establecimiento de permisos de repositorios Git.
Para administrar directivas de rama, seleccione Repositorios>Ramas para abrir la página Ramas en el portal web.
También se puede acceder a las configuraciones de directiva de rama con Configuración del proyecto>Repositorio>Directivas>Directivas de rama><Nombre de rama>.
Las ramas que tienen directivas van acompañadas de un icono de directiva. Puede seleccionar el icono para ir directamente a la configuración de directiva de la rama.
Para establecer directivas de rama, busque la rama que quiera administrar. Puede examinar la lista o buscar la rama en el cuadro Buscar el nombre de la rama de la esquina superior derecha.
Seleccione el icono Más opciones situado junto a la rama y, después, seleccione Directivas de rama en el menú contextual.
Busque la rama en la página. Puede examinar la lista o buscar la rama mediante el cuadro Buscar todas las ramas de la esquina superior derecha.
Seleccione el botón ... Seleccione Directivas de rama en el menú contextual.
Configure directivas en la página de configuraciones de rama. Vea las secciones siguientes para obtener descripciones e instrucciones de cada tipo de directiva.
Configure las directivas en la página Directivas. Vea las secciones siguientes para obtener descripciones de cada tipo de directiva. Seleccione Guardar cambios para aplicar la nueva configuración de directiva.
Puede usar la CLI de Azure DevOps para ver una lista de las directivas de una rama o repositorio.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--repository-id]
[--subscription]
Parámetros
Parámetro
Description
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main.
detect
Detecta automáticamente la organización. Valores aceptados: false y true.
org, organization
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
query-examples
Cadena de JMESPath recomendada. Puede copiar una de las consultas y pegarla después del parámetro --query entre comillas dobles para ver los resultados. Puede agregar una o varias palabras clave posicionales para que las sugerencias se basen en estas palabras clave.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Ejemplo
El siguiente comando devuelve todas las directivas de rama en vigor de la rama main del repositorio de Fabrikam con el identificador d28cd374-e7f0-4b1f-ad60-f349f155d47c. Para obtener el identificador del repositorio, ejecute az repos list.
En este ejemplo se usa la siguiente configuración predeterminada: az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy list --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --branch main --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- --------------------------- ------------- ------------ ------------------------------------ ---------------
3 Work item linking False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
5 Minimum number of reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
6 Comment requirements False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
12 Required reviewers True False d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
13 Required reviewers False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
az repos policy show --id
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--subscription]
Parámetros
Parámetro
Descripción
id, policy-id
Identificador de la directiva. Requerido.
detect
Detecta automáticamente la organización. Valores aceptados: false y true.
org, organization
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
query-examples
Cadena de JMESPath recomendada. Puede copiar una de las consultas y pegarla después del parámetro --query entre comillas dobles para ver los resultados. Puede agregar una o varias palabras clave posicionales para que las sugerencias se basen en estas palabras clave.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Los comandos de la CLI de Azure DevOps no son compatibles con Azure DevOps Server.
Requerir un número mínimo de revisores
Las revisiones de código son importantes en los proyectos de desarrollo de software. Para garantizar que los equipos revisan y aprueban solicitudes de incorporación de cambios, puede requerir la aprobación por parte de un número mínimo de revisores. La directiva básica requiere que un número especificado de revisores apruebe el código, sin rechazos.
Para establecer la directiva, en Directivas de rama, establezca Requerir un número mínimo de revisores en Activado. Escriba el número de revisores requerido y seleccione cualquiera de las siguientes opciones:
Seleccione Allow requestors to approve their own changes (Permitir que los solicitantes aprueben sus propios cambios) para permitir que el creador de una solicitud de incorporación de cambios vote su aprobación. Si no, el creador puede seguir votando Aprobar en la solicitud de incorporación de cambios, pero su voto no computará en el número mínimo de revisores.
Seleccione Prohibit the most recent pusher from approving their own changes (Prohibir que el insertador más reciente apruebe sus propios cambios) para aplicar la diferenciación de obligaciones. De forma predeterminada, cualquiera con permiso de inserción en la rama de origen puede tanto agregar confirmaciones como votar la aprobación de solicitudes de incorporación de cambios. Seleccionar esta opción hace que el voto del insertador más reciente no compute, aun cuando por lo general pueda aprobar sus propios cambios.
Seleccione Permitir que finalice aunque algunos revisores voten esperar o rechazar para permitir la finalización de solicitudes de incorporación de cambios, incluso cuando algunos revisores hayan votado en contra de la aprobación. Sigue siendo necesario que el número mínimo de revisores dé su aprobación.
En Cuando se envían cambios nuevos:
Seleccione Require at least one approval on the last iteration (Requerir al menos una aprobación en la última iteración) para requerir al menos un voto de aprobación a favor del último cambio de rama de origen.
Seleccione Restablecer todos los votos de aprobación (no restablece los votos para rechazar o esperar) para quitar todos los votos de aprobación, pero sí mantener los votos de rechazo o espera cada vez que la rama de origen cambie.
Seleccione Reset all code reviewer votes (Restablecer todos los votos de revisores de código) para quitar todos los votos de revisor cada vez que la rama de origen cambie, incluidos los votos de aprobación, rechazo o espera.
En Cuando se envían cambios nuevos:
Seleccione Requerir al menos una aprobación en cada iteración para requerir al menos un voto de aprobación a favor del último cambio de rama de origen. La aprobación del usuario no se contabiliza para ninguna iteración no aprobada anterior insertada por ese usuario. Como resultado, es necesario que otro usuario realice otra aprobación en la última iteración. Requerir al menos una aprobación en cada iteración está disponible en Azure DevOps Server 2022.1 y versiones posteriores.
Seleccione Require at least one approval on the last iteration (Requerir al menos una aprobación en la última iteración) para requerir al menos un voto de aprobación a favor del último cambio de rama de origen.
Seleccione Restablecer todos los votos de aprobación (no restablece los votos para rechazar o esperar) para quitar todos los votos de aprobación, pero sí mantener los votos de rechazo o espera cada vez que la rama de origen cambie.
Seleccione Reset all code reviewer votes (Restablecer todos los votos de revisores de código) para quitar todos los votos de revisor cada vez que la rama de origen cambie, incluidos los votos de aprobación, rechazo o espera.
Si la opción Los solicitantes pueden aprobar sus propios cambios no está seleccionada, el creador de la solicitud de incorporación de cambios puede seguir votando Aprobar en su propia solicitud de incorporación de cambios, pero su voto no computará en el número mínimo de revisores.
Si algún revisor rechaza los cambios, la solicitud de incorporación de cambios no se puede completar a menos que seleccione Permitir que finalice aunque algunos revisores voten esperar o rechazar.
Los votos de revisor de código se pueden restablecer cuando se envían cambios nuevos a la rama de origen. Seleccione Restablecer los votos del revisor de código cuando haya cambios nuevos.
Si todas las demás directivas pasan, el creador puede completar la solicitud de incorporación de cambios cuando el número necesario de revisores lo apruebe.
El número necesario de aprobadores de solicitudes de incorporación de cambios se puede administrar con az repos policy approver-count.
Creación de una directiva de número de aprobadores
Permite los votos en contra. Valores aceptados: false, true. Requerido.
blocking
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true. Requerido.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main. Requerido.
creator-vote-counts
Cuenta el voto del creador. Valores aceptados: false, true. Requerido.
enabled
Habilite la directiva. Valores aceptados: false, true. Requerido.
minimum-approver-count
Número mínimo de aprobadores necesarios. Por ejemplo: 2. Requerido.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Requerido.
reset-on-source-push
Restablece los votos cuando los cambios se envían al origen. Valores aceptados: false, true. Requerido.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
org
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Ejemplo
En el ejemplo siguiente, el número mínimo de aprobaciones necesarias se establece en 2 para las solicitudes de incorporación de cambios de la rama main del repositorio de Fabrikam. La directiva permite votar en contra, lo que significa que las solicitudes de incorporación de cambios pueden completarse incluso cuando algunos revisores no voten a favor de aprobar, pero siempre y cuando el número mínimo vote a favor de aprobar. Los envíos a la rama de origen no restablecen los votos. La directiva también permite a los creadores de solicitudes de incorporación de cambios aprobar sus propias solicitudes de incorporación de cambios.
En este ejemplo se usa la configuración predeterminada az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy approver-count create --allow-downvotes true --blocking true --branch main --creator-vote-counts true --enabled true --minimum-approver-count 2 --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --reset-on-source-push false --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- --------------------------- ------------- ------------ ------------------------------------ ---------------
27 Minimum number of reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Actualización de una directiva de número de aprobadores
Permite los votos en contra. Valores aceptados: false, true.
blocking
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
creator-vote-counts
Cuenta el voto del creador. Valores aceptados: false, true.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
enabled
Habilite la directiva. Valores aceptados: false, true.
minimum-approver-count
Número mínimo de aprobadores necesarios. Por ejemplo: 2.
org
Dirección URL de organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
reset-on-source-push
Restablece los votos cuando los cambios se envían al origen. Valores aceptados: false, true.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Los comandos de la CLI de Azure DevOps no son compatibles con Azure DevOps Server.
Búsqueda de elementos de trabajo vinculados
Para realizar un seguimiento de la administración de elementos de trabajo, se puede requerir una vinculación entre las solicitudes de incorporación de cambios y los elementos de trabajo. La vinculación de elementos de trabajo proporciona más contexto de los cambios y garantiza que las actualizaciones pasen por un proceso de seguimiento de elementos de trabajo.
Para establecer la directiva, en Directivas de rama, establezca Buscar elementos de trabajo vinculados en Activado. Esta configuración requiere que los elementos de trabajo estén vinculados a una solicitud de incorporación de cambios para que esa solicitud de incorporación de cambios pueda combinarse. Configure esta opción como Opcional para avisar cuando no haya ningún elemento de trabajo vinculado, pero sea posible finalizar la solicitud de incorporación de cambios.
Se puede usar el comando az repos policy work-item-linking de la CLI de Azure para crear y actualizar directivas de vinculación de elementos de trabajo relativas a una rama o un repositorio.
Creación de una directiva de vinculación de elementos de trabajo
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true. Requerido.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main. Requerido.
enabled
Habilite la directiva. Valores aceptados: false, true. Requerido.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
org
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Actualización de una directiva de vinculación de elementos de trabajo
Use az repos policy work-item-linking update para actualizar una directiva de vinculación de elementos de trabajo relativa a un repositorio o a una o varias ramas.
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
enabled
Habilite la directiva. Valores aceptados: false, true.
minimum-approver-count
Número mínimo de aprobadores necesarios. Por ejemplo: 2.
org
Dirección URL de organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Ejemplo
En el siguiente ejemplo se actualiza el identificador de directiva 3 de la rama main del repositorio de Fabrikam que se va a habilitar, si bien de forma opcional. En el ejemplo se usa la configuración predeterminada az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
>az repos policy work-item-linking update --id 3 --blocking false --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ----------------- ------------- ------------ ------------------------------------ ---------------
3 Work item linking False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Los comandos de la CLI de Azure DevOps no son compatibles con Azure DevOps Server.
Comprobación de la resolución de comentarios
La directiva Comprobar resolución de comentarios constata si se han resuelto todos los comentarios de una solicitud de incorporación de cambios.
Para configurar una directiva de resolución de comentarios de una rama, establezca Comprobar resolución de comentarios en Activado. Luego, decida si la directiva va a ser Obligatoria u Opcional.
Puede usar el comando az repos policy comment-required de la CLI de Azure DevOps para establecer y actualizar la directiva de resolución de comentarios.
Creación de una directiva de resolución de comentarios
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true. Requerido.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main. Requerido.
enabled
Habilite la directiva. Valores aceptados: false, true. Requerido.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Requerido.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
org
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Actualización de una directiva de resolución de comentarios
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
enabled
Habilite la directiva. Valores aceptados: false, true.
org
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Ejemplo
En el siguiente ejemplo se actualiza el identificador de directiva de resolución de comentarios 6 de la rama main del repositorio de Fabrikam de forma que impone bloqueos. Los comentarios deben resolverse para que las solicitudes de incorporación de cambios se puedan combinar. En este ejemplo se usa la configuración predeterminada az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy comment-required update --id 6 --blocking true --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- -------------------- ------------- ------------ ------------------------------------ ---------------
6 Comment requirements True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Los comandos de la CLI de Azure DevOps no son compatibles con Azure DevOps Server.
Limitación de los tipos de fusión mediante combinación
Azure Repos tiene varias estrategias de fusión mediante combinación, todas ellas permitidas de forma predeterminada. Para mantener un historial de rama coherente, aplique una estrategia de fusión mediante combinación para la finalización de solicitudes de incorporación de cambios.
Establezca Limitar tipos de fusión mediante combinación en Activado para limitar los tipos de fusión mediante combinación posibles en el repositorio.
Fusión mediante combinación básica (sin avance rápido) crea una confirmación de fusión mediante combinación en el destino cuyos elementos primarios son las ramas de origen y de destino.
Fusionar mediante cambio de base y avanzar rápidamente crea un historial lineal mediante la reproducción de las confirmaciones de origen en la rama de destino sin una confirmación de fusión mediante combinación.
Fusionar mediante cambio de base con confirmación de fusión mediante combinación reproduce las confirmaciones de origen en el destino y crea también una confirmación de fusión mediante combinación.
Nota:
Esta característica está disponible en Azure DevOps Server 2020 y versiones posteriores.
Puede usar el comando az repos policy merge-strategy de la CLI de Azure DevOps para establecer y actualizar la directiva de estrategia de fusión mediante combinación.
Creación de una directiva de estrategia de fusión mediante combinación
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true. Requerido.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main. Requerido.
enabled
Habilite la directiva. Valores aceptados: false, true. Requerido.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Requerido.
allow-no-fast-forward
Fusión mediante combinación básica sin avance rápido. Conserva un historial no lineal exacto a como ha sucedido durante el desarrollo. Valores aceptados: false, true.
allow-rebase
Fusiona mediante cambio de base y avanza rápidamente. Crea un historial lineal mediante la reproducción de las confirmaciones de la rama de origen en el destino sin ninguna confirmación de fusión mediante combinación. Valores aceptados: false, true.
allow-rebase-merge
Fusiona mediante cambio de base con confirmación de fusión mediante combinación. Crea un historial semilineal mediante la reproducción de las confirmaciones de la rama de origen en el destino y, después, crea una confirmación de fusión mediante combinación. Valores aceptados: false, true.
allow-squash
Fusiona mediante combinación con "squash". Crea un historial lineal aglutinando las confirmaciones de la rama de origen en una única confirmación nueva en la rama de destino. Valores aceptados: false, true.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
org
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
use-squash-merge
Fusiona siempre mediante combinación con "squash". Esta opción no está disponible con otros tipos de fusión mediante combinación. Valores aceptados: false, true.
Nota: use-squash-merge está en desuso y se quitará en una próxima versión. En su lugar, use --allow-squash.
Ejemplo
En el siguiente ejemplo se establece una estrategia de fusión mediante combinación obligatoria en las solicitudes de incorporación de cambios de la rama main del repositorio de Fabrikam para permitir el uso de fusiones mediante combinación con "squash". En este ejemplo se usa la configuración predeterminada az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy merge-strategy create --allow-squash true --blocking true --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------------ ------------- ------------ ------------------------------------ ---------------
29 Require a merge strategy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Actualización de una directiva de estrategia de fusión mediante combinación
Fusión mediante combinación básica sin avance rápido. Conserva un historial no lineal exacto a como ha sucedido durante el desarrollo. Valores aceptados: false, true.
allow-rebase
Fusiona mediante cambio de base y avanza rápidamente. Crea un historial lineal mediante la reproducción de las confirmaciones de la rama de origen en el destino sin ninguna confirmación de fusión mediante combinación. Valores aceptados: false, true.
allow-rebase-merge
Fusiona mediante cambio de base con confirmación de fusión mediante combinación. Crea un historial semilineal mediante la reproducción de las confirmaciones de la rama de origen en el destino y, después, crea una confirmación de fusión mediante combinación. Valores aceptados: false, true.
allow-squash
Fusiona mediante combinación con "squash". Crea un historial lineal aglutinando las confirmaciones de la rama de origen en una única confirmación nueva en la rama de destino. Valores aceptados: false, true.
blocking
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
enabled
Habilite la directiva. Valores aceptados: false, true.
org
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
use-squash-merge
Establece si se va a fusionar mediante combinación con "squash" siempre. Esta opción no funciona con otros tipos de fusión mediante combinación. Valores aceptados: false, true.
Los comandos de la CLI de Azure DevOps no son compatibles con Azure DevOps Server.
Aplicación de una estrategia de fusión mediante combinación
Para mantener un historial de rama coherente, aplique una estrategia de fusión mediante combinación cuando una solicitud de incorporación de cambios se complete.
Seleccione Exigir una estrategia de fusión mediante combinación y elija una opción para requerir que las solicitudes de incorporación de cambios se fusionen mediante combinación a través de esa estrategia.
Fusión mediante combinación sin avance rápido: esta opción combina el historial de confirmaciones de la rama de origen cuando la solicitud de incorporación de cambios se cierra, y crea una confirmación de fusión mediante combinación en la rama de destino.
Fusión mediante combinación con "squash": esta opción finaliza todas las solicitudes de incorporación de cambios con una fusión mediante combinación con "squash", lo cual crea una sola confirmación en la rama de destino con los cambios de la rama de origen. Obtenga más información sobre la fusión mediante combinación con "squash" y cómo afecta a su historial de rama.
Validación de compilación
Puede establecer una directiva que requiera que los cambios de las solicitudes de incorporación de cambios se compilen correctamente para que la solicitud de incorporación de cambios pueda completarse.
Las directivas de compilación reducen las interrupciones y hacen que los resultados de las pruebas siempre pasen. Las directivas de compilación son de ayuda incluso cuando se usa la integración continua (CI) en las ramas de desarrollo para detectar problemas de forma anticipada.
Una directiva de validación de compilación pone en cola una nueva compilación cuando se crea una solicitud de incorporación de cambios, o cuando se envían cambios a una solicitud de incorporación de cambios existente que tiene como destino la rama. La directiva de compilación evalúa los resultados de la compilación para determinar si la solicitud de incorporación de cambios puede completarse.
Importante
Para poder especificar una directiva de validación de compilación, debe tener una canalización de compilación. Si no la tiene, vea Creación de una canalización de compilación. Elija el tipo de compilación que encaje con su tipo de proyecto.
En Desencadenador, seleccione Automático (siempre que la rama de origen se actualiza) o Manual.
En Requisito de directiva, seleccione Obligatorio u Opcional. Si elige Obligatorio, las compilaciones deben finalizar correctamente para que las solicitudes de incorporación de cambios se completen. Elija Opcional para mostrar una notificación de error de compilación, pero que siga siendo posible que las solicitudes de incorporación de cambios se completen.
Establezca una expiración de compilación para evitar que las actualizaciones de la rama protegida interrumpan los cambios de las solicitudes de incorporación de cambios abiertas.
Inmediatamente cuando <nombre de la rama> se actualiza: esta opción establece el estado de la directiva de compilación de solicitudes de incorporación de cambios en error cada vez que la rama se actualiza, y vuelve a poner en cola una compilación. Esta opción garantiza que la solicitud de incorporación de cambios se compila correctamente aun cuando cambie la rama protegida.
Esta opción es la más adecuada para los equipos cuyas ramas importantes tienen pocos cambios, pero para quienes trabajan en ramas de desarrollo muy concurridas, puede resultar perjudicial tener que esperar una compilación cada vez que la rama se actualiza.
Después de <n> horas si <nombre de la rama> se ha actualizado: esta opción expira el estado de directiva actual cuando la rama protegida se actualiza si la compilación que pasa es anterior al umbral especificado. Esta opción mantiene un equilibrio entre requerir siempre o nunca una compilación cuando la rama protegida se actualice. Esta opción reduce el número de compilaciones cuando la rama protegida se actualiza frecuentemente.
Nunca: las actualizaciones de la rama protegida no alteran el estado de la directiva. Este valor reduce el número de compilaciones, pero puede provocar problemas al completar solicitudes de incorporación de cambios que no se han actualizado recientemente.
Escriba un nombre para mostrar opcional para esta directiva de compilación; este nombre sirve para identificar la directiva en la página de directivas de rama. Si no se especifica un nombre para mostrar, la directiva usa el nombre de la canalización de compilación.
Seleccione Guardar.
Cuando el propietario de la solicitud de incorporación de cambios envía cambios que se compilan correctamente, el estado de la directiva se actualiza.
Si existe una directiva de compilación Inmediatamente cuando <nombre de la rama> se actualiza o Después de <n> horas si <nombre de la rama> se ha actualizado, el estado de la directiva se actualiza cuando lo haga la rama protegida, si la compilación anterior ya no es válida.
Nota:
Esta característica está disponible en Azure DevOps Server 2020 y versiones posteriores.
Puede usar el comando az repos policy build de la CLI de Azure DevOps para establecer y actualizar una directiva de validación de compilación.
Creación de una directiva de validación de compilación
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true. Requerido.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main. Requerido.
build-definition-id
Identificador de definición de la compilación. Requerido.
display-name
Nombre para mostrar con el que esta directiva de compilación identifica la directiva. Por ejemplo: Manual queue policy. Requerido.
enabled
Habilite la directiva. Valores aceptados: false, true. Requerido.
manual-queue-only
Establece si solo se pueden poner compilaciones en cola manualmente. Valores aceptados: false, true. Requerido.
queue-on-source-update-only
Establece si solo se pueden poner compilaciones en cola cuando el origen se actualice. Valores aceptados: false, true. Requerido.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Requerido.
valid-duration
Duración de la vigencia de la directiva, en minutos. Notavalid-duration debe oscilar entre cero y un año y debe ser cero cuando --queue-on-source-update-only es false. Requerido.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
org
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
path-filter
Ruta de acceso donde se aplica la directiva. Admite rutas de acceso absolutas, caracteres comodín y varias rutas de acceso separadas por ;. Ejemplos: /WebApp/Models/Data.cs, /WebApp/*, *.cs, o /WebApp/Models/Data.cs;ClientApp/Models/Data.cs.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Ejemplo
En el siguiente ejemplo se establece una directiva de compilación obligatoria para las solicitudes de incorporación de cambios de la rama main del repositorio de Fabrikam. La directiva requiere la correcta compilación del identificador de definición de compilación 1, y solo permite poner compilaciones en cola manualmente. En este ejemplo se usa la configuración predeterminada az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy build create --blocking true --branch main --build-definition-id 1 --display-name build-policy --enabled true --manual-queue-only true --queue-on-source-update-only false --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --valid-duration 0 --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------ ------------- ------------ ------------------------------------ ---------------
31 build-policy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Actualización de una directiva de validación de compilación
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
build-definition-id
Identificador de definición de la compilación.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
display-name
Nombre para mostrar con el que esta directiva de compilación identifica la directiva. Por ejemplo: Manual queue policy.
enabled
Habilite la directiva. Valores aceptados: false, true.
manual-queue-only
Establece si solo se pueden poner compilaciones en cola manualmente. Valores aceptados: false, true.
org
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
path-filter
Ruta de acceso donde se aplica la directiva. Admite rutas de acceso absolutas, caracteres comodín y varias rutas de acceso separadas por ;. Ejemplos: /WebApp/Models/Data.cs, /WebApp/*, *.cs, o /WebApp/Models/Data.cs;ClientApp/Models/Data.cs.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
queue-on-source-update-only
Establece si solo se pueden poner compilaciones en cola cuando el origen se actualice. Valores aceptados: false, true.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
valid-duration
Duración de la vigencia de la directiva, en minutos.
Los comandos de la CLI de Azure DevOps no son compatibles con Azure DevOps Server.
Establezca una directiva que requiera que los cambios realizados en una solicitud de incorporación se compilen correctamente en la rama protegida para que la solicitud de incorporación de cambios pueda completarse.
Las directivas de compilación reducen las interrupciones y hacen que los resultados de las pruebas siempre pasen. Las directivas de compilación son de ayuda incluso cuando se usa la integración continua (CI) en las ramas de desarrollo para detectar problemas de forma anticipada.
Si hay una directiva de validación de compilación habilitada, las nuevas compilaciones se ponen en cola cada vez que se cree una nueva solicitud de incorporación de cambios o cuando se envíen cambios a una solicitud de incorporación de cambios existente que tiene como destino la rama. Acto seguido, la directiva de compilación evalúa los resultados de la compilación para determinar si la solicitud de incorporación de cambios puede completarse o no.
Importante
Para poder especificar una directiva de validación de compilación, debe tener una definición de compilación. Si no tiene una, vea Creación de una definición de compilación y elija el tipo de compilación que encaje con su tipo de proyecto.
Elija Agregar directiva de compilación y configure las opciones deese cuadro de diálogo.
Seleccione la definición de compilación.
Elija el tipo de desencadenador. Seleccione Automático (siempre que la rama de origen se actualiza) o Manual.
Seleccione el requisito de directiva. Si elige Obligatorio, las compilaciones deben finalizar correctamente para que las solicitudes de incorporación de cambios se completen. Elija Opcional para mostrar una notificación de error de compilación, pero que siga siendo posible que las solicitudes de incorporación de cambios se completen.
Establezca una expiración de compilación para evitar que las actualizaciones de la rama protegida interrumpan los cambios de las solicitudes de incorporación de cambios abiertas.
Inmediatamente cuando branch name se actualiza: esta opción establece el estado de la directiva de compilación de una solicitud de incorporación de cambios en error cuando la rama protegida se actualiza. Vuelva a poner una compilación en cola para actualizar el estado de la compilación. Esta configuración garantiza que los cambios en las solicitudes de incorporación de cambios se compilan correctamente incluso cuando la rama protegida cambie. Esta opción es la más adecuada para los equipos que tienen ramas importantes con un volumen de cambios menor, pero para quienes trabajan en ramas de desarrollo muy concurridas, puede resultar perjudicial tener que esperar a que una compilación se complete cada vez que la rama protegida se actualiza.
Después de n horas si branch name se ha actualizado: esta opción expira el estado de directiva actual cuando la rama protegida se actualiza si la compilación que pasa es anterior al umbral especificado. Esta opción mantiene un equilibrio entre requerir siempre o nunca una compilación cuando la rama protegida se actualice. Esta es una magnífica opción para reducir el número de compilaciones cuando la rama protegida se actualiza frecuentemente.
Nunca: las actualizaciones de la rama protegida no alteran el estado de la directiva. Este valor reduce el número de compilaciones de la rama. Puede provocar problemas al cerrar solicitudes de incorporación de cambios que no se han actualizado recientemente.
Escriba un nombre para mostrar opcional para esta directiva de compilación; este nombre sirve para identificar la directiva en la página de directivas de rama. Si no se especifica un nombre para mostrar, la directiva usa el nombre de la definición de compilación.
Seleccione Guardar.
Cuando el propietario de la solicitud de incorporación de cambios envía cambios que se compilan correctamente, el estado de la directiva se actualiza. Si ha optado por una directiva de compilación Inmediatamente cuando branch name se actualiza o Después de n horas si branch name se ha actualizado, el estado de la directiva se actualiza cuando lo haga la rama protegida, si la compilación más reciente ya no es válida.
Comprobaciones de estado
Los servicios externos pueden usar la API de estado de solicitud de incorporación de cambios para publicar un estado detallado de las solicitudes de incorporación de cambios. La directiva de rama de servicios adicionales permite que esos servicios externos participen en el flujo de trabajo de las solicitudes de incorporación de cambios y establezcan requisitos de directiva.
Obligatoriedad de aprobación de servicios externos
Los servicios externos pueden usar la API de estado de solicitud de incorporación de cambios para publicar un estado detallado de las solicitudes de incorporación de cambios. La directiva de rama para servicios adicionales ofrece la posibilidad a esos servicios externos de participar en el flujo de trabajo de las solicitudes de incorporación de cambios y establecer requisitos de directiva.
Puede agregar revisores automáticamente a las solicitudes de incorporación de cambios que modifiquen archivos en directorios y archivos específicos, o bien a todas las solicitudes de incorporación de cambios de un repositorio.
Seleccione el botón + junto a Automatically included reviewers (Revisores incluidos automáticamente).
Rellene la pantalla Add new reviewer policy (Agregar nueva directiva de revisor).
Agregue personas y grupos a Revisores.
Seleccione Opcional si quiere agregar revisores automáticamente, pero sin que su aprobación sea obligatoria para que la solicitud de incorporación de cambios pueda completarse.
También puede seleccionar Obligatorio si las solicitudes de incorporación de cambios no pueden completarse hasta que suceda lo siguiente:
Todas las personas agregadas como revisores aprueban los cambios.
Al menos una persona de cada grupo agregada como revisor aprueba los cambios.
Si solo se requiere un grupo, el número mínimo de miembros especificado aprueba los cambios.
Especifique los archivos y las carpetas que requieran los revisores incluidos automáticamente. Deje este campo en blanco para requerir los revisores de todas las solicitudes de incorporación de cambios de la rama.
Seleccione Allow requestors to approve their own changes (Permitir que los solicitantes aprueben sus propios cambios) si los propietarios de las solicitudes de incorporación de cambios pueden votar para aprobar sus propias solicitudes de incorporación de cambios para cumplir esta directiva.
Puede especificar un mensaje de fuente de actividad que va a aparecer en la solicitud de incorporación de cambios.
Seleccione Guardar.
Nota
Esta característica está disponible en Azure DevOps Server 2020 y versiones posteriores.
Puede usar el comando az repos policy required-reviewer de la CLI de Azure DevOps para configurar y actualizar la directiva de revisor obligatorio.
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true. Requerido.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main. Requerido.
enabled
Habilite la directiva. Valores aceptados: false, true. Requerido.
message
Mensaje de fuente de actividad que aparece en la solicitud de incorporación de cambios. Obligatorio.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Requerido.
required-reviewer-ids
Direcciones de correo electrónico de los revisores separadas por ;. Por ejemplo: john@contoso.com;alice@contoso.com.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
org
URL de la organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
path-filter
Ruta de acceso donde se aplica la directiva. Admite rutas de acceso absolutas, caracteres comodín y varias rutas de acceso separadas por ;. Ejemplos: /WebApp/Models/Data.cs, /WebApp/*, *.cs, o /WebApp/Models/Data.cs;ClientApp/Models/Data.cs.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Ejemplo
En el siguiente ejemplo, Jamal Hartnett se establece como revisor obligatorio de las solicitudes de incorporación de cambios de la rama main del repositorio de Fabrikam. En este ejemplo se usa la configuración predeterminada az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy required-reviewer create --blocking true --branch main --enabled true --message "Please review." --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --required-reviewer-ids fabrikamfiber4@hotmail.com --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------ ------------- ------------ ------------------------------------ ---------------
35 Required reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Actualización de una directiva de revisor obligatorio
Impone un bloqueo si no se cumple la directiva. Valores aceptados: false, true.
branch
Nombre de rama por la que filtrar los resultados mediante coincidencia exacta. El parámetro --repository-id es obligatorio para usar el filtro de rama. Por ejemplo: --branch main.
branch-match-type
Usa el argumento branch para aplicar la directiva. Si el valor es exact, la directiva se aplica a una rama que coincida exactamente con el argumento --branch. Si el valor es prefix, la directiva se aplica en todas las carpetas de rama que coincidan con el prefijo especificado en el argumento --branch. Valores aceptados: exact, prefix. Valor predeterminado: exact.
detect
Detecta automáticamente la organización. Valores aceptados: false, true.
enabled
Habilite la directiva. Valores aceptados: false, true.
message
Mensaje de fuente de actividad que aparece en la solicitud de incorporación de cambios.
org
Dirección URL de organización de Azure DevOps. Puede configurar la organización predeterminada mediante az devops configure -d organization=<ORG_URL>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git. Ejemplo: https://dev.azure.com/MyOrganizationName/.
path-filter
Ruta de acceso donde se aplica la directiva. Admite rutas de acceso absolutas, caracteres comodín y varias rutas de acceso separadas por ;. Ejemplos: /WebApp/Models/Data.cs, /WebApp/*, *.cs, o /WebApp/Models/Data.cs;ClientApp/Models/Data.cs.
project, p
Nombre o id. del proyecto. Puede configurar el proyecto predeterminado mediante az devops configure -d project=<NAME_OR_ID>. Obligatorio si no está configurado como predeterminado o seleccionado mediante la configuración de Git.
repository-id
Identificador del repositorio por el que se van a filtrar los resultados mediante coincidencia exacta. Por ejemplo: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
required-reviewer-ids
Direcciones de correo electrónico de los revisores separadas por ;. Por ejemplo: john@contoso.com;alice@contoso.com.
subscription
Nombre o identificador de la suscripción Puede configurar la suscripción predeterminada mediante az account set -s <NAME_OR_ID>.
Los comandos de la CLI de Azure DevOps no son compatibles con Azure DevOps Server.
Seleccione revisores para directorios y archivos específicos del repositorio.
Estos revisores se agregan automáticamente a las solicitudes de incorporación de cambios que modifican los archivos de esas rutas de acceso. También se puede especificar un mensaje de fuente de actividad.
Si selecciona Obligatorio, la solicitud de incorporación de cambios no puede completarse hasta que suceda lo siguiente:
Cada usuario agregado como revisor de la ruta de acceso aprueba los cambios.
Al menos una persona de cada grupo agregada a la ruta de acceso aprueba los cambios.
El número de revisores especificados para cada grupo agregado a la ruta de acceso aprueba los cambios.
Seleccione Opcional si quiere agregar revisores automáticamente, pero sin que su aprobación sea obligatoria para que la solicitud de incorporación de cambios pueda completarse.
Puede seleccionar Los solicitantes pueden aprobar sus propios cambios.
Cuando todos los revisores obligatorios aprueben el código, se puede completar la solicitud de incorporación de cambios.
Omisión de directivas de rama
En algunos casos, es posible que tenga que omitir los requisitos de la directiva. Los permisos de omisión permiten enviar cambios a una rama directamente o completar solicitudes de incorporación de cambios que no cumplen las directivas de rama. Los permisos de omisión se pueden conceder a un usuario o a un grupo. Puede limitar el ámbito de los permisos de omisión a un proyecto completo, a un repositorio o a una sola rama.
Son dos los permisos que permiten omitir la directiva de rama de maneras diferentes:
Omitir las directivas cuando finalicen las solicitudes de incorporación de cambios solo se aplica a la finalización de las solicitudes de incorporación de cambios. Los usuarios con este permiso pueden completar solicitudes de incorporación de cambios aunque estas no cumplan las directivas.
Omitir las directivas al insertar se aplica a las inserciones desde repositorios locales y a las modificaciones realizadas en la Web. Los usuarios con este permiso pueden enviar cambios directamente a ramas protegidas sin tener que cumplir los requisitos de directiva.
Para obtener más información sobre cómo administrar estos permisos, vea Permisos de Git.
En TFS 2015 a TFS 2018 Update 2, Exento del cumplimiento de directivas permite a los usuarios con este permiso hacer lo siguiente:
Opte por invalidar las directivas y complete una solicitud de incorporación de cambios incluso si no se cumple el conjunto de directivas de rama en vigor.
Pueden enviar cambios directamente a una rama aun cuando esa rama tenga establecidas directivas de rama. Cuando un usuario con este permiso realiza una inserción que podría invalidar la directiva de rama, esa inserción omite automáticamente la directiva de rama sin que haya un paso que dé opciones ni se muestre una advertencia.
Importante
Tenga cuidado al conceder la capacidad para omitir directivas, especialmente en los niveles de repositorio y de proyecto. Las directivas son una piedra angular para administrar el código fuente de forma segura y conforme a lo establecido.
Filtros de ruta de acceso
Varias directivas de rama ofrecen filtros de ruta de acceso. Si se establece un filtro de ruta de acceso, la directiva solo se aplica a los archivos que coincidan con el filtro de ruta de acceso. Dejar este campo en blanco significa que la directiva se aplica a todos los archivos de la rama.
Puede especificar rutas de acceso absolutas (la ruta de acceso debe empezar por / o por un carácter comodín) y usar caracteres comodín.
Ejemplos:
/WebApp/Models/Data.cs
/WebApp/*
*/Models/Data.cs
*.cs
Se pueden especificar varias rutas de acceso usando ; como separador.
Ejemplo:
/WebApp/Models/Data.cs;/ClientApp/Models/Data.cs
Las rutas de acceso que tengan ! antepuesto se excluyen si, de no llevarlo, se incluyeran.
Ejemplo:
/WebApp/*;!/WebApp/Tests/* incluye todos los archivos en /WebApp excepto los archivos en /WebApp/Tests.
!/WebApp/Tests/* no especifica ningún archivo, ya que no se incluye nada en primer lugar.
El orden de los filtros es relevante. Los filtros se aplican de izquierda a derecha.
¿Puedo enviar cambios directamente a ramas que tengan directivas de rama?
No se pueden enviar cambios directamente a ramas que tengan directivas de rama obligatorias, a menos que se tengan permisos para omitir directivas de rama. Los cambios en estas ramas solo se pueden realizar a través de solicitudes de incorporación de cambios. Sí se pueden enviar cambios directamente a las ramas que tengan directivas de rama opcionales, siempre y cuando no tengan directivas de rama obligatorias.
¿Qué es Autocompletar?
Las solicitudes de incorporación de cambios en ramas que tienen directivas de rama configuradas presentan el botón Establecer autocompletar. Seleccione esta opción para completar automáticamente la solicitud de incorporación de cambios cuando cumpla todas las directivas. La función Autocompletar resulta útil cuando está previsto que no haya problemas con los cambios.
¿Cuándo se comprueban las condiciones de una directiva de rama?
Las directivas de rama vuelven a evaluar en el servidor cuando los propietarios de solicitudes de incorporación de cambios envían cambios y cuando los revisores votan. Si una directiva desencadena una compilación, la compilación se establece en un estado en espera hasta que dicha compilación se complete.
¿Puedo usar definiciones de compilación XAML en las directivas de rama?
No, no se pueden usar definiciones de compilación XAML en las directivas de rama.
¿Qué caracteres comodín puedo usar para especificar revisores de código obligatorios?
Un único asterisco * detecta cualquier número de caracteres, incluidas barras diagonales / y barras diagonales inversas \. Un signo de interrogación ? detecta cualquier carácter único.
Ejemplos:
*.sql detecta todos los archivos con la extensión .sql.
/ConsoleApplication/* detecta todos los archivos de la carpeta denominada ConsoleApplication.
/.gitattributes detecta el archivo .gitattributes* en la raíz del repositorio.
*/.gitignore detecta cualquier archivo .gitignore en el repositorio.
¿Se distinguen mayúsculas de minúsculas en las rutas de acceso de revisor de código obligatorio?
No, las directivas de rama no distinguen mayúsculas de minúsculas.
¿Cómo puedo configurar varios usuarios como revisores obligatorios, pero requerir solo la aprobación de uno de ellos?
Puede agregar los usuarios a un grupo y agregar ese grupo como revisor. De este modo, cualquier miembro del grupo puede aprobar para cumplir el requisito de directiva.
Tengo permisos de omisión de directivas. ¿Por qué me siguen apareciendo errores de directiva en el estado de la solicitud de incorporación de cambios?
Las directivas configuradas siempre se evalúan para detectar cambios en las solicitudes de incorporación de cambios. En el caso de los usuarios que tienen permisos de omisión de directivas, el estado de la directiva que se notifica es únicamente a modo aviso. Si el usuario con permisos de omisión da su aprobación, el estado de error no impide que la solicitud de incorporación de cambios pueda completarse.
¿Por qué no puedo completar mis propias solicitudes de incorporación de cambios si tengo configurada la opción para permitir que los solicitantes aprueben sus propios cambios?
Tanto la directiva Requerir un número mínimo de revisores como la directiva Incluir automáticamente los revisores tienen opciones para permitir que los solicitantes aprueben sus propios cambios. En cada una de estas directivas, la configuración se aplica única y exclusivamente a esa directiva. No afecta a la otra.
Por ejemplo, su solicitud de incorporación de cambios tiene las siguientes directivas configuradas:
Requerir un número mínimo de revisores requiere que haya un revisor como mínimo.
Incluir automáticamente los revisores requiere como revisor al usuario o a un equipo del que el usuario forme parte.
Incluir automáticamente los revisores tiene habilitada la opción para permitir que los solicitantes aprueben sus propios cambios.
Requerir un número mínimo de revisores no tiene habilitada la opción para permitir que los solicitantes aprueben sus propios cambios.
En este caso, la aprobación cumple la directiva Incluir automáticamente los revisores, pero no la directiva Requiere un número mínimo de revisores, por lo que la solicitud de incorporación de cambios no puede completarse.
Puede haber otras directivas, como la que prohíbe que el insertador más reciente apruebe sus propios cambios, que le impidan aprobar sus propios cambios aun cuando se haya establecido la opción para permitir que los solicitantes aprueben sus propios cambios.
¿Qué ocurre cuando la ruta de acceso de los filtros de ruta de acceso no comienza por / ni por un carácter comodín?
Las rutas de acceso de los filtros de ruta de acceso que no comiencen por / ni por un carácter comodín no tendrán ningún efecto, y el filtro de ruta de acceso se evaluará como si esa ruta de acceso no se hubiera especificado. Esta ruta de acceso no detecta el carácter / con el que comienza la ruta de acceso de archivo absoluta.