DevOps-API
Die DevOps- API stellt Endpunkte bereit, 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üft, ob eine Orchestration-Aufgabe unter Change-Kontrolle steht, und ihren Status für die Change-Steuerung.
- Erstellen Sie Rückrufe, die Aufgabenausführungen unter Change-Steuerung zugeordnet werden.
- Senden Sie verschiedene Ereignisnutzlasten, die in normalisierte Objekte umgewandelt und als Code-, Orchestration- und Planobjekte gespeichert werden.
- Durchsuchen Sie einen Commit, eine Verzweigung oder ein Repository mithilfe codierter Abfragen und spezifischer Such-/Sortierkriterien.
- Registrieren Sie Artefaktversionen und -pakete zusammen mit der zugehörigen Pipelineausführung und den Commits.
- Erstellen und verwalten Sie Onboarding-Anwendungs- und Tool-Ereignisse.
Weitere Informationen finden Sie unter DevOps Config.
„Autorisierung: sn_devops.DevOpsToken“verwendet werden<tool_sys_id> :<tool_token> .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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties.
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.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/code/schema
Standard-URL: /api/sn_devops/devops/code/schema
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| Ressource | Erforderlich. Typ des zurückzugebenden Ressourcenschemas. Gültige Werte (Groß-/Kleinschreibung nicht relevant):
Datentyp: Zeichenfolge |
| 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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 | Name der Verzweigung, in der der Code-Commit durchgeführt wurde. Datentyp: Zeichenfolge |
| branch.path | Relativer Pfad der Verzweigung. Datentyp: Zeichenfolge |
| Commits | Beschreibung der Commits. Datentyp: Array von Objekten |
| commits.committedDate | Datum/Uhrzeit, zu der der Code im Quelltool DevOps festgelegt 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 |
| 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 von Objekten |
| commits.details.action | Aktion, die für die Datei ausgeführt wurde. Datentyp: Zeichenfolge |
| „committeds.details.additions“ | Gesamtzahl der Ergänzungen in der Datei. Datentyp: Zahl |
| „committeds.details.changes“ | Gesamtzahl der vorgenommenen Changes. Datentyp: Zahl |
| commits.details.deletions | Gesamtzahl der Löschungen in der Datei. Datentyp: Zahl |
| commits.details.file | Pfad der Datei, die relativ zur Verzweigung geändert wurde. Datentyp: Zeichenfolge |
| commits.details.totalChanges | Gesamtanzahl der Hinzufügungen und Löschungen. Datentyp: Zahl |
| commits.id | Bezeichner der Quellplattform oder 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 durchgeführt wurde. Datentyp: Objekt |
| 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-Ereignisses zurück, das vom Service DevOps verarbeitet wird oder asynchron verarbeitet wird.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/onboarding/status
Standard-URL: /api/sn_devops/devops/onboarding/status
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| id | Eindeutiger Bezeichner des Onboarding-Ereignisses, dessen Status zurückgegeben werden soll. Dieser Wert wird in den Rückgabeergebnissen des Endpunkts bereitgestellt, der die Ereignisanforderung aufgerufen hat, z. B. /devops/onboarding/app oder /devops/onboarding/tool. Datentyp: Zeichenfolge |
| 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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 Service DevOps verarbeitet die Anforderung. |
| 400 | Fehlgeschlagen: Das Onboarding-Ereignis ist fehlgeschlagen. |
| 404 | Fehlgeschlagen – Der Endpunkt konnte keine Anforderung finden, die der angegebenen Ereignis-ID entspricht. |
Parameter des Antwort-Haupttexts
| Name | Beschreibung |
|---|---|
| Ergebnis | Ergebnisse der Onboarding-Anforderung. Datentyp: Objekt |
| 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-Ereignisses. Datentyp: Objekt |
| result.messageDetails.apps | Definiert die Apps, die in der zugeordneten Instanz ServiceNow erstellt werden sollen. Datentyp: Array von Objekten |
| result.messageDetails.apps.appId | Sys_id der Anwendung, die beim Onboarding der Anwendung generiert wurde. Datentyp: Zeichenfolge Tabelle: Apps [sn_devops_app] |
| result.messageDetails.apps.message | Nachricht, die den Status des Onboardings der Anwendung 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 Onboardings der Anwendung. Mögliche Werte:
Datentyp: Zeichenfolge |
| result.messageDetails.pipelines | Liste der Pipelines, die dem Onboarding-Ereignis zugeordnet sind, und die entsprechenden Details. Datentyp: Array von Objekten |
| result.messageDetails.pipelines.changeStepAssociation | Array von Objekten, die Change-Schritte beschreiben, die dem Onboarding zugeordnet sind. Datentyp: Array von Objekten |
| 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:
Datentyp: Zeichenfolge |
| result.messageDetails.pipelines.changeStepAssociation.summary | Zusammenfassung des Status der Zuordnung des Change-Schritts. Datentyp: Zeichenfolge |
| Ergebnis.NachrichtDetails.Pipelines.Fehler | Liste der beim Zuordnen der Pipeline erkannten Fehler. Datentyp: Array |
| Ergebnis.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 Pipeline-Zuordnung. Datentyp: Zeichenfolge |
| result.messageDetails.plans | Liste der Pläne, die dem Onboarding-Ereignis zugeordnet sind, und die entsprechenden Details. Datentyp: Array von Objekten |
| result.messageDetails.plans.errors | Liste der beim Zuordnen des Plans erkannten Fehler. 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 von Objekten |
| result.messageDetails.repositories.configureStatus | Details zum Webhook-Konfigurationsstatus für das Repository. Datentyp: Objekt |
| 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:
Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse | Liste der Tools für das Onboarding in der zugehörigen Instanz ServiceNow. Datentyp: Array von Objekten |
| result.messageDetails.toolResponse.configureStatus | Konfigurationsstatus des Tools. Im Erfolgsfall werden status und messagezurückgegeben. Im Falle eines Fehlers werden status und errorzurückgegeben. Datentyp: Objekt |
| result.messageDetails.toolResponse.configureStatus.error | Während der Toolkonfiguration wurden Fehler erkannt. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.configureStatus.message | Meldung, die den erfolgreichen Status der Toolkonfiguration beschreibt. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.configureStatus.status | Status der Toolkonfiguration. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.connectStatus | Verbindungsstatus des Tools. Im Erfolgsfall werden status und messagezurückgegeben. Im Falle eines Fehlers werden status und errorzurückgegeben. Datentyp: Objekt |
| result.messageDetails.toolResponse.connectStatus.error | Während der Toolverbindung wurden Fehler erkannt. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.connectStatus.message | Meldung, die den erfolgreichen Status der Toolverbindung beschreibt. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.connectStatus.status | Status der Toolverbindung. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.createStatus | Erstellungsstatus des Tools. Im Erfolgsfall werden status und messagezurückgegeben. Im Falle eines Fehlers werden status und errorzurückgegeben. Datentyp: Objekt |
| result.messageDetails.toolResponse.createStatus.error | Bei der Tool-Erstellung wurden Fehler erkannt. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.createStatus.message | Meldung, die den erfolgreichen Status der Tool-Erstellung beschreibt. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.createStatus.status | Status der Toolerstellung. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.discoveryStatus | Discovery-Status des Tools. Im Erfolgsfall werden status und messagezurückgegeben. Im Falle eines Fehlers werden status und errorzurückgegeben. Datentyp: Objekt |
| result.messageDetails.toolResponse.discoveryStatus.error | Während der Tool-Discovery wurden Fehler erkannt. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.discoveryStatus.imports | Liste der erkannten Entitäten. Datentyp: Array von Objekten |
| 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. Datentyp: Zeichenfolge Tabelle: sn_devops_m2m_inbound_event_import_request |
| result.messageDetails.toolResponse.discoveryStatus.imports.status | Status des Imports Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.discoveryStatus.message | Nachricht, die den Status der Tool-Discovery beschreibt. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.discoveryStatus.status | Status der Tool-Discovery. 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-Onboardings. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.type | Typ des Tools, z. B. Jira oder Jenkins. Datentyp: Zeichenfolge |
| result.onboardingRequestID | Eindeutiger Bezeichner der Onboarding-Anforderung. Verwenden Sie diesen Wert, wenn Sie den Endpunkt „/devops/onboarding/status“ aufrufen, um den Status des zugehörigen Tool-Onboarding-Prozesses zu erhalten. Datentyp: Zeichenfolge |
| result.status | Status der Onboarding-Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
cURL-Anforderung
Das folgende Beispiel zeigt die Statusanforderung für ein -Tool-Onboarding.
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 für das Onboarding einer -Anwendung.
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
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/orchestration/changeControl
Standard-URL: /api/sn_devops/devops/orchestration/changeControl
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| OrchestrationTaskName | Name der zu überprüfenden Orchestration-Aufgabe. Datentyp: Zeichenfolge |
| testVerbindung | Kennzeichnung, die angibt, ob die End-to-End-Verbindung zwischen der Instanz und dem Tool DevOps getestet werden soll. Gültige Werte:
Datentyp: Boolesch Standardwert: false |
| toolId | Erforderlich. Sys_id des Orchestration-Tools. Datentyp: Zeichenfolge Tabelle: Orchestration-Tool [sn_devops_orchestration_tool] |
| Tooltyp | Typ des Tools. Gültige Werte: jenkins Datentyp: Zeichenfolge |
| 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Autorisierung | Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| 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-Antwortcodes der REST-API.
| 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. |
Parameter des Antworttexts (JSON oder XML)
| Name | Beschreibung |
|---|---|
| changeControl | Kennzeichnung, die angibt, ob die Orchestration-Aufgabe unter Change-Kontrolle steht. Mögliche Werte:
Datentyp: Boolesch |
Unter Change-Steuerung 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 Details der Change-Anforderung für eine angegebene Ausführung der Orchestration-Pipeline ab.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/orchestration/changeInfo
Standard-URL: /api/sn_devops/devops/orchestration/changeInfo
Unterstützte Anforderungsparameter
| 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 |
| 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 Mven-Projekte, erforderlich für alle anderen. Name der Orchestration-Pipeline. Datentyp: Zeichenfolge |
| projectName | Erforderlich für Jenkins Freestyle- oder Mven-Projekte, optional für alle anderen. Projektname des Orchestration-Tools. Datentyp: Zeichenfolge |
| stageName | Optional für Jenkins Freestyle- oder Mven-Projekte, erforderlich für alle anderen. Name der Orchestration-Phase. Datentyp: Zeichenfolge Maximale Länge: 160 |
| toolId | Erforderlich. Sys_id des Orchestration-Tools. Datentyp: Zeichenfolge Tabelle: Orchestration-Tool [sn_devops_orchestration_tool] |
| 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Autorisierung | Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| 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-Antwortcodes der REST-API.
| 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 Antworttexts (JSON oder XML)
| Name | Beschreibung |
|---|---|
| changeFound | Kennzeichnung, die angibt, ob die Change-Anforderung gefunden wurde. Mögliche Werte:
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 der Dringlichkeit der Anforderung. Identifiziert, wie schnell der Service Desk die Anforderung bearbeiten soll. Mögliche Werte:
Datentyp: Zeichenfolge |
| Risiko | Risikostufe für den Change. Mögliche Werte:
Datentyp: Zeichenfolge |
| state | Status der Change-Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge Standard: Neu |
| sys_id | Sys_id der Change-Anforderung. Datentyp: Zeichenfolge |
| Typ | Typ der Change-Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
| URL | URL der Change-Anforderung innerhalb der zugeordneten Instanz ServiceNow. Datentyp: Zeichenfolge |
| changeAssignmentGroup | Zuweisungsgruppe der Change-Anforderung. Datentyp: Zeichenfolge |
| changeGenehmiger | Liste der Genehmiger, bei denen die Genehmigung des Change aussteht. Datentyp: Zeichenfolge |
| planmäßigesStartDate | Geplantes Startdatum und -uhrzeit des Change. Datentyp: Zeichenfolge |
| geplantesEnddatum | Geplantes Enddatum und -uhrzeit 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.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/orchestration/schema
Standard-URL: /api/sn_devops/devops/orchestration/schema
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| Ressource | Typ des zurückzugebenden Ressourcenschemas. Gültige Werte (Groß-/Kleinschreibung nicht relevant):
Datentyp: Zeichenfolge |
| 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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 | Nummer der Aufgabenausführung. Identisch mit einer Incident-Nummer. Datentyp: Zeichenfolge |
| OrchestrationTaskDetails | Beschreibung der Orchestration-Aufgabe. Datentyp: Objekt |
| „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:
Datentyp: Zeichenfolge |
| startDateTime | Datum/Uhrzeit des Starts der Aufgabenausführung. Datentyp: Zeichenfolge |
| taskAusführungsURL | URL der auszuführenden Aufgabe. Datentyp: Zeichenfolge |
| triggerType | Die Art und Weise, wie die Orchestration-Aufgabe gestartet wurde. Gültige Werte:
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
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/orchestration/stepMapping
Standard-URL: /api/sn_devops/devops/orchestration/stepMapping
Unterstützte Anforderungsparameter
| 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 |
| 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:
Datentyp: Boolesch Standardwert: false |
| parentStageName | Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe geschachtelt ist, der Name der übergeordneten Orchestration-Aufgabe. Datentyp: Zeichenfolge |
| parentStageURL | Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe geschachtelt ist, die URL der übergeordneten Orchestration-Aufgabe. Datentyp: Zeichenfolge |
| OrchestrationTaskName | Erforderlich. Name der Orchestration-Aufgabe. Datentyp: Zeichenfolge |
| „orchestrationTaskURL“ | Erforderlich. URL der Orchestration-Aufgabe. Hinweis: Datentyp: ZeichenfolgeMuss prozentcodiert sein, z. B. https%3A%2F%2Fjenkins.mycompany.com%3A8080%2Fjob%2FMobile-Platform-deploy%2F. |
| testVerbindung | Kennzeichnung, die angibt, ob die End-to-End-Verbindung zwischen der Instanz und dem Tool DevOps getestet werden soll. Gültige Werte:
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 |
| 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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 Verifizierung erfolgreich war. Gültige Werte:
Datentyp: Boolesch |
| stepValid | Kennzeichnung, die angibt, ob die gesendeten Informationen gültig sind. Gültige Werte:
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 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 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.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/plan/schema
Standard-URL: /api/sn_devops/devops/plan/schema
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| Ressource | Typ des zurückzugebenden Ressourcenschemas. Gültige Werte (Groß-/Kleinschreibung nicht relevant):
Datentyp: Zeichenfolge |
| 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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 | 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 | Kurze Beschreibung der zugehörigen Anwendung. Datentyp: Zeichenfolge |
| app.team | Beschreibung des Teams, das der Anwendung zugeordnet ist. Datentyp: Objekt |
| 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 Website des Quellplanungstools. Datentyp: Zeichenfolge |
| assignedTo | Beschreibung der Person, der das Arbeitselement zugewiesen ist. Datentyp: Objekt |
| assignedTo.email | E-Mail-Adresse der Person, die dem Arbeitselement zugewiesen ist. Datentyp: Zeichenfolge |
| assignedTo.id | Eindeutiger Bezeichner der Person, die dem Arbeitselement zugewiesen ist. Datentyp: Zeichenfolge |
| assignedTo.name | Name der Person, die dem Arbeitselement zugewiesen ist. Datentyp: Zeichenfolge |
| assignedTo.userName | Anwendername 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 | Name der Anwendung. Datentyp: Zeichenfolge |
| path | Relativer Pfad zu der Anwendung. Datentyp: Zeichenfolge |
| shortDescription | Kurze Beschreibung der Anwendung, Version oder des Arbeitselements. Datentyp: Zeichenfolge |
| state | Status des Arbeitselements. Wird vom Quellplanungstool generiert Datentyp: Zeichenfolge |
| team | Beschreibung des Teams, das der Anwendung zugeordnet ist. Datentyp: Objekt |
| 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 |
| Typ | 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 | Beschreibung der Anwendung, die der Version zugeordnet werden soll. Datentyp: Objekt |
| version.app.createdDateTime | Datum/Uhrzeit der Erstellung der Version im Quelltool DevOps. Datentyp: Zeichenfolge |
| version.app.id | Eindeutiger Bezeichner der Anwendung. Wird vom Quellplanungstool generiert Datentyp: Zeichenfolge |
| version.app.shortDescription | Kurze Beschreibung der zugehörigen Anwendung. Datentyp: Zeichenfolge |
| version.app.team | Beschreibung des Teams, das der Anwendung zugeordnet ist. Datentyp: Objekt |
| 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 Website des Quellplanungstools. Datentyp: Zeichenfolge |
| version.erstelltDatumUhrzeit | Datum/Uhrzeit der Erstellung der Version im Quelltool DevOps. Datentyp: Zeichenfolge |
| version.id | Eindeutiger Bezeichner der Version. Wird vom Quellplanungstool generiert Datentyp: Zeichenfolge |
| version.shortDescription | Kurze Beschreibung der zugehörigen Version. Datentyp: Zeichenfolge |
| version.url | URL der Version auf der Website des Quell-Planungstools. 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 die Registrierung von Artefakten in einer ServiceNow -Instanz.
- Wenn toolId in der Anforderung übergeben wird, überprüft der Endpunkt, ob das Tool in der Instanz vorhanden ist. Es prüft auch, ob das in artifacts.repositoryName angegebene Artefakt-Repository vorhanden ist, und erstellt es andernfalls unter dem zugehörigen Artefakt-Tool.
- 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 geprüft, ob das in artifacts.name angegebene Artefakt bereits vorhanden ist. Andernfalls wird es im zugehörigen Repository erstellt.
- Wenn artifact.version in der Anforderung übergeben wird:
- Ist er nicht vorhanden, 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 zugehörigen 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 TaskAusführung“ [sn_devops_m2m_artifact_execution] gespeichert. Mit diesen Aufgabenausführungen verknüpfte Commits werden auch der Artefaktversion zugeordnet und in der Tabelle „Artefaktversion zu Commit“ [sn_devops_m2m_artifact_version_commit] gespeichert. Alle Commits, die mit früheren Aufgabenausführungen verknüpft sind, bei denen kein Artefakt erstellt wurde, sind 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] beibehalten. Die bereitgestellte Anforderung enthält einen Verweis auf die Aufgabenausführung.
- Wenn keine Aufgabenausführung gefunden wird, wird die Anforderung in der Bereitstellungstabelle beibehalten. Die bereitgestellte Anforderung enthält die Build-Details.
- Wenn artifact.version nicht übergeben wird, wird die Artefaktversion je nach Toolkonfiguration entweder durch Aufrufen des Endpunkts „/devops/tool/artifact“, wenn Ihr Artefakt-Tool Webhooks unterstützt, oder durch einen anwenderdefinierten Subflow abgerufen, der die Artefaktversion aus dem abruft Artefakt-Tool.
Weitere Informationen zu Artefakten finden Sie unter DevOps-Change-Beschleunigung für Releases verwenden.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/artifact/registration
Standard-URL: /api/sn_devops/devops/artifact/registration
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| orchestrationToolId | Erforderlich. Sys_id des Orchestration-Tools, das dem Artefakt zugeordnet ist. Der Endpunkt verwendet diese Informationen, um Informationen zur Aufgabenausführung zu finden. Datentyp: Zeichenfolge Tabelle: Orchestration-Tool [sn_devops_orchestration_tool] |
| toolId | Sys_id des Artefakt-Tools, das dem Artefakt zugeordnet ist. Datentyp: Zeichenfolge Tabelle: Artefakt-Tool [sn_devops_artifact_tool] |
| Name | Beschreibung |
|---|---|
| Artefakte | Mindestens ein Eintrag erforderlich. Array von Objekten, in dem jedes Objekt eine zu registrierende Artefaktversion eindeutig identifiziert. Datentyp: Array von Objekten |
| artifacts.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:
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 Verzweigungen 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Autorisierung | Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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 Artefakt-Registrierungsanforderung. Datentyp: Objekt |
| response.artifact | Ergebnisse für jedes verarbeitete Artefakt. Datentyp: Objekt |
| Antwort.Artefakt.Erstellen | Wenn die Anforderung Artefaktdatensätze erstellt hat, die Liste der sys_ids der erstellten Datensätze. Datentyp: Array von Objekten Tabelle: Artefakte [sn_devops_artifact] |
| response.artifact.create.id | Sys_id des von der Anforderung erstellten Artefaktdatensatzes. Datentyp: Zeichenfolge |
| Antwort.Artefakt.gefunden | Wenn ein Artefakt bereits in der Artefakttabelle vorhanden ist, die Liste der sys_ids der vorhandenen Artefaktdatensätze. Hinweis: An vorhandenen Paketen werden keine Änderungen vorgenommen. Datentyp: Array von Objekten |
| response.artifact.found.id | Sys_id des vorhandenen Artefaktdatensatzes. Datentyp: Zeichenfolge |
| Antwort.Artefakt.Aktualisieren | Derzeit nicht verwendet |
| response.artifact.update.id | Derzeit nicht verwendet |
| response.artifact_register_requests | Ergebnisse für alle Artefaktregisteranforderungen, deren Verarbeitung nicht abgeschlossen wurde und die in der Tabelle „Bereitgestellte Artefaktanforderung“ gespeichert wurden. Datentyp: Objekt |
| response.artifact_register_requests.create | Wenn durch die Anforderung Artefakt-Bereitstellungsdatensätze erstellt wurden, die Liste der sys_ids der erstellten Datensätze. Datentyp: Array von Objekten |
| response.artifact_register_requests.create.id | Sys_id des von der Anforderung erstellten Artefakt-Bereitstellungsdatensatzes. Datentyp: Zeichenfolge |
| Antwort.Artefakt_register_Anforderungen.gefunden | Wenn Artefakten bereits Artefakt-Bereitstellungsdatensätze zugeordnet sind, die Liste der sys_ids der vorhandenen Artefakt-Bereitstellungsdatensätze. Hinweis: An vorhandenen Paketen werden keine Änderungen vorgenommen. Datentyp: Array von Objekten |
| Antwort.Artefakt_register_Anforderungen.gefunden.ID | Sys_id eines vorhandenen Artefakt-Bereitstellungsdatensatzes. 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 |
| response.artifact_repository.create | Wenn Artefakt-Repositorys von der Anforderung erstellt wurden, die Liste der sys_ids der erstellten Datensätze. Datentyp: Array von Objekten |
| response.artifact_repository.create.id | Sys_id des von der Anforderung erstellten Artefakt-Repository-Datensatzes. Datentyp: Zeichenfolge |
| response.artifact_repository.found | Wenn bereits Artefakt-Repository-Datensätze vorhanden sind, die in der Registrierungsanforderung verwendet werden, die Liste der sys_ids der vorhandenen Datensätze. Hinweis: An vorhandenen Paketen werden keine Änderungen vorgenommen. Datentyp: Array von Objekten |
| 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 in einem Repository auf „true“ (von „false“) ändert, aktualisiert die Liste der sys_ids der Repository-Datensätze, die geändert wurden. Datentyp: Array von Objekten |
| 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 |
| response.artifact_version.create | Ergebnisse für alle Artefaktversionsdatensätze, die während der Verarbeitung der Anforderung erstellt wurden. Datentyp: Array von Objekten |
| response.artifact_version.create.id | Sys_id des von der Anforderung erstellten Artefaktversionsdatensatzes. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Version.Gefunden | Wenn bereits Artefaktversionsdatensätze vorhanden sind, die in der Registrierungsanforderung verwendet werden, die Liste der sys_ids der vorhandenen Datensätze. Datentyp: Array von Objekten |
| Antwort.Artefakt_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:
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-Ereignis, das vom Service DevOps asynchron verarbeitet wird.
- Erstellen Sie Anwendungen.
- Ordnen Sie DevOps -Objekte wie, Plan, Repository und Pipeline einer -Anwendung zu.
- Erstellen Sie einen Change-Schritt-Datensatz, und ordnen Sie einer Pipeline einen Change-Genehmigungsprozess zu.
Alle diese Aktionen sind spezifisch für Tools und Funktionen. In der folgenden Tabelle sind die für jedes unterstützte Tool verfügbaren Aktionen aufgeführt.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/onboarding/app
Standard-URL: /api/sn_devops/devops/onboarding/app
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| Keine |
| Name | Beschreibung |
|---|---|
| apps | Array von Objekten, die die Apps definieren, die in der zugeordneten Instanz ServiceNow erstellt werden sollen. Datentyp: Array |
| Apps.businessApp | Name des cmdb_ci_business_app-Elements, dem die Anwendung zugeordnet wird. Dadurch wird die Anwendung DevOps an die angegebene CMDB-Anwendung gebunden. Datentyp: Zeichenfolge |
| apps.name | Erforderlich. Anwenderfreundlicher Name der zu erstellenden Anwendung. Eine App ist ein DevOps -Produktcontainerobjekt, das Pläne, Repositorys und Pipelines miteinander verbindet. 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 | Erforderlich ServiceNow Anwender-ID des Anwenders, der die Endpunktanforderung stellt. Dieser Anwender muss über die Rolle „devops.integration.user“ verfügen. Ab Version 1.34.1 muss dieser Anwender über die Rolle sn_devops.admin verfügen. Datentyp: Zeichenfolge Tabelle: Benutzer [sys_user] |
| Anmeldeinformationen.Passwort | Erforderlich. Passwort des im Parameter credenitals.name angegebenen Anwenders. Datentyp: Zeichenfolge |
| Pipelines | Liste der Pipelines, die Anwendungen zugeordnet werden sollen. Datentyp: Array von Objekten |
| 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 worden sein oder im apps -Objekt dieser Anforderung angegeben sein. Datentyp: Zeichenfolge |
| pipelines.changeSteps | Change-Schritte zum Erstellen von für die im Feld pipelines.name angegebene Pipeline. Datentyp: Array von Objekten |
| pipelines.changeSteps.changeApprovalGroup | Erforderlich, wenn ein changeSteps -Objekt angegeben ist. Name der Change-Genehmigungsgruppe, die der Pipeline zugeordnet werden soll. Diese Gruppe muss bereits in der Instanz ServiceNow vorhanden sein. Datentyp: Zeichenfolge Tabelle: Gruppe [sys_user_group] |
| pipelines.changeSteps.changeControlledBranches | Kommagetrennte Liste von Codeverzweigungen, die der Change-Steuerung unterliegen. Dies gilt nur für die Unterstützung mehrerer Verzweigungen. Datentyp: Zeichenfolge Standard: * (alle Verzweigungen) |
| pipelines.changeSteps.changeType | Erforderlich, wenn ein changeSteps -Objekt angegeben ist. Typ der zu erstellenden Change-Anforderung. Datentyp: Zeichenfolge Tabelle: Im Feld Typ der Tabelle „Change-Anforderung“ [change_request]. |
| 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. Datentyp: Zeichenfolge Tabelle: Im Feld Typ der Tabelle „Schritte“ [sn_devops_step]. |
| 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 wurden. Datentyp: Zeichenfolge |
| pipelines.project | Erforderlich, wenn ein Pipelines -Objekt angegeben ist und „pipelines.tool“ die Projektetität unterstützt (z. B. das ADO-Tool). Projekt, das der Pipeline zugeordnet werden soll, um einen eindeutigen Pipeline-/Tool-Bezeichner zu erstellen. Der Wert des Parameters muss von einem Projekt in der Tabelle „Projekt“ [sn_devops_project] abgeleitet sein.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 | Liste der Pläne, die einer Anwendung zugeordnet werden sollen. Datentyp: Array von Objekten |
| 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 worden sein oder im apps -Objekt dieser Anforderung angegeben sein. Datentyp: Array von Zeichenfolgen |
| plans.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 worden sein. Datentyp: Zeichenfolge |
| pläne.projekt | Erforderlich, wenn ein Planobjekt angegeben ist und das Plans.tool die Projektetität unterstützt (z. B. das ADO-Tool). Tool, das der Pipeline zugeordnet werden soll, um einen eindeutigen Plan-/Toolbezeichner zu erstellen. Der Wert des Parameters muss von einem Projekt in der Tabelle „Projekt“ [sn_devops_project] abgeleitet sein.Datentyp: Zeichenfolge |
| pläne.tool | Erforderlich, wenn ein plans -Objekt angegeben ist. Tool, das dem Plan zugeordnet werden soll, um einen eindeutigen Plan-/Tool-Bezeichner zu erstellen. Datentyp: Zeichenfolge |
| Repositorys | Liste der Repositorys, die einer Anwendung zugeordnet sind. Wenn das Repository-Objekt einen App-Parameter enthält, wird das Repository der Anwendung zugeordnet. Datentyp: Array von Objekten |
| repositories.app | Erforderlich, wenn ein repositories -Objekt angegeben ist. Name der Anwendung, die diesem Repository zugeordnet werden soll. Die Anwendung muss bereits erstellt worden sein oder im apps -Objekt 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-Bezeichner zu erstellen. Der Wert des Parameters muss von einem Projekt in der Tabelle „Projekt“ [sn_devops_project] abgeleitet sein.Datentyp: Zeichenfolge |
| Repositorys.Tool | Erforderlich, wenn ein repositories -Objekt angegeben ist. Anwenderfreundlicher 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 das Objekt „artefaktRepositories“ angegeben ist. Name der Anwendung, die diesen Artefakt-Repositories zugeordnet werden soll. Die Anwendung muss bereits erstellt worden sein oder im Apps- Objekt dieser Anforderung angegeben sein.Datentyp: Zeichenfolge |
| artifactRepositories.name | Erforderlich, wenn das Objekt „artefaktRepositories“ angegeben ist. Name der Artefakt-Repositorys, die der im Parameter artifactRepositories„ .app angegebenen Anwendung zugeordnet werden sollen. Diese Artefakt-Repositorys müssen bereits in der ServiceNow-Instanz erkannt worden sein.Datentyp: Zeichenfolge |
| ArtefaktRepositories.tool | Erforderlich, wenn das Objekt „artefaktRepositories“ angegeben ist. Anwenderfreundlicher 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 |
| ArtefaktRepositorys.Projekt | Erforderlich, wenn das Objekt „artefaktRepositories“ angegeben ist und die Entität repositories.tool Projekte unterstützt (z. B. das ADO-Tool). Tool, das 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| Statuscode | Beschreibung |
|---|---|
| 202 | Onboarding-Anforderung wurde erfolgreich erstellt. |
Parameter des Antwort-Haupttexts
| Name | Beschreibung |
|---|---|
| Ergebnis | Ergebnisse der Onboarding-Anforderung. Datentyp: Objekt |
| result.code | HTTP-Statuscode. Datentyp: Zeichenfolge |
| result.details | Details zur Onboarding-Anforderung. Datentyp: Zeichenfolge |
| result.errors | Beschreibung eines aufgetretenen Fehlers. Datentyp: Objekt |
| Ergebnis.Fehler.Meldung | Fehlermeldung. Datentyp: Zeichenfolge |
| result.onboardingRequestID | Eindeutiger Bezeichner der Onboarding-Anforderung. Verwenden Sie diesen Wert, wenn Sie den Endpunkt „/devops/onboarding/status“ aufrufen, um den Status des zugehörigen Onboarding-Prozesses zu erhalten. 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 „Biking Rents“, dem GitHub-Repository nowDevOps01/CorpSite und dem Azure-Plan testPlan_Biking_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-Ereignis, das vom Service DevOps asynchron verarbeitet wird.
- Erstellt das Tool innerhalb der zugeordneten Instanz ServiceNow .
- Stellt eine Verbindung zum Tool her
- Versucht, das Tool zu konfigurieren (nur bei erfolgreicher Verbindung)
- Erkennt das Tool (nur bei erfolgreicher Verbindung)
Die zurückgegebenen Ergebnisse 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 eigentliche Tool-Erstellung 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 DevOps für Verbindungen und Anmeldeinformationen (CreateDevOpsTool) konfigurieren, um Tools in der Instanz einzurichten. Einzelheiten hierzu finden Sie unter DevOps Change-Geschwindigkeit installieren. Darüber hinaus muss die aufrufende Entität über die Rolle „devops.integration.user“ verfügen.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/onboarding/tool
Standard-URL: /api/sn_devops/devops/onboarding/tool
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| Keine |
| 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 | Erforderlich Der Bezeichner ServiceNow des Benutzers, der die Endpunktanforderung stellt. Dieser Anwender muss über die Rolle „devops.integration.user“ verfügen. Ab Version 1.34.1 muss dieser Anwender über die Rolle sn_devops.admin verfügen. Datentyp: Zeichenfolge Tabelle: Benutzer [sys_user] |
| Anmeldeinformationen.Passwort | Erforderlich. Passwort des im Parameter credenitals.name angegebenen Anwenders. Datentyp: Zeichenfolge |
| Tools | Erforderlich. Tools, die innerhalb der zugeordneten Instanz ServiceNow erstellt werden sollen. Sie können ein oder mehrere Tools in einer einzigen Anforderung erstellen. Datentyp: Array von Objekten |
| tools.name | Erforderlich. Anwenderfreundlicher Name oder Bezeichnung des zu erstellenden Tools. Dieser Name wird verwendet, um das Tool im Service DevOps zu identifizieren. Datentyp: Zeichenfolge |
| Tools.Passwort | Erforderlich, mit Ausnahme des Agile-Tools. Passwort für den Zugriff auf das Tool. Unterstützte Authentifizierungen sind Standard- 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.verwendenMidServer | Kennzeichnung, die angibt, ob das Tool eine Verbindung über ein MID-Serverherstellt. Gültige Werte:
Datentyp: Boolesch |
| Tools.Anwendername | Erforderlich, mit Ausnahme des Agile-Tools. Anwendername für den Zugriff auf das Tool über diesen Endpunkt. Datentyp: Zeichenfolge |
| Tools.URL | Erforderlich, mit Ausnahme des Agile-Tools. URL des zu erstellenden Tools. Der Service DevOps verwendet diese URL zur Integration in das -Tool. Bei Verwendung des Tools „Azure DevOps“ kann tools.url entweder die URL der ADO-Organisation oder des ADO-Projekts enthalten. Wenn Sie eine ADO-Organisations-URL bereitstellen, erkennt die API alle Projekte unter der angegebenen Organisation und konfiguriert keine Projekte. Bei der Bereitstellung einer ADO-Projekt-URL erkennt die API projektbezogene 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 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| Statuscode | Beschreibung |
|---|---|
| 202 | Onboarding-Anforderung wurde erfolgreich erstellt. |
Parameter des Antwort-Haupttexts
| Name | Beschreibung |
|---|---|
| Ergebnis | Ergebnisse der Onboarding-Anforderung. Datentyp: Objekt |
| result.code | HTTP-Statuscode. Datentyp: Zeichenfolge |
| result.details | Detaillierte Nachricht zur Onboarding-Anforderung. Datentyp: Zeichenfolge |
| result.errors | Beschreibung eines aufgetretenen Fehlers. Datentyp: Objekt |
| Ergebnis.Fehler.Meldung | Fehlermeldung. Datentyp: Zeichenfolge |
| result.onboardingRequestID | Eindeutiger Bezeichner der Onboarding-Anforderung. Verwenden Sie diesen Wert, wenn Sie den Endpunkt „/devops/onboarding/status“ aufrufen, um den Status des zugehörigen Tool-Onboarding-Prozesses zu erhalten. 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 Instanz ServiceNow 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 Instanz ServiceNow eine Orchestration-Aufgabe erstellt sein. 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 Pipelineschritt zugeordnet ist und dass die Change-Steuerung aktiviert ist (indem Sie die Option Change-Steuerung im Formular „App-Phase“ auswählen). Weitere Informationen finden Sie unter DevOps-Change beschleunigen.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/orchestration/changeControl
Standard-URL: /api/sn_devops/devops/orchestration/changeControl
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| toolId | Erforderlich. Sys_id des Tools DevOps, für das die angegebene Aufgabe unter Change-Steuerung gestellt werden soll. Datentyp: Zeichenfolge Tabelle: Orchestration-Tool [sn_devops_orchestration_tool] |
| Tooltyp | Typ des Tools. Gültiger Wert: Beliebiger Wert, der das Tool identifiziert, z. B. „jenkins“. Datentyp: Zeichenfolge |
| Name | Beschreibung |
|---|---|
| callbackURL | Erforderlich. URL, die die Instanz ServiceNow zurückrufen kann, sobald der zugehörige Genehmigungsprozess für Change-Anforderungen abgeschlossen ist. Dieser Rückruf sollte zulassen, dass die Pipeline-Ausführung basierend auf dem Genehmigungsergebnis fortgesetzt wird oder nicht. Datentyp: Zeichenfolge |
| changeRequestDetails | Name-Wert-Paare der Felder, die beim Schließen einer Change-Anforderung festgelegt werden sollen. Dieses Objekt kann alle Felder im Datensatz „Change-Anforderung“ enthalten, mit Ausnahme der folgenden:
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 Felder einbeziehen, für die andere Pflichtfelder festgelegt werden müssen, und diese Felder nicht gesendet werden, schlägt die Anforderung bei der späteren Verarbeitung der Pipeline fehl. Dieser Fehler wird in den Arbeitsnotizen der Change-Anforderung zusammen mit einer Fehlermeldung für diese konkrete Change-Anforderung vermerkt, z. B.: Aktualisierung der Change-Anforderung fehlgeschlagen mit Grund:<Error Message from platform> . Change-Anforderung und Ausführung des zugehörigen Schritts werden abgebrochen. Sie können auch den booleschen Parameter setCloseCode in diesem Objekt übergeben, um anzugeben, ob Abschlussinformationen für den zugehörigen Change-Anforderungsdatensatz festgelegt werden sollen.
Datentyp: Objekt |
| istMultiBranch | Wenn das Orchestration-Tool Jenkins ist, Kennzeichnung, die angibt, ob das Projekt vom Typ „Multibranch“ ist. Gültige Werte:
Datentyp: Boolesch Standardwert: false |
| OrchestrationTaskDetails | Erforderlich. Beschreibung der Orchestration-Aufgabe. Datentyp: Objekt |
| „orchestrationTaskDetails.message“ | Freiform-Textnachricht. Datentyp: Zeichenfolge |
| „orchestrationTaskDetails.triggerType“ | Erforderlich. Die Art und Weise, wie die Orchestration-Aufgabe gestartet wurde. Gültige Werte:
Datentyp: Zeichenfolge |
| „orchestrationTaskDetails.upstreamTaskExecutionURL“ | Erforderlich, wenn triggerType auf upstreamfestgelegt ist. URL für die Ausführung der vorangegangenen 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 geschachtelt ist, enthält dieser Wert die Details des übergeordneten Knotens. Datentyp: Objekt |
| parentNode.id | Eindeutige ID für den übergeordneten Knoten. In Jenkins entspricht dieser Wert einer Pipeline-Stufen-ID. Datentyp: Zeichenfolge |
| parentNode.name | Name des übergeordneten Knotens In Jenkins entspricht dieser Wert dem Namen einer Pipelinephase. Datentyp: Zeichenfolge |
| parentKnoten.vorgelagerterPhasenname | Name der vorgelagerten Orchestration-Aufgabe des übergeordneten Knotens. In Jenkins entspricht dieser Wert dem Namen einer Pipelinephase. Datentyp: Zeichenfolge |
| parentNode.upstreamTaskExecutionURL | URL der Ausführung der vorangegangenen Aufgabe des übergeordneten Knotens. In Jenkins entspricht dieser Wert einer Ausführungs-URL für eine Pipelinephase. Datentyp: Zeichenfolge |
| parentStageName | Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe geschachtelt ist, der Name der übergeordneten Orchestration-Aufgabe. Datentyp: Zeichenfolge |
| parentStageURL | Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe geschachtelt 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.
| 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 erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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 |
|---|---|
| changeControl | Kennzeichnung, die angibt, ob die Orchestration-Aufgabe unter Change-Kontrolle steht. Mögliche Werte:
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 beim Schließen einer Change-Anforderung übergeben werden.
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
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/orchestration/stepMapping
Standard-URL: /api/sn_devops/devops/orchestration/stepMapping
Unterstützte Anforderungsparameter
| 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 |
| 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 |
| 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:
Datentyp: Boolesch Standardwert: false |
| parentNode | Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe geschachtelt ist, enthält dieser Wert die Details des übergeordneten Knotens. Datentyp: Objekt |
| parentNode.id | Eindeutige ID für den übergeordneten Knoten. In Jenkins entspricht dieser Wert einer Pipeline-Stufen-ID. Datentyp: Zeichenfolge |
| parentNode.name | Name des übergeordneten Knotens In Jenkins entspricht dieser Wert dem Namen einer Pipelinephase. Datentyp: Zeichenfolge |
| parentKnoten.vorgelagerterPhasenname | Name der vorgelagerten Orchestration-Aufgabe des übergeordneten Knotens. In Jenkins entspricht dieser Wert dem Namen einer Pipelinephase. Datentyp: Zeichenfolge |
| parentNode.upstreamTaskExecutionURL | URL der Ausführung der vorangegangenen Aufgabe des übergeordneten Knotens. In Jenkins entspricht dieser Wert einer Ausführungs-URL für eine Pipelinephase. Datentyp: Zeichenfolge |
| parentStageName | Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe geschachtelt ist, der Name der übergeordneten Orchestration-Aufgabe. Datentyp: Zeichenfolge |
| parentStageURL | Wenn die Orchestration-Aufgabe ein untergeordnetes Element ist, das in einer übergeordneten Orchestration-Aufgabe geschachtelt ist, die URL der übergeordneten Orchestration-Aufgabe. Datentyp: Zeichenfolge |
| OrchestrationTaskName | Erforderlich. Name der Orchestration-Aufgabe. Dies ist dieselbe 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Autorisierung | Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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 Verifizierung erfolgreich war. Gültige Werte:
Datentyp: Boolesch |
| stepValid | Kennzeichnung, die angibt, ob die gesendeten Informationen gültig sind. Gültige Werte:
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 Informationen gültig sind.
{
"result": {
"stepValid": true,
"status": "Success"
}
}
Ergebnisse, wenn Informationen ungültig sind.
{
"result": {
"stepValid": false,
"status": "Success"
}
}
DevOps POST /devops/package/registration
Ermöglicht Orchestration-Tools das Erstellen neuer Artefaktpakete, die die angegebenen Artefaktversionen enthalten.
Artefaktpakete werden verwendet, um Commits für Change-Genehmiger anzuzeigen, wenn diese 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 Artefaktversionen, die in der Paketregistrierungsanforderung enthalten sind, müssen bereits bei DevOps registriert sein. Weitere Informationen zur Registrierung von Artefaktversionen finden Sie unter DevOps POST /devops/artifact/registration.
- artifacts.pipelineName oder artifacts.projectName
- artifacts.taskExecutionNumber
- artifacts.stageName
- artifacts.branchName
Weitere Informationen zu Artefaktpaketen finden Sie unter DevOps-Change-Beschleunigung für Releases verwenden.
URL-Format
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/package/registration
Standard-URL: /api/sn_devops/devops/package/registration
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| orchestrationToolId | Erforderlich. Sys_id des Orchestration-Tools, das dem Artefaktpaket zugeordnet ist. Der Endpunkt verwendet diese Informationen, um Informationen zur Aufgabenausführung zu finden. Datentyp: Zeichenfolge Tabelle: Orchestration-Tool [sn_devops_orchestration_tool] |
| toolId | Sys_id des Artefakt-Tools, das dem Artefaktpaket zugeordnet ist. Datentyp: Zeichenfolge Tabelle: Artefakt-Tool [sn_devops_artifact_tool] |
| Name | Beschreibung |
|---|---|
| Artefakte | Mindestens ein Eintrag erforderlich. Array von Objekten, in dem jedes Objekt eine Artefaktversion, die in das Paket aufgenommen werden soll, eindeutig identifiziert. Datentyp: Array von Objekten |
| 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 |
| artifacts.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.AufgabenAusfü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 des Artefakts. Datentyp: Zeichenfolge Formatieren:<Major> .<Minor> Standard: Null |
| branchName | Erforderlich, wenn es sich um ein Projekt mit mehreren Verzweigungen 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Autorisierung | Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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 | Ergebnisse für alle Registeranforderungen, deren Verarbeitung nicht abgeschlossen wurde und die in der Tabelle „Bereitgestellte Artefaktanforderung“ [sn_devops_artifact_staging] gespeichert wurden. Datentyp: Objekt |
| response.artifact_register_requests.create | Wenn durch die Anforderung Paket-Bereitstellungsdatensätze erstellt wurden, die Liste der sys_ids der erstellten Bereitstellungsdatensätze. Datentyp: Array von Objekten |
| response.artifact_register_requests.create.id | Sys_id des von der Anforderung erstellten Paketbereitstellungsdatensatzes. Datentyp: Zeichenfolge |
| Antwort.Artefakt_register_Anforderungen.gefunden | 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 von Objekten |
| Antwort.Artefakt_register_Anforderungen.gefunden.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 |
| 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. Datentyp: Array von Objekten Tabelle: Artefaktversion zu Paket [sn_devops_m2m_artifact_version_package] |
| 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 „Artefaktversionen 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 von Objekten |
| response.sn_devops_m2m_artifact_version_package.found.id | Sys_id des vorhandenen Datensatzes „Artefaktversion zu Paket“. 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 Tabelle „Pakete“ [sn_devops_package], die während der Verarbeitung der Anforderung manipuliert wurden. Datentyp: Objekt |
| response.sn_devops_package.create | Wenn Paketdatensätze von der Anforderung erstellt wurden, die Liste der sys_ids der erstellten Datensätze. Datentyp: Array von Objekten |
| 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 von Objekten |
| response.sn_devops_package.found.id | Sys_id eines vorhandenen Paketdatensatzes, auf den von der Anforderung verwiesen wird. 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:
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}
Postet die übergebene Nutzlast zur Verarbeitung durch einen anwenderdefinierten Subflow DevOps in der Tabelle „Eingehendes Ereignis“ [sn_devops_inbound].
Rufen Sie diesen Endpunkt über den zugeordneten Webhook in Ihrem Tool auf, der durch den in capability übergebenen Parameter angegeben wird. Ein anwenderdefinierter Subflow zur Verarbeitung der übergebenen Nutzlast muss bereits in Ihrer Instanz ServiceNow definiert sein. Basierend auf einem vordefinierten Zeitplan ruft der Master-Flow DevOps die Webhook-Ereignisinformationen aus der Tabelle „Eingehendes Ereignis“ ab und übergibt sie an den anwenderdefinierten Subflow, der dann die Nutzlast verarbeitet. Weitere Informationen zum Erstellen eines anwenderdefinierten Subflows finden Sie unter DevOps-Subflows erstellen.
Weitere Informationen zur Integration von Testtools finden Sie unter Integration von DevOps-Testtools.
Bevor Sie diesen Endpunkt für ein anwenderdefiniertes DevOps aufrufen, müssen Sie die Methoden handleTool() und getNativeIdForOrchestrationTask() aus sn_devops.DevOpsOrchestrationToolIntegrationHandlerimplementieren. Weitere Informationen finden Sie unter DevOpsOrchestrationToolIntegrationHandler : BereichsbezogenDevOpsOrchestrationToolIntegrationHandler – Bereichsbezogen.
URL-Format
URL mit Versionsangabe: /api/sn_devops/{api_version}/devops/tool/{capability}
Standard-URL: /api/sn_devops/devops/tool/{capability}
Unterstützte Anforderungsparameter
| 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 zum Speichern in der Tabelle „Eingehendes Ereignis“ übergibt. Gültige Werte (Groß-/Kleinschreibung nicht relevant):
Datentyp: Zeichenfolge |
| Name | Beschreibung |
|---|---|
| orchestrationToolId | Optional. Sys_id des Orchestration-Tools, zu dem die zugehörige Pipeline gehört. orchestrationToolId ist erforderlich, wenn der Anforderungsparameter capability auf „test“ oder „softwarequality“festgelegt ist.Der Wert im Parameter toolId ist das Standardorchestrierungstool, wenn der Parameter orchestrationToolId nicht übergeben wird. Datentyp: Zeichenfolge |
| testType | Erforderlich, wenn capability auf Testfestgelegt ist. Typ des ausgeführten Tests. Datentyp: Zeichenfolge Tabelle: Die gültigen Werte für diesen Parameter sind diejenigen in der Spalte „Testtyp“ der Tabelle „Testtypen“ [sn_devops_test_type]. |
| toolId | Erforderlich. Sys_id des Tools, für das der Endpunkt aufgerufen wird. Datentyp: Zeichenfolge |
| 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Autorisierung | Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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“ | Beschreibung eines einzelnen Fehlers. Datentyp: Array von Objekten |
| „details.errors.message“ | Detaillierte Fehlermeldung.
Datentyp: Zeichenfolge |
| status | Antwortstatus, z. B. „Erfolg“ oder „Datenfehler“. Datentyp: Zeichenfolge |
| sys_id | Sys_id des in der Tabelle „Eingehendes Ereignis“ 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 einen 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}
Postet die von GitHub, Jiraoder Bitbucket übergebene Nutzlast in der Tabelle „Ereignisse“ [sn_devops_event] zur Verarbeitung durch einen vorgefertigten Subflow.
Um Ereignisse aus einem anderen Tool als GitHub, Jiraoder Bitbucketzu verarbeiten, verwenden Sie stattdessen den Endpunkt DevOps POST /devops/tool/{capability}.
URL-Format
URL mit Versionsnummer: /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
| 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. Datentyp: Zeichenfolge Tabelle: DevOps-Tools [sn_devops_tool] |
| Name | Beschreibung |
|---|---|
| Keine |
| 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Autorisierung | Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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:
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
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/orchestration/changeControl/{changeControlId}
Standard-URL: /api/sn_devops/devops/orchestration/changeControl/{changeControlId}
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| toolId | Erforderlich. Sys_id des Tools DevOps, das der Change-Steuerungsaufgabe zugeordnet ist. Datentyp: Zeichenfolge Tabelle: Orchestration-Tool [sn_devops_orchestration_tool] |
| Name | Beschreibung |
|---|---|
| callbackURL | Erforderlich. URL, die die Instanz ServiceNow zurückrufen kann, sobald der zugehörige Genehmigungsprozess für Change-Anforderungen abgeschlossen ist. Dieser Rückruf sollte zulassen, dass die Pipeline-Ausführung basierend auf dem Genehmigungsergebnis fortgesetzt wird oder nicht. Datentyp: Zeichenfolge |
| OrchestrationTaskDetails | Erforderlich. Beschreibung der Orchestration-Aufgabe. Datentyp: Objekt |
| „orchestrationTaskDetails.message“ | Freiform-Textnachricht. Datentyp: Zeichenfolge |
| „orchestrationTaskDetails.triggerType“ | Erforderlich. Die Art und Weise, wie die Orchestration-Aufgabe gestartet wurde. Gültige Werte:
Datentyp: Zeichenfolge |
| „orchestrationTaskDetails.upstreamTaskExecutionURL“ | Erforderlich, wenn triggerType auf upstreamfestgelegt ist. URL für die Ausführung der vorangegangenen 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 DevOps Tools. Gültiger Wert: jenkins Datentyp: Zeichenfolge |
| taskAusführungsURL | Erforderlich. 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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Autorisierung | Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| Inhaltstyp | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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-Kontrolle steht. Mögliche Werte:
Datentyp: Boolesch |
| details | Eintrag für alle Fehlerbedingungen. Datentyp: Objekt |
| „details.errors“ | Beschreibung eines einzelnen Fehlers. Datentyp: Array von Objekten |
| „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/changeControl/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\",
\"taskExecutionURL\":\"https://jenkins.mycompany.com:8080/job/Mobile-Platform-test/40/\",
"\orchestrationTaskName\":\"StageName\",
\"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
URL mit Versionsnummer: /api/sn_devops/{api_version}/devops/orchestration/changeInfo/{changeInfo}
Standard-URL: /api/sn_devops/devops/orchestration/changeInfo/{changeInfo}
Unterstützte Anforderungsparameter
| 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 |
| Name | Beschreibung |
|---|---|
| changeRequestNumber | Erforderlich. Nummer der Change-Anforderung, die der zu aktualisierenden Orchestration-Aufgabe zugeordnet ist. Datentyp: Zeichenfolge Tabelle: Change Request [change_request] |
| 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: Für den Parameter state werden nur die folgenden Übergänge unterstützt:
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.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Autorisierung | Ab v2 unterstützt diese API die tokenbasierte Authentifizierung. Token können erworben 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 (Anwendername 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. Mit dieser Eigenschaft kann jeder Anwender mit der Rolle „sn_devops.integration“ festgelegt werden, die zum Abschließen der Tokenauthentifizierung erforderlich ist. Informationen hierzu finden Sie unter DevOps Change Velocity properties. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| 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-Antwortcodes der REST-API.
| 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:
Datentyp: Zeichenfolge |
| updateStatus | Status des Updates. Mögliche Werte:
Datentyp: Zeichenfolge |
cURL-Anforderung
Das folgende Codebeispiel zeigt, wie verschiedene Felder im Change Request 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"
}
}