YouTrack ahora está viendo solicitudes de extracción en tareas

¡Hola, Habr!



El equipo de YouTrack de JetBrains está aquí. Tenemos buenas noticias: a partir de YouTrack 2020.3, las tareas muestran no solo confirmaciones relacionadas con tareas, sino también solicitudes de extracción. En el post de hoy te contamos qué es, por qué y cómo ayudará a que el proceso de desarrollo sea más eficiente y claro, además de mostrarte el resto de innovaciones en la última versión de YouTrack.



imagen



Para más detalles, bienvenido a la publicación.



¿Qué es una solicitud de extracción?



En varios modelos de modelos de desarrollo, colaborar en un proyecto se ve así: copia el proyecto desde el control de código fuente, realiza cambios localmente y luego envía una solicitud al propietario del proyecto para aprobar los cambios e incluirlos en la base de código común del proyecto. Esta solicitud se denomina solicitud de extracción (o solicitud de combinación, según el sistema de control de versiones).



En términos generales, una solicitud de extracción es una forma de decirle al propietario del repositorio oa su equipo lo que ha hecho en un proyecto y sugerir que sus cambios se incluyan en una de las ramas generales de desarrollo. El propietario del repositorio (o la persona que revisará el código) puede aceptar los cambios (fusionar la solicitud de extracción) o rechazarlos; por ejemplo, si los cambios contradicen la visión del autor del proyecto o durante la revisión del código, decidieron que es necesario mejorar el código.



En proyectos de código abierto, a menudo existen requisitos para las solicitudes de extracción, sin los cuales no se aceptará la solicitud de extracción: por ejemplo, nuestros colegas del equipo de Kotlin piden a los desarrolladores que se aseguren de que la descripción de la solicitud de extracción contenga un enlace a la tarea correspondiente en YouTrack los cambios en la solicitud de extracción son específicos solo para las tareas especificadas, y ese nuevo código se está ejecutando, ejecutando correctamente y cubierto por pruebas.



¿Por qué extraer solicitudes en el rastreador?



Crear y aceptar / rechazar solicitudes de extracción son pasos tan importantes en el ciclo de vida de una tarea como cambiar el estado o vincular la confirmación correspondiente. Todos estos pasos muestran el progreso de la tarea a todos los observadores interesados, por ejemplo, la comunidad de un proyecto de código abierto o el gerente de proyecto del equipo. Por ejemplo, si una tarea no se cerró debido al rechazo de una determinada solicitud de extracción, esta información debe reflejarse en el historial de la tarea, incluso para fines retrospectivos, cuando necesita comprender por qué la tarea se ha dejado abierta durante tanto tiempo. Este mecanismo hace que el proceso de desarrollo sea más transparente y le permite realizar un seguimiento del ciclo de vida de una tarea paso a paso, sin perder eventos importantes.



Ver solicitudes de extracción en problemas



Volviendo a YouTrack, comenzando con YouTrack 2020.3, los desarrolladores podrán ver solicitudes de extracción de GitHub, GitLab, BitBucket, Gogs y Gitea en las tareas junto a las confirmaciones. Para que la solicitud de extracción, junto con su descripción, el número de archivos actualizados y la información sobre el autor, se muestre en la tarea, debe mencionar la tarea correspondiente en el nombre de la solicitud de extracción (todo es exactamente igual que con las confirmaciones).



Además, después de aceptar o rechazar la solicitud de extracción, YouTrack incluirá este evento en el flujo de actividad de la tarea junto con el autor del evento y el estado de la solicitud de extracción. Resulta que la fuente de cambio de tarea mostrará todo el ciclo de vida de la solicitud de extracción: su creación y la decisión final (rechazo o inclusión en la base de código).



imagen



Automatizarlo



Amamos y usamos activamente la automatización, por lo que no podíamos dejar pasar la oportunidad de usar eventos del sistema de control de versiones en scripts de automatización. Ahora puede iniciar un flujo de trabajo de YouTrack cuando agrega una solicitud de extracción o confirmación. Además, los flujos de trabajo ahora tienen acceso a propiedades para confirmaciones y solicitudes de extracción, como el nombre del autor, la descripción o la nota.



Qué significa eso? Por ejemplo, puede cambiar automáticamente el estado de un problema según el estado de la solicitud de extracción, o enviar una solicitud de revisión de código a un colega al crear una solicitud de extracción.



Un script tan simple transferirá automáticamente la tarea al estado Fijo al fusionar una solicitud de extracción y luego la asignará al líder de control de calidad con un mensaje de que la tarea está lista para la prueba:



var entities = require('@jetbrains/youtrack-scripting-api/entities');
var QA_LEAD = 'qa_superman';

exports.rule = entities.Issue.onChange({
  title: 'Set_to_fixed_when_pull_request_is_merged_and_notify',
  guard: function(ctx) {
    return ctx.issue.pullRequests.isNotEmpty() && 
      ctx.issue.pullRequests.last().previousState && 
      ctx.issue.pullRequests.last().state.name !== ctx.issue.pullRequests.last().previousState.name &&
      ctx.issue.pullRequests.last().state.name === "MERGED";
  },
  action: function(ctx) {
    var issue = ctx.issue;
    issue.State = ctx.State.Fixed;
    issue.Assignee = entities.User.findByLogin(QA_LEAD);
    issue.addComment("The issue is ready to be tested");
  },
  requirements: {
    State: {
      type: entities.State.fieldType,
      Fixed: {
        name: "Fixed"
      }
    },
  }
});


Como antes, los scripts se pueden ejecutar en un horario o en un evento específico, según su proceso. Los detalles sobre los flujos de trabajo y cómo escribirlos se pueden encontrar aquí .



¿Qué más es interesante?



Por supuesto, no nos hemos limitado a mirar las solicitudes de extracción. Entre las otras innovaciones se encuentra un nuevo widget de seguimiento de tiempo para cuadros de mando (dashboards), de modo que es más conveniente monitorear la productividad y no dejarse llevar por las horas extras en cuarentena.



imagen



Para trabajar cómodamente con la lista de tareas, agregamos la capacidad de mostrar solo las tareas sin terminar con un solo clic y ordenar las tareas por la cantidad de comentarios. La base de conocimientos obtuvo resaltado de sintaxis para bloques de código con detección automática del lenguaje de programación, y para los amantes de Markdown, hicimos posible cambiar el tamaño de imágenes, videos y otros archivos multimedia incrustados en tareas y artículos.



Hay novedades para quienes usan un servidor LDAP para administrar las credenciales de usuario. YouTrack solía permitirle autenticarse usando credenciales de un servidor LDAP, y ahora ha agregado sincronización programada de grupos de usuarios y atributos al servidor LDAP. Esto mantendrá actualizadas las credenciales y la información de membresía del grupo LDAP; por ejemplo, ayudará a evitar el acceso no autorizado a los datos en el rastreador si el usuario aún no es miembro de un grupo en su servidor LDAP, pero aún obtiene el acceso correspondiente en el rastreador debido a la latencia en la sincronización entre el servidor LDAP y YouTrack.



Los detalles de todos los cambios se pueden encontrar en nuestro sitio web .



Y si es nuevo en YouTrack o recién está comenzando, bienvenido a nuestra demostración gratuita de los conceptos básicos de YouTrack.



All Articles