YouTrack zeigt jetzt Pull-Anforderungen in Aufgaben an

Hallo Habr!



Das YouTrack-Team von JetBrains ist hier. Wir haben großartige Neuigkeiten: Ab YouTrack 2020.3 werden bei Aufgaben nicht nur aufgabenbezogene Commits angezeigt, sondern auch Pull-Anfragen. Im heutigen Beitrag werden wir Ihnen erklären, was es ist, warum es ist und wie es dazu beitragen wird, den Entwicklungsprozess effizienter und verständlicher zu gestalten, und den Rest der Innovationen in der neuesten Version von YouTrack zeigen.



Bild



Für Details willkommen in der Post.



Was ist eine Pull-Anfrage?



In einer Reihe von Entwicklungsmodellmodellen sieht die Zusammenarbeit an einem Projekt folgendermaßen aus: Sie kopieren das Projekt aus der Quellcodeverwaltung, nehmen Änderungen lokal vor und senden dann eine Anfrage an den Projekteigentümer, um Ihre Änderungen zu genehmigen und sie in die gemeinsame Projektcodebasis aufzunehmen. Eine solche Anforderung wird als Pull-Anforderung (oder als Zusammenführungsanforderung, abhängig vom Versionskontrollsystem) bezeichnet.



Grob gesagt ist eine Pull-Anfrage eine Möglichkeit, dem Repository-Eigentümer oder Ihrem Team mitzuteilen, was Sie an einem Projekt getan haben, und vorzuschlagen, dass Ihre Änderungen in einen der allgemeinen Entwicklungszweige aufgenommen werden. Der Repository-Eigentümer (oder die Person, die Ihre Codeüberprüfung durchführt) kann die Änderungen entweder akzeptieren (die Pull-Anforderung zusammenführen) oder ablehnen - wenn die Änderungen beispielsweise der Vision des Autors des Projekts widersprechen oder während der Codeüberprüfung entschieden haben, dass der Code verbessert werden muss.



In Open-Source-Projekten gibt es häufig Anforderungen für Pull-Anfragen, ohne die die Pull-Anfrage nicht akzeptiert wird: Beispielsweise bitten unsere Kollegen vom Kotlin-Team die Entwickler, sicherzustellen, dass die Beschreibung der Pull-Anfrage einen Link zu der entsprechenden Aufgabe in YouTrack enthält Änderungen in der Pull-Anforderung sind spezifisch für die angegebenen Aufgaben und der neue Code wird ausgeführt, korrekt ausgeführt und durch Tests abgedeckt.



Warum Anfragen in den Tracker ziehen?



Das Erstellen und Akzeptieren / Ablehnen von Pull-Anforderungen sind ebenso wichtige Schritte im Lebenszyklus einer Aufgabe wie das Ändern des Status oder das Verknüpfen des entsprechenden Commits. Alle diese Schritte zeigen allen interessierten Beobachtern den Fortschritt der Aufgabe - zum Beispiel der Community eines Open Source-Projekts oder dem Projektmanager des Teams. Wenn beispielsweise eine Aufgabe aufgrund der Ablehnung einer bestimmten Pull-Anforderung nicht geschlossen wurde, müssen diese Informationen im Aufgabenverlauf berücksichtigt werden - auch für nachträgliche Zwecke, wenn Sie verstehen müssen, warum die Aufgabe so lange offen gelassen wurde. Dieser Mechanismus macht den Entwicklungsprozess transparenter und ermöglicht es Ihnen, den Lebenszyklus des Problems Schritt für Schritt zu verfolgen, ohne wichtige Ereignisse zu verpassen.



Pull-Anfragen in Problemen anzeigen



Zurück zu YouTrack, beginnend mit YouTrack 2020.3, können Entwickler Pull-Anforderungen von GitHub, GitLab, BitBucket, Gogs und Gitea in Aufgaben neben Commits sehen. Damit die Pull-Anforderung zusammen mit ihrer Beschreibung, der Anzahl der aktualisierten Dateien und Informationen zum Autor in der Aufgabe angezeigt wird, müssen Sie die entsprechende Aufgabe im Namen der Pull-Anforderung angeben (alles ist genau das gleiche wie bei Commits).



