YouTrack affiche maintenant les pull requests dans les tâches

Bonjour, Habr!



L'équipe YouTrack de JetBrains est ici. Nous avons une excellente nouvelle - à partir de YouTrack 2020.3, les tâches affichent non seulement les validations liées aux tâches, mais également les pull requests. Dans l'article d'aujourd'hui, nous vous expliquerons ce que c'est, pourquoi et comment cela contribuera à rendre le processus de développement plus efficace et compréhensible, et vous montrerons également le reste des innovations de la dernière version de YouTrack.



image



Pour plus de détails, bienvenue sur le post.



Qu'est-ce qu'une pull request?



Dans un certain nombre de modèles de modèle de développement, la collaboration sur un projet ressemble à ceci: vous copiez le projet à partir du contrôle de code source, apportez des modifications localement, puis envoyez une demande au propriétaire du projet pour approuver vos modifications et les inclure dans la base de code de projet commune. Une telle demande est appelée une demande d'extraction (ou une demande de fusion, selon le système de contrôle de version).



En gros, une pull request est un moyen de dire au propriétaire du référentiel ou à votre équipe ce que vous avez fait sur un projet et de suggérer que vos modifications soient incluses dans l'une des branches de développement générales. Le propriétaire du référentiel (ou la personne qui effectuera votre révision de code) peut soit accepter les modifications (fusionner la demande d'extraction), soit les rejeter - par exemple, si les modifications contredisent la vision de l'auteur du projet ou pendant le processus de révision du code, ils ont décidé que le code devait être amélioré.



Dans les projets open source, il y a souvent des exigences pour les pull requests, sans lesquelles la pull request ne sera pas acceptée: par exemple, nos collègues de l'équipe Kotlin demandent aux développeurs de s'assurer que la description de la pull request contient un lien vers le problème correspondant dans YouTrack, qui les modifications apportées à la demande d'extraction sont spécifiques aux tâches spécifiées, et ce nouveau code est en cours d'exécution, exécuté correctement et couvert par des tests.



Pourquoi extraire des requĂŞtes dans le tracker?



La création et l'acceptation / le rejet de demandes d'extraction sont des étapes aussi importantes dans le cycle de vie d'une tâche que le changement de statut ou la liaison du commit correspondant. Toutes ces étapes montrent la progression de la tâche à tous les observateurs intéressés - par exemple, la communauté d'un projet open source ou le chef de projet de l'équipe. Par exemple, si une tâche n'a pas été fermée en raison du rejet d'une certaine demande d'extraction, ces informations doivent être reflétées dans l'historique de la tâche, y compris à des fins rétrospectives, lorsque vous devez comprendre pourquoi la tâche a été laissée ouverte pendant si longtemps. Ce mécanisme rend le processus de développement plus transparent et vous permet de suivre le cycle de vie du problème étape par étape, sans manquer d'événements importants.



Afficher les demandes d'extraction dans les problèmes



De retour à YouTrack, à partir de YouTrack 2020.3, les développeurs pourront voir les pull requests de GitHub, GitLab, BitBucket, Gogs et Gitea dans les tâches à côté des validations. Pour que la demande d'extraction, ainsi que sa description, le nombre de fichiers mis à jour et les informations sur l'auteur, soient affichées dans la tâche, vous devez mentionner la tâche correspondante dans le nom de la demande d'extraction (tout est exactement la même chose que pour les commits).



En outre, après avoir accepté ou rejeté la demande d'extraction, YouTrack inclura cet événement dans le flux d'activité de la tâche avec l'auteur de l'événement et l'état de la demande d'extraction. Il s'avère que le flux de changement de tâche affichera tout le cycle de vie de la pull request - sa création et la décision finale (rejet ou inclusion dans la base de code).



image



Automatisez-le



Nous aimons et utilisons activement l'automatisation, nous ne pouvions donc pas passer à côté de l'opportunité d'utiliser les événements du système de contrôle de version dans les scripts d'automatisation. Vous pouvez désormais lancer un workflow YouTrack lorsque vous ajoutez une pull request ou une validation. De plus, les flux de travail ont désormais accès aux propriétés des validations et des pull requests, telles que le nom de l'auteur, la description ou la note.



Qu'est-ce que ça veut dire? Par exemple, vous pouvez modifier automatiquement l'état d'un problème en fonction de l'état de la demande d'extraction, ou envoyer une demande de révision de code à un collègue lors de la création d'une demande d'extraction.



Un script aussi simple transférera automatiquement la tâche au statut Fixe lors de la fusion d'une pull request, puis l'affectera au responsable QA avec un message indiquant que la tâche est prête à être testée:



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"
      }
    },
  }
});


Comme auparavant, les scripts peuvent s'exécuter selon un calendrier ou sur un événement spécifique, en fonction de votre processus. Vous trouverez des détails sur les flux de travail et comment les rédiger ici .



Qu'est-ce qui est intéressant d'autre?



Bien sûr, nous ne nous sommes pas limités à la simple visualisation des pull requests. Parmi les autres innovations, il y a un nouveau widget de suivi du temps pour les tableaux de bord (tableaux de bord), afin qu'il soit plus pratique de surveiller la productivité et de ne pas se laisser emporter par les heures supplémentaires en quarantaine.



image



Pour un travail pratique avec la liste des tâches, nous avons ajouté la possibilité d'afficher uniquement les tâches inachevées en un clic et de trier les tâches en fonction du nombre de commentaires. La base de connaissances a obtenu une coloration syntaxique pour les blocs de code avec détection automatique du langage de programmation, et pour les amateurs de Markdown, nous avons rendu possible le redimensionnement d'images intégrées, de vidéos et d'autres fichiers multimédias dans des tâches et des articles.



Il y a des nouvelles pour ceux qui utilisent un serveur LDAP pour gérer les informations d'identification des utilisateurs. YouTrack vous permettait de vous authentifier à l'aide des informations d'identification d'un serveur LDAP, et maintenant il a ajouté la synchronisation programmée des groupes d'utilisateurs et des attributs sur le serveur LDAP. Cela gardera à jour les informations d'identification et les informations sur l'appartenance au groupe LDAP - par exemple, cela aidera à éviter tout accès non autorisé aux données dans le tracker si l'utilisateur n'est pas déjà membre d'un groupe sur votre serveur LDAP, mais obtient toujours l'accès correspondant dans le tracker en raison de la latence de la synchronisation entre le serveur LDAP et YouTrack.



Les détails de tous les changements peuvent être trouvés sur notre site Web .



Et si vous êtes nouveau sur YouTrack ou si vous débutez, bienvenue dans notre démo gratuite des bases de YouTrack.



All Articles