Details der Change-Anforderung DevOps innerhalb der Pipeline konfigurieren

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 4 Minuten Lesedauer
  • Konfigurieren Sie, wie die Felder für Abschlussinformationen, Change-Status und Change-Anforderung aus einer Pipeline im Change-Schritt der Pipeline aktualisiert werden.

    Hinweis:
    Das Konfigurieren von Details für Change-Anforderungen aus einer Pipeline GitLab wird nicht unterstützt.

    Standardmäßig verweist die Systemvariable auf den Subflow Standard, um einen Change im Basissystem automatisch zu schließen. Der DevOps-Subflow „Change bei Pipeline-Abschluss automatisch schließen“ (sn_devops.auto_close_change), bestimmt, wie die Felder für Abschlussinformationen, Change-Status und Change-Anforderung aktualisiert werden, wenn eine Pipeline abgeschlossen wird. Wenn Sie einen anwenderdefinierten Subflow angeben möchten, der aktiviert werden muss, wenn eine Pipeline abgeschlossen ist, können Sie diesen Subflow klonen und entsprechend Ihren Anforderungen anpassen.

    Abschlussinformationen und Attribute der Change-Anforderung sind im Objekt changeRequestDetails enthalten.

    Change automatisch schließen

    Legen Sie den Parameter autoCloseChange im Objekt „changeRequestDetails“ auf wahr/falsch fest, wenn Sie einen Change aus einer Pipeline erstellen, um die Felder Abschlusscode und Abschlussnotizen zu aktualisieren und die Change-Anforderung zu schließen, wenn eine Pipeline abgeschlossen ist. Die Feldwerte „Tatsächliches Startdatum“ und „Tatsächliches Enddatum“ werden ebenfalls aktualisiert, wenn die Pipeline abgeschlossen ist. Die Datumswerte basieren auf der Startzeit der Pipeline oder der Startzeit der ersten Phase der Pipeline und der Endzeit der Pipeline oder der Endzeit der letzten Phase der Pipeline. Den Abschlussnotizen wird Text vorangestellt, der angibt, dass die Abschlussinformationen basierend auf der Funktion „Change automatisch schließen“ aktualisiert wurden.

    Bei „true“ werden die Felder Abschlusscode und Abschlussnotizen aktualisiert, und das System versucht, die Change-Anforderung zu schließen, wenn die Pipeline abgeschlossen ist.

    Bei Festlegung auf „false“ werden die Felder Abschlusscode und Abschlussnotizen aktualisiert, wenn eine Pipeline abgeschlossen, die Change-Anforderung jedoch nicht geschlossen wird.

    Sie können auch den Wert des Felds Change automatisch schließen für eine Pipeline in der Anwendung ServiceNow festlegen. Wenn Sie Nur Update Changeauswählen, werden die Felder Abschlusscode und Abschlussnotizen aktualisiert, wenn eine Pipeline abgeschlossen wird. Wenn Sie Aktualisieren und Change schließenauswählen, wird die Change-Anforderung ebenfalls geschlossen und die Abschlussinformationen aktualisiert.

    Je nachdem, ob der Change für das automatische Schließen in der Pipeline oder Spalte angegeben ist, wird folgender Endstatus berücksichtigt:
    autoCloseChange-Kennzeichnung in Change-Anforderungsattributen Change-Spaltenwert automatisch schließen (sn_devops_pipeline) Endgültiger Status
    wahr Nur Change aktualisieren Aktualisiert den Change und verschiebt den Status in „Geschlossen“.
    falsch Change aktualisieren und schließen Aktualisiert nur den Change
    - Nur Change aktualisieren Aktualisiert nur den Change
    - Change aktualisieren und schließen Aktualisiert den Change und verschiebt den Status in „Geschlossen“.
    Hinweis:
    Der für das Attribut autoCloseChange in der Pipeline angegebene Wert hat Vorrang vor dem Wert, der in der Spalte „Change automatisch schließen“ in ServiceNowangegeben ist.
    Hinweis:
    • Die Funktion „Change automatisch schließen“ gilt nur für Standard-Pipelines mit einem einzelnen erstellten Change. Wenn mehrere Changes vorhanden sind, wird der letzte Change für das automatische Schließen berücksichtigt.
    • Die Funktion „Change automatisch schließen“ wird für Jenkins Freestyle-Pipelines und Change-Anforderungen nicht unterstützt, bei denen die Funktion „Change-Beleg“ aktiviert ist.
    • Für eine Azure -Release-Pipeline wird der Pipeline-Abschlussstatus durch Konsolidierung des Status jeder Phase in der Pipeline abgeleitet. Wenn auch nur eine Phase fehlschlägt, wird die Pipeline als nicht erfolgreich betrachtet. Wenn auch nur eine Phase teilweise erfolgreich ist, gilt die Pipeline als erfolgreich mit Problemen.

    Informationen zu Upgrades

    Wenn Sie ein Upgrade durchführen, müssen Sie Ihr Orchestration-Tool neu konfigurieren, bevor Sie den Parameter autoCloseChange für die Build-Pipelines GitHub und Azure festlegen.

    Legen Sie den Lösungscode fest

    Legen Sie den Parameter setCloseCode: basierend auf dem gewünschten Verhalten auf „wahr“/„falsch“ fest. Der Standardwert ist „true“.

    Wenn sie auf „true“ festgelegt ist, werden die Felder Abschlusscode und Abschlussnotizen wie in den Attributen des Change-Schritts angegeben aktualisiert, und die Change-Anforderung wird nach Abschluss einer Phase nach der Implementierung verschoben. Sie können dieses Verhalten überschreiben, indem Sie die Funktion Code automatisch schließen aktivieren. Die Funktion „setCloseCode“ wird deaktiviert, wenn autoCloseChange aktiviert und auf „wahr“ oder „falsch“ festgelegt ist. Weitere Informationen finden Sie unter Change automatisch schließen. Verwenden Sie die Funktion autoCloseChange, um genauere Details zu Change-Anforderungen zu erhalten.

    Bei Festlegung auf „false“ wird die Change-Anforderung nach Abschluss des Auftrags oder der Pipeline nicht aktualisiert und verbleibt im Status Implementieren.

    • Abschlussinformationen sind in der Change-Anforderung nicht festgelegt (die Felder„Abschlusscode“ und „Abschlussnotizen“ bleiben leer).
    • Den Arbeitsnotizenwird ein Link zur Schrittausführung hinzugefügt.

    Change-Anforderungsfelder

    Legen Sie Feldwerte für Change-Anforderungen innerhalb der Pipeline für die angegebene Change-Anforderungsvorlage fest.
    Hinweis:
    • Wenn ein angegebenes Feld ein abhängiges Feld hat, das erforderlich ist, müssen Sie auch dieses Attribut festlegen.
    • Wenn das Attribut für das abhängige Pflichtfeld nicht festgelegt ist, werden die Change-Anforderung und die Ausführung des zugehörigen Schritts abgebrochen und die Arbeitsnotizen aktualisiert.

    Feldwerte innerhalb des Parameters attributes: sind Schlüssel-Wert-Paare. Das heißt, der Schlüssel ist der Feldname in der Vorlage und der Wert sind die Informationen, die in das Feld eingetragen werden sollen.

    Sie können die changeControl- API verwenden, um Felder wie type, cmdb_ci, template, assignment_group business_service, standard_change_template, chg_model anzugeben und eine Change-Anforderung zu erstellen.

    Wenn Attribute zur Änderung übergeben werden, gilt folgende Prioritätsreihenfolge:

    1. Change-Anforderungsfelder oder changeControl-API.
    2. Werte im Schrittdatensatz.
    3. In der Change-Anforderungsvorlage bereitgestellte Werte.
    Hinweis:
    Bei der Konfiguration von Change-Anforderungen aus der Pipeline werden Change-Typ- und Vorlagenfelder immer aus einer Quelle übernommen. Sie können keine Kombination von Attributen aus der API-Anforderung und dem Change-Anforderungsformular verwenden.

    Alle Felder in der Tabelle „Change-Anforderung“ [change_request] werden unterstützt, sofern nicht anders angegeben.

    Tabelle : 1. Felder für Change-Anforderungen unterstützt
    Nicht unterstützte Felder
    • Risiko
    • impact
    • Nummer
    • sys_id
    • risk_impact_anasys
    Unterstützte Felder Alle verbleibenden Felder in der Tabelle „Change-Anforderung“ [change_request].
    Hinweis:
    Der Attributname muss mit dem Feldnamen der Change-Anforderung übereinstimmen, und der angegebene Wert muss gültig sein.

    Beispiel für JSON-Nutzlast

    {
       "callbackURL":"http://192.168.0.4:3000/jenkins/sn-devops/pipeline_839b7605-b98d-4831-bc87-96829de7da37",
       "orchestrationTaskURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests#deploy/",
       "isMultiBranch":"false",
       "orchestrationTaskName":"java_sample_tests#deploy",
       "orchestrationTaskDetails":{
          "triggerType":"upstream",
          "upstreamTaskExecutionURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests/129/execution/node/35/wfapi/describe",
          "taskExecutionURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests/129/execution/node/50/wfapi/describe"
       },
       "changeRequestDetails":{
          "setCloseCode":false,
          "attributes":{
             "sys_created_by":"1832fbe1d701120035ae23c7ce610369",
             "sys_updated_by":"56826bf03710200044e0bfc8bcbe5dca",
             "requested_by":{
                "name":"Abel Tuter"
             },
             "watch_list":[
                {
                   "name":"Abel Tuter"
                },
                {
                   "name":"Aileen Mottern"
                },
                {
                   "name":"Alejandra Prenatt"
                },
                "56826bf03710200044e0bfc8bcbe5dca"
             ],
             "work_notes_list":[
                "56826bf03710200044e0bfc8bcbe5dca",
                "46c6f9efa9fe198101ddf5eed9adf6e7",
                "d8f57f140b20220050192f15d6673a98"
             ],
             "assigned_to":"1832fbe1d701120035ae23c7ce610369",
             "category":"Service",
             "sys_created_on":"2021-02-09 18:58:41",
             "priority":"2",
          }
       }
    }

    Pipeline-Beispiele

    Abbildung : 1. Details der Change-Anforderung: Azure-Pipeline
    DevOps Azure-Change-Details.
    Abbildung : 2. Einstellungen auf Positionsebene – Jenkins
    JenkinsJobSettings
    Abbildung : 3. Details der Change-Anforderung – Jenkins
    DevOps Jenkins Change-Details.
    Abbildung : 4. Details der Change-Anforderung – GitHub
    DevOps GitHub Change-Details.