Discourse Jira

:discourse: Zusammenfassung Discourse Jira synchronisiert Projekte, Issue-Typen, Felder, Issue-Status und verwaltet die Issues.
:hammer_and_wrench: Repository-Link https://github.com/discourse/discourse-jira
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse

Funktionen

  • Jira-Projekte, Issue-Typen, Felder und Feldoptionen werden automatisch synchronisiert.
  • Erstellen Sie mit dem dynamischen Formular zur Issue-Erstellung ein neues Jira-Issue für einen Discourse-Beitrag.
  • Hängen Sie ein bestehendes Jira-Issue an einen Discourse-Beitrag an.
  • Synchronisieren Sie den Status des Jira-Issues über Webhooks.

Screenshots

Beitrag-Menü

Konfiguration

Legen Sie die Werte für die folgenden Site-Einstellungen fest, bevor Sie das Plugin aktivieren.

  • discourse_jira_url: Geben Sie die URL Ihrer Jira-Instanz ein. Sie muss mit einem /-Zeichen enden.
  • discourse_jira_username: Der Benutzername des Benutzers, in dessen Namen die Issues erstellt werden.
  • discourse_jira_password: Der API-Schlüssel, der dem Benutzer zugewiesen ist, der die Issues erstellt. Ein Passwort könnte funktionieren, ist aber unsicher, und die API wurde von Atlassian als veraltet markiert.
  • discourse_jira_enabled: Aktivieren Sie das Jira-Plugin für Discourse.
  • discourse_jira_allowed_groups: Wählen Sie Gruppen aus, die Zugriff auf die Jira-Plugin-Funktionen haben sollen. Standardmäßig sind dies Admins und Moderatoren.

Webhook

Legen Sie ein geheimes Token fest, um eingehende Webhooks von Jira zu verifizieren.

  • discourse_jira_webhook_token: Dieses Token muss im Query-Parameter ‘t’ des Webhooks übergeben werden.

Zum Beispiel: Wenn das Webhook-Token supersecret lautet und Ihre Basis-Discourse-URL discourse.example.com ist, würden Sie die Webhook-URL in den Webhook-Einstellungen Ihrer Jira-Instanz als https://discourse.example.com/jira/issues/webhook?t=supersecret konfigurieren.

Um lediglich zu prüfen, ob der Webhook ausgelöst wird und der gesendete Body korrekt ist, können Sie externe Dienste wie RequestBin oder Webhook.site verwenden, um temporäre Webhook-URLs einzurichten.

Debugging

discourse_jira_verbose_log: Aktivieren Sie diese Einstellung, um die Payloads sowohl der eingehenden Webhooks als auch der ausgehenden API-Anfragen zu protokollieren.

:discourse2: Bei uns gehostet? Dieses Plugin ist in unserem Enterprise-Plan enthalten.

10 „Gefällt mir“

@vinothkannans Wir haben festgestellt, dass unsere Benutzer den Status dieser Tickets nicht sehen können, sondern nur Administratoren. Kann etwas getan werden, um den “Status” für Benutzer sichtbarer zu machen?

