es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Rehaz la rama protegida sin solicitar una revisión previa.

Tengo las ramas master y hotfix_master. Estas son ramas de lanzamiento y están protegidas en la interfaz de Gitlab bajo la configuración del proyecto.

Lo que estoy intentando lograr es hacer el rebase de la rama hotfix_master después de cada lanzamiento de producción que ocurra desde master, para que si un cliente reporta algún error, podamos solucionar ese error en la rama hotfix_master y lanzarlo al cliente.

Al realizar una prueba de concepto, me di cuenta de que, a pesar de que la rama hotfix_master está protegida, aún puedo hacer el rebase sin crear ninguna solicitud de extracción. ¿Es esto esperado? Si es así, ¿cuál es el uso de la protección? ¿Y qué se debe hacer para permitir el rebase solo después de crear una solicitud de extracción?

EDICIÓN 1

Esto es lo que estoy haciendo

- git fetch
- git checkout hotfix_master
- git diff --name-only origin/hotfix_master...origin/master
- git rebase origin/master
- git status
- git push

Después de hacer el rebase, lo que veo es que todos los cambios de master están ahora en hotfix_master. Entonces, ¿dónde está la solicitud de extracción? ¿Por qué Gitlab no está avisando que no he creado una solicitud de extracción? Por favor, sugiéreme.

EDICIÓN 2

enter image description here

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución

    Sí, es un comportamiento esperado que puedas rehacer la base de la rama hotfix_master a pesar de que esté protegida en GitLab. Sin embargo, la protección puede servir para prevenir fusiones no autorizadas o empujes forzados a la rama.

    Para hacer cumplir la creación de una solicitud de fusión antes de volver a basar, puedes habilitar la función “Revisiones de fusión” en la configuración del proyecto de GitLab. Esto requerirá que todas las fusiones, incluidas las rehaceres de base, se realicen a través de una solicitud de fusión que pase las revisiones de fusión específicas, como asegurarse de que la calidad del código sea adecuada, que se pasen las pruebas de compilación o que se requiera la aprobación de los revisores.

    Para habilitar las revisiones de fusión, sigue estos pasos:

    1. Ve a la configuración del proyecto en la interfaz de usuario de GitLab.
    2. Haz clic en “General” en la barra lateral izquierda.
    3. Desplázate hacia abajo hasta la sección “Solicitudes de fusión”.
    4. Haz clic en “Revisiones de fusión”.
    5. Selecciona las revisiones que deben pasar antes de permitir la fusión, por ejemplo, “El flujo de trabajo de canalización debe tener éxito”, “Solo fusiones de avance rápido” o “Requerir al menos una aprobación”.
    6. Guarda los cambios.

    Una vez que las revisiones de fusión estén habilitadas, volver a basar la rama hotfix_master requerirá crear una solicitud de fusión, y GitLab hará cumplir las revisiones de fusión seleccionadas antes de permitir la fusión. Esto garantizará que cualquier corrección de errores en la rama hotfix_master sea revisada y aprobada antes de aplicarse a la rama de lanzamiento.

    Con respecto a tu actualización, parece que has vuelto a basar la rama hotfix_master con la rama master sin crear una solicitud de fusión. Esto puede ser porque la rama hotfix_master está configurada para permitir rebase directamente desde su rama principal, lo que omitiría el proceso de solicitud de fusión. Habilitar las revisiones de fusión como se describe anteriormente debería prevenir este comportamiento y hacer cumplir el uso de solicitudes de fusión para todas las rehaceres de base, incluida la rama hotfix_master.

Comments are closed.