Flujo de trabajo de Gitlab, forzando la revisión del código o la solicitud de fusión en la sucursal

18

Estoy trabajando para implementar Gitlab en mi empresa con una estrategia de flujo de trabajo. Mi idea es que los desarrolladores tendrán acceso a los repositorios pero, cada vez que intenten comprometerse, su código debe ser revisado.

Sé que puedo hacer que creen una rama antes de comprometerse, y luego crear una Solicitud de fusión después de que se haya enviado al repositorio. Todavía no estoy claro acerca de ciertas cosas ... La idea de que dependamos de las personas para crear una sucursal y luego una solicitud de fusión parece defectuosa, ¿hay alguna solución que obligue a algún tipo de política de que la sucursal maestra pueda mantenerse limpia a menos que un " admin "aprueba el código que está a punto de fusionarse con él. He leído el "flujo de trabajo del equipo github", pero no parece ofrecer una solución viable. Cualquier consejo sobre el proceso o su propia mejor práctica es apreciado. ¡Gracias!

Miguel
fuente
1
"The idea that we rely on people to create a branch and then a merge request seems faulty"Me parece que tiene un problema mayor que la falta de características en un sistema de control de versiones. Si solo es cuestión de pasar el tiempo extra creando una sucursal, eche un vistazo a Atlassian Stash y su integración con Jira.
toniedzwiedz
55
Gracias Tom, mi idea es hacer cumplir una política estándar, estoy eliminando el margen de error
Mike
2
Considere esta entrada de blog de gitlabhq about.gitlab.com/2014/09/29/gitlab-flow
spuder
Podrías hacer que usen sus propios tenedores ...
Wildcard

Respuestas:

14

Empecé a trabajar con gitlab, leer la sección AYUDA proporciona un diseño de flujo de trabajo. En este punto, esta parece ser la mejor solución para mi pregunta. Si alguien tiene experiencia con este flujo de trabajo o consejo, agregue cualquier información adicional.

Desde la sección de AYUDA:

Flujo de trabajo

  1. Proyecto clon
    git clone [email protected]:project-name.git
  2. Crea una sucursal con tu función
    git checkout -b $feature_name
  3. Escribir código Cometer cambios
    git commit -am "My feature is ready"
  4. Empuje su rama a GitLab
    git push origin $feature_name
  5. Revise su código en la página de confirmaciones
  6. Crear una solicitud de fusión
  7. El líder de su equipo revisará el código y lo fusionará con la sucursal principal

En la sección de confirmaciones de su repositorio, puede proteger las ramas, lo que obliga a los desarrolladores a seguir el proceso anterior, crear una rama y enviar una solicitud de fusión.

Captura de pantalla - Protección de una rama

Miguel
fuente
2
¿Hay alguna forma de aplicar este flujo de trabajo (por ejemplo, usando una rama protegida) pero permitir que cualquier cesionario (no solo el líder del equipo con privilegios de Maestro / Administrador) combine la solicitud?
Adam
Acabo de intentar asignar una solicitud de fusión a alguien sin privilegios maestros y recibe el siguiente mensaje en la solicitud de fusión. Esto no puede fusionarse automáticamente, incluso si pudiera fusionarse, no tiene el permiso para hacerlo. Entonces, no parece que puedan hacerlo.
Mike
Gracias. Voy a probar ya sea Review Board, Phabricator o Gerrit. ¿Tienes alguna experiencia con alguno de ellos?
Adam
No, lo siento, no he probado ninguno de esos servicios. Publique una respuesta si tiene éxito.
Mike
Claro, a menos que lo olvide. Por cierto, he agregado Barkeep a mi lista de verificación :)
Adam