Wird Konfiguriert DevOpsDetails der Change-Anforderung in der Pipeline

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

    Hinweis:
    Konfigurieren von Details zu Change-Anforderungen aus innerhalb eines GitLabPipeline wird nicht unterstützt.

    Die Systemvariable verweist standardmäßig auf den Standard-Subflow, um einen Change im Basissystem automatisch zu schließen. Die DevOps schließt Change bei Pipeline-Abschluss automatisch ( sn_devops.auto_close_change) Bestimmt, wie die Felder „Abschlussinformationen“, „Change-Status“ und „Change-Anforderung“ aktualisiert werden, wenn eine Pipeline abgeschlossen ist. 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 Change-Anforderungsattribute sind in enthalten changeRequestDetailsObjekt.

    Change automatisch schließen

    Legen Sie fest autoCloseChangeParameter bis Wahr/falsch Im Objekt changeRequestDetails beim Erstellen eines Change aus einer Pipeline zum Aktualisieren von Abschlusscode Und Abschlussnotizen Felder und schließen Sie die Change-Anforderung, wenn eine Pipeline abgeschlossen ist. Die Tatsächliches Startdatum Und Tatsächliches Enddatum Feldwerte werden auch 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. Die Abschlussnotizen erhalten ein Suffix mit Text, der angibt, dass die Abschlussinformationen basierend auf der Change-Funktion „automatisch schließen“ aktualisiert wurden.

    Wenn auf „wahr“ festgelegt, wird Abschlusscode Und Abschlussnotizen Felder werden aktualisiert, und das System versucht, die Change-Anforderung zu schließen, wenn die Pipeline abgeschlossen ist.

    Wenn auf „falsch“ festgelegt, wird Abschlusscode Und Abschlussnotizen Felder werden aktualisiert, wenn eine Pipeline abgeschlossen ist, die Change-Anforderung jedoch nicht geschlossen wird.

    Sie können auch festlegen Change automatisch schließen Feldwert für eine Pipeline in der ServiceNow-Anwendung. Wenn Sie auswählen Nur Change Aktualisieren , Abschlusscode Und Abschlussnotizen Felder werden aktualisiert, wenn eine Pipeline abgeschlossen ist und wenn Sie auswählen Aktualisieren und schließen Sie den Change , Die Change-Anforderung wird zusammen mit der Aktualisierung der Abschlussinformationen auch geschlossen.

    Basierend darauf, ob der Change automatisch schließen in der Pipeline oder Spalte angegeben ist, wird der endgültige Status wie folgt berücksichtigt:
    Kennzeichnung für „autoCloseChange“ in Change-Anforderungsattributen Spaltenwert der Änderung automatisch schließen (sn_devops_Pipeline) Endgültiger Status
    wahr Nur Change aktualisieren Aktualisiert den Change und verschiebt den Status in „Schließen“
    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 „Schließen“
    Hinweis:
    Der für das Attribut „autoCloseChange“ in der Pipeline angegebene Wert hat Vorrang vor dem in der Spalte „Change automatisch schließen“ in angegebenen Wert ServiceNow.
    Hinweis:
    • Die Funktion „Change automatisch schließen“ gilt nur für Standard-Pipelines, für die ein einzelner Change erstellt wurde. 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 nicht unterstützt Jenkinsfreestyle-Pipelines und Change-Anforderungen, bei denen die Funktion „Change-Beleg“ aktiviert ist.
    • Für AzureRelease-Pipeline: Der Pipeline-Abschlussstatus wird abgeleitet, indem der Status jeder Phase in der Pipeline konsolidiert wird. Wenn auch nur eine Phase fehlschlägt, gilt die Pipeline als nicht erfolgreich. Wenn auch nur eine Phase teilweise erfolgreich ist, wird die Pipeline mit Problemen als erfolgreich betrachtet.

    Upgrade-Informationen

    Wenn Sie ein Upgrade durchführen, müssen Sie Ihr Orchestration-Tool neu konfigurieren, bevor Sie den Parameter autoCloseChange für festlegen GitHubUnd AzurePipelines erstellen.

    Legen Sie Den Abschlusscode Fest

    Legen Sie fest setCloseCode:Parameter bis Wahr/falsch Basierend auf dem gewünschten Verhalten. Der Standardwert ist „wahr“.

    Wenn auf „wahr“ festgelegt, wird Abschlusscode Und Abschlussnotizen Felder werden wie in den Change-Schrittattributen angegeben aktualisiert, und die Change-Anforderung wird nach der Implementierung verschoben, wenn eine Phase abgeschlossen ist. Sie können dieses Verhalten überschreiben, indem Sie aktivieren Code für automatisches Schließen Funktion. 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 „falsch“ wird die Change-Anforderung nach Abschluss des Auftrags oder der Pipeline nicht aktualisiert und verbleibt im Status „Implementieren“.

    • Abschlussinformationen in der Change-Anforderung sind nicht festgelegt ( Abschlusscode Und Abschlussnotizen Felder werden leer gelassen).
    • Ein Link zur Schrittausführung wird zu hinzugefügt Arbeitsnotizen .

    Change-Anforderungsfelder

    Legen Sie die Feldwerte der Change-Anforderung in 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 Ausführung der Change-Anforderung und des zugehörigen Schritts abgebrochen, und Arbeitsnotizen werden aktualisiert.

    Feldwerte innerhalb von attributes:Parameter sind Schlüssel-Wert-Paare. Das bedeutet, der Schlüssel ist der Feldname in der Vorlage, und der Wert ist die Informationen, die im Feld ausgefüllt werden sollen.

    Sie können verwenden ChangeControl API zum Angeben von Feldern wie type, cmdb_ci, template, assignment_group business_service, standard_change_template, chg_modelUnd erstellen Sie eine Change-Anforderung.

    Wenn Attribute für Change übergeben werden, lautet die Reihenfolge der Priorität wie folgt:

    1. Change-Anforderungsfelder oder changeControl-API.
    2. Werte im Schrittdatensatz.
    3. Werte, die in der Change-Anforderungsvorlage bereitgestellt werden.
    Hinweis:
    Wenn Sie Change-Anforderungen innerhalb der Pipeline konfigurieren, 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 angegeben.

    Tabelle : 1. Change-Anforderungsfelder werden unterstützt
    Nicht unterstützte Felder
    • Risiko
    • Impact
    • Nummer
    • sys_id
    • Risk_Impact_Analysis
    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-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. Change-Anforderungsdetails: Azure-Pipeline
    DevOps Azure-Change-Details.
    Abbildung : 2. Einstellungen auf Auftragsebene – Jenkins
    JenkinsJobEinstellungen.
    Abbildung : 3. Change-Anforderungsdetails – Jenkins
    DevOps JenkinsChange-Details.
    Abbildung : 4. Change-Anforderungsdetails: GitHub
    DevOps GitHub-Change-Details.