Colaboración con solicitudes de incorporación de cambios

Completado

Las solicitudes de incorporación de cambios le permiten indicar a otros usuarios los cambios que ha enviado a un repositorio de GitHub.

Una vez que se envía una solicitud de incorporación de cambios, las partes interesadas pueden revisar el conjunto de cambios, analizar posibles modificaciones e incluso insertar confirmaciones de seguimiento si es necesario.

Las solicitudes de incorporación de cambios las usan normalmente equipos y organizaciones que colaboran mediante el modelo de repositorio compartido.

Todos los usuarios comparten un único repositorio y las ramas puntuales se usan para desarrollar características y aislar los cambios.

Muchos proyectos de código abierto en GitHub usan solicitudes de incorporación de cambios para administrar los cambios de los colaboradores.

Ayudan a proporcionar una manera de notificar a los mantenedores del proyecto sobre los cambios que se han realizado.

Además, ayudan a iniciar la revisión de código y la discusión general sobre un conjunto de cambios antes de combinarse en la rama principal.

Las solicitudes de incorporación de cambios combinan la revisión y la combinación del código en un único proceso de colaboración.

Una vez que haya terminado de corregir un error o una nueva característica en una rama, cree otra solicitud de incorporación de cambios.

Agregue los miembros del equipo a la solicitud de incorporación de cambios para que puedan revisar los cambios y votarlos.

Use solicitudes de incorporación de cambios para revisar los trabajos en curso y obtener comentarios sobre los cambios.

No hay ningún compromiso de combinar los cambios, ya que el propietario puede abandonar la solicitud de incorporación de cambios en cualquier momento.

Rama, discusión y combinación.

Hacer que se revise el código

La revisión del código realizada en una solicitud de incorporación de cambios no sirve solo para encontrar errores, ya que para eso sirven las pruebas.

Una buena revisión del código detecta problemas menos obvios que podrían dar lugar a problemas costosos más adelante.

Las revisiones de código ayudan a proteger al equipo de las combinaciones incorrectas y las compilaciones rotas que disminuyen la productividad del equipo.

La revisión detecta estos problemas antes de la combinación, lo que protege las ramas esenciales frente a cambios no deseados.

Realice una polinización cruzada de la experiencia y distribuya estrategias de solución de problemas mediante el uso de una amplia gama de revisores en las revisiones de código.

La diferenciación de conocimientos y aptitudes hace que el equipo sea más sólido y resistente.

Realización adecuada de comentarios

Las revisiones de alta calidad comienzan con comentarios de alta calidad. Las claves para recibir comentarios excelentes en una solicitud de incorporación de cambios son:

  • Pedir a las personas correctas que revisen la solicitud de incorporación de cambios.
  • Asegurarse de que los revisores saben lo que hace el código.
  • Proporcionar comentarios útiles y constructivos.
  • Responder a los comentarios rápidamente.

Al asignar revisores a la solicitud de incorporación de cambios, asegúrese de seleccionar el conjunto correcto de revisores.

Le interesa que los revisores sepan cómo funciona el código, e intente incluir a los desarrolladores que trabajan en otras áreas para compartir sus ideas.

Además, es importante que puedan proporcionar una descripción clara de los cambios y compilar el código que tiene la corrección o característica ejecutándose en él.

Los revisores deben intentar proporcionar comentarios sobre los cambios con los que no están de acuerdo. Deben identificar el problema y realizar una sugerencia específica sobre lo que harían de forma diferente.

Estos comentarios tienen una intención clara y son fáciles de entender para el propietario de la solicitud de incorporación de cambios.

El propietario de la solicitud de incorporación de cambios debe responder a los comentarios, aceptar la sugerencia o explicar por qué el cambio sugerido no es ideal.

A veces, una sugerencia es buena, pero los cambios están fuera del ámbito de la solicitud de incorporación de cambios.

Tome estas sugerencias y cree nuevos elementos de trabajo y ramas de características independientes de la solicitud de incorporación de cambios para realizar esos cambios.

Protección de ramas con directivas

Sus repos normalmente contendrán una o más ramas, incluyendo la principal, que requieren protección extra debido a su criticidad. Azure Repos ofrece varios mecanismos basados en directivas que debería considerar implementar para ayudarle a alcanzar este objetivo.

La premisa básica de estos mecanismos es aplicar restricciones a las solicitudes de cambios. Por ejemplo, puede incluir la aplicación de directivas específicas de revisión de código, como exigir un número mínimo de aprobaciones de los revisores designados antes de poder fusionar una solicitud de cambio. Aprovechar la experiencia colectiva mejorará la calidad y fiabilidad de los cambios en el código.

Además, considere la posibilidad de aplicar la directiva de comprobación de elementos de trabajo vinculados. Esto verifica que cada solicitud de cambio está vinculada a un elemento de trabajo, proporcionando contexto y promoviendo la trazabilidad. La directiva de comprobación de la resolución de comentarios ayuda a garantizar que todos los comentarios de revisión del código se abordan antes de fusionar la solicitud de extracción.

Las directivas relacionadas con el análisis automatizado del código, las pruebas y las comprobaciones de conformidad confirman que los cambios cumplen las normas predefinidas antes de la integración. Limitar los tipos de fusión ayuda a mantener el historial de ramas de control. Por ejemplo, tiene la opción de permitir solo el avance rápido y las fusiones de "squash".

También es posible imponer compilaciones limpias de las nuevas versiones del código antes de permitir su fusión en las ramas críticas. Esto garantizará que los cambios fusionados no introduzcan fallos de compilación o problemas de regresión. Las comprobaciones de estado pueden utilizarse para que la finalización de las solicitudes de cambio dependa de señales generadas por servicios externos. Por ejemplo, tales señales pueden ser generadas por Azure Pipelines ejecutando pruebas automatizadas y análisis de código.

Cualquier rama que tenga configuradas las directivas requeridas bloqueará automáticamente el "Direct push", forzando de forma efectiva las solicitudes de cambio para todos los cambios. Además, estas ramas no se pueden eliminar.