En esta página, se explica cómo configurar la protección de ramas para los repositorios de Secure Source Manager.
La protección de ramas permite que los administradores de repositorios establezcan reglas para controlar quién puede realizar cambios en las ramas, quién debe aprobar o revisar los cambios y qué condiciones se deben cumplir antes de que se pueda combinar un cambio aprobado en una rama.
Para obtener más información sobre las reglas de protección de ramas, consulta Descripción general de la protección de ramas.
Antes de comenzar
Roles obligatorios
Para obtener los permisos que necesitas para configurar las reglas de protección de ramas para un repositorio de Secure Source Manager, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Descriptor de acceso a instancias de Secure Source Manager (
roles/securesourcemanager.instanceAccessor) en la instancia de Secure Source Manager - Administrador de repositorios de Secure Source Manager (
roles/securesourcemanager.repoAdmin) en el repositorio de Secure Source Manager -
Para aprobar solicitudes de extracción en ramas protegidas en cualquier repositorio de una instancia de Secure Source Manager, haz lo siguiente:
- Responsable de aprobación de solicitudes de extracción en el repositorio de Secure Source Manager (
roles/securesourcemanager.repoPullRequestApprover) en el Google Cloud proyecto para la instancia - Escritor de repositorio de Secure Source Manager (
roles/securesourcemanager.repoWriter) en el Google Cloud proyecto para la instancia
- Responsable de aprobación de solicitudes de extracción en el repositorio de Secure Source Manager (
-
Para aprobar solicitudes de extracción en ramas protegidas en un solo repositorio, haz lo siguiente:
- Responsable de aprobación de solicitudes de extracción en el repositorio de Secure Source Manager (
roles/securesourcemanager.repoPullRequestApprover) en el repositorio - Escritor de repositorio de Secure Source Manager (
roles/securesourcemanager.repoWriter) en el repositorio
- Responsable de aprobación de solicitudes de extracción en el repositorio de Secure Source Manager (
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Para obtener información sobre cómo otorgar roles de Secure Source Manager, consulta Control de acceso con IAM y Otorga a los usuarios acceso a la instancia.
Crea una regla de protección de ramas
Console
Para crear una regla de protección de ramas nueva, haz lo siguiente:
- En la interfaz web de Secure Source Manager, selecciona el repositorio que deseas proteger con una regla de protección de ramas.
- En la página del repositorio, haz clic en Settings.
- Haz clic en la pestaña Branch rule.
- Haz clic en Add branch rule.
En el campo Branch rule ID, ingresa un nombre para la regla de ramas.
Los IDs de las reglas de ramas se restringen a letras minúsculas, números y guiones. El primer carácter debe ser una letra y el último carácter debe ser una letra o un número. Los IDs de las reglas de ramas tienen un máximo de 63 caracteres.
En el campo Branch filter, ingresa el nombre de la rama a la que deseas que se aplique la regla o, si deseas que la regla se aplique a todas las ramas, ingresa
.*. No se admite la coincidencia completa de expresiones regulares.Los filtros de reglas de ramas habilitados deben ser únicos para su repositorio. Los usuarios pueden tener varios filtros de reglas de ramas inhabilitados. Por ejemplo, no puedes tener dos reglas de ramas habilitadas en un solo repositorio con el filtro de ramas
main.Cuando se aplican varias reglas a una rama, la regla de ramas con un nombre de rama específico como filtro de ramas anulará la regla de comodín. Por ejemplo, una regla de ramas con el filtro de ramas
mainanulará una regla de ramas con el filtro de ramas.*. Las reglas no se combinan.En la sección Branch protection rule details, especifica los requisitos para tu regla de ramas con las siguientes opciones:
Require a solicitud de extracción before merging: Si está habilitada, se bloquearán las confirmaciones directas en la rama. Se debe abrir una solicitud de extracción antes de realizar la combinación en la rama protegida.
Cantidad de revisores necesarios: especifica la cantidad de revisores necesarios para aprobar la solicitud de extracción y realizar la combinación.
Cantidad de responsables de aprobación necesarios: especifica la cantidad de responsables de aprobación necesarios para aprobar la solicitud de extracción y realizar la combinación.
Los revisores y los responsables de aprobación son usuarios con roles de IAM específicos. Para saber qué roles son necesarios para los revisores y los responsables de aprobación, consulta Descripción general de la protección de ramas.
Bloquear fusión en revisiones y aprobaciones obsoletas: si está habilitada, se quitará una revisión o aprobación si se envían confirmaciones nuevas a la solicitud de extracción después de que se otorgue la revisión o la aprobación.
Require conversation resolution before merging: Si está habilitada, se deben resolver todos los comentarios de código y las revisiones de cambios solicitados antes de realizar la combinación.
**Require linear history**: Si está habilitada, no se pueden combinar las solicitudes de extracción que crearían un historial de Git no lineal.
Require status checks: Si está habilitada, las verificaciones de estado de compilación seleccionadas deben ser correctas antes de que se pueda combinar una solicitud de extracción. Debes configurar los activadores en tu archivo de activadores antes de poder seleccionarlos como verificaciones de estado para la protección de ramas.
Para guardar la regla de ramas, haz clic en Submit.
Se muestra la pestaña Branch rules, con la nueva regla de ramas en la lista.
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform. Para obtener más información, consulta la Terraform documentación de referencia del proveedor.
Para crear una regla de protección de ramas nueva con Terraform, usa elgoogle_secure_source_manager_branch_rule
recurso.
En la siguiente configuración de ejemplo, se crea una regla de protección de ramas para la rama main.
Antes de usar la muestra, reemplaza lo siguiente:
- BRANCH_RULE_ID: Es el ID de la regla de protección de ramas.
- PROJECT_ID: Es el ID del proyecto.
- LOCATION: Es la ubicación del repositorio.
- REPOSITORY_ID: Es el ID del repositorio.
- BRANCH_NAME_PATTERN: Es el nombre de la rama o el patrón de expresión regular, como
main.
resource "google_secure_source_manager_branch_rule" "default" {
branch_rule_id = "BRANCH_RULE_ID"
project = "PROJECT_ID"
location = "LOCATION"
repository_id = "REPOSITORY_ID"
include_pattern = "BRANCH_NAME_PATTERN"
minimum_approvals_count = 2
minimum_reviews_count = 2
require_comments_resolved = true
require_linear_history = true
require_pull_request = true
disabled = false
allow_stale_reviews = false
}
Modifica una regla de protección de ramas
Para modificar una regla de protección de ramas, haz lo siguiente:
- En la interfaz web de Secure Source Manager, selecciona el repositorio con la regla de protección de ramas que deseas modificar.
- En la página del repositorio, haz clic en Settings.
- Haz clic en la pestaña Branch rules.
- Haz clic en el nombre de la regla de ramas que deseas modificar.
- Edita la regla de protección de ramas.
- Haz clic en Update.
Se actualizó la regla de protección de ramas.
Borra una regla de protección de ramas
Para borrar una regla de protección de ramas, haz lo siguiente:
- En la interfaz web de Secure Source Manager, selecciona el repositorio del que deseas quitar la regla de ramas.
- En la página del repositorio, haz clic en Settings.
- Haz clic en la pestaña Branch rule.
- En la fila de la regla que deseas borrar, haz clic en el ícono Borrar
. - En la pantalla de confirmación Remove branch rule, haz clic en Yes.
Se borró la regla de protección de ramas.
¿Qué sigue?
- Lee la Descripción general de la protección de ramas.
- Para aprender a automatizar compilaciones, sigue los pasos que se indican en Conéctate a Cloud Build.
- Aprende a verificar el estado de las compilaciones automatizadas.