Nach dem Akzeptieren oder Ablehnen der Pull-Anforderung nimmt YouTrack dieses Ereignis zusammen mit dem Ereignisautor und dem Status der Pull-Anforderung in den Aktivitätsablauf der Aufgabe auf. Es stellt sich heraus, dass der Taskwechsel-Feed den gesamten Lebenszyklus der Pull-Anforderung anzeigt - ihre Erstellung und die endgültige Entscheidung (Ablehnung oder Aufnahme in die Codebasis).



Bild



Automatisieren Sie es



Wir lieben und nutzen die Automatisierung aktiv, sodass wir die Gelegenheit nicht verpassen konnten, Ereignisse aus dem Versionskontrollsystem in Automatisierungsskripten zu verwenden. Sie können jetzt einen YouTrack-Workflow initiieren, wenn Sie eine Pull-Anforderung oder ein Commit hinzufügen. Darüber hinaus haben Workflows jetzt Zugriff auf Eigenschaften für Commits und Pull-Anforderungen, z. B. Autorenname, Beschreibung oder Notiz.



Was bedeutet das? Sie können beispielsweise den Status einer Aufgabe basierend auf dem Status der Pull-Anforderung automatisch ändern oder beim Erstellen einer Pull-Anforderung eine Anforderung zur Codeüberprüfung an einen Kollegen senden.



Solch ein einfaches Skript versetzt die Aufgabe beim Zusammenführen einer Pull-Anforderung automatisch in den Status "Fest" und weist sie dann dem QS-Lead mit der Meldung zu, dass die Aufgabe zum Testen bereit ist:



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


Nach wie vor können Skripte je nach Prozess nach einem Zeitplan oder einem bestimmten Ereignis ausgeführt werden. Details zu Workflows und deren Schreibweise finden Sie hier .



Was ist sonst noch interessant?



Natürlich haben wir uns nicht darauf beschränkt, nur Pull-Anfragen zu betrachten. Zu den weiteren Innovationen gehört ein neues Zeiterfassungs-Widget für Dashboards (Dashboards), mit dem die Produktivität bequemer überwacht werden kann und keine Überstunden in der Quarantäne mitgerissen werden.



Bild



Für eine bequeme Arbeit mit der Liste der Aufgaben haben wir die Möglichkeit hinzugefügt, nur noch nicht erledigte Aufgaben mit einem Klick anzuzeigen und Aufgaben nach der Anzahl der Kommentare zu sortieren. Die Wissensdatenbank erhielt eine Syntaxhervorhebung für Codeblöcke mit automatischer Erkennung der Programmiersprache. Für Markdown-Liebhaber war es möglich, die Größe eingebetteter Bilder, Videos und anderer Mediendateien in Aufgaben und Artikeln zu ändern.



Es gibt Neuigkeiten für diejenigen, die einen LDAP-Server zum Verwalten von Benutzeranmeldeinformationen verwenden. Mit YouTrack konnten Sie sich mithilfe von Anmeldeinformationen von einem LDAP-Server authentifizieren. Jetzt wurde dem LDAP-Server eine geplante Synchronisierung von Benutzergruppen und Attributen hinzugefügt. Auf diese Weise werden Anmeldeinformationen und Informationen zur LDAP-Gruppenmitgliedschaft auf dem neuesten Stand gehalten. So können Sie beispielsweise den unbefugten Zugriff auf Daten im Tracker vermeiden, wenn der Benutzer noch nicht Mitglied einer Gruppe auf Ihrem LDAP-Server ist, aber dennoch den entsprechenden Zugriff im Tracker erhält aufgrund der Latenz bei der Synchronisation zwischen dem LDAP-Server und YouTrack.



Details zu allen Änderungen finden Sie auf unserer Website .



Und wenn Sie neu bei YouTrack sind oder gerade erst anfangen, begrüßen Sie unsere kostenlose Demo der YouTrack-Grundlagen.



All Articles