DevOps-API

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 78 Minuten Lesedauer
  • Die DevOps- API bietet Endpunkte, die die Interaktion mit externen DevOps-Tools ermöglichen.

    Mit dieser REST-API können Integratoren:

    • Rufen Sie die verfügbaren DevOps-Tools ab, die einer Instanz zugeordnet sind.
    • Rufen Sie das Schemaobjekt für eine Coderessource, einen Plan oder eine Orchestration-Ressource ab.
    • Überprüfen Sie, ob eine Orchestration-Aufgabe unter Change-Kontrolle steht, und überprüfen Sie ihren Change-Kontrollstatus.
    • Erstellen Sie Rückrufe, um sie Aufgabenausführungen unter Change-Steuerung zuzuordnen.
    • Senden Sie verschiedene Event-Nutzlasten, die in normalisierte Objekte umgewandelt und als Code-, Orchestration- und Planobjekte gespeichert werden.
    • Durchsuchen Sie einen Commit, eine Verzweigung oder ein Repository mithilfe von codierten Abfragen und bestimmten Such-/Sortierkriterien.
    • Registrieren Sie Artefaktversionen und -pakete zusammen mit der zugehörigen Pipeline-Ausführung und ihren Commits.
    • Erstellen und verwalten Sie Onboarding-Anwendungs- und Tool-Events.

    Weitere Informationen finden Sie unter DevOps.

    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    DevOps – GET /devops/code/schema

    Gibt das Schemaobjekt für eine angegebene Coderessource zurück: Commit, Repository oder Verzweigung.

    Sobald Sie das erforderliche Schemaobjekt haben, verwenden Sie es, um den Anforderungstext für den entsprechenden POST-Aufruf zu erstellen. POST /code/commit, POST /code/repositoryoder POST /code/branch.

    Hinweis:
    Dieser Endpunkt gibt nur die erforderlichen Anforderungstextelemente zurück.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/code/schema

    Standard-URL: /api/sn_devops/devops/code/schema

    Unterstützte Anforderungsparameter

    Tabelle : 1. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 2. Abfrageparameter
    Name Beschreibung
    Ressource Erforderlich. Typ des zurückzugebenden Ressourcenschemas.

    Gültige Werte (Groß-/Kleinschreibung beachten):

    • Commit
    • Repository
    • Verzweigung

    Datentyp: Zeichenfolge

    Tabelle : 3. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    Keine

    Kopfzeilen

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 4. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Tabelle : 5. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 6. Statuscodes
    Statuscode Beschreibung
    200 Anforderung erfolgreich abgeschlossen.
    401 Ungültige oder fehlende Authentifizierung.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    Verzweigung Beschreibung der Verzweigung, in der der Code-Commit durchgeführt wurde.

    Datentyp: Objekt

    "branch": {
      "name": "String",
      "path": "String"
    }
    branch.name Name der Verzweigung, in der der Code-Commit durchgeführt wurde.

    Datentyp: Zeichenfolge

    verzweigung.pfad Relativer Pfad der Verzweigung.

    Datentyp: Zeichenfolge

    Commits Beschreibung der Commits.

    Datentyp: Array

    "commits": [
       {
          "committedDate": "String",
          "committer": Object,
          "details": Array,
          "id": "String",
          "url": "String"      
       }
    ]
    commits.committedDate Datum/Uhrzeit, zu der der Code im Quelltool DevOps festgeschrieben wurde.

    Datentyp: Zeichenfolge

    Format: ISO 8601 mit Zeitzonen-Offset

    Beispiel: 1970-01-01T08:15:30-05:00

    commits.committer Beschreibung der Person/Entität, die den Commit angefordert hat.

    Datentyp: Objekt

    "committer": {
      "email": "String"
    }
    commits.committer.email E-Mail-Adresse der Person, die den Commit angefordert hat.

    Datentyp: Zeichenfolge

    commits.details Details des Commits.
    Hinweis:
    Das Einbeziehen von Details in einen Commit ist nicht obligatorisch. Dieser Endpunkt gibt ein leeres Array für Details zurück, wenn sie nicht im Commit enthalten sind.

    Datentyp: Array

    "details": [
       {
          "action": "String",
          "additions": Number,
          "changes": Number,
          "deletions": Number,
          "file": "String",
          "totalChanges": Number
       }
    ]
    commits.details.aktion Aktion, die für die Datei ausgeführt wurde.

    Datentyp: Zeichenfolge

    commits.details.additions Gesamtzahl der Ergänzungen in der Datei.

    Datentyp: Zahl

    commits.details.changes Gesamtzahl der vorgenommenen Änderungen.

    Datentyp: Zahl

    commits.details.löschungen Gesamtanzahl der Löschvorgänge in der Datei.

    Datentyp: Zahl

    commits.details.file Pfad der Datei, die relativ zur Verzweigung geändert wurde.

    Datentyp: Zeichenfolge

    commits.details.changes insgesamt Gesamtzahl der Hinzufügungen und Löschungen.

    Datentyp: Zahl

    commits.id Bezeichner der Quellplattform oder der Commit-SHA.

    Datentyp: Zeichenfolge

    commits.url URL des Commits, z. B. „https://github.com/mycompany/mobileplatform/commit/3fa85f6457174562b3fc2c963f66afa6“.

    Datentyp: Zeichenfolge

    Name Name der Verzweigung oder des Repositorys, z. B. „Master“ oder „Platform-Mobile“.

    Datentyp: Zeichenfolge

    path Relativer Pfad der Verzweigung.

    Datentyp: Zeichenfolge

    Repository Beschreibung des Repositorys, in dem der Commit ausgeführt wurde.

    Datentyp: Objekt

    "repository": {
      "name": "String",
      "url": "String"
    }
    Repository.name Name des Repositorys.

    Datentyp: Zeichenfolge

    Repository.URL URL des Repositorys im Quelltool DevOps.

    Datentyp: Zeichenfolge

    URL URL des Repositorys, z. B. „https://github.com/mycompany/mobileplatform“.

    Datentyp: Zeichenfolge

    Beispiel für eine cURL-Anforderung für resource=branch

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/code/schema?resource=branch" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
       "result": {
          "name": "Master",
          "path": "refs/heads/master",
          "repository": {
             "name": "Platform-Mobile",
             "url": "https://github.com/mycompany/mobileplatform"
          }
       }
    }

    Beispiel für eine cURL-Anforderung für resource=commit

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/code/schema?resource=commit" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
       "result": {
          "repository": {
             "name": "Platform-Mobile",
             "url": "https://github.com/mycompany/mobileplatform"
          },
          "branch": {
             "name": "refs/heads/master"
          },
          "commits": [
             {
                "committer": {
                   "email": "name@email.com"
                },
                "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                "url": "https://github.com/mycompany/mobileplatform/commit/3fa85f6457174562b3fc2c963f66afa6",
                "committedDate": "2022-01-01T08:15:30-05:00",
                "details": [
                   {
                      "action": "edit",
                      "changes": "",
                      "file": "/azure-pipelines.yml",
                      "additions": 1,
                      "deletions": 0,
                      "totalChanges": 1
                   }
                ]
             }
          ]
       }
    }

    Beispiel für eine cURL-Anforderung für resource=repository

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/code/schema?resource=repository" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
        "result": {
            "name": "Platform-Mobile",
            "url": "https://github.com/mycompany/mobileplatform"
        }
    }

    DevOps – GET /devops/onboarding/status

    Gibt den aktuellen Status des angegebenen Onboarding-Ereignisse zurück, das vom DevOps -Service verarbeitet wird oder asynchron verarbeitet wird.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/onboarding/status

    Standard-URL: /api/sn_devops/devops/onboarding/status

    Unterstützte Anforderungsparameter

    Tabelle : 7. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 8. Abfrageparameter
    Name Beschreibung
    id Eindeutiger Bezeichner des Onboarding-Ereignisse, dessen Status zurückgegeben werden soll. Dieser Wert wird in den Rückgabeergebnissen des Endpunkts angegeben, der die Event-Anforderung aufgerufen hat, z. B. /devops/onboarding/app oder /devops/onboarding/tool.

    Datentyp: Zeichenfolge

    Tabelle : 9. Anforderungstextparameter
    Name Beschreibung
    Keine

    Kopfzeilen

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 10. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Tabelle : 11. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 12. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    202 Ausstehend – Die Onboarding-Anforderung wurde erstellt und der Service DevOps verarbeitet die Anforderung.
    207 Teilweiser Erfolg – Die Onboarding-Anforderung wurde erstellt und der DevOps -Service verarbeitet die Anforderung.
    400 Fehlgeschlagen: Das Onboarding-Ereignis ist fehlgeschlagen.
    404 Fehlgeschlagen – Der Endpunkt konnte keine Anforderung finden, die der angegebenen Event-ID entspricht.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    Ergebnis Ergebnisse der Onboarding-Anforderung.
    Datentyp: Objekt
    "result": {
      "code": "String",
      "importRequestsSysIds": "[Array],
      "messageDetails": {Object],
      "onboardingRequestID": "String",
      "status": "String"
    }
    result.code HTTP-Statuscode.

    Datentyp: Zeichenfolge

    result.importRequestsSysIds Liste der Importanforderungen, die als Teil der Onboarding-Anforderung erstellt wurden.

    Datentyp: Array von Zeichenfolgen

    result.messageDetails Details zum Fortschritt des Onboarding-Ereignisse.
    Datentyp: Objekt
    "messageDetails": {
      "apps": [Array],
      "pipelines": [Array],
      "plans": [Array],
      "repositories": [Array],
      "status": "String",
      "toolResponse": [Array]
    }
    result.messageDetails.apps Array von Objekten, die die Apps definieren, die in der zugeordneten Instanz ServiceNow erstellt werden sollen.

    Datentyp: Array

    "apps": [{
      "appId": "String",
      "message": "String",
      "name": "String",
      "status": "String",
    }]
    result.messageDetails.apps.appId Sys_id der Anwendung, die beim Onboarding der Anwendung generiert wurde. Befindet sich in der Tabelle „Apps“ [sn_devops_app].

    Datentyp: Zeichenfolge

    result.messageDetails.apps.message Nachricht, die den Status des Anwendungs-Onboarding beschreibt.

    Datentyp: Zeichenfolge

    result.messageDetails.apps.name Name der Anwendung, für die das Onboarding durchgeführt wird.

    Datentyp: Zeichenfolge

    result.messageDetails.apps.status Aktueller Status des Onboarding der Anwendung.
    Mögliche Werte:
    • Fehlgeschlagen
    • Teilweiser Erfolg
    • Erfolg

    Datentyp: Zeichenfolge

    result.messageDetails.pipelines Liste der Pipelines, die dem Onboarding-Ereignis zugeordnet sind, und die entsprechenden Details.

    Datentyp: Array

    "pipelines": [{
      "changeStepAssociation": [Array],
      "errors": "String",
      "message": "String",
      "name": "String",
      "status": "String",
    }]
    result.messageDetails.pipelines.changeStepAssociation Array von Objekten, die Change-Schritte beschreiben, die dem Onboarding zugeordnet sind.

    Datentyp: Array

    "changeStepAssociation": [{
      "changeStepName": "String",
      "status": "String",
      "summary": "String",
    }]
    result.messageDetails.pipelines.changeStepAssociation.changeStepName Name des Change-Schritts.

    Datentyp: Zeichenfolge

    result.messageDetails.pipelines.changeStepAssociation.status Status der Zuordnung des Change-Schritts zur Pipeline.
    Mögliche Werte:
    • Fehlgeschlagen
    • Erfolg

    Datentyp: Zeichenfolge

    result.messageDetails.pipelines.changeStepAssociation.summary Zusammenfassung des Status der Change-Schritt-Zuordnung.

    Datentyp: Zeichenfolge

    result.messageDetails.pipelines.errors Liste der Fehler, die beim Zuordnen der Pipeline erkannt wurden.

    Datentyp: Array

    result.messageDetails.pipelines.message Nachricht, die den Status der Pipeline-Zuordnung beschreibt.

    Datentyp: Zeichenfolge

    result.messageDetails.pipelines.name Name der Pipeline.

    Datentyp: Zeichenfolge

    result.messageDetails.pipelines.status Status der Pipelinezuordnung.

    Datentyp: Zeichenfolge

    result.messageDetails.plans Liste der Pläne, die dem Onboarding-Ereignis zugeordnet sind, und die entsprechenden Details.

    Datentyp: Array

    "plans": [{
      "errors": "String",
      "message": "String",
      "name": "String",
      "status": "String",
    }]
    result.messageDetails.plans.errors Liste der Fehler, die beim Zuordnen des Plans erkannt wurden.

    Datentyp: Array

    result.messageDetails.plans.message Nachricht, die den Status der Pipeline-Zuordnung beschreibt.

    Datentyp: Zeichenfolge

    result.messageDetails.plans.name Name des Plans.

    Datentyp: Zeichenfolge

    result.messageDetails.plans.status Status der Planzuordnung.

    Datentyp: Zeichenfolge

    result.messageDetails.repositories Liste der Repositorys, die dem Onboarding-Ereignis zugeordnet sind, und die entsprechenden Details.

    Datentyp: Array

    "repositories": [{
      "configureStatus": {Object}, 
      "name": "String",
      "status": "String",
    }]
    result.messageDetails.repositories.configureStatus Details des Webhook-Konfigurationsstatus für das Repository.

    Datentyp: Objekt

    "configureStatus": {
      "message": "String",
      "status": "String",
    }
    result.messageDetails.repositories.configureStatus.message Nachricht, die den aktuellen Webhook-Konfigurationsstatus beschreibt

    Datentyp: Zeichenfolge

    result.messageDetails.repositories.configureStatus.status Status der Webhook-Konfiguration

    Datentyp: Zeichenfolge

    result.messageDetails.repositories.message Nachricht, die den aktuellen Repository-Zuordnungsstatus beschreibt.

    Datentyp: Zeichenfolge

    result.messageDetails.repositories.name Name des Repositorys.

    Datentyp: Zeichenfolge

    result.messageDetails.repositories.status Status der Repository-Zuordnung.

    Datentyp: Zeichenfolge

    result.messageDetails.status Status der Onboarding-Anforderung.
    Mögliche Werte:
    • Fehlgeschlagen
    • Teilweiser Erfolg
    • Erfolg

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse Array von Objekten, die die Tools für das Onboarding innerhalb der zugeordneten ServiceNow Instanz definieren.

    Datentyp: Array

    "toolResponse": [{
      "configureStatus": {Object},
      "connectStatus": {Object},
      "createStatus": {Object},
      "discoveryStatus": {Object},
      "name": "String",
      "status": "String",
      "type": "String"
    }]
    result.messageDetails.toolResponse.configureStatus Beschreibt den Konfigurationsstatus des Tools. Im Erfolgsfall werden status und messagezurückgegeben. Im Falle eines Fehlers werden status und errorzurückgegeben.

    Datentyp: Objekt

    "configureStatus": {
      "error": "String",
      "message": "String",
      "status": "String"
    }
    result.messageDetails.toolResponse.configureStatus.error Während der Toolkonfiguration erkannte Fehler.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.configureStatus.message Nachricht, die den erfolgreichen Status der Toolkonfiguration beschreibt.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.configureStatus.status Status der Toolkonfiguration.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.connectStatus Beschreibt den Verbindungsstatus des Tools. Im Erfolgsfall werden status und messagezurückgegeben. Im Falle eines Fehlers werden status und errorzurückgegeben.

    Datentyp: Objekt

    "connectStatus": {
      "error": "String",
      "message": "String",
      "status": "String"
    }
    result.messageDetails.toolResponse.connectStatus.error Während der Toolverbindung erkannte Fehler.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.connectStatus.message Nachricht, die den erfolgreichen Status der Toolverbindung beschreibt.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.connectStatus.status Status der Toolverbindung.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.createStatus Beschreibt den Erstellungsstatus des Tools. Im Erfolgsfall werden status und messagezurückgegeben. Im Falle eines Fehlers werden status und errorzurückgegeben.

    Datentyp: Objekt

    "createStatus": {
      "error": "String",
      "message": "String",
      "status": "String"
    }
    result.messageDetails.toolResponse.createStatus.error Während der Toolerstellung erkannte Fehler.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.createStatus.message Nachricht, die den erfolgreichen Status der Toolerstellung beschreibt.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.createStatus.status Status der Toolerstellung.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.discoveryStatus Beschreibt den Erkennungsstatus des Tools. Im Erfolgsfall werden status und messagezurückgegeben. Im Falle eines Fehlers werden status und errorzurückgegeben.

    Datentyp: Objekt

    "discoveryStatus": {
      "error": "String",
      "imports: [Array],
      "message": "String",
      "status": "String"
    }
    result.messageDetails.toolResponse.discoveryStatus.error Während der Tool-Erkennung erkannte Fehler.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.discoveryStatus.imports Array von Objekten, die jede erkannte Entität beschreiben.

    Datentyp: Array

    "imports": [{
      "details": "String",
      "id": "String",
      "status": "String"
    }]
    result.messageDetails.toolResponse.discoveryStatus.imports.details Details, die den durchgeführten Import beschreiben.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.discoveryStatus.imports.id Sys_id der Importanforderung. Befindet sich in der Tabelle „sn_devops_m2m_inbound_event_import_request“.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.discoveryStatus.imports.status Status des Imports.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.discoveryStatus.message Nachricht, die den Status der Tool-Erkennung beschreibt.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.discoveryStatus.status Status der Tool-Erkennung.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.name Name des Tools, für das das Onboarding durchgeführt wird.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.status Status des Tool-Onboarding.

    Datentyp: Zeichenfolge

    result.messageDetails.toolResponse.type Typ des Tools, z. B. Jira oder Jenkins.

    Datentyp: Zeichenfolge

    result.onboardingRequestID Eindeutiger Identifier der Onboarding-Anforderung. Verwenden Sie diesen Wert beim Aufruf des Endpunkts /devops/onboarding/status, um den Status des zugehörigen Tool-Onboarding-Prozesses abzurufen.

    Datentyp: Zeichenfolge

    result.status Status der Onboarding-Anforderung.
    Mögliche Werte:
    • Fehlgeschlagen
    • Teilweiser Erfolg
    • Erfolg

    Datentyp: Zeichenfolge

    cURL-Anforderung

    Das folgende Beispiel zeigt die Statusanforderung eines Tool-Onboardings.

    curl -X GET "https://servicenow-instance/api/sn_devops/v1/devops/onboarding/status?id=IBE0001603" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -u "username":"password" \

    {
        "result": {
            "code": "207",
            "onboardingRequestID": "IBE0001603",
            "status": "partial-success",
            "messageDetails": {
                "status": "Partial Success",
                "toolResponse": [
                    {
                        "name": "Primary Azure",
                        "type": "Azure DevOps",
                        "status": "Partial Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Failed",
                            "error": "Method failed: (/testFirst/_apis/work/boards) with code: 401 - Invalid username/password combo"
                        }
                    },
                    {
                        "name": "Primary Jenkins",
                        "type": "Jenkins",
                        "status": "Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Success",
                            "message": "Connected successfully"
                        },
                        "discoveryStatus": {
                            "status": "Success",
                            "message": "Discovered successfully",
                            "imports": [
                                {
                                    "status": "completed",
                                    "id": "2a4d216bdb2d2450fe4fd6a75e9619c3",
                                    "details": "Discovered 1 new job(s) and 3 new pipeline(s)\n"
                                }
                            ]
                        }
                    },
                    {
                        "name": "Primary GitHub",
                        "type": "GitHub",
                        "status": "Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Success",
                            "message": "Connected successfully"
                        },
                        "discoveryStatus": {
                            "status": "Success",
                            "message": "Discovered successfully",
                            "imports": [
                                {
                                    "status": "completed",
                                    "id": "7f4d616bdb2d2450fe4fd6a75e9619c2",
                                    "details": "Discovered 5 new repositories. "
                                }
                            ]
                        }
                    },
                    {
                        "name": "Primary Bitbucket",
                        "type": "BitBucket",
                        "status": "Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Success",
                            "message": "Connected successfully"
                        },
                        "discoveryStatus": {
                            "status": "Success",
                            "message": "Discovered successfully",
                            "imports": [
                                {
                                    "status": "completed",
                                    "id": "815da16bdb2d2450fe4fd6a75e9619d0",
                                    "details": "Discovered 11 new repositories. "
                                }
                            ]
                        }
                    },
                    {
                        "name": "Primary Gitlab",
                        "type": "GitLab",
                        "status": "Partial Success",
                        "createStatus": {
                            "status": "Success",
                            "message": "Created successfully"
                        },
                        "connectStatus": {
                            "status": "Failed",
                            "error": "The current operation ended in state: ERROR"
                        }
                    }
                ],
                "importRequestsSysIds": [
                    "2a4d216bdb2d2450fe4fd6a75e9619c3",
                    "7f4d616bdb2d2450fe4fd6a75e9619c2",
                    "815da16bdb2d2450fe4fd6a75e9619d0"
                ]
            }
        }
    }

    cURL-Anforderung

    Das folgende Beispiel zeigt die Statusanforderung eines Anwendungs-Onboardings.

    curl -X POST "https://servicenow-instance/api/sn_devops/v1/devops/onboarding/status?onboardingRequestID=IBE0001604" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -u "username":"password" \

    {
        "result": {
            "code": "207",
            "onboardingRequestID": "IBE0001604",
            "status": "partial-success",
            "messageDetails": {
                "status": "Partial Success",
                "apps": [
                    {
                        "name": "Bike Rentals Service",
                        "status": "Success",
                        "appId": "c7fd696bdb2d2450fe4fd6a75e961993",
                        "message": "App by name 'Bike Rentals Service' has been successfully created"
                    }
                ],
                "pipelines": [
                    {
                        "name": "Bike Rentals",
                        "status": "Success",
                        "message": "Successfully associated with app 'Bike Rentals Service'",
                        "changeStepAssociation": [
                            {
                                "status": "Success",
                                "changeStepName": "Prod",
                                "summary": "Change step with name 'Prod' has been created"
                            }
                        ]
                    }
                ],
                "repositories": [
                    {
                        "name": "nowdevops01/BikeRentals",
                        "status": "Partial Success",
                        "message": "Successfully associated with app 'Bike Rentals Service'",
                        "configureStatus": {
                            "status": "Failed",
                            "message": "Webhook configuration failed due to empty credentials for repository by name nowdevops01/BikeRentals in tool Primary GitHub"
                        }
                    }
                ],
                "plans": [
                    {
                        "status": "Failed",
                        "name": "testFirst",
                        "errors": [
                            "Plan by name 'testFirst' does not exist in tool Primary Azure"
                        ]
                    }
                ]
            }
        }
    }

    DevOps – GET /devops/orchestration/changeControl

    Überprüft, ob die Orchestration-Aufgabe unter Change-Kontrolle steht.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/orchestration/changeControl

    Standard-URL: /api/sn_devops/devops/orchestration/changeControl

    Unterstützte Anforderungsparameter

    Tabelle : 13. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 14. Abfrageparameter
    Name Beschreibung
    OrchestrationTaskName Name der zu überprüfenden Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    testConnection Kennzeichnung, die angibt, ob die End-to-End-Verbindung zwischen der Instanz und dem DevOps -Tool getestet werden soll.
    Gültige Werte:
    • true: Testet die End-to-End-Verbindung.
    • false: Testen Sie die End-to-End-Verbindung nicht.

    Datentyp: Boolesch

    Standardwert: false

    toolId Erforderlich. Sys_id des Orchestration-Tools. Befindet sich in der Tabelle „Orchestration-Tool“ [sn_devops_orchestration_tool].

    Datentyp: Zeichenfolge

    Tooltyp Typ des Tools.

    Gültige Werte:

    Jenkins

    Datentyp: Zeichenfolge

    Tabelle : 15. Anforderungstextparameter
    Name Beschreibung
    Keine

    Kopfzeilen

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 16. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Tabelle : 17. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 18. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    401 Ungültige oder fehlende Authentifizierung.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Antworttextparameter (JSON oder XML)

    Name Beschreibung
    changeSteuerung Kennzeichnung, die angibt, ob die Orchestration-Aufgabe unter Change-Steuerung steht.
    Mögliche Werte:
    • true: Unter Change-Kontrolle.
    • false: Nicht unter Change-Kontrolle

    Datentyp: Boolesch

    Unter Change-Kontrolle und mit API v2

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v2/devops/orchestration/changeControl?toolId=1c219f7e8708f1508ca933383cbb3543&orchestrationTaskName=Platform-Analytics-UAT-Deployment&orchestrationTaskURL=https%253A%252F%252Fjenkins.mycompany.com%253A8080%252Fjob%252FMobile-Platform-deploy%252F&toolType=jenkins" 
    -H "accept: application/json"\
    -H "Authorization: sn_devops.DevOpsToken 1c219f7e8708f1508ca933383cbb3543:FtN13dfDuahYEtdfDvhHorh0QPp9na3u"

    Antworttext.

    {
    "result": {
      "changeControl": true,
      "status": "Success" 
      } 
    }

    Nicht unter Change-Kontrolle und mit API v1

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeControl?toolId=f0ca45679323008b52f3b457415ae6&orchestrationTaskName=Platform-Analytics-UAT-Deployment&orchestrationTaskURL=https%253A%252F%252Fjenkins.mycompany.com%253A8080%252Fjob%252FMobile-Platform-deploy%252F&toolType=jenkins" 
    -H "accept: application/json"\
    -u "username":"password"

    Antworttext.

    {
        "result": {
            "changeControl": false
        }
    }

    DevOps – GET /devops/orchestration/changeInfo

    Ruft Change-Anforderungsdetails für eine angegebene Ausführung der Orchestration-Pipeline ab.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/orchestration/changeInfo

    Standard-URL: /api/sn_devops/devops/orchestration/changeInfo

    Unterstützte Anforderungsparameter

    Tabelle : 19. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 20. Abfrageparameter
    Name Beschreibung
    branchName Name der Verzweigung, die der Orchestration-Aufgabe zugeordnet ist.
    Hinweis:
    Sie sollten diesen Parameter angeben, wenn Sie auf Pipelines mit mehreren Verzweigungen verweisen, da die Antwort sonst möglicherweise falsche Change-Details enthält.

    Datentyp: Zeichenfolge

    buildNumber Erforderlich. Pipeline-Build-Nummer im Orchestration-Tool.

    Datentyp: Zeichenfolge

    pipelineName Optional für Jenkins Freestyle- oder Miven-Projekte, für alle anderen erforderlich. Name der Orchestration-Pipeline

    Datentyp: Zeichenfolge

    projectName Erforderlich für Jenkins Freestyle- oder Mava-Projekte, für alle anderen optional. Projektname des Orchestration-Tools.

    Datentyp: Zeichenfolge

    stageName Optional für Jenkins Freestyle- oder Miven-Projekte, für alle anderen erforderlich. Name der Orchestration-Stufe.

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    toolId Erforderlich. Sys_id des Orchestration-Tools. Befindet sich in der Tabelle „Orchestration-Tool“ [sn_devops_orchestration_tool].

    Datentyp: Zeichenfolge

    Tabelle : 21. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    Keine

    Kopfzeilen

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 22. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Tabelle : 23. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 24. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    400 Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt.
    404 Nicht gefunden. Das angeforderte Element wurde nicht gefunden.

    Antworttextparameter (JSON oder XML)

    Name Beschreibung
    changeGefunden Kennzeichnung, die angibt, ob die Change-Anforderung gefunden wurde.
    Mögliche Werte:
    • true: Change-Anforderung wurde gefunden.
    • false: Change-Anforderung wurde nicht gefunden.

    Datentyp: Boolesch

    Nummer Nummer der Change-Anforderung.

    Datentyp: Zeichenfolge

    phase Aktuelle Phase.

    Datentyp: Zeichenfolge

    Phase_state Status der aktuellen Phase.

    Datentyp: Zeichenfolge

    Priorität Priorität der Change-Anforderung. Die Priorität basiert auf der Auswirkung und Dringlichkeit der Anforderung. Identifiziert, wie schnell der Service Desk die Anforderung bearbeiten soll.
    Mögliche Werte:
    • 1: Kritisch
    • 2: Hoch
    • 3: Moderat
    • 4: Niedrig

    Datentyp: Zeichenfolge

    risk Risikostufe für den Change.
    Mögliche Werte:
    • Niedrig
    • Hoch
    • Mittel

    Datentyp: Zeichenfolge

    Status Status der Change-Anforderung.
    Mögliche Werte:
    • Bewerten
    • Autorisieren
    • Storniert
    • Geschlossen
    • Implementieren
    • Neu
    • Prüfung
    • Geplant

    Datentyp: Zeichenfolge

    Standard: Neu

    sys_id Sys_id der Change-Anforderung.

    Datentyp: Zeichenfolge

    type Der Typ des Change Requests.
    Mögliche Werte:
    • Notfall
    • Normal
    • Standard

    Datentyp: Zeichenfolge

    URL URL der Change-Anforderung innerhalb der zugeordneten Instanz ServiceNow.

    Datentyp: Zeichenfolge

    changeZuweisungsgruppe Zuweisungsgruppe der Change-Anforderung.

    Datentyp: Zeichenfolge

    changeApprovers Liste der Genehmiger, deren Genehmigung für den Change aussteht.

    Datentyp: Zeichenfolge

    geplantesStartdatum Geplantes Startdatum und geplante Startzeit des Change.

    Datentyp: Zeichenfolge

    geplantes Enddatum Geplantes Enddatum und geplante Endzeit des Change.

    Datentyp: Zeichenfolge

    cURL-Anforderung

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeInfo?toolId=1487f457db642810765555535e9619d3&pipelineName=Automation/apps HR/family release&stageName=deployfamilyrelease&buildNumber=1639"  
    -H "accept: application/json"\ 
    -u "username":"password"
    {  
      "result": {  
        "changeFound": true,  
        "sys_id": "ee89341bdb642810765555535e96196e",  
        "number": "CHG0030001",  
        "type": "normal",  
        "state": "0",  
        "phase": "requested",  
        "phase_state": "open",  
        "priority": "4",  
        "risk": "4",  
        "url": "https://instance.servicenow.com/change_request.do?sys_id=ee89341bdb642810765555535e96196e",  
        "changeAssignmentGroup": "Change Management", 
        "changeApprovers": "Ron Kettering, Christen Mitchell, Howard Johnson, Luke Wilson", 
        "plannedStartDate": "2023-02-05 08:00:00", 
        "plannedEndDate": "2024-02-05 08:00:00" 
      }  
    }

    DevOps – GET /devops/orchestration/schema

    Gibt das Schemaobjekt für eine angegebene Orchestration-Ressource zurück.

    Sobald Sie das erforderliche Schemaobjekt haben, verwenden Sie es, um den Anforderungstext für den entsprechenden POST-Aufruf zu erstellen. /orchestration/orchestrationTask oder /orchestration/taskExecution.

    Hinweis:
    Dieser Endpunkt gibt nur die erforderlichen Anforderungstextelemente zurück.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/orchestration/schema

    Standard-URL: /api/sn_devops/devops/orchestration/schema

    Unterstützte Anforderungsparameter

    Tabelle : 25. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 26. Abfrageparameter
    Name Beschreibung
    Ressource Typ des zurückzugebenden Ressourcenschemas.
    Gültige Werte (Groß-/Kleinschreibung beachten):
    • build_details
    • Rückruf
    • orchestration_task
    • task_execution

    Datentyp: Zeichenfolge

    Tabelle : 27. Anforderungstextparameter
    Name Beschreibung
    Keine

    Kopfzeilen

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 28. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Tabelle : 29. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 30. Statuscodes
    Statuscode Beschreibung
    200 Anforderung erfolgreich abgeschlossen.
    401 Ungültige oder fehlende Authentifizierung.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    callbackURL URL des Rückrufs.

    Datentyp: Zeichenfolge

    endDateTime Datum/Uhrzeit des Endes der Aufgabenausführung.

    Datentyp: Zeichenfolge

    Name Name der Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    Nummer Ausführungsnummer der Aufgabe. Identisch mit einer Incident-Nummer.

    Datentyp: Zeichenfolge

    orchestrationTaskDetails Beschreibung der Orchestration-Aufgabe.

    Datentyp: Objekt

    "orchestrationTaskDetails": {
      "message": "String",
      "name": "String",
      "triggerType": "String",
      "url": "String"
    }
    orchestrationTaskDetails.message Freiform-Textnachricht.

    Datentyp: Zeichenfolge

    orchestrationTaskDetails.name Name der Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    orchestrationTaskDetails.triggerType Die Art und Weise, wie die Orchestration-Aufgabe gestartet wurde.

    Datentyp: Zeichenfolge

    orchestrationTaskDetails.url URL der Orchestration-Aufgabe des zugeordneten Orchestration-Tools.

    Datentyp: Zeichenfolge

    OrchestrationTaskURL URL der Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    Ergebnis Ausführungsergebnis der Aufgabenausführung.
    Gültige Werte:
    • Erfolg
    • Fehlgeschlagen

    Datentyp: Zeichenfolge

    startDateTime Datum/Uhrzeit des Starts der Aufgabenausführung.

    Datentyp: Zeichenfolge

    taskAusführungs-URL URL der auszuführenden Aufgabe.

    Datentyp: Zeichenfolge

    triggerType Die Art und Weise, wie die Orchestration-Aufgabe gestartet wurde.

    Gültige Werte:

    • upstream: Vorgelagerter Auftrag hat diesen Auftrag ausgelöst.
    • Benutzer: Der Benutzer hat die Aufgabe manuell gestartet.
    • scm: Commit des Git/SCM-Toolcodes hat den Job ausgelöst.

    Datentyp: Zeichenfolge

    URL URL der Orchestration-Aufgabe des zugeordneten Orchestration-Tools.

    Datentyp: Zeichenfolge

    Beispiel für eine cURL-Anforderung mit resource=task_execution

    curl -X GET \
    'https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/schema?resource=task_execution' \
    -H 'Accept: application/json'\
    -u 'username':'password'
    {
    "result": {
      "number": 40,
      "url": "https://jenkins.mycompany.com:8080/job/Mobile-Platform-CI/40/",
      "startDateTime": "1970-01-01T08:15:30-05:00",
      "endDateTime": "1970-01-01T08:25:30-05:00",
      "triggerType": "upstream",
      "result": "Success",
      "orchestrationTaskDetails": {
        "name": "Mobile-Platform-CI",
        "url": "https://jenkins.mycompany.com:8080/job/Mobile-Platform-CI/"
        }
      }
    }

    Beispiel für eine cURL-Anforderung mit resource=orchestration_task

    curl -X GET \ 
    'https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/schema?resource=orchestration_task' \
    -H 'Accept: application/json'\
    -u 'username':'password' 
    
    { 
    "result": { 
      "name": "Mobile-Platform-CI", 
      "url": "https://jenkins.mycompnay.com:8080/job/Mobile-Platform-CI/" 
      } 
    } 

    Beispiel für eine cURL-Anforderung mit resource=callback

    curl -X GET \
    'https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/schema?resource=task_execution' \
    -H 'Accept: application/json' \
    -u 'username':'password'
    
    { 
      "result": { 
        "callbackURL": "http://127.0.0.1:8090/jenkins/sn-devops/9b0feb79-f0b9-4661-83ef-2861b8924784", 
        "orchestrationTaskURL": "http://127.0.0.1:8090/jenkins/job/felipe-downstream/", 
        "orchestrationTaskDetails": { 
          "message": "Started by upstream project \"felipe-upstream\" build number 27", 
          "triggerType": "upstream" 
        } 
      } 
    } 

    DevOps – GET /devops/orchestration/stepMapping

    Überprüft, ob die übergebenen Informationen für die Erstellung einer Orchestration-Aufgabe und für die Zuordnung zu einem zuvor erstellten Schritt gültig sind.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/orchestration/stepMapping

    Standard-URL: /api/sn_devops/devops/orchestration/stepMapping

    Unterstützte Anforderungsparameter

    Tabelle : 31. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 32. Abfrageparameter
    Name Beschreibung
    branchName Name der Verzweigung, die der Orchestration-Aufgabe zugeordnet ist.

    Datentyp: Zeichenfolge

    istMultiBranch Wenn das Orchestration-Tool Jenkins ist, Kennzeichnung, die angibt, ob das Projekt vom Typ Multibranch ist.
    Gültige Werte:
    • true: Projekt ist vom Typ Multibranch.
    • „false“: Projekt ist nicht vom Typ Multibranch.

    Datentyp: Boolesch

    Standardwert: false

    parentStageName Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe verschachtelt ist, der Name der übergeordneten Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    parentStageURL Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe verschachtelt ist, die URL der übergeordneten Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    OrchestrationTaskName Erforderlich. Name der Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    OrchestrationTaskURL Erforderlich. URL der Orchestration-Aufgabe.
    Hinweis:
    Muss in Prozent (%) codiert sein, z. B. https%3A%2F%2Fjenkins.mycompany.com%3A8080%2Fjob%2FMobile-Platform-deploy%2F.
    Datentyp: Zeichenfolge
    testConnection Kennzeichnung, die angibt, ob die End-to-End-Verbindung zwischen der Instanz und dem DevOps -Tool getestet werden soll.
    Gültige Werte:
    • true: Testet die End-to-End-Verbindung.
    • false: Testen Sie die End-to-End-Verbindung nicht.

    Datentyp: Boolesch

    Standardwert: false

    toolId Erforderlich. Sys_id des Orchestration-Tools. Befindet sich in der Tabelle „Orchestration-Tool“ [sn_devops_orchestration_tool].

    Datentyp: Zeichenfolge

    Tooltyp Erforderlich. Typ des Tools.

    Gültige Werte: jenkins

    Datentyp: Zeichenfolge

    Tabelle : 33. Anforderungstextparameter
    Name Beschreibung
    Keine

    Kopfzeilen

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 34. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Tabelle : 35. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 36. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    401 Nicht autorisiert. Die Anmeldeinformationen sind falsch oder wurden nicht übergeben.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Parameter des Antwort-Haupttexts

    Element Beschreibung
    status Kennzeichnung, die angibt, ob die Überprüfung erfolgreich war.

    Datentyp: Boolesch

    stepValid Kennzeichnung, die angibt, ob die gesendeten Informationen gültig sind.

    Datentyp: Boolesch

    Beispiel für eine cURL-Anforderung

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/stepMapping?toolId=f0ca45679323008b52f3b457415ae6&orchestrationTaskName=Platform-Analytics-UAT-Deployment&orchestrationTaskURL=https%253A%252F%252Fjenkins.mycompany.com%253A8080%252Fjob%252FMobile-Platform-deploy%252F&toolType=jenkins "
     -H "Accept: application/json" \
     -u "username":"password"
    

    Ergebnisse, wenn die Informationen gültig sind.

    {
      "result": {
        "stepValid": true,
        "status": "Success"
      }
    }

    Beispiel für eine cURL-Anforderung

    curl -X GET "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/stepMapping?toolId=f0ca45679323008b52f3b457415ae6&orchestrationTaskName=Platform-Analytics-UAT-Deployment&orchestrationTaskURL=https%253A%252F%252Fjenkins.mycompany.com%253A8080%252Fjob%252FMobile-Platform-deploy%252F&toolType=jenkins "
     -H "Accept: application/json" \
     -u "username":"password"
    

    Ergebnisse, wenn die Informationen ungültig sind.

    {
    "result": {
      "stepValid": false,
      "status": "Success"
    }
    

    DevOps – GET /devops/plan/schema

    Gibt das Schemaobjekt für einen bestimmten Plan zurück: App, Version oder Arbeitselement.

    Sobald Sie das erforderliche Schemaobjekt haben, verwenden Sie es, um den Anforderungstext für den entsprechenden POST-Aufruf zu erstellen. POST /plan/app, POST /plan/versionoder POST /plan/workitem.

    Hinweis:
    Dieser Endpunkt gibt nur die erforderlichen Anforderungstextelemente zurück.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/plan/schema

    Standard-URL: /api/sn_devops/devops/plan/schema

    Unterstützte Anforderungsparameter

    Tabelle : 37. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 38. Abfrageparameter
    Name Beschreibung
    Ressource Typ des zurückzugebenden Ressourcenschemas.

    Gültige Werte (Groß-/Kleinschreibung beachten):

    • -App
    • version
    • work_item

    Datentyp: Zeichenfolge

    Tabelle : 39. Anforderungstextparameter
    Name Beschreibung
    Keine

    Kopfzeilen

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 40. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Tabelle : 41. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 42. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    401 Ungültige oder fehlende Authentifizierung.
    404 Nicht gefunden. Der angegebene Datensatz wurde nicht gefunden.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    -App Beschreibung der Anwendung, die der Version zugeordnet werden soll.

    Datentyp: Objekt

    "app": {
      "createdDateTime": "String",
      "id": "String",
      "shortDescription": "String",
      "team": {Object},
      "url": "String"
    }
    app.createdDateTime Datum/Uhrzeit der Erstellung der Anwendung im Quelltool DevOps.

    Datentyp: Zeichenfolge

    app.id Eindeutiger Bezeichner der Anwendung. Wird vom Quellplanungstool generiert.

    Datentyp: Zeichenfolge

    app.shortDescription Kurzbeschreibung der zugeordneten Anwendung.

    Datentyp: Zeichenfolge

    app.team Beschreibung des Teams, das der Anwendung zugeordnet ist.

    Datentyp: Objekt

    "team": {
      "id": "String",
      "name": "String"
    }
    app.team.id Eindeutiger Bezeichner des Teams, das der Anwendung zugeordnet ist. Wird vom Quellplanungstool generiert.

    Datentyp: Zeichenfolge

    app.team.name Name des Teams, das der Anwendung zugeordnet ist.

    Datentyp: Zeichenfolge

    app.url URL der Anwendung auf der Quell-Planungstool-Website.

    Datentyp: Zeichenfolge

    assignedTo Beschreibung der Person, der das Arbeitselement zugewiesen ist.

    Datentyp: Objekt

    "assignedTo": {
      "email": "String",
      "id": "String",
      "name": "String",
      "userName": "String"
    }
    zugewiesen an.E-Mail E-Mail-Adresse der Person, die dem Arbeitselement zugewiesen ist.

    Datentyp: Zeichenfolge

    zugewiesenAn.id Eindeutiger Bezeichner der Person, die dem Arbeitselement zugewiesen ist.

    Datentyp: Zeichenfolge

    zugewiesenAn.name Name der Person, die dem Arbeitselement zugewiesen ist.

    Datentyp: Zeichenfolge

    zugewiesenAn.Benutzername Benutzername der Person, die dem Arbeitselement zugewiesen ist.

    Datentyp: Zeichenfolge

    createDateTime Datum und Uhrzeit der Erstellung der Anwendung, der Version oder des Arbeitselementdatensatzes.

    Datentyp: Zeichenfolge

    id Eindeutiger Bezeichner der Anwendung, Version oder des Arbeitselements. Wird vom Quellplanungstool generiert.

    Datentyp: Zeichenfolge

    Name Der Name der Anwendung.

    Datentyp: Zeichenfolge

    path Relativer Pfad zur Anwendung.

    Datentyp: Zeichenfolge

    shortDescription Kurze Beschreibung der Anwendung, Version oder des Arbeitselements.

    Datentyp: Zeichenfolge

    Status Status des Arbeitselements. Wird vom Quellplanungstool generiert.

    Datentyp: Zeichenfolge

    team Beschreibung des Teams, das der Anwendung zugeordnet ist.

    Datentyp: Objekt

    "team": {
      "id": "String",
      "name": "String"
    }
    team.id Eindeutiger Bezeichner des Teams, das der Anwendung zugeordnet ist. Wird vom Quellplanungstool generiert.

    Datentyp: Zeichenfolge

    team.name Name des Teams, das der Anwendung zugeordnet ist.

    Datentyp: Zeichenfolge

    type Typ des Arbeitselements. Wird vom Planungstool generiert.

    Datentyp: Zeichenfolge

    URL URL für den Zugriff auf die Anwendung, Version oder das Arbeitselement.

    Datentyp: Zeichenfolge

    version Array, das die Version beschreibt.

    Datentyp: Objekt

    "version": {
      "app": {Object},
      "createdDateTime": "String",
      "id": "String",
      "shortDescription": "String",
      "url": "String"
    }
    version.app Beschreibung der Anwendung, die der Version zugeordnet werden soll.

    Datentyp: Objekt

    "app": {
      "createdDateTime": "String",
      "id": "String",
      "shortDescription": "String",
      "team": {Object},
      "url": "String"
    }
    version.app.createdDateTime Datum/Uhrzeit, zu der die Version im Quelltool DevOps erstellt wurde.

    Datentyp: Zeichenfolge

    version.app.id Eindeutiger Bezeichner der Anwendung. Wird vom Quellplanungstool generiert.

    Datentyp: Zeichenfolge

    version.app.shortDescription Kurzbeschreibung der zugeordneten Anwendung.

    Datentyp: Zeichenfolge

    version.app.team Beschreibung des Teams, das der Anwendung zugeordnet ist.

    Datentyp: Objekt

    "team": {
      "id": "String",
      "name": "String"
    }
    version.app.team.id Eindeutiger Bezeichner des Teams, das der Anwendung zugeordnet ist. Wird vom Quellplanungstool generiert.

    Datentyp: Zeichenfolge

    Version.App.Team.Name Name des Teams, das der Anwendung zugeordnet ist.

    Datentyp: Zeichenfolge

    version.app.url URL der Anwendung auf der Quell-Planungstool-Website.

    Datentyp: Zeichenfolge

    version.createdDateTime Datum/Uhrzeit, zu der die Version im Quelltool DevOps erstellt wurde.

    Datentyp: Zeichenfolge

    version.id Eindeutiger Bezeichner der Version. Wird vom Quellplanungstool generiert.

    Datentyp: Zeichenfolge

    Version.Kurzbeschreibung Kurze Beschreibung der zugehörigen Version.

    Datentyp: Zeichenfolge

    version.url URL der Version auf der Quell-Planungstool-Website.

    Datentyp: Zeichenfolge

    Beispiel für eine cURL-Anforderung für resource=app

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/plan/schema?resource=app" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    {
      "result": {
        "id": "PRODUCT1234",
        "shortDescription": "Mobile UI",
        "createdDateTime": "1970-01-01T08:15:30-05:00",
        "team": {
          "name": "Mobile UI",
          "id": "f0ca45679323008b52f3b457415ae6"
        },
        "url": "https://jira.com/mycompany/browse/PRODUCT-125"
      }
    }

    Beispiel für eine cURL-Anforderung für resource=version

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/plan/schema?resource=version" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
      "result": {
        "id": "REL1234",
        "shortDescription": "APIs Release",
        "createdDateTime": "1970-01-01T08:15:30-05:00",
        "app": {
          "id": "PRODUCT1234",
          "shortDescription": "Mobile UI",
          "createdDateTime": "1970-01-01T08:15:30-05:00",
          "team": {
            "name": "Mobile UI",
            "id": "f0ca45679323008b52f3b457415ae6"
          },
          "url": "https://jira.com/mycompany/browse/PRODUCT-125"
        },
        "url": "https://jira.com/mycompany/browse/REL-125"
      }
    }

    Beispiel für eine cURL-Anforderung für resource=work_item

    curl "https://instance.servicenow.com/api/sn_devops/v1/devops/plan/schema?resource=work_item" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    
    {
      "result": {
        "id": "STR1234",
        "type": "Story",
        "shortDescription": "Planning API Spec",
        "state": "In-progress",
        "createdDateTime": "1970-01-01T08:15:30-05:00",
        "assignedTo": {
          "name": "Leo Neo",
          "userName": "lenn",
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "email": "lenn@smithworksinc.com"
        },
        "version": {
          "id": "REL1234",
          "shortDescription": "APIs Release",
          "createdDateTime": "1970-01-01T08:15:30-05:00",
          "app": {
            "id": "PRODUCT1234",
            "shortDescription": "Mobile UI",
            "createdDateTime": "1970-01-01T08:15:30-05:00",
            "team": {
              "name": "Mobile UI",
              "id": "f0ca45679323008b52f3b457415ae6"
            },
            "url": "https://jira.com/mycompany/browse/PRODUCT-125"
            },
            "url": "https://jira.com/mycompany/browse/REL-125"
        },
        "app": {
          "id": "PRODUCT1234",
          "shortDescription": "Mobile UI",
          "createdDateTime": "1970-01-01T08:15:30-05:00",
          "team": {
            "name": "Mobile UI",
            "id": "f0ca45679323008b52f3b457415ae6"
          },
          "url": "https://jira.com/mycompany/browse/PRODUCT-125"
        },
        "url": "https://jira.com/mycompany/browse/HALOKEY-25"
      }
    }

    DevOps - POST /devops/artifact/registration

    Ermöglicht Orchestration-Tools, Artefakte in einer ServiceNow -Instanz zu registrieren.

    Dieser Endpunkt erstellt neue Artefakte und Artefaktversionen und ordnet sie Commits zu. Im Folgenden wird der Endpunkt-Prozessablauf beschrieben:
    • Wenn toolId in der Anforderung übergeben wird, überprüft der Endpunkt, ob das Tool in der Instanz vorhanden ist. Außerdem wird überprüft, ob das in artifacts.repositoryName angegebene Artefakt-Repository vorhanden ist, und andernfalls wird es unter dem zugehörigen Artefakt-Tool erstellt.
    • Wenn toolId in der Anforderung nicht übergeben wird, wird ein Repository erstellt, das jedoch nicht mit einem Artefakt-Tool verknüpft ist.
    • Anschließend wird überprüft, ob das in artifacts.name angegebene Artefakt bereits vorhanden ist. Andernfalls wird es unter dem zugehörigen Repository erstellt.
    • Wenn artifact.version in der Anforderung übergeben wird:
      • Wenn sie nicht vorhanden ist, wird in der zugehörigen Tabelle „Artefaktversion“ [sn_devops_artifact_version] ein neuer Artefaktversionsdatensatz erstellt.
      • Der Endpunkt sucht dann basierend auf den angegebenen Build-Details (pipelineName oder projectName, taskExecutionNumber, branchNameund stageName) und dem Parameter orchestrationToolId nach zugeordneten Aufgabenausführungen.
      • Wenn eine Aufgabenausführung gefunden wird und ihre Nachverarbeitung abgeschlossen ist, wird die Artefaktversion mit der Aufgabenausführung verknüpft und in der Tabelle „Artefakt zu TaskExecution“ [sn_devops_m2m_artifact_execution] gespeichert. Mit diesen Aufgabenausführungen verknüpfte Commits sind auch der Artefaktversion zugeordnet und in der Tabelle „Artifaktversion zu Commit“ [sn_devops_m2m_artifact_version_commit] gespeichert. Alle Commits, die mit vorherigen Aufgabenausführungen verknüpft sind, bei denen kein Artefakt erstellt wurde, werden ebenfalls der Artefaktversion zugeordnet.
      • Wenn eine Aufgabenausführung gefunden wird und ihre Nachverarbeitung nicht abgeschlossen ist, wird die Anforderung in der Tabelle „Bereitgestellte Artefaktanforderung“ [sn_devops_artifact_staging] gespeichert. Die bereitgestellte Anforderung enthält einen Verweis auf die Aufgabenausführung.
      • Wenn keine Aufgabenausführung gefunden wird, wird die Anforderung in der Staging-Tabelle beibehalten. Die bereitgestellte Anforderung enthält die Build-Details.
    • Wenn artifact.version nicht übergeben wird, wird die Artefaktversion abhängig von der Toolkonfiguration entweder durch Aufruf des Endpunkts /devops/tool/artifact abgerufen, wenn Ihr Artefakttool Webhooks unterstützt, oder durch einen benutzerdefinierten Subflow, der die Artefaktversion aus dem abruft Artefakt-Tool.

    Weitere Informationen zu Artefakten finden Sie unter DevOps-Change-Beschleunigung für Releases verwenden.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/artifact/registration

    Standard-URL: /api/sn_devops/devops/artifact/registration

    Unterstützte Anforderungsparameter

    Tabelle : 43. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 44. Abfrageparameter
    Name Beschreibung
    orchestrationToolId Erforderlich. Sys_id des Orchestration-Tools, das dem Artefakt zugeordnet ist. Befindet sich in der Tabelle „Orchestration-Tool“ [sn_devops_orchestration_tool]. Der Endpunkt verwendet diese Informationen, um Informationen zur Aufgabenausführung zu finden.

    Datentyp: Zeichenfolge

    toolId Sys_id des Artefakt-Tools, das dem Artefakt zugeordnet ist. Befindet sich in der Tabelle „Artifakttool“ [sn_devops_artifact_tool].

    Datentyp: Zeichenfolge

    Tabelle : 45. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    Artefakte Mindestens ein Eintrag erforderlich. Array von Objekten, in dem jedes Objekt eine zu registrierende Artefaktversion eindeutig identifiziert.

    Datentyp: Array

    "artifacts": [
      {
        "name": "String",
        "repositoryName": "String",
        "semanticVersion": "String",
        "version": "String"
      }
    ]
    Artefakte.Name Erforderlich. Name der Artefaktdatei.

    Datentyp: Zeichenfolge

    Maximale Länge: 160 Zeichen

    Artefakte.Repository-Name Erforderlich. Name des Artefakt-Repositorys.

    Wenn der angegebene Repository-Datensatz nicht vorhanden ist, wird er erstellt.

    Datentyp: Zeichenfolge

    Maximale Länge: 160 Zeichen

    Artefakte.semantischeVersion Semantische Version des Artefakts.

    Datentyp: Zeichenfolge

    Format: MAJOR.MINOR.PATCH

    Beispiele für mögliche Werte:
    • 2.0.0
    • 2.0.0-rc.2
    • 2.0.0-rc.1
    • 1.0.0-Beta

    Maximale Länge: 160 Zeichen

    Standard: Null

    Artefakte.Version Erforderlich, wenn toolId nicht übergeben wird. Artefaktversion.

    Datentyp: Zeichenfolge

    Format: MAJOR.MINOR

    Maximale Länge: 160 Zeichen

    Standard: Null

    branchName Erforderlich, wenn es sich um ein Projekt mit mehreren Zweigstellen handelt. Name der Verzweigung im Repository, in der das Artefakt gespeichert ist.

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    Standard: Null

    pipelineName Erforderlich, wenn projectName nicht übergeben wird. Pipeline-Name

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    Standard: Null

    projectName Erforderlich, wenn pipelineName nicht übergeben wird. Freiform-Projektname.

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    Standard: Null

    stageName Erforderlich, wenn pipelineName übergeben wird. Phasenname.

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    Standard: Null

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 46. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 47. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 48. Statuscodes
    Statuscode Beschreibung
    200 Erfolg. Erfolg mit Antworttext.
    201 Erstellt. Erfolg mit Antworttext.
    400 Ungültige Anforderung. Der Anforderungs-URI stimmt nicht mit den APIs im System überein, oder der Vorgang ist aus unbekannten Gründen fehlgeschlagen. Auch ungültige Kopfzeilen können diesen Fehler verursachen.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    Antwort Ergebnisse der Artefaktregistrierungsanforderung.

    Datentyp: Objekt

    "response": {
      "artifact": {Object},
      "artifact_register_requests": {Object},
      "artifact_repository": {Object},
      "artifact_version": {Object}
    }
    response.artifact Ergebnisse für jedes verarbeitete Artefakt.

    Datentyp: Objekt

    "artifact": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    Antwort.Artifakt.Erstellen Wenn die Anforderung Artefaktdatensätze erstellt hat, die Liste der sys_ids der erstellten Datensätze in der Artefakttabelle [sn_devops_artifact].

    Datentyp: Array

    "create": [
      {
        "id": "String"
      }
    ]
    response.artifact.create.id Sys_id des von der Anforderung erstellten Artefaktdatensatzes.

    Datentyp: Zeichenfolge

    Antwort.Artifakt.Gefunden Wenn in der Tabelle „Artefakte“ bereits ein Artefakt vorhanden ist, wird die Liste der sys_ids der vorhandenen Artefaktdatensätze angezeigt.
    Hinweis:
    An vorhandenen Paketen werden keine Änderungen vorgenommen.

    Datentyp: Array

    "found": [
      {
        "id": "String"
      }
    ]
    Antwort.Artifakt.Gefunden.ID Sys_id des vorhandenen Artefaktdatensatzes.

    Datentyp: Zeichenfolge

    Antwort.Artifakt.Update Derzeit nicht verwendet
    response.artifact.update.id Derzeit nicht verwendet
    response.artifact_register_requests Ergebnisse für alle Artefaktregisteranforderungen, die die Verarbeitung nicht abgeschlossen haben und in der Tabelle „Bereitgestellte Artefaktanforderung“ gespeichert wurden.

    Datentyp: Objekt

    "artifact_register_requests": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.artifact_register_requests.create Wenn die Anforderung Artefakt-Bereitstellungsdatensätze erstellt hat, die Liste der sys_ids der erstellten Datensätze.

    Datentyp: Array

    "create": [
      {
        "id": "String"
      }
    ]
    response.artifact_register_requests.create.id Sys_id des von der Anforderung erstellten Artefakt-Bereitstellungsdatensatzes.

    Datentyp: Zeichenfolge

    response.artifact_register_requests.found Wenn Artefakten bereits Artefaktbereitstellungsdatensätze zugeordnet sind, die Liste der sys_ids der vorhandenen Artefaktbereitstellungsdatensätze.
    Hinweis:
    An vorhandenen Paketen werden keine Änderungen vorgenommen.

    Datentyp: Array

    "found": [
      {
        "id": "String"
      }
    ]
    response.artifact_register_requests.found.id Sys_id eines vorhandenen Artefakt-Staging-Datensatzes.

    Datentyp: Zeichenfolge

    response.artifact_register_requests.update Derzeit nicht verwendet
    response.artifact_register_requests.update.id Derzeit nicht verwendet
    response.artifact_repository Ergebnisse für alle Artefakt-Repository-Datensätze, die während der Verarbeitung der Anforderung manipuliert wurden.

    Datentyp: Objekt

    "artifact_repository": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.artifact_repository.create Wenn Artefakt-Repositorys durch die Anforderung erstellt wurden, die Liste der sys_ids der erstellten Datensätze.

    Datentyp: Array

    "create": [
      {
        "id": "String"
      }
    ]
    response.artifact_repository.create.id Sys_id des von der Anforderung erstellten Artefakt-Repository-Datensatzes.

    Datentyp: Zeichenfolge

    response.artifact_repository.found Wenn in der Registrierungsanforderung verwendete Artefakt-Repository-Datensätze bereits vorhanden sind, die Liste der sys_ids der vorhandenen Datensätze.
    Hinweis:
    An vorhandenen Paketen werden keine Änderungen vorgenommen.

    Datentyp: Array

    "found": [
      {
        "id": "String"
      }
    ]
    response.artifact_repository.found.id Sys_id eines vorhandenen Artefakt-Repository-Datensatzes, der von der Anforderung verwendet wird.

    Datentyp: Zeichenfolge

    response.artifact_repository.update Wenn der Endpunkt die Nachverfolgungskennzeichnung für ein Repository auf „true“ aktualisiert (von „false“), wird die Liste der sys_ids der geänderten Repository-Datensätze aktualisiert.

    Datentyp: Array

    "update": [
      {
        "id": "String"
      }
    ]
    response.artifact_repository.update.id Sys_id des Repository-Datensatzes, dessen Nachverfolgungskennzeichnung geändert wurde.

    Datentyp: Zeichenfolge

    response.artifact_version Ergebnisse für alle Artefaktversionsdatensätze, die während der Verarbeitung der Anforderung manipuliert wurden.

    Datentyp: Objekt

    "artifact_version": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.artifact_version.create Ergebnisse für alle Artefaktversionsdatensätze, die während der Verarbeitung der Anforderung erstellt wurden.

    Datentyp: Array

    "create": [
      {
        "id": "String"
      }
    ]
    response.artifact_version.create.id Sys_id des von der Anforderung erstellten Artefaktversionsdatensatzes.

    Datentyp: Zeichenfolge

    Antwort.Artifakt_Version.Gefunden Wenn in der Registrierungsanforderung verwendete Artefaktversionsdatensätze bereits vorhanden sind, die Liste der sys_ids der vorhandenen Datensätze.

    Datentyp: Array

    "found": [
      {
        "id": "String"
      }
    ]
    Antwort.Artifakt_Version.Gefunden.ID Sys_id des vorhandenen Artefaktversionsdatensatzes, der von der Anforderung verwendet wird.

    Datentyp: Zeichenfolge

    response.artifact_version.update Derzeit nicht verwendet
    response.artifact_version.update.id Derzeit nicht verwendet
    status Status der Registrierungsanforderung.
    Mögliche Werte:
    • Erfolg: Antworttext enthält Rückgabeergebnisse.
    • Fehler: Antworttext enthält Liste aller Fehler.

    Datentyp: Zeichenfolge

    Beispiel für eine cURL-Anforderung

    curl -X POST \
    'https://instance.servicenow.com/api/sn_devops/devops/artifact/registration?toolId=391b4ff6dba24010bc8cdd384b96198f&orchestrationToolId=99d70b36dba24010bc8cdd384b961985' \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -u 'username':'password' \
    -d ' {"artifacts": [\
     {\
     "name": "sa-web.jar",\
     "version": "3.1",\
     "semanticVersion": "3.1.0",\
     "repositoryName": "services-1031"\
     },\
     {\
     "name": "sa-frontend.jar",\
     "version": "3.2",\
     "semanticVersion": "3.2.0",\
     "repositoryName": "services-1031"\
     }\
     ],\
     "pipelineName": "spring-boot-app",\
     "taskExecutionNumber": "160",\
     "stageName": "Build",\
     "branchName": "primary"\
    }]'
    {
    "result": {
      "status": "Success",
      "response": {
        "artifact_repository": {
          "create": [
            {
              "id": "2e50ba8bdbaa4010bc8cdd384b961988"
            }
          ],
          "update": [],
          "found": [
            {
              "id": "2e50ba8bdbaa4010bc8cdd384b961988"
            }
          ]
        },
        "artifact": {
          "create": [
            {
              "id": "6a50f603dbea4010bc8cdd384b96193d"
            },
            {
              "id": "2e50f603dbea4010bc8cdd384b96193f"
            }
          ],
          "update": [],
          "found": []
        },
        "artifact_version": {
          "create": [
            {
              "id": "a650f603dbea4010bc8cdd384b96193e"
            },
            {
              "id": "6250f603dbea4010bc8cdd384b961940"
            }
          ],
          "update": [],
          "found": []
        },
        "artifact_register_requests": {
          "create": [
            {
              "id": "6250f603dbea4010bc8cdd384b96193f"
            },
            {
              "id": "6650f603dbea4010bc8cdd384b961940"
            }
          ],
          "update": [],
          "found": []
        }
      }
     }
    }

    DevOps - POST /devops/onboarding/app

    Erstellt ein Onboarding-App-Event, das vom DevOps -Service asynchron verarbeitet wird.

    Dieser Endpunkt kann die folgenden Aktionen ausführen:
    • Erstellen Sie Anwendungen.
    • Ordnen DevOps Sie Objekte wie, Plan, Repository und Pipeline einer Anwendung zu.
    • Erstellen Sie einen Change-Schritt-Datensatz, und ordnen Sie einen Change-Genehmigungsprozess einer Pipeline zu.

    Alle diese Aktionen sind spezifisch für Tools und Funktionen. In der folgenden Tabelle sind die Aktionen aufgeführt, die für jedes unterstützte Tool verfügbar sind.

    Anwendungs-Onboarding-Matrix

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/onboarding/app

    Standard-URL: /api/sn_devops/devops/onboarding/app

    Unterstützte Anforderungsparameter

    Tabelle : 49. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 50. Abfrageparameter
    Name Beschreibung
    Keine
    Tabelle : 51. Anforderungstextparameter
    Name Beschreibung
    -Apps Array von Objekten, die die Apps definieren, die in der zugeordneten Instanz ServiceNow erstellt werden sollen.

    Datentyp: Array

    "apps": [{
      "bussinessApp": "String",
      "name": "String"
    }]
    apps.businessApp Name der cmdb_ci_business_app, der die Anwendung zugeordnet ist. Dadurch wird die Anwendung DevOps an die angegebene CMDB-Anwendung gebunden.

    Datentyp: Zeichenfolge

    apps.name Erforderlich. Benutzerfreundlicher Name der zu erstellenden Anwendung. Eine App ist ein DevOps Produktcontainerobjekt, das Pläne, Repositorys und Pipelines miteinander verknüpft.

    Datentyp: Zeichenfolge

    Anmeldeinformationen Erforderlich. Für die Webhook-Erstellung zu verwendende Anmeldeinformationen. Der erstellte Webhook wird vom Tool zum Senden von Benachrichtigungen verwendet.

    Datentyp: Objekt

    "credentials": {
      "name": "String",
      "password": "String"
    }
    credentials.name Erforderlich. ServiceNow Benutzer-ID des Benutzers, der die Endpunktanforderung sendet. Befindet sich in der Benutzertabelle [sys_user]. Dieser Benutzer muss die Rolle devops.integration.user haben. Ab Version 1.34.1 muss dieser Benutzer über die Rolle sn_devops.admin verfügen.

    Datentyp: Zeichenfolge

    Anmeldeinformationen.Passwort Erforderlich. Passwort des im Parameter credenitals.name angegebenen Benutzers.

    Datentyp: Zeichenfolge

    Pipelines Array von Objekten, die Pipelines definieren, die Anwendungen zugeordnet werden sollen.

    Datentyp: Array

    "pipelines": [{
      "app": "String",
      "name": "String",
      "tool": "String"
    }]
    Pipelines.App Erforderlich, wenn ein pipelines -Objekt angegeben ist. Name der Anwendung, die dem im Parameter pipelines.name angegebenen Plan zugeordnet werden soll. Die Anwendung muss bereits erstellt oder im Objekt apps dieser Anforderung angegeben sein.

    Datentyp: Zeichenfolge

    Pipelines.ChangeSteps Array von Objekten, die die Change-Schritte definieren, die für die im Feld pipelines.name angegebene Pipeline erstellt werden sollen.

    Datentyp: Array

    "changeSteps": [{
      "changeApprovalGroup": "String",
      "changeControlledBranches": "String",
      "changeType": "String",
      "name": "String",
      "type": "String"
    }]

    Datentyp: Zeichenfolge

    Pipelines.ChangeSteps.ChangeApprovalGroup Erforderlich, wenn ein changeSteps -Objekt angegeben ist. Name der Change-Genehmigungsgruppe, die der Pipeline zugeordnet werden soll. Befindet sich in der Gruppentabelle [sys_user_group]. Diese Gruppe muss bereits in der Instanz ServiceNow vorhanden sein.

    Datentyp: Zeichenfolge

    pipelines.changeSteps.changeControlledBranches Kommagetrennte Liste von Codeverzweigungen, die unter Change-Kontrolle stehen. Dies gilt nur für die Unterstützung mehrerer Zweige.

    Datentyp: Zeichenfolge

    Standard: * (alle Verzweigungen)

    Pipelines.ChangeSteps.ChangeType Erforderlich, wenn ein changeSteps -Objekt angegeben ist. Typ der zu erstellenden Change-Anforderung. Die verfügbaren Typen sind im Feld Typ der Change Request-Tabelle [change_request] definiert.

    Datentyp: Zeichenfolge

    Pipelines.ChangeSteps.Name Erforderlich, wenn ein changeSteps -Objekt angegeben ist. Name des zu erstellenden Schritts. Der Schrittname muss mit dem Namen des entsprechenden Schritts in der Pipeline des Orchestration-Tools übereinstimmen.

    Datentyp: Zeichenfolge

    Pipelines.ChangeSteps.Type Erforderlich, wenn ein changeSteps -Objekt angegeben ist. Typ des zu erstellenden Schritts. Die verfügbaren Schritttypen sind im Feld Typ der Tabelle „Schritte“ [sn_devops_step] definiert.

    Datentyp: Zeichenfolge

    Pipelines.Name Erforderlich, wenn ein pipelines -Objekt angegeben ist. Name der Pipeline, die der im Parameter pipelines.app angegebenen Anwendung zugeordnet werden soll. Diese Pipeline muss bereits in der Instanz ServiceNow erkannt werden.

    Datentyp: Zeichenfolge

    Pipelines.Projekt Erforderlich, wenn ein Pipelines- Objekt angegeben ist und „pipelines.tool“ die Entität „projects“ unterstützt (z. B. das ADO-Tool). Projekt, das der Pipeline zugeordnet werden soll, um einen eindeutigen Pipeline-/Tool-Bezeichner zu erstellen. Der Parameterwert muss von einem Projekt in der Projekttabelle [sn_devops_project] abgeleitet werden.

    Datentyp: Zeichenfolge

    Pipelines.Tool Erforderlich, wenn ein pipelines -Objekt angegeben ist. Tool, das der Pipeline zugeordnet werden soll, um einen eindeutigen Pipeline-/Tool-Bezeichner zu erstellen.

    Datentyp: Zeichenfolge

    Pläne Array von Objekten, die einen Plan definieren, der einer Anwendung zugeordnet werden soll.

    Datentyp: Array

    "plans": [{
      "app": "String",
      "name": "String",
      "tool": "String"
    }]
    pläne.apps Erforderlich, wenn ein plans -Objekt angegeben ist. Namen der Anwendungen, die dem im Parameter plans.name angegebenen Plan zugeordnet werden sollen. Diese Anwendungen müssen bereits erstellt oder im Objekt apps dieser Anforderung angegeben werden.

    Datentyp: Array von Zeichenfolgen

    pläne.name Erforderlich, wenn ein plans -Objekt angegeben ist. Name des Plans, der der im Parameter plans.app angegebenen Anwendung zugeordnet werden soll. Dieser Plan muss bereits in der Instanz ServiceNow erkannt werden.

    Datentyp: Zeichenfolge

    pläne.project Erforderlich, wenn ein Planobjekt angegeben ist und „plans.tool“ die Entität „projects“ unterstützt (z. B. das ADO-Tool). Tool, das der Pipeline zugeordnet werden soll, um einen eindeutigen Plan-/Toolbezeichner zu erstellen. Der Parameterwert muss von einem Projekt in der Projekttabelle [sn_devops_project] abgeleitet werden.

    Datentyp: Zeichenfolge

    pläne.tool Erforderlich, wenn ein plans -Objekt angegeben ist. Tool, das dem Plan zugeordnet werden soll, um einen eindeutigen Plan-/Toolbezeichner zu erstellen.

    Datentyp: Zeichenfolge

    repositories Array von Objekten, die die einer Anwendung zugeordneten Repositorys definieren. Wenn das Repositories-Objekt einen App-Parameter enthält, wird das Repository der Anwendung zugeordnet.

    Datentyp: Array

    "repositories": [{
      "app": "String",
      "name": "String",
      "tool": "String"
    }]
    repositories.app Erforderlich, wenn ein repositories -Objekt angegeben ist. Name der Anwendung, die diesem Repository zugeordnet werden soll. Die Anwendung muss bereits erstellt oder im Objekt apps dieser Anforderung angegeben sein.

    Datentyp: Zeichenfolge

    repositories.name Erforderlich, wenn ein repositories -Objekt angegeben ist. Name des Repositorys, das der im Parameter repositories.app angegebenen Anwendung zugeordnet werden soll. Dieses Repository muss bereits in der Instanz ServiceNow erkannt werden.

    Datentyp: Zeichenfolge

    Repositorys.Projekt Erforderlich, wenn ein Repository- Objekt angegeben ist und repositories.tool eine Projektetität unterstützt (z. B. das ADO-Tool). Tool, das den Repositorys zugeordnet werden soll, um einen eindeutigen Repository-/Tool-Identifier zu erstellen. Der Parameterwert muss von einem Projekt in der Projekttabelle [sn_devops_project] abgeleitet werden.

    Datentyp: Zeichenfolge

    repositories.tool Erforderlich, wenn ein repositories -Objekt angegeben ist. Benutzerfreundlicher Toolname, der dem Repository zugeordnet werden soll, um einen eindeutigen Repository-/Tool-Bezeichner zu erstellen. Das Tool muss bereits in der Instanz ServiceNow erstellt worden sein.

    Datentyp: Zeichenfolge

    artifactRepositories.app Erforderlich, wenn dasArtefaktRepositories- Objekt angegeben ist. Name der Anwendung, die diesen Artefakt-Repositories zugeordnet werden soll. Die Anwendung muss bereits erstellt oder im Apps- Objekt dieser Anforderung angegeben sein.

    Datentyp: Zeichenfolge

    artifactRepositories.name Erforderlich, wenn dasArtefaktRepositories- Objekt angegeben ist. Name der Artefakt-Repositories, die der im .app-Parameter artifactRepositoriesangegebenen Anwendung zugeordnet werden sollen. Diese Artefakt-Repositorys müssen bereits in der ServiceNow-Instanz erkannt werden.

    Datentyp: Zeichenfolge

    ArtefaktRepositories.tool Erforderlich, wenn dasArtefaktRepositories- Objekt angegeben ist. Benutzerfreundlicher Toolname, der den Artefakt-Repositories zugeordnet werden soll, um einen eindeutigen Artefakt-Repositories-/Tool-Bezeichner zu erstellen. Das Tool muss bereits in der ServiceNow-Instanz erstellt worden sein.

    Datentyp: Zeichenfolge

    ArtifaktRepositories.project Erforderlich, wenn das Artefakt- Objekt angegeben ist und die Entität repositories.tool Projekte unterstützt (z. B. das ADO-Tool). Tool, das dem artifactRepositories zugeordnet werden soll, um einen eindeutigen Pipeline-/Tool-Bezeichner zu erstellen.

    Datentyp: Zeichenfolge

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 52. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 53. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 54. Statuscodes
    Statuscode Beschreibung
    202 Onboarding-Anforderung wurde erfolgreich erstellt.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    Ergebnis Ergebnisse der Onboarding-Anforderung.
    Datentyp: Objekt
    "result": {
      "code": "String",
      "details": "String",
      "errors": {Object],
      "onboardingRequestID": "String",
      "status": "String"
    }
    result.code HTTP-Statuscode.

    Datentyp: Zeichenfolge

    result.details Details zur Onboarding-Anforderung.

    Datentyp: Zeichenfolge

    result.errors Beschreibung eines aufgetretenen Fehlers.

    Datentyp: Objekt

    result.error.message Fehlermeldung.

    Datentyp: Zeichenfolge

    result.onboardingRequestID Eindeutiger Identifier der Onboarding-Anforderung. Verwenden Sie diesen Wert beim Aufruf des Endpunkts /devops/onboarding/status, um den Status des zugehörigen Onboarding-Prozesses abzurufen.

    Datentyp: Zeichenfolge

    result.status Status der Onboarding-Anforderung, entweder „Erfolg“ oder „Fehlgeschlagen“.

    Datentyp: Zeichenfolge

    cURL-Anforderung

    In diesem Beispiel wird die Anwendung „Biking Service“ erstellt und der Jenkins-Pipeline „Bicycle Rents“, dem GitHub-Repository nowDevops01/CorpSite und dem Azure-Plan testPlan_Bicycle_Rental zugeordnet.

    curl -X POST "https://servicenow-instance/api/sn_devops/v1/devops/onboarding/app" \ 
    -H "Accept: application/json" \ 
    -H "Content-Type: application/json" \ 
    -u "username":"password" \ 
    -d "{ 
      "apps": [ 
        { 
          "name": "Bike Rental Service" 
        } 
      ] 
      "pipelines": [ 
        { 
          "tool": "Primary Jenkins", 
          "name": "Bike Rentals", 
          "app": "Bike Rental Service", 
          "changeSteps": [ 
            { 
              "name": "Prod", 
              "type": "deploy", 
              "changeApprovalGroup": "Change Management", 
              "changeType": "normal" 
            } 
          ] 
        } 
      ], 
      "repositories": [ 
        { 
          "tool": "Primary GitHub", 
          "name": "nowDevops01/CorpSite", 
          "app": "Bike Rental Service" 
        } 
      ] 
      "plans": [ 
        { 
          "tool": "Primary Azure", 
          "name": "testPlan_Bike_Rental", 
    "project": "DemoProjecttt", 
          "apps": [ 
            "Bike Rental Service" 
          ] 
        } 
      ] 
    "artifactRepositories": [ 
    { 
    "tool": "AdoTool", 
    "name": "empb5-sonar", 
    "apps": [ 
    "appXXXXtz" 
    ] 
    } 
    ] 
     
      "credentials" : { 
        "name": "devops_user", 
        "password": "devops_password" 
      }  
    } 

    Ausgabe:

    { 
      "result":{ 
        "status": "Success", 
        "details": "Onboarding request has been created. Please use the /status api and the onboarding request number to get the status of the request", 
        "onboardingRequestID": "IBE0001045", 
        "code": "202" 
      } 
    } 

    DevOps - POST /devops/onboarding/tool

    Erstellt ein Onboarding-Tool-Event, das vom DevOps -Service asynchron verarbeitet wird.

    Abhängig vom Typ des Tools, für das die Anforderung veröffentlicht wird, führt der Endpunkt die folgenden Aktionen aus:
    • Erstellt das Tool innerhalb der zugeordneten Instanz ServiceNow .
    • Stellt eine Verbindung mit dem Tool her
    • Versucht, das Tool zu konfigurieren (nur bei erfolgreicher Verbindung)
    • Erkennt das Tool (nur bei erfolgreicher Verbindung)
    Alle diese Aktionen sind Tool-spezifisch und werden basierend auf den Integrationsfähigkeiten für das angegebene Tool ausgeführt.

    Tool-Onboarding-Matrix

    Die Rückgabeergebnisse für diesen Endpunkt geben nur an, ob die Anforderung veröffentlicht wurde. Sie geben nicht an, ob die zugehörigen Tools erstellt wurden. Die tatsächliche Toolerstellung wird asynchron verarbeitet. Um den Status der Toolerstellung und aller anderen Aktionen zu erhalten, müssen Sie den Endpunkt /devops/onboarding/status aufrufen und den Parameter onboardingRequestID übergeben, der von diesem Endpunkt zurückgegeben wird.

    Bevor Sie auf diesen Endpunkt zugreifen können, muss Ihr Administrator den Alias für Verbindungen und Anmeldeinformationen DevOps (CreateDevOpsTool) konfiguriert haben, um Tools in der Instanz einzurichten. Weitere Informationen finden Sie unter DevOps Change Velocity installieren. Darüber hinaus muss die aufrufende Entität über die Rolle devops.integration.user verfügen.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/onboarding/tool

    Standard-URL: /api/sn_devops/devops/onboarding/tool

    Unterstützte Anforderungsparameter

    Tabelle : 55. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 56. Abfrageparameter
    Name Beschreibung
    Keine
    Tabelle : 57. Anforderungstextparameter
    Name Beschreibung
    Anmeldeinformationen Erforderlich. Für die Webhook-Erstellung zu verwendende Anmeldeinformationen. Das Tool verwendet den erstellten Webhook zum Senden von Benachrichtigungen.

    Datentyp: Objekt

    "credentials": {
      "name": "String",
      "password": "String"
    }
    credentials.name Erforderlich. ServiceNow Bezeichner des Benutzers, der die Endpunktanforderung sendet. Befindet sich in der Benutzertabelle [sys_user]. Dieser Benutzer muss die Rolle devops.integration.user haben. Ab Version 1.34.1 muss dieser Benutzer über die Rolle sn_devops.admin verfügen.

    Datentyp: Zeichenfolge

    Anmeldeinformationen.Passwort Erforderlich. Passwort des im Parameter credenitals.name angegebenen Benutzers.

    Datentyp: Zeichenfolge

    Tools Erforderlich. Array von Objekten, die die Tools definieren, die in der zugeordneten Instanz ServiceNow erstellt werden sollen. Sie können ein oder mehrere Tools in einer einzigen Anforderung erstellen.

    Datentyp: Array

    "tools": [{
      "name": "String",
      "password": "String",
      "type": "String",
      "useMidServer": Boolean,
      "username": "String",
      "url": "String"
    }]
    Tools.Name Erforderlich. Benutzerfreundlicher Name oder Bezeichnung des zu erstellenden Tools. Dieser Name wird verwendet, um das Tool im Service DevOps zu identifizieren.

    Datentyp: Zeichenfolge

    Tools.Passwort Erforderlich, außer Agile-Tool. Passwort für den Zugriff auf das Tool. Unterstützte Authentifizierungen sind Basis- und Token-Authentifizierung. OAuth wird nicht unterstützt.

    Datentyp: Zeichenfolge

    Tools.type Erforderlich. Typ des zu erstellenden Tools, z. B. GitHub oder BitBucket. Der angegebene Wert muss eine der Toolbezeichnungen in der Tabelle „Toolintegrationen“ [sn_devops_tool_integration] sein.

    Datentyp: Zeichenfolge

    Tools.useMidServer Kennzeichnung, die angibt, ob das Tool eine Verbindung über MID-Serverherstellt .

    Gültige Werte:

    • true: Stellt eine Verbindung über einen MID-Serverher.
    • false: Stellt keine Verbindung über MID-Serverher .

    Datentyp: Boolesch

    Tools.Benutzername Erforderlich, außer Agile-Tool. Benutzername, der für den Zugriff auf das Tool über diesen Endpunkt verwendet werden soll.

    Datentyp: Zeichenfolge

    Tools.URL Erforderlich, außer Agile-Tool. URL des zu erstellenden Tools. Der Service DevOps verwendet diese URL für die Integration mit dem Tool. Bei Verwendung des Tools „Azure DevOps“ kann tools.url entweder die ADO-Organisations-URL oder die ADO-Projekt-URL enthalten.

    Wenn Sie eine ADO-Organisations-URL angeben, erkennt die API alle Projekte unter der angegebenen Organisation und konfiguriert keine Projekte. Bei der Bereitstellung einer ADO-Projekt-URL erkennt die API mit dem Projekt verbundene Entitäten wie (Pipelines, Repositorys und Pläne) und konfiguriert auch ein Projekt, wenn das Objekt credentials vorhanden ist. Um die API explizit anzuweisen, die Projektkonfiguration zu überspringen, konfigurieren Sie eine Kennzeichnung configureTool (Typ: boolean) auf false. Wenn configureTool in der Nutzlast nicht explizit angegeben oder auf truefestgelegt ist, wird das Tool automatisch konfiguriert.

    Datentyp: Zeichenfolge

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 58. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 59. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 60. Statuscodes
    Statuscode Beschreibung
    202 Onboarding-Anforderung wurde erfolgreich erstellt.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    Ergebnis Ergebnisse der Onboarding-Anforderung.
    Datentyp: Objekt
    "result": {
      "code": "String",
      "details": "String",
      "errors": {Object},
      "onboardingRequestID": "String",
      "status": "String"
    }
    result.code HTTP-Statuscode.

    Datentyp: Zeichenfolge

    result.details Detaillierte Nachricht zur Onboarding-Anforderung.

    Datentyp: Zeichenfolge

    result.errors Beschreibung eines aufgetretenen Fehlers.

    Datentyp: Objekt

    result.error.message Fehlermeldung.

    Datentyp: Zeichenfolge

    result.onboardingRequestID Eindeutiger Identifier der Onboarding-Anforderung. Verwenden Sie diesen Wert beim Aufruf des Endpunkts /devops/onboarding/status, um den Status des zugehörigen Tool-Onboarding-Prozesses abzurufen.

    Datentyp: Zeichenfolge

    result.status Status der Onboarding-Anforderung, entweder „Erfolg“ oder „Fehlgeschlagen“.

    Datentyp: Zeichenfolge

    cURL-Anforderung

    Das folgende Beispiel zeigt das Onboarding von GitHub.

    curl -X POST "https://servicenow-instance/api/sn_devops/v1/devops/onboarding/tool" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -u "username":"password" \
    -d {
      "tool":[{
        "name": "Primary GitHub",
        "type": "GitHub",
        "url": "https"//api.github.com",
        "username": "username",
        "password": "password",
        "useMidServer": false 
      }]
      "credentials" : {
        "name": "devops_user",
        "password": "devops_password"
      }
    }

    {
      "result":{
        "status": "Success",
        "details": "Onboarding request has been created. Please use the /status api and the onboarding request number to get the status of the request",
        "onboardingRequestID": "IBE0001041",
        "code": "202"
      }
    }

    DevOps – POST /devops/orchestration/changeControl

    Registriert einen Rückruf bei einer ServiceNow -Instanz für eine Orchestration-Aufgabe unter Change-Steuerung, die aufgerufen werden kann, sobald eine Entscheidung über die Change-Anforderung getroffen wurde.

    Bevor Sie diesen Endpunkt aufrufen, muss in Ihrer ServiceNow -Instanz eine Orchestration-Aufgabe erstellt werden. Sie können diese Aufgabe entweder über Discovery oder durch Aufrufen des Endpunkts DevOps – POST /devops/orchestration/stepMapping erstellen. Sie müssen auch sicherstellen, dass die Orchestration-Aufgabe einem zuvor definierten Pipeline-Schritt zugeordnet ist und die Change-Steuerung aktiviert ist (indem Sie die Option Change-Steuerung im Formular „App Stage“ auswählen). Weitere Informationen finden Sie unter DevOps-Change beschleunigen.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/orchestration/changeControl

    Standard-URL: /api/sn_devops/devops/orchestration/changeControl

    Unterstützte Anforderungsparameter

    Tabelle : 61. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 62. Abfrageparameter
    Name Beschreibung
    toolId Erforderlich. Sys_id des Tools DevOps, für das die angegebene Aufgabe unter Change-Steuerung gestellt werden soll. Befindet sich in der Orchestration-Tool-Tabelle sn_devops_orchestration_tool.

    Datentyp: Zeichenfolge

    Tooltyp Typ des Tools.

    Gültiger Wert: Beliebiger Wert, der das Tool identifiziert, z. B. „jenkins“.

    Datentyp: Zeichenfolge

    Tabelle : 63. Anforderungstextparameter
    Name Beschreibung
    callbackURL Erforderlich. URL, die die Instanz ServiceNow zurückrufen kann, sobald der zugehörige Change Request-Genehmigungsprozess abgeschlossen ist. Dieser Rückruf sollte die Pipeline-Ausführung basierend auf dem Genehmigungsergebnis fortsetzen oder nicht.

    Datentyp: Zeichenfolge

    changeRequestDetails Name-Wert-Paare der Felder, die beim Schließen einer Change-Anforderung festgelegt werden sollen. Dieses Objekt kann beliebige Felder im Change Request-Datensatz enthalten, mit Ausnahme der folgenden:
    • impact
    • Nummer
    • risk
    • risk_impact_analysis
    • sys_id

    Wenn diese Felder in der Anforderung enthalten sind, gibt der Endpunkt einen Fehler 400 zurück, und die Change-Anforderung wird nicht aktualisiert. Wenn Sie außerdem Felder einbeziehen, für die andere Pflichtfelder festgelegt werden müssen, und diese Felder nicht gesendet werden, schlägt die Anforderung während der späteren Verarbeitung der Pipeline fehl. Dieser Fehler wird in den Arbeitsnotizen des Change Request zusammen mit einer Fehlermeldung für den jeweiligen Change Request vermerkt, z. B.: Change Request-Aktualisierung fehlgeschlagen mit Grund:<Error Message from platform> . Change-Anforderung und Ausführung des zugehörigen Schritts werden abgebrochen.

    Sie können auch den boolean Parameter setCloseCode in diesem Objekt übergeben, um anzugeben, ob Abschlussinformationen für den zugeordneten Change Request-Datensatz festgelegt werden sollen.
    • Bei „true“ wird das Feld close_code auf den Status des Jobs und das Feld close_notes auf einen Link zur Schrittausführung im zugehörigen Change Request-Datensatz festgelegt. Der Standardwert ist „true“.
    • Bei „false“ werden die Felder close_code und close_notes nicht festgelegt, und im Feld work_notes wird ein Link zur Schrittausführung festgelegt.

    Datentyp: Objekt

    istMultiBranch Wenn das Orchestration-Tool Jenkins ist, Kennzeichnung, die angibt, ob das Projekt vom Typ Multibranch ist.
    Gültige Werte:
    • true: Projekt ist vom Typ Multibranch.
    • „false“: Projekt ist nicht vom Typ Multibranch.

    Datentyp: Boolesch

    Standardwert: false

    orchestrationTaskDetails Erforderlich. Beschreibung der Orchestration-Aufgabe.

    Datentyp: Objekt

    "orchestrationTaskDetails": {
      "message": "String",
      "triggerType": "String",
      "upstreamTaskExecutionURL": "String"
    }
    orchestrationTaskDetails.message Freiform-Textnachricht.

    Datentyp: Zeichenfolge

    orchestrationTaskDetails.triggerType Erforderlich. Die Art und Weise, wie die Orchestration-Aufgabe gestartet wurde.

    Gültige Werte:

    • upstream: Vorgelagerter Auftrag hat diesen Auftrag ausgelöst.
    • Benutzer: Der Benutzer hat die Aufgabe manuell gestartet.
    • scm: Commit des Git/SCM-Toolcodes hat den Job ausgelöst.

    Datentyp: Zeichenfolge

    orchestrationTaskDetails.upstreamTaskExecutionURL Erforderlich, wenn triggerType auf „ upstream“ festgelegt ist. Ausführungs-URL der vorgelagerten Aufgabe.

    Beispiel: https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/

    Datentyp: Zeichenfolge

    OrchestrationTaskURL Erforderlich. URL der Orchestration-Aufgabe, für die der Rückruf erstellt werden soll.

    Beispiel: https://jenkins.mycompany.com:8080/orchestration_task/Mobile-Platform-deploy/

    Datentyp: Zeichenfolge

    parentNode Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe verschachtelt ist, enthält dieser Wert die Details des übergeordneten Knotens.

    Datentyp: Objekt

    "parentNode": {
      "id": "String",
      "name": "String",
      "upstreamStageName": "String",
      "upstreamTaskExecutionURL": "String"
    }
    parentNode.id Eindeutige ID für den übergeordneten Knoten.

    In Jenkins entspricht dieser Wert einer Pipeline-Phasen-ID.

    Datentyp: Zeichenfolge
    parentNode.name Name des übergeordneten Knotens.

    In Jenkins entspricht dieser Wert einem Pipeline-Stufennamen.

    Datentyp: Zeichenfolge
    parentNode.upstreamStageName Name der vorgelagerten Orchestration-Aufgabe des übergeordneten Knotens.

    In Jenkins entspricht dieser Wert einem Pipeline-Stufennamen.

    Datentyp: Zeichenfolge
    parentNode.upstreamTaskExecutionURL URL der vorgelagerten Aufgabenausführung des übergeordneten Knotens.

    In Jenkins entspricht dieser Wert einer Pipeline-Phasenausführungs-URL.

    Datentyp: Zeichenfolge
    parentStageName Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe verschachtelt ist, der Name der übergeordneten Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    parentStageURL Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe verschachtelt ist, die URL der übergeordneten Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 64. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützte Typen: application/json oder application/xml.

    Standard: application/json

    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 65. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 66. Statuscodes
    Statuscode Beschreibung
    201 Anforderung erfolgreich abgeschlossen.
    400 Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt.
    401 Ungültige oder fehlende Authentifizierung.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    changeSteuerung Kennzeichnung, die angibt, ob die Orchestration-Aufgabe unter Change-Steuerung steht.
    Mögliche Werte:
    • true: Unter Change-Kontrolle.
    • false: Nicht unter Change-Kontrolle

    Datentyp: Boolesch

    cURL-Anforderung

    curl -X POST "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeControl?toolId=f0ca45679323008b52f3b457415ae6&toolType=jenkins"
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
      \"orchestrationTaskURL\":\"https://jenkins.mycompany.com:8080/orchestration task/Mobile-Platform-deploy/\",
      \"callbackURL\":\"https://jenkins.mycompany.com:8080/sn-devops/964aca59-0cae-4d9b-a36d-5929f426cf31\",
      \"orchestrationTaskDetails\":{
        \"message\":\"Started by upstream project \\\"Mobile-Platform-test\\\" build number 40\",
        \"triggerType\":\"upstream\",
        \"upstreamTaskExecutionURL\":\"https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/\"}
    }"

    Antworttext.

    {
    "result": {
       "changeControl": true,
       "status": "Success"
       }
    }

    cURL-Anforderung

    Dieses Beispiel zeigt, wie Felder im Objekt changeRequestDetails übergeben werden, wenn ein Change Request geschlossen wird.

    curl -X POST "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeControl?toolId=f0ca45679323008b52f3b457415ae6&toolType=jenkins"
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
      "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":"test user1"
          },
          "watch_list":[
            {
              "name":"test user1"
            },
            {
              "name":"test user2"
            },
            {
              "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",
        }
      }
    }"

    Antworttext.

    {
    "result": {
       "changeControl": true,
       "status": "Success"
       }
    }

    DevOps – POST /devops/orchestration/stepMapping

    Überprüft, ob die übergebenen Informationen für die Erstellung einer Orchestration-Aufgabe und für die Zuordnung zu einem zuvor erstellten Schritt gültig sind. Wenn beide gültig sind, wird die Orchestration-Aufgabe erstellt und die Zuordnung vorgenommen.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/orchestration/stepMapping

    Standard-URL: /api/sn_devops/devops/orchestration/stepMapping

    Unterstützte Anforderungsparameter

    Tabelle : 67. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 68. Abfrageparameter
    Name Beschreibung
    toolId Erforderlich. Sys_id des Orchestration-Tools. Befindet sich in der Tabelle „Orchestration-Tool“ [sn_devops_orchestration_tool].

    Datentyp: Zeichenfolge

    Tooltyp Erforderlich. Typ des Tools.

    Gültige Werte: jenkins

    Datentyp: Zeichenfolge

    Tabelle : 69. Anforderungstextparameter
    Name Beschreibung
    branchName Name der Verzweigung, die der Orchestration-Aufgabe zugeordnet ist.

    Datentyp: Zeichenfolge

    istMultiBranch Wenn das Orchestration-Tool Jenkins ist, Kennzeichnung, die angibt, ob das Projekt vom Typ Multibranch ist.
    Gültige Werte:
    • true: Projekt ist vom Typ Multibranch.
    • „false“: Projekt ist nicht vom Typ Multibranch.

    Datentyp: Boolesch

    Standardwert: false

    parentNode Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe verschachtelt ist, enthält dieser Wert die Details des übergeordneten Knotens.

    Datentyp: Objekt

    "parentNode": {
      "id": "String",
      "name": "String",
      "upstreamStageName": "String",
      "upstreamTaskExecutionURL": "String"
    }
    parentNode.id Eindeutige ID für den übergeordneten Knoten.

    In Jenkins entspricht dieser Wert einer Pipeline-Phasen-ID.

    Datentyp: Zeichenfolge
    parentNode.name Name des übergeordneten Knotens.

    In Jenkins entspricht dieser Wert einem Pipeline-Stufennamen.

    Datentyp: Zeichenfolge
    parentNode.upstreamStageName Name der vorgelagerten Orchestration-Aufgabe des übergeordneten Knotens.

    In Jenkins entspricht dieser Wert einem Pipeline-Stufennamen.

    Datentyp: Zeichenfolge
    parentNode.upstreamTaskExecutionURL URL der vorgelagerten Aufgabenausführung des übergeordneten Knotens.

    In Jenkins entspricht dieser Wert einer Pipeline-Phasenausführungs-URL.

    Datentyp: Zeichenfolge
    parentStageName Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe verschachtelt ist, der Name der übergeordneten Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    parentStageURL Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe verschachtelt ist, die URL der übergeordneten Orchestration-Aufgabe.

    Datentyp: Zeichenfolge

    OrchestrationTaskName Erforderlich. Name der Orchestration-Aufgabe. Dies ist die gleiche Aufgabe, auf die in orchestrationTaskURLverwiesen wird.

    Datentyp: Zeichenfolge

    OrchestrationTaskURL Erforderlich. URL der Orchestration-Aufgabe.

    Beispiel: https://jenkins.mycompany.com:8080/orchestration_task/Mobile-Platform-deploy/

    Datentyp: Zeichenfolge

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 70. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 71. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 72. Statuscodes
    Statuscode Beschreibung
    201 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    400 Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt.
    401 Nicht autorisiert. Die Anmeldeinformationen sind falsch oder wurden nicht übergeben.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Parameter des Antwort-Haupttexts

    Element Beschreibung
    status Kennzeichnung, die angibt, ob die Überprüfung erfolgreich war.

    Datentyp: Boolesch

    stepValid Kennzeichnung, die angibt, ob die gesendeten Informationen gültig sind.

    Datentyp: Boolesch

    Beispiel für eine cURL-Anforderung

    curl -X POST "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/stepMapping?toolId=f0ca45679323008b52f3b457415ae6&toolType=jenkins"
    -H "Accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
      \"orchestrationTaskURL\":\" http://127.0.0.1:8090/jenkins/job/CorpSite/job/primary#deploy PROD/\",
      \"orchestrationTaskName\":\" primary#deploy PROD\"
    }"

    Ergebnisse, wenn die Informationen gültig sind.

    {
      "result": {
        "stepValid": true,
        "status": "Success"
      }
    }

    Ergebnisse, wenn die Informationen ungültig sind.

    {
      "result": {
        "stepValid": false,
        "status": "Success"
      }
    }

    DevOps - POST /devops/package/registration

    Ermöglicht Orchestration-Tools, neue Artefaktpakete zu erstellen, die die angegebenen Artefaktversionen enthalten.

    Artefaktpakete werden verwendet, um Commits für Change-Genehmiger anzuzeigen, wenn sie eine Change-Anforderung anzeigen. Damit Commits in Change-Anforderungen angezeigt werden, muss das Paket in der Phase vor der Phase mit der Change-Genehmigung erstellt werden.

    Alle in der Paketregistrierungsanforderung enthaltenen Artefaktversionen sollten bereits bei DevOps registriert sein. Weitere Informationen zum Registrieren von Artefaktversionen finden Sie unter DevOps - POST /devops/artifact/registration.

    Normalerweise übergeben Sie die Parameter artifacts.version und artifacts.name, wenn Sie eine Artefaktversion identifizieren, die in ein Paket aufgenommen werden soll. Sie können auch die erweiterten Funktionen dieses Endpunkts verwenden, mit denen Sie die Build-Details für jede Artefaktversion anstelle der Version selbst übergeben können. Artefaktspezifische Build-Details umfassen die folgenden Parameter:
    • artifacts.pipelineName oder artifacts.projectName
    • artifacts.taskExecutionNumber
    • artifacts.stageName
    • artifacts.branchName
    Der Endpunkt verwendet diese Artefakt-spezifischen Build-Details, um Informationen zur Aufgabenausführung zu suchen, und kopiert dann die zugehörigen Versionen in das Paket. Sie verwendet nicht-artefaktspezifische Build-Details (pipelineName oder projectName, taskExecutionNumber, branchNameund stageName), um das erstellte Paket einer Pipeline-Ausführung zuzuordnen.
    Hinweis:
    Dieser Endpunkt unterstützt keine Updates. Es wird immer ein neues Paket erstellt, auch wenn bereits eines mit demselben Namen vorhanden ist.

    Weitere Informationen zu Artefaktpaketen finden Sie unter DevOps-Change-Beschleunigung für Releases verwenden.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/package/registration

    Standard-URL: /api/sn_devops/devops/package/registration

    Unterstützte Anforderungsparameter

    Tabelle : 73. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 74. Abfrageparameter
    Name Beschreibung
    orchestrationToolId Erforderlich. Sys_id des Orchestration-Tools, das dem Artefaktpaket zugeordnet ist. Befindet sich in der Tabelle „Orchestration-Tool“ [sn_devops_orchestration_tool]. Der Endpunkt verwendet diese Informationen, um Informationen zur Aufgabenausführung zu finden.

    Datentyp: Zeichenfolge

    toolId Sys_id des Artefakttools, das dem Artefaktpaket zugeordnet ist. Befindet sich in der Tabelle „Artifakttool“ [sn_devops_artifact_tool].

    Datentyp: Zeichenfolge

    Tabelle : 75. Anforderungstextparameter
    Name Beschreibung
    Artefakte Mindestens ein Eintrag erforderlich. Array von Objekten, in dem jedes Objekt eine Artefaktversion eindeutig identifiziert, die in das Paket aufgenommen werden soll.

    Datentyp: Array

    "artifacts": [
    {
      "branchName": "String",
      "name": "String",
      "pipelineName": "String",
      "projectName": "String",
      "repositoryName": "String",
      "stageName": "String",
      "taskExecutionNumber": "String",
      "version": "String"
    ]
    Artefakte.branchName Erforderlich, wenn artifact.version nicht übergeben wird und es sich um ein Setup mit mehreren Verzweigungen handelt. Name der Verzweigung, in der die Artefaktversionen gespeichert werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    Standard: Null

    Artefakte.Name Erforderlich. Name der Artefaktdatei.

    Datentyp: Zeichenfolge

    Maximale Länge: 160 Zeichen

    Artefakte.pipelineName Erforderlich, wenn artifact.version und artifacts.projectName nicht übergeben werden. Pipeline-Name

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    Standard: Null

    Artefakte.Projektname Erforderlich, wenn artifact.version und artifact.pipelineName nicht übergeben werden. Freiform-Projektname.

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    Standard: Null

    Artefakte.Repository-Name Erforderlich. Name des Artefakt-Repositorys.

    Datentyp: Zeichenfolge

    Maximale Länge: 160 Zeichen

    Artefakte.Phasenname Erforderlich, wenn artifact.version nicht übergeben wird. Phasenname.

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    Standard: Null

    Artefakte.AufgabeAusführungsNummer Erforderlich, wenn artifact.version nicht übergeben wird. Pipeline-Ausführungsnummer.

    Datentyp: Zeichenfolge

    Standard: Null

    Artefakte.Version Erforderlich, wenn keine Build-Details angegeben sind. Version der Artefakte.

    Datentyp: Zeichenfolge

    Format:<Major> .<Minor>

    Standard: Null

    branchName Erforderlich, wenn es sich um ein Projekt mit mehreren Zweigstellen handelt. Name der Verzweigung im Repository, in der die Artefakte gespeichert werden.

    Datentyp: Zeichenfolge

    Maximale Länge: 200 Zeichen

    Standard: Null

    Name Erforderlich. Name des Pakets.

    Datentyp: Zeichenfolge

    Maximale Länge: 160 Zeichen

    pipelineName Erforderlich, wenn projectName nicht übergeben wird. Pipeline-Name

    Datentyp: Zeichenfolge

    Maximale Länge: 160 Zeichen

    Standard: Null

    projectName Erforderlich, wenn pipelineName nicht übergeben wird. Freiform-Projektname.

    Datentyp: Zeichenfolge

    Maximale Länge: 160

    Standard: Null

    stageName Erforderlich, wenn pipelineName übergeben wird. Phasenname.

    Datentyp: Zeichenfolge

    Maximale Länge: 160 Zeichen

    Standard: Null

    taskExecutionNumber Erforderlich. Pipeline-Ausführungsnummer.

    Datentyp: Zeichenfolge

    Maximale Länge: 128 Zeichen

    Standard: Null

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 76. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 77. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 78. Statuscodes
    Statuscode Beschreibung
    200 Erfolg. Erfolg mit Antworttext.
    201 Erstellt. Erfolg mit Antworttext.
    400 Ungültige Anforderung. Der Anforderungs-URI stimmt nicht mit den APIs im System überein, oder der Vorgang ist aus unbekannten Gründen fehlgeschlagen. Auch ungültige Kopfzeilen können diesen Fehler verursachen.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    Antwort Ergebnisse der Paketregistrierungsanforderung.

    Datentyp: Objekt

    "response": {
      "artifact_register_requests": {Object},
      "sn_devops_m2m_artifact_version_package": {Object},
      "sn_devops_package": {Object}
    }
    response.artifact_register_requests Ergebnisse für alle Registeranforderungen, deren Verarbeitung nicht abgeschlossen ist und die in der Tabelle „Bereitgestellte Artefaktanforderung“ [sn_devops_artifact_staging] gespeichert wurden.

    Datentyp: Objekt

    "artifact_register_requests": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.artifact_register_requests.create Wenn die Anforderung Paketbereitstellungsdatensätze erstellt hat, die Liste der sys_ids der erstellten Bereitstellungsdatensätze.

    Datentyp: Array

    "create": [
      {
        "id": "String"
      }
    ]
    response.artifact_register_requests.create.id Sys_id des von der Anforderung erstellten Paketbereitstellungsdatensatzes.

    Datentyp: Zeichenfolge

    response.artifact_register_requests.found Wenn die zugehörigen Paketbereitstellungsdatensätze bereits vorhanden sind, die Liste der sys_ids der vorhandenen Datensätze.
    Hinweis:
    An vorhandenen Paketen werden keine Änderungen vorgenommen.

    Datentyp: Array

    "found": [
      {
        "id": "String"
      }
    ]
    response.artifact_register_requests.found.id Sys_id eines vorhandenen Paketbereitstellungsdatensatzes.

    Datentyp: Zeichenfolge

    response.artifact_register_requests.update Derzeit nicht verwendet.
    response.artifact_register_requests.update.id Derzeit nicht verwendet.
    response.sn_devops_m2m_artifact_version_package Ergebnisse für jede Artefaktversion, die einem Paket zugeordnet ist.

    Datentyp: Objekt

    "sn_devops_m2m_artifact_version_package": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.sn_devops_m2m_artifact_version_package.create Wenn die Anforderung Datensätze erstellt hat, die Artefaktversionen mit Paketen verknüpfen, die Liste der sys_ids der erstellten Datensätze in der Tabelle „Artefaktversion zu Paket“ [sn_devops_m2m_artifact_version_package].

    Datentyp: Array

    "create": [
      {
        "id": "String"
      }
    ]
    response.sn_devops_m2m_artifact_version_package.create.id Sys_id des von der Anforderung erstellten Artefaktversion-zu-Paket-Datensatzes.

    Datentyp: Zeichenfolge

    response.sn_devops_m2m_artifact_version_package.found Wenn in der Tabelle „Artefaktversion zu Paket“ bereits ein Verknüpfungsdatensatz vorhanden ist, die Liste der sys_ids der vorhandenen Verknüpfungsdatensätze.
    Hinweis:
    An vorhandenen Datensätzen werden keine Änderungen vorgenommen.

    Datentyp: Array

    "found": [
      {
        "id": "String"
      }
    ]
    response.sn_devops_m2m_artifact_version_package.found.id Sys_id der vorhandenen Artefaktversion zum Paketdatensatz.

    Datentyp: Zeichenfolge

    response.sn_devops_m2m_artifact_version_package.update

    Derzeit nicht verwendet.

    response.sn_devops_m2m_artifact_version_package.update.id

    Derzeit nicht verwendet.

    response.sn_devops_package Ergebnisse für alle Paketdatensätze in der Pakettabelle [sn_devops_package], die während der Verarbeitung der Anforderung manipuliert wurden.

    Datentyp: Objekt

    "sn_devops_package": {
      "create": [Array],
      "found": [Array],
      "update": [Array]
    }
    response.sn_devops_package.create Wenn Paketdatensätze durch die Anforderung erstellt wurden, die Liste der sys_ids der erstellten Datensätze.

    Datentyp: Array

    "create": [
      {
        "id": "String"
      }
    ]
    response.sn_devops_package.create.id Sys_id des von der Anforderung erstellten Paketdatensatzes.

    Datentyp: Zeichenfolge

    response.sn_devops_package.found Wenn in der Registrierungsanforderung verwendete Paketdatensätze bereits vorhanden sind, die Liste der sys_ids der vorhandenen Datensätze.
    Hinweis:
    An vorhandenen Datensätzen werden keine Änderungen vorgenommen.

    Datentyp: Array

    "found": [
      {
        "id": "String"
      }
    ]
    response.sn_devops_package.found.id Sys_id eines vorhandenen Paketdatensatzes, auf den die Anforderung verweist.

    Datentyp: Zeichenfolge

    response.sn_devops_package.update Derzeit nicht verwendet.
    response.sn_devops_package.update.id Derzeit nicht verwendet.
    status Status der Registrierungsanforderung.
    Mögliche Werte:
    • Erfolg: Antworttext enthält Rückgabeergebnisse.
    • Fehler: Antworttext enthält Liste aller Fehler.

    Datentyp: Zeichenfolge

    Beispiel für eine cURL-Anforderung

    # Example passing the artifact version
    curl -X POST "https://instance.servicenow.com/api/sn_devops/devops/package/registration?toolId=f0ca45679323008b52f3b457415ae6"\
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{\
    "name": "sentimentpackage",\
    "artifacts": [\
    {\
    "name": "sa-web.jar",\
    "repositoryName": "services-1031",\
    "version": "3.1"\
    },\
    {\
    "name": "sa-frontend.jar",\
    "repositoryName": "services-1031",\
    "version": "9.2"\
    }\
    ],\
    "pipelineName": "spring-boot-app",\
    "taskExecutionNumber": "160",\
    "stageName": "Build",\
    "branchName": "primary"\
    }"

    Antwort – Paket erstellt:

    "result": {
    "status": "Success",
    "response": {
      "sn_devops_package": {
        "create": [
            {
              "id": "0d57367a532e00107109ddeeff7b122a"
            } 
          ],
        "update": [],
        "found": []
      },
      "sn_devops_m2m_artifact_version_package": {
        "create": [
          {
            "id": "c957367a532e00107109ddeeff7b122b"
          },
          {
            "id": "8157367a532e00107109ddeeff7b122c"
          }
        ],
        "update": [],
        "found": []
        }
      },
      "responseCode": 201
      }
    }

    Beispiel für eine cURL-Anforderung

    # Example passing the build details
    curl -X POST "https://instance.servicenow.com/api/sn_devops/devops/package/registration?toolId=f0ca45679323008b52f3b457415ae6"
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{\
    "name": "sentimentpackage",\
    "artifacts": [\
    {\
    "name": "sa-web.jar",\
    "repositoryName": "services-1031",\
    "pipelineName": "spring-boot-app",\
    "taskExecutionNumber": "160",\
    "stageName": "Build",\
    "branchName": "primary"\
    },\
    {\
    "name": "sa-frontend.jar",\
    "repositoryName": "services-1031",\
    "pipelineName": "spring-boot-fe",\
    "taskExecutionNumber": "991",\
    "stageName": "Build",\
    "branchName": "primary"\
    }\
    ],\
    "pipelineName": "spring-boot-app",\
    "taskExecutionNumber": "160",\
    "stageName": "Build",\
    "branchName": "primary"\
    }"

    Antwort – Anforderung hat ein bereitgestelltes Paket erstellt:

    {
    "result": {
      "status": "Success",
      "response": {
        "artifact_register_requests": {
          "create": [
            { 
              "id": "4628f276532e00107109ddeeff7b1245"
            },
            {
              "id": "4e28f276532e00107109ddeeff7b1245"
            },
            {
              "id": "ce28f276532e00107109ddeeff7b1245"
            }
          ],
          "update": [],
          "found": []
        }
      }, 
      "responseCode": 201 
     }
    }

    DevOps – POST /devops/tool/{capability}

    Veröffentlicht die übergebene Nutzlast in der Tabelle „Eingehendes Event“ [sn_devops_inbound] zur Verarbeitung durch einen benutzerdefinierten Subflow DevOps.

    Rufen Sie diesen Endpunkt über den zugeordneten Webhook in Ihrem Tool auf, der durch den übergebenen Parameter capability angegeben wird. Ein benutzerdefinierter Subflow zur Verarbeitung der übergebenen Nutzlast muss bereits in Ihrer ServiceNow -Instanz definiert sein. Basierend auf einem vordefinierten Zeitplan ruft der DevOps Master-Flow die Webhook-Event-Informationen aus der Tabelle „Inbound Event“ ab und übergibt sie an den benutzerdefinierten Subflow, der dann die Nutzlast verarbeitet. Weitere Informationen zum Erstellen eines benutzerdefinierten Subflows finden Sie unter DevOps-Subflows erstellen.

    Weitere Informationen zur Testtool-Integration finden Sie unter DevOps-Testtool-Integration.

    Bevor Sie diesen Endpunkt für ein benutzerdefiniertes Tool DevOps aufrufen, müssen Sie die Methoden handleTool() und getNativeIdForOrchestrationTask() aus sn_devops.DevOpsOrchestrationToolIntegrationHandler implementieren. Weitere Informationen finden Sie unter DevOpsOrchestrationToolIntegrationHandler – ScopedDevOpsOrchestrationToolIntegrationHandler – Scoped.

    Hinweis:
    Ab Version 1.34.1 wurde eine neue Version dieser API eingeführt. Mit dieser API werden Richtlinien für adaptive Authentifizierung möglicherweise nicht wie erwartet ausgeführt. Weitere Informationen zu diesen Richtlinien finden Sie unter Adaptive authentication.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/tool/{capability}

    Standard-URL: /api/sn_devops/devops/tool/{capability}

    Unterstützte Anforderungsparameter

    Tabelle : 79. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Fähigkeit Typ des Tools, das die Nutzlast weitergibt, die in der Tabelle „Eingehendes Event“ gespeichert werden soll.
    Gültige Werte (Groß-/Kleinschreibung beachten):
    • Artefakt
    • Code
    • Orchestration
    • Planen
    • testen

    Datentyp: Zeichenfolge

    Tabelle : 80. Abfrageparameter
    Name Beschreibung
    orchestrationToolId Optional. Die sys_id des Orchestration-Tools, zu dem die zugehörige Pipeline gehört. orchestrationToolId ist erforderlich, wenn der Anforderungsparameter capability auf test oder softwarequalityfestgelegt ist.

    toolId ist das standardmäßige Orchestration-Tool, wenn OrchestrationToolId nicht vorhanden ist.

    testType Erforderlich, wenn capability auf „ test“ festgelegt ist. Typ des ausgeführten Tests.

    Die gültigen Werte für diesen Parameter befinden sich in der Spalte „Testtyp“ der Tabelle „Testtypen“ [sn_devops_test_type].

    toolId Erforderlich. Sys_id des Tools, für das der Endpunkt aufgerufen wird.
    Tabelle : 81. Anforderungstextparameter
    Name Beschreibung
    Toolabhängig Das Tool bestimmt den Inhalt der Nutzlast.

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 82. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 83. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 84. Statuscodes
    Statuscode Beschreibung
    201 Anforderung erfolgreich abgeschlossen.
    400 Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt.
    401 Ungültige oder fehlende Authentifizierung.
    500 Interner Serverfehler. Im serverseitigen Code ein logischer Fehler aufgetreten.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    details Eintrag für alle Fehlerbedingungen.

    Datentyp: Objekt

    "details": {
      "errors": [Array]
    }
    details.errors Beschreibung eines einzelnen Fehlers.

    Datentyp: Array

    "errors": [
      {
        "message": "String"
      }
    ]
    details.errors.message Detaillierte Fehlermeldung.
    • Die Anforderung weist keine Pfadparameter auf: Im Aufruf sind keine Pfadparameter enthalten.
    • Die Anforderung weist keine Fähigkeitspfadparameter auf: Der Fähigkeitspfadparameter wurde nicht in den Aufruf einbezogen.
    • Nicht unterstützter Fähigkeitstyp: Der angegebene Fähigkeitsparameter ist kein gültiger Wert.

    Datentyp: Zeichenfolge

    status Antwortstatus, z. B. „Erfolg“ oder „Datenfehler“.

    Datentyp: Zeichenfolge

    sys_id Sys_id des in der Tabelle „Eingehendes Event“ erstellten Datensatzes.

    Datentyp: Zeichenfolge

    Beispiel für eine cURL-Anforderung für ein Artefakt

    curl -X POST "https://instance.service-now.com/api/sn_devops/v1/tool/artifact?toolId=3b59043ee4ea556e6850d61bc1a77e8a" 
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
       "artifacts": [
          {
             "name": "sp-boot-app",
             "version": "1.320",
             "semanticVersion": "1.320.0",
             "repositoryName": "sp-boot-app-repo"
          }
       ],
       "pipelineName": "spring-boot-app-gitea",
       "taskExecutionNumber": "320",
       "stageName": "Build"
    }"

    Erfolgsantwort:

    {
       "result": {
          "status": "Success",
          "sysId": "33c57245dbf68410bc8cdd384b961966"
       }
    }

    Beispiel für eine cURL-Anforderung für ein Artefakt

    curl -X POST "https://instance.service-now.com/api/sn_devops/v1/tool/artifact?toolId=3b59043ee4ea556e6850d61bc1a77e8a" 
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\ 
    -d "{\
       "timestamp": "2020-01-11T00:52:01.541+0000",\
       "nodeId": "137BEECF-E1BF7BC1-90212D1C-0749A6D4-BC670F6B",\
       "initiator": "admin/172.17.0.1",\
       "repositoryName": "maven-releases29",\
       "action": "CREATED",\
       "component": {\
          "id": "2a59043ed2ea556e6850d61bc1a77c7b",\
          "componentId": "c3AtYm9vdC1hcHAtcmVwbzoyYTU5MDQzZWQyZWE1NTZlNjg1MGQ2MWJjMWE3N2M3Yg",\
          "format": "maven2",\
          "name": "sentiment-analysis-web",\
          "group": "com.spboot",\
          "version": "1.1"\
       }\
    }"

    Fehlerantwort:

    {
       "result": {
          "status": "Data Error",
          "details": {
             "errors": [
                {
                   "message": "Unsupported capability type"
                }
             ]
          }
       }
    }

    Beispiel für eine cURL-Anforderung für Code

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/code?toolId=8d4f56598702c510f894419d0ebb35aa&testType=junit" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "commits": [
          {
             "totalFiles": 1,
             "nativeIdList": [
                "49",
                "50"
             ],
             "id": "f14732d0cc854ce3ec374b97ecd4ec3c383386cd",
             "url": "https://dev.azure.com/xyzabcd/adoTests/_git/DeployableRepo/commit/f14732d0cc854ce3ec374b97ecd4ec3c383386cd",
             "apiURL": "https://dev.azure.com/xyzabcd/9fe32a65-60a5-46fe-bc8d-11a92bf059f9/_apis/git/repositories/8d7ba019-1739-431c-beb4-6025dd41f1ac/commits/f14732d0cc854ce3ec374b97ecd4ec3c383386cd",
             "message": "Fixes #49 and #50",
             "committedDate": "2022-03-23T11:59:46Z",
             "committer": {
                "email": "xyz.abcd@email.com"
             },
             "details": [
                {
                   "action": "edit",
                   "changes": "",
                   "file": "/LICENSE",
                   "additions": 0,
                   "deletions": 0,
                   "totalChanges": 0
                }
             ]
          }
       ],
       "repository": {
          "id": "8d7ba019-1739-431c-beb4-6025dd41f1ac",
          "name": "DeployableRepo",
          "url": "https://dev.azure.com/xyzabcd/adoTests/_git/DeployableRepo"
       },
       "branch": {
          "name": "refs/heads/master",
          "url": "https://dev.azure.com/xyzabcd/adoTests/_git/DeployableRepo?version=GBmaster"
       }
    }" \
    --user 'username':'passsword'
    

    Erfolgsantwort:

    {
       "result": {
          "status": "Success",
          "sysId: "1f8e586b879e85100f71cbfc0ebb3526"
       }
    }

    Beispiel für eine cURL-Anforderung für Orchestration

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/orchestration?toolId=8d4f56598702c510f894419d0ebb35aa&testType=junit" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "toolId": "d450f5c887e609100f71cbfc0ebb35e5",
      "buildNumber": 5676,
      "nativeId": "adoTests/DeployableRepo#deploy#5676",
      "pipelineId": "2",
      "name": "adoTests/DeployableRepo#deploy",
      "id": "adoTests/DeployableRepo#deploy#5676",
      "url": "https://dev.azure.com/xyzabcd/_build/results?buildId=5676#deploy/",
      "previousAttemptUrl": "",
      "attemptNumber": 1,
      "pipelineExecutionUrl": "https://dev.azure.com/xyzabcd/_build/results?buildId=5676",
      "orchestrationTaskUrl": "https://dev.azure.com/xyzabcd/adoTests/_build?name=DeployableRepo#deploy",
      "orchestrationTaskName": "adoTests/DeployableRepo #deploy",
      "orchestrationTask": {
        "orchestrationTaskName": "adoTests/DeployableRepo#deploy",
        "toolId": "d450f5c887e609100f71cbfc0ebb35e5",
        "orchestrationTaskURL": "https://dev.azure.com/xyzabcd/adoTests/_build?name=DeployableRepo#deploy",
        "stageName": "deploy"
      },
      "upstreamTaskUrl": [],
      "result": "building",
      "startDateTime": "2022-03-23 12:01:31",
      "log": "https://dev.azure.com/xyzabcd/adoTests/_build/results?buildId=5676&view=logs&j=5264e576-3c6f-51f6-f055-fab409685f20",
      "logUrl": "https://dev.azure.com/xyzabcd/adoTests/_build/results?buildId=5676&view=logs&j=5264e576-3c6f-51f6-f055-fab409685f20"
    }" \
    --user 'username':'password'
    

    Erfolgsantwort:

    {
       "result": {
          "status": "Success",
          "sysId: "37dfd8a7879e85100f71cbfc0ebb35c0"
       }
    }

    Beispiel für eine cURL-Anforderung für -Plan

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/plan?toolId=8d4f56598702c510f894419d0ebb35aa&testType=junit" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "id": "1053",
       "type": "bug",
       "state": "planned",
       "shortDescription": "Title - Work Item test in 1.33.3",
       "createdDateTime": "2022-03-23T10:45:53.02Z",
       "parentId": "",
       "url": "https://dev.azure.com/xyzabcd/9fe32a65-60a5-46fe-bc8d-11a92bf059f9/_workitems/edit/1053",
       "version": {
          "id": "adoTests",
          "shortDescription": "adoTests",
          "createdDateTime": "2022-03-23T10:46:12.355Z",
          "url": "https://dev.azure.com/xyzabcd/adoTests",
          "app": {
             "id": "adoTests",
             "shortDescription": "adoTests",
             "createdDateTime": "2022-03-23T10:46:12.355Z",
             "url": "https://dev.azure.com/xyzabcd/9fe32a65-60a5-46fe-bc8d-11a92bf059f9/_workitems/edit/1053"
          }
       },
       "app": {
          "id": "adoTests",
          "shortDescription": "adoTests",
          "createdDateTime": "2022-03-23T10:46:12.355Z",
          "url": "https://dev.azure.com/xyzabcd/adoTests"
       },
       "native_type": "Issue",
       "native_state": "To Do",
       "assignedTo": {
          "name": "Xyz Abcd",
          "userName": "xyz.abcd@email.com",
          "id": "84c92fcd-e08b-6a5f-a8a6-ccda27055560",
          "email": "xyz.abcd@email.com"
       },
       "createdBy": {
          "name": "Xyz Abcd",
          "userName": "xyz.abcd@email.com",
          "id": "84c92fcd-e08b-6a5f-a8a6-ccda27055560",
          "email": "xyz.abcd@email.com"
       }
    }" \
    --user 'username':'password'
    

    Erfolgsantwort:

    {
       "result": {
          "status": "Success",
          "sysId: "533020eb879e85100f71cbfc0ebb3591"
       }
    }

    Beispiel für eine cURL-Anforderung für Test

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/test?toolId=8d4f56598702c510f894419d0ebb35aa&testType=junit" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "attemptNumber": 1,
       "blockedTests": 0,
       "buildNumber": 675,
       "duration": 0.079,
       "failedTests": 0,
       "finishTime": "2022-03-23T12:02:25.957Z",
       "name": "adoTests/DeployableRepo/Test #675-2982",
       "passedTests": 20,
       "pipelineName": "adoTests/DeployableRepo",
       "skippedTests": 0,
       "stageName": "Test",
       "startTime": "2022-03-23T12:02:24.36Z",
       "taskExecutionUrl": "https://dev.azure.com/xyzabcd/adoTests/_build/results?buildId=675#Test/{Job name}",
       "totalTests": 20,
       "url": "https://dev.azure.com/xyzabcd/adoTests/_TestManagement/Runs?runId=2982&_a=runCharts"
    }" \
    --user 'username':'password'
    

    Erfolgsantwort:

    {
       "result": {
          "status": "Success",
          "sysId: "fd3fdc6b879e85100f71cbfc0ebb356a"
       }
    }

    DevOps – POST /devops/tool/event/{sn_tool_id}

    Veröffentlicht die übergebene Nutzlast von GitHub, Jiraoder Bitbucket in der Event-Tabelle [sn_devops_event] zur Verarbeitung durch einen vorab erstellten Subflow.

    Bevor Sie diesen Endpunkt aufrufen, müssen Sie eine Integration mit dem von Ihnen verwendeten Tool erstellen.
    • GitHub-Integration mit DevOps
    • Jira-Integration mit DevOps
    • Bitbucket-Integration mit DevOps

    Um Events aus einem anderen Tool als GitHub, Jiraoder Bitbucketzu verarbeiten, verwenden Sie stattdessen den Endpunkt DevOps – POST /devops/tool/{capability}.

    Hinweis:
    Ab Version 1.34.1 wurde eine neue Version dieser API eingeführt. Mit dieser API werden Richtlinien für adaptive Authentifizierung möglicherweise nicht wie erwartet ausgeführt. Weitere Informationen zu diesen Richtlinien finden Sie unter Adaptive authentication.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/tool/event/{sn_tool_id}

    Standard-URL: /api/sn_devops/devops/tool/event/{sn_tool_id}

    Unterstützte Anforderungsparameter

    Tabelle : 85. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    sn_tool_id Sys_id des Tools, das für die Anforderung verwendet werden soll. Befindet sich in der DevOps-Tools-Tabelle [sn_devops_tool].

    Datentyp: Zeichenfolge

    Tabelle : 86. Abfrageparameter
    Name Beschreibung
    Keine
    Tabelle : 87. Anforderungstextparameter
    Name Beschreibung
    Toolabhängig Das Tool bestimmt den Inhalt der Nutzlast. Die Nutzlast befindet sich im Tool unter den Webhook-Informationen.

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 88. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 89. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 90. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    201 Anforderung erfolgreich abgeschlossen.
    400 Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt.
    401 Ungültige oder fehlende Authentifizierung.
    500 Interner Serverfehler. Im serverseitigen Code ein logischer Fehler aufgetreten.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    Ergebnis Antwortstatus.
    Mögliche Werte:
    • Fehler: Falsche Tool-ID. Event nicht erstellt.
    • success: In der Tabelle „Events“ [sn_devops_event] erstelltes Event. Der Event-Status kann jedoch „ Fehler “ sein, wenn eine falsche Nutzlast angegeben wurde.

    Datentyp: Zeichenfolge

    cURL-Anforderung

    GitHub

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/event/46a07b2f471e011028c23a34846d43b2" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "ref": "refs/heads/master",
       "before": "59078a17cad1f4129754971c808d6c399b6141a5",
       "after": "b7957bab20835449c4d597fee24075a9a5a2c099",
       "repository": {
          "id": 252146476,
          "node_id": "MDEwOlJlcG9zaXRvcnkyNTIxNDY0NzY=",
          "name": "test",
          "full_name": "Xyz002/test",
          "private": false,
          "owner": {
             "name": "Xyz002",
             "email": "62993516+Xyz002@users.noreply.github.com",
             "login": "Xyz002",
             "id": 62993516,
             "node_id": "MDQ6VXNlcjYyOTkzNTE2",
             "avatar_url": "https://avatars.githubusercontent.com/u/62993516?v=4",
             "gravatar_id": "",
             "url": "https://api.github.com/users/Xyz002",
             "html_url": "https://github.com/Xyz002",
             "followers_url": "https://api.github.com/users/Xyz002/followers",
             "following_url": "https://api.github.com/users/Xyz002/following{/other_user}",
             "gists_url": "https://api.github.com/users/Xyz002/gists{/gist_id}",
             "starred_url": "https://api.github.com/users/Xyz002/starred{/owner}{/repo}",
             "subscriptions_url": "https://api.github.com/users/Xyz002/subscriptions",
             "organizations_url": "https://api.github.com/users/Xyz002/orgs",
             "repos_url": "https://api.github.com/users/Xyz002/repos",
             "events_url": "https://api.github.com/users/Xyz002/events{/privacy}",
             "received_events_url": "https://api.github.com/users/Xyz002/received_events",
             "type": "User",
             "site_admin": false
          },
          "html_url": "https://github.com/Xyz002/test",
          "description": null,
          "fork": false,
          "url": "https://github.com/Xyz002/test",
          "forks_url": "https://api.github.com/repos/Xyz002/test/forks",
          "keys_url": "https://api.github.com/repos/Xyz002/test/keys{/key_id}",
          "collaborators_url": "https://api.github.com/repos/Xyz002/test/collaborators{/collaborator}",
          "teams_url": "https://api.github.com/repos/Xyz002/test/teams",
          "hooks_url": "https://api.github.com/repos/Xyz002/test/hooks",
          "issue_events_url": "https://api.github.com/repos/Xyz002/test/issues/events{/number}",
          "events_url": "https://api.github.com/repos/Xyz002/test/events",
          "assignees_url": "https://api.github.com/repos/Xyz002/test/assignees{/user}",
          "branches_url": "https://api.github.com/repos/Xyz002/test/branches{/branch}",
          "tags_url": "https://api.github.com/repos/Xyz002/test/tags",
          "blobs_url": "https://api.github.com/repos/Xyz002/test/git/blobs{/sha}",
          "git_tags_url": "https://api.github.com/repos/Xyz002/test/git/tags{/sha}",
          "git_refs_url": "https://api.github.com/repos/Xyz002/test/git/refs{/sha}",
          "trees_url": "https://api.github.com/repos/Xyz002/test/git/trees{/sha}",
          "statuses_url": "https://api.github.com/repos/Xyz002/test/statuses/{sha}",
          "languages_url": "https://api.github.com/repos/Xyz002/test/languages",
          "stargazers_url": "https://api.github.com/repos/Xyz002/test/stargazers",
          "contributors_url": "https://api.github.com/repos/Xyz002/test/contributors",
          "subscribers_url": "https://api.github.com/repos/Xyz002/test/subscribers",
          "subscription_url": "https://api.github.com/repos/Xyz002/test/subscription",
          "commits_url": "https://api.github.com/repos/Xyz002/test/commits{/sha}",
          "git_commits_url": "https://api.github.com/repos/Xyz002/test/git/commits{/sha}",
          "comments_url": "https://api.github.com/repos/Xyz002/test/comments{/number}",
          "issue_comment_url": "https://api.github.com/repos/Xyz002/test/issues/comments{/number}",
          "contents_url": "https://api.github.com/repos/Xyz002/test/contents/{+path}",
          "compare_url": "https://api.github.com/repos/Xyz002/test/compare/{base}...{head}",
          "merges_url": "https://api.github.com/repos/Xyz002/test/merges",
          "archive_url": "https://api.github.com/repos/Xyz002/test/{archive_format}{/ref}",
          "downloads_url": "https://api.github.com/repos/Xyz002/test/downloads",
          "issues_url": "https://api.github.com/repos/Xyz002/test/issues{/number}",
          "pulls_url": "https://api.github.com/repos/Xyz002/test/pulls{/number}",
          "milestones_url": "https://api.github.com/repos/Xyz002/test/milestones{/number}",
          "notifications_url": "https://api.github.com/repos/Xyz002/test/notifications{?since,all,participating}",
          "labels_url": "https://api.github.com/repos/Xyz002/test/labels{/name}",
          "releases_url": "https://api.github.com/repos/Xyz002/test/releases{/id}",
          "deployments_url": "https://api.github.com/repos/Xyz002/test/deployments",
          "created_at": 1585737871,
          "updated_at": "2022-01-04T14:37:36Z",
          "pushed_at": 1648103939,
          "git_url": "git://github.com/Xyz002/test.git",
          "ssh_url": "git@github.com:Xyz002/test.git",
          "clone_url": "https://github.com/Xyz002/test.git",
          "svn_url": "https://github.com/Xyz002/test",
          "homepage": null,
          "size": 1378,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "Java",
          "has_issues": true,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": true,
          "has_pages": false,
          "forks_count": 0,
          "mirror_url": null,
          "archived": false,
          "disabled": false,
          "open_issues_count": 2,
          "license": null,
          "allow_forking": true,
          "is_template": false,
          "topics": [],
          "visibility": "public",
          "forks": 0,
          "open_issues": 2,
          "watchers": 0,
          "default_branch": "master",
          "stargazers": 0,
          "master_branch": "master"
       },
       "pusher": {
          "name": "Xyz002",
          "email": "62993516+Xyz002@users.noreply.github.com"
       },
       "sender": {
          "login": "Xyz002",
          "id": 62993516,
          "node_id": "MDQ6VXNlcjYyOTkzNTE2",
          "avatar_url": "https://avatars.githubusercontent.com/u/62993516?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Xyz002",
          "html_url": "https://github.com/Xyz002",
          "followers_url": "https://api.github.com/users/Xyz002/followers",
          "following_url": "https://api.github.com/users/Xyz002/following{/other_user}",
          "gists_url": "https://api.github.com/users/Xyz002/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/Xyz002/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/Xyz002/subscriptions",
          "organizations_url": "https://api.github.com/users/Xyz002/orgs",
          "repos_url": "https://api.github.com/users/Xyz002/repos",
          "events_url": "https://api.github.com/users/Xyz002/events{/privacy}",
          "received_events_url": "https://api.github.com/users/Xyz002/received_events",
          "type": "User",
          "site_admin": false
       },
       "created": false,
       "deleted": false,
       "forced": false,
       "base_ref": null,
       "compare": "https://github.com/Xyz002/test/compare/59078a17cad1...b7957bab2083",
       "commits": [
          {
             "id": "b7957bab20835449c4d597fee24075a9a5a2c099",
             "tree_id": "fa8d699762ec0a25868fa1ab4d299da392f0a974",
             "distinct": true,
             "message": "updated this file",
             "timestamp": "2022-03-24T12:08:59+05:30",
             "url": "https://github.com/Xyz002/test/commit/b7957bab20835449c4d597fee24075a9a5a2c099",
             "author": {
                "name": "Xyz002",
                "email": "62993516+Xyz002@users.noreply.github.com",
                "username": "Xyz002"
             },
             "committer": {
                "name": "GitHub",
                "email": "noreply@github.com",
                "username": "web-flow"
             },
             "added": [],
             "removed": [],
             "modified": [
                "README.me"
             ]
          }
       ],
       "head_commit": {
          "id": "b7957bab20835449c4d597fee24075a9a5a2c099",
          "tree_id": "fa8d699762ec0a25868fa1ab4d299da392f0a974",
          "distinct": true,
          "message": "updated this file",
          "timestamp": "2022-03-24T12:08:59+05:30",
          "url": "https://github.com/Xyz002/test/commit/b7957bab20835449c4d597fee24075a9a5a2c099",
          "author": {
             "name": "Xyz002",
             "email": "62993516+Xyz002@users.noreply.github.com",
             "username": "Xyz002"
          },
          "committer": {
             "name": "GitHub",
             "email": "noreply@github.com",
             "username": "web-flow"
          },
          "added": [],
          "removed": [],
          "modified": [
             "README.me"
          ]
       },
       "sn_tool_id": "46a07b2f471e011028c23a34846d43b2"
    }" \
    --user 'username':'password'
    

    Erfolgsantwort:

    {
       "result": "success"
    }

    cURL-Anforderung

    Jira

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/event/9ed237af471e011028c23a34846d4327" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "timestamp": 1648104684180,
       "webhookEvent": "jira:issue_created",
       "issue_event_type_name": "issue_created",
       "user": {
          "self": "http://jira1.sndevops.xyz/rest/api/2/user?username=admin",
          "name": "admin",
          "key": "admin",
          "emailAddress": "username@email.com",
          "avatarUrls": {
             "48x48": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=48",
             "24x24": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=24",
             "16x16": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=16",
             "32x32": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=32"
          },
          "displayName": "Administrator",
          "active": true,
          "timeZone": "America/Los_Angeles"
       },
       "issue": {
          "id": "84800",
          "self": "http://jira1.sndevops.xyz/rest/api/2/issue/84800",
          "key": "BAL-2",
          "fields": {
             "issuetype": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/issuetype/10002",
                "id": "10002",
                "description": "A task that needs to be done.",
                "iconUrl": "http://jira1.sndevops.xyz/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype",
                "name": "Task",
                "subtask": false,
                "avatarId": 10318
             },
             "timespent": null,
             "project": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/project/10507",
                "id": "10507",
                "key": "BAL",
                "name": "balu_devops",
                "projectTypeKey": "software",
                "avatarUrls": {
                   "48x48": "http://jira1.sndevops.xyz/secure/projectavatar?avatarId=10324",
                   "24x24": "http://jira1.sndevops.xyz/secure/projectavatar?size=small&avatarId=10324",
                   "16x16": "http://jira1.sndevops.xyz/secure/projectavatar?size=xsmall&avatarId=10324",
                   "32x32": "http://jira1.sndevops.xyz/secure/projectavatar?size=medium&avatarId=10324"
                }
             },
             "fixVersions": [],
             "aggregatetimespent": null,
             "resolution": null,
             "customfield_10302": null,
             "customfield_10105": null,
             "resolutiondate": null,
             "workratio": 0,
             "lastViewed": null,
             "watches": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/issue/BAL-2/watchers",
                "watchCount": 0,
                "isWatching": false
             },
             "created": "2022-03-24T06:51:22.896+0000",
             "priority": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/priority/3",
                "iconUrl": "http://jira1.sndevops.xyz/images/icons/priorities/medium.svg",
                "name": "Medium",
                "id": "3"
             },
             "customfield_10100": "0|i0cprw:",
             "customfield_10101": "SCRUMBOARD-14",
             "customfield_10300": null,
             "labels": [],
             "timeestimate": 240,
             "aggregatetimeoriginalestimate": 300,
             "versions": [],
             "issuelinks": [
                {
                   "id": "10701",
                   "self": "http://jira1.sndevops.xyz/rest/api/2/issueLink/10701",
                   "type": {
                      "id": "10000",
                      "name": "Blocks",
                      "inward": "is blocked by",
                      "outward": "blocks",
                      "self": "http://jira1.sndevops.xyz/rest/api/2/issueLinkType/10000"
                   },
                   "outwardIssue": {
                      "id": "84741",
                      "key": "BAL-1",
                      "self": "http://jira1.sndevops.xyz/rest/api/2/issue/84741",
                      "fields": {
                         "summary": "log4jtesting",
                         "status": {
                            "self": "http://jira1.sndevops.xyz/rest/api/2/status/3",
                            "description": "This issue is being actively worked on at the moment by the assignee.",
                            "iconUrl": "http://jira1.sndevops.xyz/images/icons/statuses/inprogress.png",
                            "name": "In Progress",
                            "id": "3",
                            "statusCategory": {
                               "self": "http://jira1.sndevops.xyz/rest/api/2/statuscategory/4",
                               "id": 4,
                               "key": "indeterminate",
                               "colorName": "yellow",
                               "name": "In Progress"
                            }
                         },
                         "priority": {
                            "self": "http://jira1.sndevops.xyz/rest/api/2/priority/3",
                            "iconUrl": "http://jira1.sndevops.xyz/images/icons/priorities/medium.svg",
                            "name": "Medium",
                            "id": "3"
                         },
                         "issuetype": {
                            "self": "http://jira1.sndevops.xyz/rest/api/2/issuetype/10004",
                            "id": "10004",
                            "description": "A problem which impairs or prevents the functions of the product.",
                            "iconUrl": "http://jira1.sndevops.xyz/secure/viewavatar?size=xsmall&avatarId=10303&avatarType=issuetype",
                            "name": "Bug",
                            "subtask": false,
                            "avatarId": 10303
                         }
                      }
                   }
                }
             ],
             "assignee": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/user?username=admin",
                "name": "admin",
                "key": "admin",
                "emailAddress": "username@email.com",
                "avatarUrls": {
                   "48x48": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=48",
                   "24x24": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=24",
                   "16x16": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=16",
                   "32x32": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=32"
                },
                "displayName": "Administrator",
                "active": true,
                "timeZone": "America/Los_Angeles"
             },
             "updated": "2022-03-24T06:51:22.896+0000",
             "status": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/status/10000",
                "description": "",
                "iconUrl": "http://jira1.sndevops.xyz/",
                "name": "To Do",
                "id": "10000",
                "statusCategory": {
                   "self": "http://jira1.sndevops.xyz/rest/api/2/statuscategory/2",
                   "id": 2,
                   "key": "new",
                   "colorName": "blue-gray",
                   "name": "To Do"
                }
             },
             "components": [],
             "timeoriginalestimate": 300,
             "description": "Task description",
             "timetracking": {
                "originalEstimate": "5m",
                "remainingEstimate": "4m",
                "originalEstimateSeconds": 300,
                "remainingEstimateSeconds": 240
             },
             "customfield_10203": null,
             "customfield_10204": null,
             "customfield_10205": null,
             "attachment": [],
             "aggregatetimeestimate": 240,
             "summary": "Task Summary",
             "creator": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/user?username=admin",
                "name": "admin",
                "key": "admin",
                "emailAddress": "username@email.com",
                "avatarUrls": {
                   "48x48": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=48",
                   "24x24": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=24",
                   "16x16": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=16",
                   "32x32": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=32"
                },
                "displayName": "Administrator",
                "active": true,
                "timeZone": "America/Los_Angeles"
             },
             "subtasks": [],
             "reporter": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/user?username=admin",
                "name": "admin",
                "key": "admin",
                "emailAddress": "username@email.com",
                "avatarUrls": {
                   "48x48": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=48",
                   "24x24": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=24",
                   "16x16": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=16",
                   "32x32": "https://www.gravatar.com/avatar/eccd6ec2c978f1f1d4a1fed4e81265eb?d=mm&s=32"
                },
                "displayName": "Administrator",
                "active": true,
                "timeZone": "America/Los_Angeles"
             },
             "customfield_10000": "{summaryBean=com.atlassian.jira.plugin.devstatus.rest.SummaryBean@2ccf8c6[summary={pullrequest=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@fbc42d4[overall=PullRequestOverallBean{stateCount=0, state='OPEN', details=PullRequestOverallDetails{openCount=0, mergedCount=0, declinedCount=0}},byInstanceType={}], build=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@71e33347[overall=com.atlassian.jira.plugin.devstatus.summary.beans.BuildOverallBean@1c24654d[failedBuildCount=0,successfulBuildCount=0,unknownBuildCount=0,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], review=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@1ea8fb17[overall=com.atlassian.jira.plugin.devstatus.summary.beans.ReviewsOverallBean@6dc95939[stateCount=0,state=<null>,dueDate=<null>,overDue=false,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], deployment-environment=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@55826cc[overall=com.atlassian.jira.plugin.devstatus.summary.beans.DeploymentOverallBean@3ae93527[topEnvironments=[],showProjects=false,successfulCount=0,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], repository=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@6340012e[overall=com.atlassian.jira.plugin.devstatus.summary.beans.CommitOverallBean@44678cee[count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], branch=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@4dbce8[overall=com.atlassian.jira.plugin.devstatus.summary.beans.BranchOverallBean@737ee1cb[count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}]},errors=[],configErrors=[]], devSummaryJson={\"cachedValue\":{\"errors\":[],\"configErrors\":[],\"summary\":{\"pullrequest\":{\"overall\":{\"count\":0,\"lastUpdated\":null,\"stateCount\":0,\"state\":\"OPEN\",\"details\":{\"openCount\":0,\"mergedCount\":0,\"declinedCount\":0,\"total\":0},\"open\":true},\"byInstanceType\":{}},\"build\":{\"overall\":{\"count\":0,\"lastUpdated\":null,\"failedBuildCount\":0,\"successfulBuildCount\":0,\"unknownBuildCount\":0},\"byInstanceType\":{}},\"review\":{\"overall\":{\"count\":0,\"lastUpdated\":null,\"stateCount\":0,\"state\":null,\"dueDate\":null,\"overDue\":false,\"completed\":false},\"byInstanceType\":{}},\"deployment-environment\":{\"overall\":{\"count\":0,\"lastUpdated\":null,\"topEnvironments\":[],\"showProjects\":false,\"successfulCount\":0},\"byInstanceType\":{}},\"repository\":{\"overall\":{\"count\":0,\"lastUpdated\":null},\"byInstanceType\":{}},\"branch\":{\"overall\":{\"count\":0,\"lastUpdated\":null},\"byInstanceType\":{}}}},\"isStale\":false}}",
             "aggregateprogress": {
                "progress": 0,
                "total": 240,
                "percent": 0
             },
             "customfield_10200": null,
             "customfield_10201": null,
             "customfield_10202": null,
             "environment": null,
             "duedate": "2022-03-24",
             "progress": {
                "progress": 0,
                "total": 240,
                "percent": 0
             },
             "comment": {
                "comments": [],
                "maxResults": 0,
                "total": 0,
                "startAt": 0
             },
             "votes": {
                "self": "http://jira1.sndevops.xyz/rest/api/2/issue/BAL-2/votes",
                "votes": 0,
                "hasVoted": false
             },
             "worklog": {
                "startAt": 0,
                "maxResults": 20,
                "total": 0,
                "worklogs": []
             }
          }
       },
       "changelog": {
          "id": "14401",
          "items": [
             {
                "field": "Link",
                "fieldtype": "jira",
                "from": null,
                "fromString": null,
                "to": "BAL-1",
                "toString": "This issue blocks BAL-1"
             }
          ]
       },
       "sn_tool_id": "9ed237af471e011028c23a34846d4327"
    }" \
    --user 'username':'password'
    

    Erfolgsantwort:

    {
       "result": "success"
    }

    cURL-Anforderung

    Bitbucket

    curl "https://instance.service-now.com/api/sn_devops/devops/tool/event/6975ecaf879e85100f71cbfc0ebb3575" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "eventKey": "repo:refs_changed",
       "date": "2022-03-23T15:57:05+0000",
       "actor": {
          "name": "admin",
          "emailAddress": "username@email.com",
          "id": 1,
          "displayName": "Admin",
          "active": true,
          "slug": "admin",
          "type": "NORMAL",
          "links": {
             "self": [
                {
                   "href": "http://bitbucket2.sndevops.xyz/users/admin"
                }
             ]
          }
       },
       "repository": {
          "slug": "testautomationrepo1",
          "id": 12,
          "name": "TestAutomationRepo1",
          "scmId": "git",
          "state": "AVAILABLE",
          "statusMessage": "Available",
          "forkable": true,
          "origin": {
             "slug": "testautomationrepo1",
             "id": 1,
             "name": "TestAutomationRepo1",
             "scmId": "git",
             "state": "AVAILABLE",
             "statusMessage": "Available",
             "forkable": true,
             "project": {
                "key": "TES",
                "id": 1,
                "name": "TestAutomation",
                "public": false,
                "type": "NORMAL",
                "links": {
                   "self": [
                      {
                         "href": "http://bitbucket2.sndevops.xyz/projects/TES"
                      }
                   ]
                }
             },
             "public": false,
             "links": {
                "clone": [
                   {
                      "href": "ssh://git@bitbucket2.sndevops.xyz:7999/tes/testautomationrepo1.git",
                      "name": "ssh"
                   },
                   {
                      "href": "http://bitbucket2.sndevops.xyz/scm/tes/testautomationrepo1.git",
                      "name": "http"
                   }
                ],
                "self": [
                   {
                      "href": "http://bitbucket2.sndevops.xyz/projects/TES/repos/testautomationrepo1/browse"
                   }
                ]
             }
          },
          "project": {
             "key": "~ADMIN",
             "id": 3,
             "name": "Admin",
             "type": "PERSONAL",
             "owner": {
                "name": "admin",
                "emailAddress": "username@email.com",
                "id": 1,
                "displayName": "Admin",
                "active": true,
                "slug": "admin",
                "type": "NORMAL",
                "links": {
                   "self": [
                      {
                         "href": "http://bitbucket2.sndevops.xyz/users/admin"
                      }
                   ]
                }
             },
             "links": {
                "self": [
                   {
                      "href": "http://bitbucket2.sndevops.xyz/users/admin"
                   }
                ]
             }
          },
          "public": false,
          "links": {
             "clone": [
                {
                   "href": "http://bitbucket2.sndevops.xyz/scm/~admin/testautomationrepo1.git",
                   "name": "http"
                },
                {
                   "href": "ssh://git@bitbucket2.sndevops.xyz:7999/~admin/testautomationrepo1.git",
                   "name": "ssh"
                }
             ],
             "self": [
                {
                   "href": "http://bitbucket2.sndevops.xyz/users/admin/repos/testautomationrepo1/browse"
                }
             ]
          }
       },
       "changes": [
          {
             "ref": {
                "id": "refs/heads/master",
                "displayId": "master",
                "type": "BRANCH"
             },
             "refId": "refs/heads/master",
             "fromHash": "b482b2e232f5fbdee73feed8ca1cfb774de6976e",
             "toHash": "d783254fe6f77bc7cc079358158aeef52a457587",
             "type": "UPDATE"
          }
       ],
       "sn_tool_id": "6975ecaf879e85100f71cbfc0ebb3575"
    }" \
    --user 'username':'password'
    

    Erfolgsantwort:

    {
       "result": "success"
    }

    DevOps PUT /devops/orchestration/changeControl/{changeControlId}

    Aktualisiert die Change-Steuerungsinformationen für die angegebene Orchestration-Aufgabe.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/orchestration/changeControl/{changeControlId}

    Standard-URL: /api/sn_devops/devops/orchestration/changeControl/{changeControlId}

    Unterstützte Anforderungsparameter

    Tabelle : 91. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    changeControlId Sys_id der Change-Steuerungsaufgabe. Befindet sich in der Rückruftabelle [sn_devops_callback].

    Datentyp: Zeichenfolge

    Tabelle : 92. Abfrageparameter
    Name Beschreibung
    toolId Erforderlich. Sys_id des Tools DevOps, das der Change-Steuerungsaufgabe zugeordnet ist. Befindet sich in der Tabelle „Orchestration-Tool“ [sn_devops_orchestration_tool].

    Datentyp: Zeichenfolge

    Tabelle : 93. Anforderungstextparameter
    Name Beschreibung
    callbackURL Erforderlich. URL, die die Instanz ServiceNow zurückrufen kann, sobald der zugehörige Change Request-Genehmigungsprozess abgeschlossen ist. Dieser Rückruf sollte die Pipeline-Ausführung basierend auf dem Genehmigungsergebnis fortsetzen oder nicht.

    Datentyp: Zeichenfolge

    orchestrationTaskDetails Erforderlich. Beschreibung der Orchestration-Aufgabe.

    Datentyp: Objekt

    "orchestrationTaskDetails": {
      "message": "String",
      "triggerType": "String",
      "upstreamTaskExecutionURL": "String"
    }
    orchestrationTaskDetails.message Freiform-Textnachricht.

    Datentyp: Zeichenfolge

    orchestrationTaskDetails.triggerType Erforderlich. Die Art und Weise, wie die Orchestration-Aufgabe gestartet wurde.

    Gültige Werte:

    • upstream: Vorgelagerter Auftrag hat diesen Auftrag ausgelöst.
    • Benutzer: Der Benutzer hat die Aufgabe manuell gestartet.
    • scm: Commit des Git/SCM-Toolcodes hat den Job ausgelöst.

    Datentyp: Zeichenfolge

    orchestrationTaskDetails.upstreamTaskExecutionURL Erforderlich, wenn triggerType auf „ upstream“ festgelegt ist. Ausführungs-URL der vorgelagerten Aufgabe.

    Beispiel: https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/

    Datentyp: Zeichenfolge

    OrchestrationTaskURL Erforderlich. URL der Orchestration-Aufgabe.

    Beispiel: https://jenkins.mycompany.com:8080/orchestration_task/Mobile-Platform-deploy/

    Datentyp: Zeichenfolge

    Tooltyp Typ des Tools DevOps.

    Gültiger Wert: jenkins

    Datentyp: Zeichenfolge

    taskAusführungs-URL URL der auszuführenden Aufgabe.

    Datentyp: Zeichenfolge

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 94. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 95. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 96. Statuscodes
    Statuscode Beschreibung
    200 Anforderung erfolgreich abgeschlossen.
    400 Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt.
    401 Ungültige oder fehlende Authentifizierung.
    404 Nicht gefunden. Der angegebene Datensatz wurde nicht gefunden.
    500 Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    change_control Kennzeichnung, die angibt, ob die Orchestration-Aufgabe unter Change-Steuerung steht.
    Mögliche Werte:
    • true: Unter Change-Kontrolle.
    • false: Nicht unter Change-Kontrolle.

    Datentyp: Boolesch

    details Eintrag für alle Fehlerbedingungen.

    Datentyp: Objekt

    "details": {
      "errors": [Array]
    }
    details.errors Beschreibung eines einzelnen Fehlers.

    Datentyp: Array

    "errors": [
      {
        "message": "String"
      }
    ]
    details.errors.message Detaillierte Fehlermeldung.

    Datentyp: Zeichenfolge

    Beispiel für eine cURL-Anforderung

    curl -X PUT "https://instance.service-now.com/api/sn_devops/v1/devops/orchestration/change/f0ca45679323008b52f3b457415ae6?toolId=f0ca45679323008b52f3b457415ae6"
    -H "accept: application/json"\
    -H "Content-Type: application/json"\
    -u "username":"password"\
    -d "{
      \"orchestrationTaskURL\":\"https://jenkins.mycompany.com:8080/job/Mobile-Platform-deploy/\",
      \"toolType\":\"jenkins\",
      \"callbackURL\":\"https://jenkins.mycompany.com:8080/sn-devops/964aca59-0cae-4d9b-a36d-5929f426cf31\",
      \"orchestrationTaskDetails\":{
        \"message\":\"Started by upstream project \\\"Mobile-Platform-test\\\" build number 40\",
        \"triggerType\":\"upstream\",
        \"upstreamTaskExecutionURL\":\"https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/\"}
    }"

    Antwort:

    {
        "result": {
            "change_control": true
        }
    }

    DevOps PUT /devops/orchestration/changeInfo/{changeInfo}

    Aktualisiert Felder in einem angegebenen Change Request.

    URL-Format

    Versionierte URL: /api/sn_devops/{api_version}/devops/orchestration/changeInfo/{changeInfo}

    Standard-URL: /api/sn_devops/devops/orchestration/changeInfo/{changeInfo}

    Unterstützte Anforderungsparameter

    Tabelle : 97. Pfadparameter
    Name Beschreibung
    api_version Optional. Version des Endpunkts, auf den zugegriffen werden soll. Zum Beispiel v1 oder v2. Geben Sie diesen Wert nur an, um eine andere Endpunktversion als die neueste zu verwenden.

    Datentyp: Zeichenfolge

    Tabelle : 98. Abfrageparameter
    Name Beschreibung
    changeRequestNumber Erforderlich. Change-Anforderungsnummer, die der zu aktualisierenden Orchestration-Aufgabe zugeordnet ist. Befindet sich in der Change Request-Tabelle [change_request].

    Datentyp: Zeichenfolge

    Tabelle : 99. Anforderungstextparameter
    Name Beschreibung
    Daten Erforderlich. Name-Wert-Paare für das Feld bzw. die Felder in der zugehörigen Change Request aktualisieren.
    Um beispielsweise die Kurzbeschreibungsdatei zu aktualisieren, geben Sie ein Name-Wert-Paar ähnlich dem folgenden ein:
     "{\"short_description\": \"my short desc\" }"
    Für den Parameter state werden nur die folgenden Übergänge unterstützt:
    • abbrechen:
      • Der Change-Anforderungsstatus muss implementiert sein, um den Status in „Abbrechen“ zu ändern.
      • Der Parameter reason ist eine obligatorische Eingabe, um den Status auf „Abgebrochen“ zu aktualisieren.
    • geschlossen:
      • Der Status der Change-Anforderung muss „Implementieren“ oder „Nach der Implementierung“ sein, um den Status in „Schließen“ zu ändern.
      • close_code und close_notes sind obligatorische Eingaben, um den Status auf „Geschlossen“ zu aktualisieren.
        Mögliche Werte:
        • 4: Abbrechen (In der Eigenschaft sn_devops.change_request.cancel_state festgelegter Wert.)
        • 3: Geschlossen (In der Eigenschaft sn_devops.change_request.closed_state festgelegter Wert.)

    Datentyp: Zeichenfolge

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST-API verwendet werden, finden Sie unter Unterstützte REST-API-Header.

    Tabelle : 100. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Autorisierung
    Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können abgerufen werden, indem Sie im Tooldatensatz in der Tabelle „Tool“ [sn_devops_tool] auf die Schaltfläche Token kopieren klicken. Das Token kann dann in einem Autorisierungsheader im Format Autorisierung: sn_devops.DevOpsToken verwendet werden<tool_sys_id> :<tool_token> .
    Hinweis:
    Wenn zusätzlich zu einem Autorisierungsheader mit Token Details zur Basisauthentifizierung (Benutzername und Passwort) angegeben werden, hat die Basisauthentifizierung Vorrang.

    Wenn der Benutzer devops.system in Ihrer Instanz nicht verfügbar ist, verwenden Sie die Eigenschaft Zu diesem Benutzer wechseln, nachdem die tokenbasierte Authentifizierung erfolgreich war. Diese Eigenschaft ermöglicht das Festlegen eines Benutzers mit der Rolle „sn_devops.integration“, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Diesbezügliche Informationen finden Sie unter .

    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 101. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST-API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 102. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    400 Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt.
    404 Nicht gefunden. Das angeforderte Element wurde nicht gefunden.

    Parameter des Antwort-Haupttexts

    Name Beschreibung
    Nachricht Beschreibung der Ergebnisse des Updates.

    Datentyp: Zeichenfolge

    status Status der Anforderung.
    Mögliche Werte:
    • Erfolg: Die Change-Anforderung wurde gefunden, und die Change-Details wurden erfolgreich aktualisiert.
    • Fehler: Change-Anforderung wurde nicht gefunden, und Change-Details wurden nicht aktualisiert.

    Datentyp: Zeichenfolge

    updateStatus Status des Updates.
    Mögliche Werte:
    • Fertig
    • Fehler

    Datentyp: Zeichenfolge

    cURL-Anforderung

    Das folgende Codebeispiel zeigt, wie verschiedene Felder in der Change-Anforderung CHG0030023 aktualisiert werden.

    curl -X PUT"
    https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeInfo?changeRequestNumber=CHG0030023
    
    -H "accept: application/json"\
    -u "username":"password" 
    - D
    {
      "short_description": "Test description",
      "priority": "1",
      "start_date": "2021-02-05 08:00:00",
      "end_date": "2022-04-05 08:00:00",
      "justification": "test justification",
      "description": "test description",
      "cab_required": true,
      "comments": "This update for work notes is from jenkins file",
      "work_notes": "test work notes",
      "assignment_group": "a715cd759f2002002920bde8132e7018"
    }

    Antwort:

    {
      "result": {
        "updateStatus": "Done",
        "status": "Success",
        "message": "change request update successful"
      }
    }