Skip to main content

Beispiel: Confluence Seite erstellen

Im Beispiel soll eine neuen Confluence Seite erstellt werden, sobald ein Ticket vom Typ "Problem" mit dem Close Code "Known Error" geschlossen wird. So können bspw. bekannte Fehler direkt kommuniziert und für alle einsehbar dokumentiert werden.

Das Beispiel erstellt die neue Seite im Confluence als Unterseite zu einer bestehenden Seite mit der ID 123456 im Bereich "BPTEST". Dabei ist es gleich, welche Antwort Confluence liefert ("fire and forget").

Als Authentifizierungsmöglichkeit wird Basic Auth, d. h. eine Kombination aus Nutzername und Passwort genutzt.

Vorbereitung

  • Dynamisches Feld "Close Code" um Wert "Known Error" erweitern

    (s. auch: Ein Dynamisches Feld bearbeiten)

  • Dynamisches Feld Workaround anlegen und in die Ticketaktion Close integrieren

    (s. auch: Eine Aktion anlegen und Eine Aktion konfigurieren )

  • Confluence-Zugangsdaten besorgen

    Im Beispiel: Username / Password

  • ID der Seite im Confluence ermitteln, unter der die zu erstellende Seite angesiedelt sein soll

    Im Beispiel: 123456

  • Erzeugung eines HTTP-Headers für Basic Auth

    Der Wert wird als HTTP-Header benötigt, um sich am Confluence anzumelden.

    Beispielsweise mittels Kommandozeilentool base64:

    someLinuxUnixSystem:~# echo 'Authorization: Basic '"$(echo -n 'UserName:Password' | base64)"
    Authorization: Basic VXNlck5hbWU6UGFzc3dvcmQ=

Konfiguration des Jobs

  1. Grundkonfiguration:

    • Job Typ: Ticket

    • alle weiteren Job-Parameter (Name, Ausführungsplan, Filter etc) können individuell definiert werden

  2. Macro Action 1 - Artikelinhalt in Macro-Variable schreiben

    • Action: Set Variable

    • Variable: ArticleBody

    • Wert: <KIX_ARTICLE_Body>

  3. Macro Action 2 - Aufruf des Webservice

    • Action: Webhook Extended

    • Response: [leer]

    • URL: http://confluence.intra.example.com:8092/rest/api/content/

    • Method: POST

    • Use Proxy: [leer]

    • Proxy: [leer]

    • Headers

      • Content-Type: application/jsonAuthorization:

      • Authorization: Basic VXNlcm5hbWU6UGFzc3dvcmQ=

    • Content

      {
        "type": "page",
        "space": {
          "key": "BPTEST"
        },
        "ancestors": [
          {
            "type": "page",
            "id": "123456"
          }
        ],
        "title": "Known Error <KIX_TICKET_TicketNumber> - <KIX_TICKET_Title>",
        "body": {
          "storage": {
            "value": "<h1>Description</h1>${ArticleBody|JSON} <br/> <h2>Workaround</h2> <KIX_TICKET_DynamicField_Workaround>",
            "representation": "storage"
          }
        }
      }

Verweise