Eine Möglichkeit wäre natürlich, diesen Zitatblock sichtbar zu machen, oder es wäre auch schön, wenn Sie Jira-Status mit Tags zuordnen könnten und das Thema-Tag den Ticketfortschritt widerspiegelt (backlog, in-progress, #complete usw.).

Um Jordans Anliegen zu ergänzen, habe ich einige zusätzliche Ideen zur Verbesserung dieses Plugins.

  1. Möglichkeit, ein JIRA-Ticket zu lösen. Ich sehe keine Option, ein JIRA-Ticket, das ich mit einem Beitrag verknüpft habe, zu lösen oder zu löschen.
  2. Auswählen, welche Gruppen angehängte JIRA-Tickets sehen können. Derzeit scheint es, dass nur Website-Administratoren sie sehen können, aber wir möchten die Möglichkeit haben, eine oder mehrere zusätzliche Gruppen auszuwählen, die sie sehen können.
  3. Sichtbarkeitsstufen. Möglichkeit anzugeben, welcher Teil (welche Teile) des Tickets für Nicht-Administratoren angezeigt wird. Wir möchten zum Beispiel vielleicht, dass alle Gruppen die Ticketnummer und den Status sehen, aber nicht den Titel des Tickets, der sensible Informationen enthalten kann. Dann können wir vertrauenswürdige Gruppen angeben, die den Ticket-Titel sehen können.
2 „Gefällt mir“

Ihre Vorschläge würden die Erfahrung mit diesem Plugin wirklich verbessern.

Wir brauchen wirklich die Möglichkeit, dass der Inhalt einer bestimmten Gruppe (die keine Administratoren ist) angezeigt werden kann.

Gibt es eine OpenProject-Version davon? Das wäre großartig, da wir OpenProject für die Verwaltung unserer Aufgaben verwenden.

@jordan-violet @colin.mckibben Das sind gute Vorschläge, um das Plugin nützlicher zu machen. Ich werde das bei meiner nächsten Arbeit daran berücksichtigen.

1 „Gefällt mir“

Hallo, ich habe eine Frage zur Konfiguration des Plugins. Ich erhalte 500-Fehler beim Erstellen/Anhängen von Issues, daher glaube ich, dass meine Einstellungen nicht ganz richtig sind. Was habe ich falsch gemacht?

Zuerst habe ich die Stelle, an der ich normalerweise auf meine Jira-Instanz zugegriffen habe, in discourse jira url kopiert und eingefügt, obwohl ich mir bei der URL nicht ganz sicher bin, da die URL je nach ausgewählter Jira-Ansicht unterschiedlich ist.

Zuerst habe ich einen zufälligen discourse jira username festgelegt, wobei das discourse jira password aus einem generierten Atlassian API-Token kopiert und eingefügt wurde.



Dann habe ich einen Jira Webhook hinzugefügt und die URL des Jira Webhooks auf die URL meiner Discourse-Instanz plus /jira/issues/webhook?t= gesetzt.

Dann habe ich das Webhook-Geheimnis festgelegt und dieses Geheimnis zurück in das Plugin-Konfigurationsfeld discourse jira webhook token kopiert und eingefügt.

Irgendwelche Gedanken? Hilfe wird sehr geschätzt! Danke.

Kann jemand seine funktionierenden Plugin-Einstellungen in Discourse (natürlich ohne Passwort/Token) teilen, damit ich sehen kann, wie Sie es zum Laufen gebracht haben? Danke!

Ich habe den Webhook-Token wieder in die URL in der Jira-Webhook-Einrichtung kopiert, sodass dort https://example.com/jira/issues/webhook?t=abcdefghijk steht, und auch Ihre discourse_jira_url soll https://modernsquared.atlassian.net/ ohne den Pfad sein.

@vinothkannans Ich habe jedoch noch eine weitere Frage: Ist es möglich, nach dem Anhängen zu ändern, welches Issue an ein Thema angehängt ist, oder die Anhängung einfach zu entfernen/löschen? Wenn nicht, haben Sie darüber nachgedacht, dies zu implementieren?

Danke @mikael.gundhus, ich konnte das Plugin mit Jira verbinden.

Aber ich bin auf eine Merkwürdigkeit gestoßen. Ich bin mir nicht sicher, ob ich der Einzige bin, der auf dieses Problem stößt, aber die Schaltflächen „Create and Attach issues“ scheinen vertauscht zu sein? Wenn ich auf die Schaltfläche „Create Issue“ klicke, bringt mich das Plugin zum Bildschirm „Attach issue“:

Und wenn ich auf die Schaltfläche „Attach issue“ klicke, bringt mich das Plugin zum Bildschirm „Create issue“: MS-155 ist ein bestehendes Problem in Jira. Wenn ich eine neue Aufgabe eingebe, z. B. MS-200, die in Jira nicht existiert, wird mir mitgeteilt: Ein Fehler ist aufgetreten: Sie sind nicht berechtigt, die angeforderte Ressource anzuzeigen.

@mikael.gundhus Ja, es sollte eine Option geben, den vorhandenen Anhang zu entfernen. @ckshen Es scheint, dass die Modal-Fenster falsche Überschriften haben. Wir werden uns in der nächsten Iteration darum kümmern.

Gibt es Pläne, dies für Benutzer zugänglich zu machen, die keine Administratoren/Mods sind? Wir haben interne Teams, die ihre Operationen auf Discourse verlagern möchten, und wie die Dinge stehen, ist der einzige Weg, wie sie das JIra-Tool nutzen können, indem wir ihnen modale Berechtigungen für die gesamte Website geben.

4 „Gefällt mir“

Ich habe dieses Plugin gerade mit Gruppenberechtigungen aktualisiert! Es umfasst standardmäßig Administratoren und muss diese immer einschließen, aber mit diesem Update können Benutzer jetzt Jira-Tickets erstellen, ohne Administrator zu sein. Viel Spaß!

5 „Gefällt mir“

Hallo Leute,

Hat jemand dieses Plugin erfolgreich mit Jira Server oder Datacenter zum Laufen gebracht?

Ich sehe keine Anhangsoption und eine Fehlermeldung in den Protokollen.

Job exception: DiscourseJira::InvalidURI

1 „Gefällt mir“

Bisher haben wir dieses Plugin nur mit APIs für Jira Cloud erstellt. Daher sind Sie bei Jira DC möglicherweise nicht erfolgreich.

Jira Cloud REST-Dokumentation: https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-rest-api-2-issue-createmeta-get
Jira DC/Server REST-Dokumentation: https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples

1 „Gefällt mir“

Danke Natalie, nachdem wir unseren Host unter Sicherheit zu den zulässigen internen Hosts hinzugefügt hatten, konnten wir Probleme verknüpfen und erstellen. Dies ist wahrscheinlich hilfreich für alle, die eine interne Instanz von Jira verwenden. Wir arbeiten noch an der Kommentar-Synchronisierung, aber ich glaube, das ist ein Konfigurationsproblem.

2 „Gefällt mir“

Funktioniert diese Funktion auch mit Jira Service Management Projekten?

Es scheint eine Inkompatibilität zwischen jira und reactions zu geben

1 „Gefällt mir“

Ich habe dies auf unserer selbst gehosteten Jira Data Center-Instanz ausprobiert, stecke aber fest – ich würde es sehr begrüßen, wenn Sie mir helfen könnten.

TL;DR – Ich erhalte eine 403 und HTML zurück, obwohl eine 201 und JSON zurückgegeben werden sollten:

/var/www/discourse/plugins/discourse-jira/lib/discourse_jira/api.rb:63:in 'DiscourseJira::Api.getJSON'

  • Ich habe das Jira Personal Access Token erstellt
  • Ich habe mehrere Pfade für die API ausprobiert: /, /rest, /rest/api, /rest/api/latest :left_arrow: Ich habe überprüft, dass der letzte funktioniert.
  • Unabhängig davon erhalte ich weiterhin HTML statt JSON zurück.

Ich vermute, ich mache etwas bei der Plugin-Konfiguration falsch, aber ich kann nicht sagen, was. Wenn jemand dies mit JIRA Data Center zum Laufen gebracht hat, würde ich mich freuen, wenn ich Ihr Wissen nutzen könnte!

Danke

Bruce