DevOps-API
Die DevOps Die API stellt Endpunkte bereit, die die Interaktion mit externen ermöglichen DevOps Tools.
Mit dieser REST-API können Integratoren:
- Rufen Sie die verfügbaren ab DevOps Tools, die einer Instanz zugeordnet sind.
- Ruft das Schemaobjekt für eine Coderessource, einen Plan oder eine Orchestration-Ressource ab.
- Überprüfen Sie, ob sich eine Orchestration-Aufgabe unter Change-Steuerung befindet, und überprüfen Sie den Status der Change-Steuerung.
- Erstellen Sie Rückrufe, die Aufgabenausführungen unter Change-Steuerung zugeordnet werden sollen.
- 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 bestimmter Such-/Sortierkriterien.
- Registrieren Sie Artefaktversionen und -Pakete zusammen mit der zugehörigen Pipeline-Ausführung und Commits.
- Erstellen und verwalten Sie Onboarding-Anwendungs- und Tool-Ereignisse.
Weitere Informationen finden Sie unter DevOps Config.
Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 Ihren entsprechenden POST-Anruf zu erstellen. POST /Code/Commit , POST /Code/Repository , Oder POST /Code/Branch .
URL-Format
Versionierte URL: /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. 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 beachten):
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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 200 | Anforderung erfolgreich abgeschlossen. |
| 401 | Authentifizierung ist ungültig oder fehlt. |
| 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 |
|---|---|
| Branch | Beschreibung der Verzweigung, in der der Code-Commit vorgenommen wurde. Datentyp: Objekt |
| branch.name | Name der Verzweigung, in der der Code-Commit vorgenommen wurde. Datentyp: Zeichenfolge |
| Verzweigung.Pfad | Relativer Pfad der Verzweigung. Datentyp: Zeichenfolge |
| Commits | Beschreibung der Commits. Datentyp: Array von Objekten |
| commits.committedDate | Datum/Uhrzeit, zu der der Code in der Quelle bestätigt wurde DevOpsTool. 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 |
| commits.details.additions | Gesamtanzahl der hinzugefügten Elemente in der Datei. Datentyp: Zahl |
| commits.details.changes | Gesamtanzahl der vorgenommenen Changes. Datentyp: Zahl |
| commits.details.deletions | Gesamtanzahl 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 hinzugefügten und gelöschten Elemente. Datentyp: Zahl |
| commits.id | Quellplattformbezeichner 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 vorgenommen wurde. Datentyp: Objekt |
| repository.name | Name des Repositorys. Datentyp: Zeichenfolge |
| Repository.url | URL des Repositorys in der Quelle DevOpsTool. 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 asynchron von verarbeitet oder verarbeitet wird DevOps Service.
URL-Format
Versionierte URL: /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. 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 angegeben, 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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 200 | Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet. |
| 202 | Ausstehend: Die Onboarding-Anforderung wurde erstellt und die DevOps Service verarbeitet die Anforderung. |
| 207 | Teilweiser Erfolg: Die Onboarding-Anforderung wurde erstellt und die DevOps Service 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 |
| Ergebnis.Code | HTTP-Statuscode. Datentyp: Zeichenfolge |
| Ergebnis.ImportRequestsSysIds | Liste der Importanforderungen, die als Teil der Onboarding-Anforderung erstellt wurden. Datentyp: Array von Zeichenfolgen |
| Ergebnis.messageDetails | Details zum Fortschritt des Onboarding-Ereignisses. Datentyp: Objekt |
| Ergebnis.messageDetails.Apps | Definiert die Apps, die innerhalb der zugeordneten erstellt werden sollen ServiceNow Instanz. Datentyp: Array von Objekten |
| Ergebnis.messageDetails.Apps.appId | SYS_ID der Anwendung, die beim Onboarding der Anwendung generiert wurde. Datentyp: Zeichenfolge Tabelle: Apps [sn_devops_App] |
| Ergebnis.messageDetails.Apps.Nachricht | Nachricht, die den Status des Anwendungs-Onboarding beschreibt. Datentyp: Zeichenfolge |
| result.messageDetails.apps.name | Name der Anwendung, die integriert wird. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.Apps.Status | Aktueller Status des Anwendungs-Onboarding. Mögliche Werte:
Datentyp: Zeichenfolge |
| Ergebnis.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 Change-Schritt-Zuordnung. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.Pipelines.Fehler | Liste der Fehler, die beim Zuordnen der Pipeline erkannt wurden. Datentyp: Array |
| Ergebnis.messageDetails.Pipelines.Nachricht | Nachricht, die den Status der Pipeline-Zuordnung beschreibt. Datentyp: Zeichenfolge |
| result.messageDetails.pipelines.name | Name der Pipeline. Datentyp: Zeichenfolge |
| Ergebnis.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 Fehler, die beim Zuordnen des Plans erkannt wurden. Datentyp: Array |
| result.messageDetails.plans.message | Nachricht, die den Status der Pipeline-Zuordnung beschreibt. Datentyp: Zeichenfolge |
| result.messageDetails.plans.name | Name des Plans. Datentyp: Zeichenfolge |
| result.messageDetails.plans.status | Status der Planzuordnung. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.Repositorys | Liste der Repositorys, die dem Onboarding-Ereignis zugeordnet sind, und die entsprechenden Details. Datentyp: Array von Objekten |
| Ergebnis.messageDetails.Repositorys.configureStatus | Details des Webhook-Konfigurationsstatus für das Repository. Datentyp: Objekt |
| Ergebnis.messageDetails.Repositorys.konfigurgureStatus.Nachricht | Nachricht, die den aktuellen Webhook-Konfigurationsstatus beschreibt. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.Repositorys.konfigurgureStatus.Status | Status der Webhook-Konfiguration. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.Repositorys.Nachricht | Nachricht, die den aktuellen Repository-Zuordnungsstatus beschreibt. Datentyp: Zeichenfolge |
| result.messageDetails.repositories.name | Name des Repositorys. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.Repositorys.Status | Status der Repository-Zuordnung. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.Status | Status der Onboarding-Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolAntwort | Liste der Tools, die innerhalb der zugeordneten integriert werden sollen ServiceNow Instanz. Datentyp: Array von Objekten |
| Ergebnis.messageDetails.toolResponse.konfigurgureStatus | Konfigurationsstatus des Tools. Im Erfolgsfall wird zurückgegeben statusUnd message. Im Fehlerfall wird zurückgegeben statusUnd error. Datentyp: Objekt |
| Ergebnis.messageDetails.toolResponse.konfigurgureStatus.Fehler | Während der Toolkonfiguration wurden Fehler erkannt. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.konfigurgureStatus.Nachricht | Nachricht, die den erfolgreichen Status der Toolkonfiguration beschreibt. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.konfigurgureStatus.Status | Status der Toolkonfiguration. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.connectStatus | Verbindungsstatus des Tools. Im Erfolgsfall wird zurückgegeben statusUnd message. Im Fehlerfall wird zurückgegeben statusUnd error. Datentyp: Objekt |
| Ergebnis.messageDetails.toolResponse.connectStatus.error | Während der Toolverbindung wurden Fehler erkannt. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.connectStatus.message | Nachricht, die den erfolgreichen Status der Toolverbindung beschreibt. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.connectStatus.Status | Status der Toolverbindung. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.createStatus | Erstellungsstatus des Tools. Im Erfolgsfall wird zurückgegeben statusUnd message. Im Fehlerfall wird zurückgegeben statusUnd error. Datentyp: Objekt |
| Ergebnis.messageDetails.toolResponse.createStatus.Fehler | Während der Toolerstellung wurden Fehler erkannt. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.createStatus.message | Nachricht, die den erfolgreichen Status der Toolerstellung beschreibt. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.createStatus.Status | Status der Toolerstellung. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.discoveryStatus | Discovery-Status des Tools. Im Erfolgsfall wird zurückgegeben statusUnd message. Im Fehlerfall wird zurückgegeben statusUnd error. Datentyp: Objekt |
| Ergebnis.messageDetails.toolResponse.discoveryStatus.Fehler | Während der Tool-Discovery wurden Fehler erkannt. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.discoveryStatus.Importe | Liste der Entitäten, die erkannt wurden. 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 |
| Ergebnis.messageDetails.toolResponse.discoveryStatus.Importe.Status | Status des Imports. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.discoveryStatus.Nachricht | Nachricht, die den Status der Tool-Discovery beschreibt. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.discoveryStatus.Status | Status der Tool-Discovery. Datentyp: Zeichenfolge |
| result.messageDetails.toolResponse.name | Name des Onboarding-Tools. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.Status | Status des Tool-Onboarding. Datentyp: Zeichenfolge |
| Ergebnis.messageDetails.toolResponse.type | Typ des Tools, z. B. Jira oder Jenkins. Datentyp: Zeichenfolge |
| Ergebnis.onboardingAnforderungs-ID | Eindeutiger Bezeichner der Onboarding-Anforderung. Verwenden Sie diesen Wert, wenn Sie aufrufen /devops/Onboarding/Status Endpunkt zum Abrufen des Status des zugehörigen Tool-Onboarding-Prozesses. Datentyp: Zeichenfolge |
| Ergebnis.Status | Status der Onboarding-Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
cURL-Anforderung
Das folgende Beispiel zeigt die Statusanforderung eines 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 eines Anwendungs-Onboarding.
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 sich die Orchestration-Aufgabe unter Change-Steuerung befindet.
URL-Format
Versionierte URL: /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. 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 getestet werden soll DevOps Tool. 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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 200 | Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet. |
| 401 | Authentifizierung ist ungültig oder fehlt. |
| 500 | Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler. |
Antworttext-Parameter (JSON oder XML)
| Name | Beschreibung |
|---|---|
| ChangeControl | Kennzeichnung, die angibt, ob die Orchestration-Aufgabe unter Change-Steuerung 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 zur Change-Anforderung für eine angegebene Ausführung der Orchestration-Pipeline ab.
URL-Format
Versionierte URL: /api/sn_devops/{api_Version}/devops/Orchestration/changeInfo
Standard-URL: /api/sn_devops/devops/Orchestration/changeInfo
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| api_version | Optional. Version des Endpunkts, auf den zugegriffen werden soll. 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, andernfalls enthält die Antwort möglicherweise falsche Change-Details. Datentyp: Zeichenfolge |
| buildNumber | Erforderlich. Pipeline-Build-Nummer im Orchestration-Tool. Datentyp: Zeichenfolge |
| pipelineName | Optional für Jenkins Freestyle- oder Maven-Projekte, erforderlich für alle anderen. Name der Orchestration-Pipeline. Datentyp: Zeichenfolge |
| projectName | Erforderlich für Jenkins Freestyle- oder Maven-Projekte, optional für alle anderen. Projektname des Orchestration-Tools. Datentyp: Zeichenfolge |
| stageName | Optional für Jenkins Freestyle- oder Maven-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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| 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. |
Antworttext-Parameter (JSON oder XML)
| Name | Beschreibung |
|---|---|
| ChangeGefunden | 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_Status | Status der aktuellen Phase. Datentyp: Zeichenfolge |
| Priorität | Priorität der Change-Anforderung. Die Priorität basiert auf der Auswirkung und Dringlichkeit der Anforderung. Identifiziert, wie schnell der Service Desk die Anforderung bearbeiten soll. Mögliche Werte:
Datentyp: Zeichenfolge |
| Risiko | Risikostufe für den Change. Mögliche Werte:
Datentyp: Zeichenfolge |
| Status | Status der Change-Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge Standard: Neu |
| sys_id | SYS_ID der Change-Anforderung. Datentyp: Zeichenfolge |
| type | Typ der Change-Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
| URL | URL der Change-Anforderung innerhalb der zugeordneten ServiceNow Instanz. Datentyp: Zeichenfolge |
| ChangeAssignmentGroup | Zuweisungsgruppe der Change-Anforderung. Datentyp: Zeichenfolge |
| ChangeGenehmiger | Liste der Genehmiger, mit denen die Genehmigung des Change aussteht. Datentyp: Zeichenfolge |
| Geplantes StartDate | Geplantes Startdatum und geplante Startzeit des Change. Datentyp: Zeichenfolge |
| Geplantes Enddatum | 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 Ihren entsprechenden POST-Anruf zu erstellen. /Orchestration/OrchestrationTask Oder /Orchestration/taskExecution .
URL-Format
Versionierte URL: /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. 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 beachten):
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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 200 | Anforderung erfolgreich abgeschlossen. |
| 401 | Authentifizierung ist ungültig oder fehlt. |
| 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, zu der die Aufgabenausführung beendet wurde. Datentyp: Zeichenfolge |
| name | Name der Orchestration-Aufgabe. Datentyp: Zeichenfolge |
| Nummer | Nummer der Aufgabenausführung. Entspricht einer Incident-Nummer. Datentyp: Zeichenfolge |
| OrchestrationTaskDetails | Beschreibung der Orchestration-Aufgabe. Datentyp: Objekt |
| OrchestrationAufgabendetails.Nachricht | 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 zugehörigen 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, zu der die Aufgabenausführung gestartet wurde. Datentyp: Zeichenfolge |
| TaskExecutionURL | URL der auszuführenden Aufgabe. Datentyp: Zeichenfolge |
| Auslösertyp | Die Art und Weise, wie die Orchestration-Aufgabe gestartet wurde. Gültige Werte:
Datentyp: Zeichenfolge |
| URL | URL der Orchestration-Aufgabe des zugehörigen Orchestration-Tools. Datentyp: Zeichenfolge |
Beispiel für eine Curl-Anforderung mit resource=Task_Execution
curl -X GET \
'https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/schema?resource=task_execution' \
-H 'Accept: application/json'\
-u 'username':'password'
{
"result": {
"number": 40,
"url": "https://jenkins.mycompany.com:8080/job/Mobile-Platform-CI/40/",
"startDateTime": "1970-01-01T08:15:30-05:00",
"endDateTime": "1970-01-01T08:25:30-05:00",
"triggerType": "upstream",
"result": "Success",
"orchestrationTaskDetails": {
"name": "Mobile-Platform-CI",
"url": "https://jenkins.mycompany.com:8080/job/Mobile-Platform-CI/"
}
}
}
Beispiel für eine Curl-Anforderung mit resource=Orchestration_Task
curl -X GET \
'https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/schema?resource=orchestration_task' \
-H 'Accept: application/json'\
-u 'username':'password'
{
"result": {
"name": "Mobile-Platform-CI",
"url": "https://jenkins.mycompnay.com:8080/job/Mobile-Platform-CI/"
}
}
Beispiel für eine Curl-Anforderung mit resource=Callback
curl -X GET \
'https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/schema?resource=task_execution' \
-H 'Accept: application/json' \
-u 'username':'password'
{
"result": {
"callbackURL": "http://127.0.0.1:8090/jenkins/sn-devops/9b0feb79-f0b9-4661-83ef-2861b8924784",
"orchestrationTaskURL": "http://127.0.0.1:8090/jenkins/job/felipe-downstream/",
"orchestrationTaskDetails": {
"message": "Started by upstream project \"felipe-upstream\" build number 27",
"triggerType": "upstream"
}
}
}
DevOps – GET /devops/Orchestration/stepMapping
Überprüft, ob die übergebenen Informationen für die Erstellung einer Orchestration-Aufgabe und für die Zuordnung zu einem zuvor erstellten Schritt gültig sind.
URL-Format
Versionierte URL: /api/sn_devops/{api_Version}/devops/Orchestration/stepMapping
Standard-URL: /api/sn_devops/devops/Orchestration/stepMapping
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| api_version | Optional. Version des Endpunkts, auf den zugegriffen werden soll. 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 |
| Ist mehrere Verzweigungen | Wenn das Orchestration-Tool Jenkins ist, Kennzeichnung, die angibt, ob das Projekt vom Typ „Mehrzweig“ 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 Prozent (%) codiert 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 getestet werden soll DevOps Tool. 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 REST API-HTTP-Antwortcodes .
| 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 die Informationen gültig sind.
{
"result": {
"stepValid": true,
"status": "Success"
}
}
Beispiel für eine cURL-Anforderung
curl -X GET "https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/stepMapping?toolId=f0ca45679323008b52f3b457415ae6&orchestrationTaskName=Platform-Analytics-UAT-Deployment&orchestrationTaskURL=https%253A%252F%252Fjenkins.mycompany.com%253A8080%252Fjob%252FMobile-Platform-deploy%252F&toolType=jenkins "
-H "Accept: application/json" \
-u "username":"password"
Ergebnisse, wenn 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 Ihren entsprechenden POST-Anruf zu erstellen. VERÖFFENTLICHEN SIE /Plan/App , POST /Plan/Version , Oder VERÖFFENTLICHEN SIE /Plan/Arbeitselement .
URL-Format
Versionierte URL: /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. 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 beachten):
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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 200 | Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet. |
| 401 | Authentifizierung ist ungültig oder fehlt. |
| 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 in der Quelle DevOpsTool. Datentyp: Zeichenfolge |
| App.ID | Eindeutiger Bezeichner der Anwendung. Wird vom Quellplanungstool generiert. Datentyp: Zeichenfolge |
| App.Kurzbeschreibung | 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 Quellplanungstool-Website. Datentyp: Zeichenfolge |
| assignedTo | Beschreibung der Person, der das Arbeitselement zugewiesen ist. Datentyp: Objekt |
| ZuweisungTo.email | E-Mail-Adresse der Person, die dem Arbeitselement zugewiesen ist. Datentyp: Zeichenfolge |
| Zugewiesene To.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 des Anwendungs-, Versions- oder 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 zur Anwendung. Datentyp: Zeichenfolge |
| shortDescription | Kurze Beschreibung der Anwendung, Version oder des Arbeitselements. Datentyp: Zeichenfolge |
| Status | Status des Arbeitselements. Wird vom Quellplanungstool generiert. Datentyp: Zeichenfolge |
| team | Beschreibung des Teams, das der Anwendung zugeordnet ist. Datentyp: Objekt |
| Team.ID | Eindeutiger Bezeichner des Teams, das der Anwendung zugeordnet ist. Wird vom Quellplanungstool generiert. Datentyp: Zeichenfolge |
| team.name | Name des Teams, das der Anwendung zugeordnet ist. Datentyp: Zeichenfolge |
| type | Typ des Arbeitselements. Vom Planungstool generiert. Datentyp: Zeichenfolge |
| URL | URL, die für den Zugriff auf die Anwendung, die Version oder das Arbeitselement verwendet werden soll. 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 in der Quelle DevOpsTool. Datentyp: Zeichenfolge |
| version.app.id | Eindeutiger Bezeichner der Anwendung. Wird vom Quellplanungstool generiert. Datentyp: Zeichenfolge |
| Version.App.Kurzbeschreibung | 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 Quellplanungstool-Website. Datentyp: Zeichenfolge |
| Version.ErstelltDateTime | Datum/Uhrzeit der Erstellung der Version in der Quelle DevOpsTool. Datentyp: Zeichenfolge |
| Version.ID | Eindeutiger Bezeichner der Version. Wird vom Quellplanungstool generiert. Datentyp: Zeichenfolge |
| Version.Kurzbeschreibung | Kurze Beschreibung der zugeordneten Version. Datentyp: Zeichenfolge |
| Version.url | URL der Version auf der Quellplanungstool-Website. Datentyp: Zeichenfolge |
Beispiel für eine Curl-Anforderung für resource=App
curl "https://instance.servicenow.com/api/sn_devops/v1/devops/plan/schema?resource=app" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
{
"result": {
"id": "PRODUCT1234",
"shortDescription": "Mobile UI",
"createdDateTime": "1970-01-01T08:15:30-05:00",
"team": {
"name": "Mobile UI",
"id": "f0ca45679323008b52f3b457415ae6"
},
"url": "https://jira.com/mycompany/browse/PRODUCT-125"
}
}
Beispiel für eine Curl-Anforderung für resource=Version
curl "https://instance.servicenow.com/api/sn_devops/v1/devops/plan/schema?resource=version" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
{
"result": {
"id": "REL1234",
"shortDescription": "APIs Release",
"createdDateTime": "1970-01-01T08:15:30-05:00",
"app": {
"id": "PRODUCT1234",
"shortDescription": "Mobile UI",
"createdDateTime": "1970-01-01T08:15:30-05:00",
"team": {
"name": "Mobile UI",
"id": "f0ca45679323008b52f3b457415ae6"
},
"url": "https://jira.com/mycompany/browse/PRODUCT-125"
},
"url": "https://jira.com/mycompany/browse/REL-125"
}
}
Beispiel für eine Curl-Anforderung für resource=work_item
curl "https://instance.servicenow.com/api/sn_devops/v1/devops/plan/schema?resource=work_item" \
--request GET \
--header "Accept:application/json" \
--user "username":"password"
{
"result": {
"id": "STR1234",
"type": "Story",
"shortDescription": "Planning API Spec",
"state": "In-progress",
"createdDateTime": "1970-01-01T08:15:30-05:00",
"assignedTo": {
"name": "Leo Neo",
"userName": "lenn",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"email": "lenn@smithworksinc.com"
},
"version": {
"id": "REL1234",
"shortDescription": "APIs Release",
"createdDateTime": "1970-01-01T08:15:30-05:00",
"app": {
"id": "PRODUCT1234",
"shortDescription": "Mobile UI",
"createdDateTime": "1970-01-01T08:15:30-05:00",
"team": {
"name": "Mobile UI",
"id": "f0ca45679323008b52f3b457415ae6"
},
"url": "https://jira.com/mycompany/browse/PRODUCT-125"
},
"url": "https://jira.com/mycompany/browse/REL-125"
},
"app": {
"id": "PRODUCT1234",
"shortDescription": "Mobile UI",
"createdDateTime": "1970-01-01T08:15:30-05:00",
"team": {
"name": "Mobile UI",
"id": "f0ca45679323008b52f3b457415ae6"
},
"url": "https://jira.com/mycompany/browse/PRODUCT-125"
},
"url": "https://jira.com/mycompany/browse/HALOKEY-25"
}
}
DevOps – POST /devops/Artifact/Registration
Ermöglicht Orchestration-Tools, Artefakte in einem zu registrieren ServiceNow Instanz.
- Wenn toolIdWird in der Anforderung übergeben, validiert der Endpunkt, dass das Tool in der Instanz vorhanden ist. Außerdem wird überprüft, ob das Artefakt-Repository in angegeben ist artifacts.repositoryNameIst vorhanden, und wenn nicht, wird es unter dem zugehörigen Artefakt-Tool erstellt.
- Wenn toolIdIn der Anforderung nicht übergeben wird, wird ein Repository erstellt, es ist jedoch mit keinem Artefakt-Tool verknüpft.
- Überprüft dann, ob das in angegebene Artefakt angegeben ist artifacts.nameIst bereits vorhanden, und wenn nicht, wird es unter dem zugehörigen Repository erstellt.
- Wenn artifact.versionWird in der Anforderung übergeben:
- Wenn er nicht vorhanden ist, wird in der zugehörigen Tabelle „Artefaktversion“ [sn_devops_Artifact_Version] ein neuer Artefaktversionsdatensatz erstellt.
- Der Endpunkt sucht dann basierend auf den angegebenen Build-Details nach zugeordneten Aufgabenausführungen ( pipelineNameOder projectName, taskExecutionNumber, branchName, Und stageName) Und orchestrationToolIdParameter.
- Wenn eine Aufgabenausführung gefunden wird und die Nachverarbeitung abgeschlossen ist, wird die Artefaktversion mit der Aufgabenausführung verknüpft und in der Tabelle „Artefakt zu Aufgabenausführung“ [sn_devops_m2m_Artifact_Execution] gespeichert. Commits, die mit diesen Aufgabenausführungen verknüpft sind, werden auch der Artefaktversion zugeordnet und in der Tabelle „Artefaktversion zum Commit“ [sn_devops_m2m_Artifact_Version_Commit] gespeichert. Alle Commits, die mit vorherigen Aufgabenausführungen verknüpft sind, die kein Artefakt erstellt haben, werden auch der Artefaktversion zugeordnet.
- Wenn eine Aufgabenausführung gefunden wird und die 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.versionWird nicht übergeben. Abhängig von der Toolkonfiguration wird die Artefaktversion entweder durch Aufrufen von abgerufen /devops/Tool/Artefakt Endpunkt, wenn Ihr Artefakt-Tool Webhooks unterstützt oder über einen anwenderdefinierten Subflow, der die Artefaktversion aus dem Artefakt-Tool abruft.
Weitere Informationen zu Artefakten finden Sie unter DevOps-Change-Beschleunigung für Releases verwenden .
URL-Format
Versionierte URL: /api/sn_devops/{api_Version}/devops/Artifact/Registration
Standard-URL: /api/sn_devops/devops/Artifact/Registration
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| api_version | Optional. Version des Endpunkts, auf den zugegriffen werden soll. 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 denen 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.RepositoryName | Erforderlich. Name des Artefakt-Repositorys. Wenn der angegebene Repository-Datensatz nicht vorhanden ist, wird er erstellt. Datentyp: Zeichenfolge Maximale Länge: 160 Zeichen |
| artifacts.semanticVersion | 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 toolIdWurde nicht übergeben. 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 wird. Datentyp: Zeichenfolge Maximale Länge: 160 Standard: Null |
| pipelineName | Erforderlich, wenn projectNameWurde nicht übergeben. Pipeline-Name. Datentyp: Zeichenfolge Maximale Länge: 160 Standard: Null |
| projectName | Erforderlich, wenn pipelineNameWurde nicht übergeben. Freiform-Projektname. Datentyp: Zeichenfolge Maximale Länge: 160 Standard: Null |
| stageName | Erforderlich, wenn pipelineNameIst bestanden. 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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| 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 |
|---|---|
| response | Ergebnisse der Artefaktregistrierungsanforderung. Datentyp: Objekt |
| Antwort.Artefakt | 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 Artefaktdatensatzes, der von der Anforderung erstellt wurde. Datentyp: Zeichenfolge |
| Antwort.Artefakt.gefunden | Wenn bereits ein Artefakt 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.Update | Derzeit nicht verwendet |
| response.artifact.update.id | Derzeit nicht verwendet |
| Antwort.Artefakt_Register_Requests | Ergebnisse für alle Artefaktregisteranforderungen, die die Verarbeitung nicht abgeschlossen haben und in der Tabelle „bereitgestellte Artefaktanforderung“ gespeichert wurden. Datentyp: Objekt |
| Antwort.Artefakt_Register_Requests.create | Wenn die Anforderung Artefaktbereitstellungsdatensätze erstellt hat, die Liste der sys_IDs der erstellten Datensätze. Datentyp: Array von Objekten |
| Antwort.Artefakt_Register_Requests.create.ID | SYS_ID des von der Anforderung erstellten Artefaktbereitstellungsdatensatzes. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Register_Requests.found | Wenn Artefakten bereits Artefaktbereitstellungsdatensätze zugeordnet sind, die Liste der sys_IDs der vorhandenen Artefaktbereitstellungsdatensätze. Hinweis: An vorhandenen Paketen werden keine Änderungen vorgenommen. Datentyp: Array von Objekten |
| Antwort.Artefakt_Register_Requests.found.ID | SYS_ID eines vorhandenen Artefaktbereitstellungsdatensatzes. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Register_Requests.Update | Derzeit nicht verwendet |
| Antwort.Artefakt_Register_Requests.Update.ID | Derzeit nicht verwendet |
| Antwort.Artefakt_Repository | Ergebnisse für alle Artefakt-Repository-Datensätze, die während der Verarbeitung der Anforderung bearbeitet wurden. Datentyp: Objekt |
| Antwort.Artefakt_Repository.create | Wenn Artefakt-Repositorys von der Anforderung erstellt wurden, die Liste der sys_IDs der erstellten Datensätze. Datentyp: Array von Objekten |
| Antwort.Artefakt_Repository.create.ID | SYS_ID des von der Anforderung erstellten Artefakt-Repository-Datensatzes. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Repository.gefunden | Wenn in der Registrierungsanforderung verwendete Artefakt-Repository-Datensätze bereits vorhanden sind, die Liste der sys_IDs der vorhandenen Datensätze. Hinweis: An vorhandenen Paketen werden keine Änderungen vorgenommen. Datentyp: Array von Objekten |
| Antwort.Artefakt_Repository.found.ID | SYS_ID eines vorhandenen Artefakt-Repository-Datensatzes, der von der Anforderung verwendet wird. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Repository.Update | Wenn der Endpunkt die Nachverfolgungskennzeichnung in einem Repository auf „wahr“ (von „falsch“) aktualisiert, die Liste der sys_IDs der Repository-Datensätze, die geändert wurden. Datentyp: Array von Objekten |
| Antwort.Artefakt_Repository.Update.ID | SYS_ID des Repository-Datensatzes, dessen Nachverfolgungskennzeichnung geändert wurde. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Version | Ergebnisse für alle Artefaktversionsdatensätze, die während der Verarbeitung der Anforderung bearbeitet wurden. Datentyp: Objekt |
| Antwort.Artefakt_Version.erstellen | Ergebnisse für alle Artefaktversionsdatensätze, die während der Verarbeitung der Anforderung erstellt wurden. Datentyp: Array von Objekten |
| Antwort.Artefakt_Version.create.ID | SYS_ID des Artefaktversionsdatensatzes, der von der Anforderung erstellt wurde. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Version.gefunden | Wenn in der Registrierungsanforderung verwendete Artefaktversionsdatensätze bereits vorhanden sind, die Liste der sys_IDs der vorhandenen Datensätze. Datentyp: Array von Objekten |
| Antwort.Artefakt_Version.found.ID | SYS_ID des vorhandenen Artefaktversionsdatensatzes, der von der Anforderung verwendet wird. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Version.Update | Derzeit nicht verwendet |
| Antwort.Artefakt_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 asynchron von verarbeitet wird DevOps Service.
- Erstellen Sie Anwendungen.
- Zuordnen DevOps Objekte wie Plan, Repository und Pipeline zu einer Anwendung.
- Erstellen Sie einen Change-Schritt-Datensatz, und ordnen Sie einer Pipeline einen Change-Genehmigungsprozess zu.
Alle diese Aktionen sind Tool- und Fähigkeitsspezifisch. In der folgenden Tabelle sind die Aktionen aufgeführt, die für jedes unterstützte Tool verfügbar sind.
URL-Format
Versionierte URL: /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. 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 innerhalb der zugeordneten erstellt werden sollen ServiceNow Instanz. Datentyp: Array |
| Apps.BussinessApp | Name der cmdb_ci_Business_App, der die Anwendung zugeordnet wird. Dies bindet an DevOps Anwendung für die angegebene CMDB-Anwendung. Datentyp: Zeichenfolge |
| apps.name | Erforderlich. Anwenderfreundlicher Name der Anwendung, die erstellt werden soll. Eine App ist eine DevOps Produktcontainer-Objekt, das Pläne, Repositorys und Pipelines miteinander verknüpft. Datentyp: Zeichenfolge |
| Anmeldeinformationen | Erforderlich. Anmeldeinformationen, die für die Webhook-Erstellung verwendet werden sollen. 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 in angegebenen Anwenders credenitals.nameParameter. Datentyp: Zeichenfolge |
| Pipelines | Liste der Pipelines, die Anwendungen zugeordnet werden sollen. Datentyp: Array von Objekten |
| pipelines.app | Erforderlich, wenn pipelinesObjekt ist angegeben. Name der Anwendung, die dem in angegebenen Plan zugeordnet werden soll pipelines.nameParameter. Die Anwendung muss bereits erstellt oder in angegeben worden sein appsObjekt dieser Anforderung. Datentyp: Zeichenfolge |
| pipelines.changeSteps | Change-Schritte, die für die in angegebene Pipeline erstellt werden sollen pipelines.nameFeld. Datentyp: Array von Objekten |
| pipelines.changeSteps.changeApprovalGroup | Erforderlich, wenn changeStepsObjekt ist angegeben. Name der Change-Genehmigungsgruppe, die der Pipeline zugeordnet werden soll. Diese Gruppe muss bereits auf vorhanden sein ServiceNow Instanz. 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 changeStepsObjekt ist angegeben. Typ der zu erstellenden Change-Anforderung. Datentyp: Zeichenfolge Tabelle: Im Feld Typ der Tabelle „Change-Anforderung“ [Change_Request]. |
| pipelines.changeSteps.name | Erforderlich, wenn changeStepsObjekt ist angegeben. 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 changeStepsObjekt ist angegeben. Typ des zu erstellenden Schritts. Datentyp: Zeichenfolge Tabelle: Im Feld Typ der Tabelle „Schritte“ [sn_devops_STEP]. |
| pipelines.name | Erforderlich, wenn pipelinesObjekt ist angegeben. Name der Pipeline, die der in angegebenen Anwendung zugeordnet werden soll pipelines.appParameter. Diese Pipeline muss bereits auf erkannt werden ServiceNow Instanz. Datentyp: Zeichenfolge |
| pipelines.project | Erforderlich, wenn Pipelines Objekt ist angegeben, und die Entität „Pipelines.Tool“ unterstützt Projekte (z. B. das ADO-Tool). Projekt, das der Pipeline zugeordnet werden soll, um einen eindeutigen Pipeline-/Toolbezeichner zu erstellen. Parameterwert muss von einem Projekt in der Tabelle „Projekt“ [sn_devops_project] abgeleitet werden.Datentyp: Zeichenfolge |
| Pipelines.Tool | Erforderlich, wenn pipelinesObjekt ist angegeben. Tool, das der Pipeline zugeordnet werden soll, um einen eindeutigen Pipeline-/Toolbezeichner 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 plansObjekt ist angegeben. Namen der Anwendungen, die dem in angegebenen Plan zugeordnet werden sollen plans.nameParameter. Diese Anwendungen müssen bereits erstellt oder in angegeben worden sein appsObjekt dieser Anforderung. Datentyp: Array von Zeichenfolgen |
| plans.name | Erforderlich, wenn plansObjekt ist angegeben. Name des Plans, der der in angegebenen Anwendung zugeordnet werden soll plans.appParameter. Dieser Plan muss bereits auf erkannt werden ServiceNow Instanz. Datentyp: Zeichenfolge |
| plans.project | Erforderlich, wenn Pläne Objekt ist angegeben, und das Plans.Tool unterstützt die Entität „Projekte“ (z. B. das ADO-Tool). Tool, das der Pipeline zugeordnet werden soll, um eindeutige Pläne/Toolbezeichner zu erstellen. Parameterwert muss von einem Projekt in der Tabelle „Projekt“ [sn_devops_project] abgeleitet werden.Datentyp: Zeichenfolge |
| Pläne.Tool | Erforderlich, wenn plansObjekt ist angegeben. Tool, das dem Plan zugeordnet werden soll, um einen eindeutigen Plan-/Toolbezeichner zu erstellen. Datentyp: Zeichenfolge |
| Repositorys | Liste der Repositorys, die einer Anwendung zugeordnet sind. Wenn das Repositorys-Objekt einen App-Parameter enthält, ordnet es das Repository der Anwendung zu. Datentyp: Array von Objekten |
| repositories.app | Erforderlich, wenn repositoriesObjekt ist angegeben. Name der Anwendung, die diesem Repository zugeordnet werden soll. Die Anwendung muss bereits erstellt oder in angegeben worden sein appsObjekt dieser Anforderung. Datentyp: Zeichenfolge |
| repositories.name | Erforderlich, wenn repositoriesObjekt ist angegeben. Name des Repositorys, das der in angegebenen Anwendung zugeordnet werden soll repositories.appParameter. Dieses Repository muss bereits auf erkannt werden ServiceNow Instanz. Datentyp: Zeichenfolge |
| repositories.project | Erforderlich, wenn Repositorys Objekt ist und angegeben repositories.toolUnterstützt eine Projektentität (z. B. das ADO-Tool). Tool, das den Repositorys zugeordnet werden soll, um einen eindeutigen Repository-/Toolbezeichner zu erstellen. Parameterwert muss von einem Projekt in der Tabelle „Projekt“ [sn_devops_project] abgeleitet werden.Datentyp: Zeichenfolge |
| Repositorys.Tool | Erforderlich, wenn repositoriesObjekt ist angegeben. Anwenderfreundlicher Toolname, der dem Repository zugeordnet werden soll, um einen eindeutigen Repository-/Toolbezeichner zu erstellen. Das Tool muss bereits auf erstellt sein ServiceNow Instanz. Datentyp: Zeichenfolge |
| artifactRepositories.app | Erforderlich, wenn ArtefaktRepositorys Objekt ist angegeben. Name der Anwendung, die diesen artifactRepositorys zugeordnet werden soll. Die Anwendung muss bereits erstellt oder in angegeben worden sein Apps Objekt dieser Anforderung.Datentyp: Zeichenfolge |
| artifactRepositories.name | Erforderlich, wenn ArtefaktRepositorys Objekt ist angegeben. Name der artifactRepositorys, die der in angegebenen Anwendung zugeordnet werden sollen artifactRepositories.App-Parameter. Diese artifactRepositorys müssen bereits in der ServiceNow-Instanz erkannt werden.Datentyp: Zeichenfolge |
| ArtefaktRepositorys.Tool | Erforderlich, wenn ArtefaktRepositorys Objekt ist angegeben. Anwenderfreundlicher Toolname, der den artifactRepositorys zugeordnet werden soll, um einen eindeutigen artifactRepositorys/Toolbezeichner zu erstellen. Das Tool muss bereits auf der ServiceNow-Instanz erstellt werden.Datentyp: Zeichenfolge |
| artifactRepositories.project | Erforderlich, wenn ArtefaktRepositorys Objekt ist und angegeben repositories.toolUnterstützt die Entität „Projekte“ (z. B. das ADO-Tool). Tool, das dem zugeordnet werden soll artifactRepositoriesDient zum Erstellen eines eindeutigen Pipeline-/Toolbezeichners. 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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 202 | Onboarding-Anforderung wurde erfolgreich erstellt. |
Parameter des Antwort-Haupttexts
| Name | Beschreibung |
|---|---|
| Ergebnis | Ergebnisse der Onboarding-Anforderung. Datentyp: Objekt |
| Ergebnis.Code | HTTP-Statuscode. Datentyp: Zeichenfolge |
| result.details | Details zur Onboarding-Anforderung. Datentyp: Zeichenfolge |
| Ergebnis.Fehler | Beschreibung des aufgetretenen Fehlers. Datentyp: Objekt |
| Ergebnis.Fehler.Nachricht | Fehlermeldung. Datentyp: Zeichenfolge |
| Ergebnis.onboardingAnforderungs-ID | Eindeutiger Bezeichner der Onboarding-Anforderung. Verwenden Sie diesen Wert, wenn Sie aufrufen /devops/Onboarding/Status Endpunkt zum Abrufen des Status des zugehörigen Onboarding-Prozesses. Datentyp: Zeichenfolge |
| Ergebnis.Status | Status der Onboarding-Anforderung, entweder „Erfolg“ oder „Fehlgeschlagen“. Datentyp: Zeichenfolge |
cURL-Anforderung
In diesem Beispiel wird die Anwendung Fahrradverleih-Service erstellt und der Jenkins-Pipeline Fahrradverleih, dem GitHub-Repository nowDevops01/CorpSite und dem Azure Plan testPlan_Bike_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 asynchron von verarbeitet wird DevOps Service.
- Erstellt das Tool innerhalb der zugehörigen ServiceNow Instanz
- Stellt eine Verbindung zum Tool her
- Versucht, das Tool zu konfigurieren (nur wenn die Verbindung erfolgreich ist)
- Erkennt das Tool (nur wenn die Verbindung erfolgreich ist)
Die Rückgabeergebnisse für diesen Endpunkt geben nur an, ob die Anforderung veröffentlicht wurde, sie geben nicht an, ob die zugehörigen Tools erstellt wurden. Die tatsächliche Toolerstellung wird asynchron verarbeitet. Um den Status der Toolerstellung und aller anderen Aktionen zu erhalten, müssen Sie aufrufen /devops/Onboarding/Status Endpunkt und übergeben Sie im onboardingRequestIDParameter, der von diesem Endpunkt zurückgegeben wird.
Bevor Sie auf diesen Endpunkt zugreifen können, muss Ihr Administrator konfiguriert haben DevOps Alias für Verbindungen und Anmeldeinformationen (CreateDevOpsTool) zum Einrichten von Tools in der Instanz. Weitere Informationen finden Sie unter Installieren Sie DevOps Change-Geschwindigkeit . Darüber hinaus muss die aufrufende Entität die Rolle devops.integration.user haben.
URL-Format
Versionierte URL: /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. 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. Anmeldeinformationen, die für die Webhook-Erstellung verwendet werden sollen. Das Tool verwendet den erstellten Webhook, um Benachrichtigungen zu senden. Datentyp: Objekt |
| credentials.name | Erforderlich. ServiceNow Bezeichner 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 in angegebenen Anwenders credenitals.nameParameter. Datentyp: Zeichenfolge |
| Tools | Erforderlich. Tools, die innerhalb der zugeordneten erstellt werden sollen ServiceNow Instanz. Sie können ein oder mehrere Tools in einer einzelnen Anforderung erstellen. Datentyp: Array von Objekten |
| tools.name | Erforderlich. Anwenderfreundlicher Name oder Bezeichnung des zu erstellenden Tools. Dieser Name wird verwendet, um das Tool in zu identifizieren DevOps Service. Datentyp: Zeichenfolge |
| Tools.Passwort | Erforderlich mit Ausnahme des Agile-Tools. Passwort, das für den Zugriff auf das Tool verwendet werden soll. Unterstützte Authentifizierungen sind Standard und Token; OAuth wird nicht unterstützt. Datentyp: Zeichenfolge |
| Tools.Typ | Erforderlich. Typ des zu erstellenden Tools, z. B. GitHub oder BitBucket. Der angegebene Wert muss eine der Toolbezeichnungen in der Tabelle „Toolintegrationen“ [sn_devops_Tool_Integration] sein. Datentyp: Zeichenfolge |
| tools.useMidServer | Kennzeichnung, die angibt, ob das Tool eine Verbindung über herstellt MID-Server. Gültige Werte:
Datentyp: Boolesch |
| tools.username | Erforderlich mit Ausnahme des Agile-Tools. Anwendername, der für den Zugriff auf das Tool über diesen Endpunkt verwendet werden soll. Datentyp: Zeichenfolge |
| Tools.url | Erforderlich mit Ausnahme des Agile-Tools. URL des zu erstellenden Tools. Die DevOps Service verwendet diese URL zur Integration mit dem Tool. Wenn Sie das Tool „Azure DevOps“ verwenden, tools.urlKann entweder die URL der ADO-Organisation oder die URL des ADO-Projekts enthalten. Bei der Bereitstellung einer ADO-Organisations-URL erkennt die API alle Projekte unter der angegebenen Organisation und konfiguriert keine Projekte. Bei der Bereitstellung einer ADO-Projekt-URL erkennt die API Entitäten im Zusammenhang mit dem Projekt (Pipelines, Repositorys und Pläne) und konfiguriert auch ein Projekt, wenn dies der Fall ist credentialsObjekt ist vorhanden. Um der API explizit mitzuteilen, dass die Projektkonfiguration übersprungen wird, konfigurieren Sie eine Kennzeichnung configureTool(Typ: boolescher wert) bis 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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 202 | Onboarding-Anforderung wurde erfolgreich erstellt. |
Parameter des Antwort-Haupttexts
| Name | Beschreibung |
|---|---|
| Ergebnis | Ergebnisse der Onboarding-Anforderung. Datentyp: Objekt |
| Ergebnis.Code | HTTP-Statuscode. Datentyp: Zeichenfolge |
| result.details | Detaillierte Nachricht zur Onboarding-Anforderung. Datentyp: Zeichenfolge |
| Ergebnis.Fehler | Beschreibung des aufgetretenen Fehlers. Datentyp: Objekt |
| Ergebnis.Fehler.Nachricht | Fehlermeldung. Datentyp: Zeichenfolge |
| Ergebnis.onboardingAnforderungs-ID | Eindeutiger Bezeichner der Onboarding-Anforderung. Verwenden Sie diesen Wert, wenn Sie aufrufen /devops/Onboarding/Status Endpunkt zum Abrufen des Status des zugehörigen Tool-Onboarding-Prozesses. Datentyp: Zeichenfolge |
| Ergebnis.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 einem ServiceNow Instanz für eine Orchestration-Aufgabe unter Change-Steuerung, die aufgerufen werden kann, sobald eine Entscheidung über die Change-Anforderung getroffen wurde.
Bevor Sie diesen Endpunkt aufrufen, müssen Sie in einer Orchestration-Aufgabe erstellt haben ServiceNow Instanz. Sie können diese Aufgabe entweder über Discovery erstellen oder indem Sie aufrufen DevOps – POST /devops/Orchestration/stepMapping Endpunkt. Sie müssen auch sicherstellen, dass die Orchestration-Aufgabe einem zuvor definierten Pipeline-Schritt zugeordnet ist und dass die Change-Steuerung aktiviert ist (indem Sie auswählen Change-Steuerung Option im Formular „App-Phase“.) Weitere Informationen finden Sie unter DevOps-Change wird beschleunigt .
URL-Format
Versionierte URL: /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. 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 DevOps Tool, für das die angegebene Aufgabe unter die 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 ist ServiceNow Die Instanz kann zurückrufen, sobald der zugehörige Genehmigungsprozess für Change-Anforderungen abgeschlossen ist. Bei diesem Rückruf sollte die Pipeline-Ausführung basierend auf dem Genehmigungsergebnis fortgesetzt werden können 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 der 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 auch Felder einschließen, 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 bestimmte Change-Anforderung vermerkt, z. B.: Aktualisierung der Change-Anforderung mit folgendem Grund fehlgeschlagen: <Fehlermeldung von Plattform>. Change-Anforderung und zugehörige Schrittausführung werden abgebrochen. Sie können auch den booleschen Parameter übergeben setCloseCodeIn diesem Objekt, um anzugeben, ob Abschlussinformationen für den zugehörigen Change-Anforderungsdatensatz festgelegt werden sollen.
Datentyp: Objekt |
| Ist mehrere Verzweigungen | Wenn das Orchestration-Tool Jenkins ist, Kennzeichnung, die angibt, ob das Projekt vom Typ „Mehrzweig“ ist. Gültige Werte:
Datentyp: Boolesch Standardwert: false |
| OrchestrationTaskDetails | Erforderlich. Beschreibung der Orchestration-Aufgabe. Datentyp: Objekt |
| OrchestrationAufgabendetails.Nachricht | 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 triggerTypeIst auf festgelegt Vorgelagert . URL der vorgelagerten Aufgabenausführung. 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 |
| Übergeordneter Knoten | 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-Phasen-ID. Datentyp: Zeichenfolge |
| parentNode.name | Name des übergeordneten Knotens. In Jenkins entspricht dieser Wert einem Pipeline-Phasennamen. Datentyp: Zeichenfolge |
| ParentNode.upstreamStageName | Name der vorgelagerten Orchestration-Aufgabe des übergeordneten Knotens. In Jenkins entspricht dieser Wert einem Pipeline-Phasennamen. Datentyp: Zeichenfolge |
| ParentNode.upstreamTaskExecutionURL | URL der vorgelagerten Aufgabenausführung des übergeordneten Knotens. In Jenkins entspricht dieser Wert einer Ausführungs-URL der Pipeline-Phase. 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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 201 | Anforderung erfolgreich abgeschlossen. |
| 400 | Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt. |
| 401 | Authentifizierung ist ungültig oder fehlt. |
| 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-Steuerung 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 in übergeben werden changeRequestDetailsObjekt beim Schließen einer Change-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 "{
"callbackURL":"http://192.168.0.4:3000/jenkins/sn-devops/pipeline_839b7605-b98d-4831-bc87-96829de7da37",
"orchestrationTaskURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests#deploy/",
"isMultiBranch":"false",
"orchestrationTaskName":"java_sample_tests#deploy",
"orchestrationTaskDetails":{
"triggerType":"upstream",
"upstreamTaskExecutionURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests/129/execution/node/35/wfapi/describe",
"taskExecutionURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests/129/execution/node/50/wfapi/describe"
},
"changeRequestDetails":{
"setCloseCode":false,
"attributes":{
"sys_created_by":"1832fbe1d701120035ae23c7ce610369",
"sys_updated_by":"56826bf03710200044e0bfc8bcbe5dca",
"requested_by":{
"name":"test user1"
},
"watch_list":[
{
"name":"test user1"
},
{
"name":"test user2"
},
{
"name":"Alejandra Prenatt"
},
"56826bf03710200044e0bfc8bcbe5dca"
],
"work_notes_list":[
"56826bf03710200044e0bfc8bcbe5dca",
"46c6f9efa9fe198101ddf5eed9adf6e7",
"d8f57f140b20220050192f15d6673a98"
],
"assigned_to":"1832fbe1d701120035ae23c7ce610369",
"category":"Service",
"sys_created_on":"2021-02-09 18:58:41",
"priority":"2",
}
}
}"
Antworttext.
{
"result": {
"changeControl": true,
"status": "Success"
}
}
DevOps – POST /devops/Orchestration/stepMapping
Überprüft, ob die übergebenen Informationen für die Erstellung einer Orchestration-Aufgabe und für die Zuordnung zu einem zuvor erstellten Schritt gültig sind. Wenn beide gültig sind, wird die Orchestration-Aufgabe erstellt und die Zuordnung vorgenommen.
URL-Format
Versionierte URL: /api/sn_devops/{api_Version}/devops/Orchestration/stepMapping
Standard-URL: /api/sn_devops/devops/Orchestration/stepMapping
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| api_version | Optional. Version des Endpunkts, auf den zugegriffen werden soll. 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 |
| Ist mehrere Verzweigungen | Wenn das Orchestration-Tool Jenkins ist, Kennzeichnung, die angibt, ob das Projekt vom Typ „Mehrzweig“ ist. Gültige Werte:
Datentyp: Boolesch Standardwert: false |
| Übergeordneter Knoten | 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-Phasen-ID. Datentyp: Zeichenfolge |
| parentNode.name | Name des übergeordneten Knotens. In Jenkins entspricht dieser Wert einem Pipeline-Phasennamen. Datentyp: Zeichenfolge |
| ParentNode.upstreamStageName | Name der vorgelagerten Orchestration-Aufgabe des übergeordneten Knotens. In Jenkins entspricht dieser Wert einem Pipeline-Phasennamen. Datentyp: Zeichenfolge |
| ParentNode.upstreamTaskExecutionURL | URL der vorgelagerten Aufgabenausführung des übergeordneten Knotens. In Jenkins entspricht dieser Wert einer Ausführungs-URL der Pipeline-Phase. 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 verwiesen wird orchestrationTaskURL. 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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| 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 die 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, neue Artefaktpakete zu erstellen, die die angegebenen Artefaktversionen enthalten.
Artefaktpakete werden verwendet, um Commits für Change-Genehmiger anzuzeigen, wenn sie eine Change-Anforderung anzeigen. Damit Commits in Change-Anforderungen angezeigt werden, muss das Paket in der Phase vor der Phase erstellt werden, die die Change-Genehmigung enthält.
Alle Artefaktversionen, die in der Paketregistrierungsanforderung enthalten sind, müssen bereits bei DevOps registriert sein. Details zum Registrieren 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
Versionierte URL: /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. 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 denen jedes Objekt eine Artefaktversion eindeutig identifiziert, die in das Paket aufgenommen werden soll. Datentyp: Array von Objekten |
| artifacts.branchName | Erforderlich, wenn artifact.versionWird nicht übergeben, und es handelt sich um ein Setup mit mehreren Verzweigungen. Name der Verzweigung, in der die Artefaktversionen gespeichert sind. 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.versionUnd artifacts.projectNameWurden nicht bestanden. Pipeline-Name. Datentyp: Zeichenfolge Maximale Länge: 160 Standard: Null |
| artifacts.projectName | Erforderlich, wenn artifact.versionUnd artifact.pipelineNameWurden nicht bestanden. Freiform-Projektname. Datentyp: Zeichenfolge Maximale Länge: 160 Standard: Null |
| Artefakte.RepositoryName | Erforderlich. Name des Artefakt-Repositorys. Datentyp: Zeichenfolge Maximale Länge: 160 Zeichen |
| Artefakte.stageName | Erforderlich, wenn artifact.versionWurde nicht übergeben. Phasenname. Datentyp: Zeichenfolge Maximale Länge: 160 Standard: Null |
| Artefakte.Aufgabenausführungsnummer | Erforderlich, wenn artifact.versionWurde nicht übergeben. Pipeline-Ausführungsnummer. Datentyp: Zeichenfolge Standard: Null |
| Artefakte.Version | Erforderlich, wenn keine Build-Details angegeben sind. Version der Artefakte. Datentyp: Zeichenfolge Format: <Major>.<Minor> Standard: Null |
| BranchName | Erforderlich, wenn es sich um ein Projekt mit mehreren 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 projectNameWurde nicht übergeben. Pipeline-Name. Datentyp: Zeichenfolge Maximale Länge: 160 Zeichen Standard: Null |
| projectName | Erforderlich, wenn pipelineNameWurde nicht übergeben. Freiform-Projektname. Datentyp: Zeichenfolge Maximale Länge: 160 Standard: Null |
| stageName | Erforderlich, wenn pipelineNameIst bestanden. 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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| 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 |
|---|---|
| response | Ergebnisse der Paketregistrierungsanforderung. Datentyp: Objekt |
| Antwort.Artefakt_Register_Requests | Ergebnisse für alle Registrierungsanforderungen, die die Verarbeitung nicht abgeschlossen haben und in der Tabelle „bereitgestellte Artefaktanforderung“ [sn_devops_Artifact_Staging] gespeichert wurden. Datentyp: Objekt |
| Antwort.Artefakt_Register_Requests.create | Wenn die Anforderung Paketbereitstellungsdatensätze erstellt hat, die Liste der sys_IDs der erstellten Bereitstellungsdatensätze. Datentyp: Array von Objekten |
| Antwort.Artefakt_Register_Requests.create.ID | SYS_ID des Paketbereitstellungsdatensatzes, der von der Anforderung erstellt wurde. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Register_Requests.found | Wenn die zugehörigen Paketbereitstellungsdatensätze bereits vorhanden sind, die Liste der sys_IDs der vorhandenen Datensätze. Hinweis: An vorhandenen Paketen werden keine Änderungen vorgenommen. Datentyp: Array von Objekten |
| Antwort.Artefakt_Register_Requests.found.ID | SYS_ID eines vorhandenen Paketbereitstellungsdatensatzes. Datentyp: Zeichenfolge |
| Antwort.Artefakt_Register_Requests.Update | Derzeit nicht verwendet. |
| Antwort.Artefakt_Register_Requests.Update.ID | Derzeit nicht verwendet. |
| Antwort.sn_devops_m2m_Artifact_Version_Package | Ergebnisse für jede Artefaktversion, die einem Paket zugeordnet ist. Datentyp: Objekt |
| Antwort.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] |
| Antwort.sn_devops_m2m_Artifact_Version_Package.create.ID | SYS_ID des Datensatzes „Artefaktversion zu Paket“, der von der Anforderung erstellt wurde. Datentyp: Zeichenfolge |
| Antwort.sn_devops_m2m_Artifact_Version_Package.found | Wenn in der Tabelle „Artefaktversion zu Paket“ bereits ein Verknüpfungsdatensatz vorhanden ist, die Liste der sys_IDs der vorhandenen Verknüpfungsdatensätze. Hinweis: An vorhandenen Datensätzen werden keine Änderungen vorgenommen. Datentyp: Array von Objekten |
| Antwort.sn_devops_m2m_Artifact_Version_Package.found.ID | SYS_ID des vorhandenen Artefaktversions-zu-Paket-Datensatzes. Datentyp: Zeichenfolge |
| Antwort.sn_devops_m2m_Artifact_Version_Package.Update | Derzeit nicht verwendet. |
| Antwort.sn_devops_m2m_Artifact_Version_Package.Update.ID | Derzeit nicht verwendet. |
| Antwort.sn_devops_Package | Ergebnisse für alle Paketdatensätze in der Tabelle „Pakete“ [sn_devops_Package], die während der Verarbeitung der Anforderung bearbeitet wurden. Datentyp: Objekt |
| Antwort.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 |
| Antwort.sn_devops_Package.create.ID | SYS_ID des Paketdatensatzes, der von der Anforderung erstellt wurde. Datentyp: Zeichenfolge |
| Antwort.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 |
| Antwort.sn_devops_Package.found.ID | SYS_ID eines vorhandenen Paketdatensatzes, auf den die Anforderung verweist. Datentyp: Zeichenfolge |
| Antwort.sn_devops_Package.Update | Derzeit nicht verwendet. |
| Antwort.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 – /devops/Tool/{Capability} VERÖFFENTLICHEN
Postet die übergebene Nutzlast zur Verarbeitung durch einen anwenderdefinierten in die Tabelle „eingehendes Ereignis“ [sn_devops_inbound] DevOps subflow.
Rufen Sie diesen Endpunkt über den zugehörigen Webhook in Ihrem Tool auf, der von der übergebenen angegeben wird capabilityParameter. Ein anwenderdefinierter Subflow zur Verarbeitung der übergebenen Nutzlast muss bereits in definiert sein ServiceNow Instanz. Basierend auf einem vordefinierten Zeitplan, die DevOps Der Master-Flow ruft 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 werden erstellt .
Weitere Informationen zur Integration von Testtools finden Sie unter DevOps-Test-Tool-Integration .
Bevor dieser Endpunkt für eine anwenderdefinierte Person aufgerufen wird DevOps-Tool müssen Sie implementieren HandleTool() Und GetNativeIdForOrchestrationTask() Methoden von sn_devops.DevOpsOrchestrationToolIntegrationHandler . Weitere Informationen finden Sie unter DevOpsOrchestrationToolIntegrationHandler – UmfangDevOpsOrchestrationToolIntegrationHandler: Bereichsbezogen .
URL-Format
Versionierte URL: /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. 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 in der Nutzlast übergeben wird, das in der Tabelle „eingehende Ereignisse“ gespeichert werden soll. Gültige Werte (Groß-/Kleinschreibung nicht beachten):
Datentyp: Zeichenfolge |
| Name | Beschreibung |
|---|---|
| orchestrationToolId | Optional. SYS_ID des Orchestration-Tools, zu dem die zugehörige Pipeline gehört. orchestrationToolIdIst erforderlich, wenn capabilityAnforderungsparameter ist auf festgelegt Testen Oder Softwarequalität .Der Wert in toolIdParameter ist das standardmäßige Orchestration-Tool, wenn der orchestrationToolIdParameter wurde nicht übergeben. Datentyp: Zeichenfolge |
| Testtyp | Erforderlich, wenn capabilityIst auf festgelegt Testen . 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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 201 | Anforderung erfolgreich abgeschlossen. |
| 400 | Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt. |
| 401 | Authentifizierung ist ungültig oder fehlt. |
| 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.Fehler | Beschreibung eines einzelnen Fehlers. Datentyp: Array von Objekten |
| Details.Fehler.Nachricht | Detaillierte Fehlermeldung.
Datentyp: Zeichenfolge |
| status | Antwortstatus wie „Erfolg“ oder „Datenfehler“. Datentyp: Zeichenfolge |
| sys_id | SYS_ID des Datensatzes, der in der Tabelle „eingehende Ereignisse“ erstellt wurde. Datentyp: Zeichenfolge |
Beispiel für eine Curl-Anforderung für 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 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 den Test
curl "https://instance.service-now.com/api/sn_devops/devops/tool/test?toolId=8d4f56598702c510f894419d0ebb35aa&testType=junit" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"attemptNumber": 1,
"blockedTests": 0,
"buildNumber": 675,
"duration": 0.079,
"failedTests": 0,
"finishTime": "2022-03-23T12:02:25.957Z",
"name": "adoTests/DeployableRepo/Test #675-2982",
"passedTests": 20,
"pipelineName": "adoTests/DeployableRepo",
"skippedTests": 0,
"stageName": "Test",
"startTime": "2022-03-23T12:02:24.36Z",
"taskExecutionUrl": "https://dev.azure.com/xyzabcd/adoTests/_build/results?buildId=675#Test/{Job name}",
"totalTests": 20,
"url": "https://dev.azure.com/xyzabcd/adoTests/_TestManagement/Runs?runId=2982&_a=runCharts"
}" \
--user 'username':'password'
Erfolgsantwort:
{
"result": {
"status": "Success",
"sysId: "fd3fdc6b879e85100f71cbfc0ebb356a"
}
}
DevOps – POST /devops/Tool/event/{sn_Tool_ID}
Veröffentlicht die übergebene Nutzlast von GitHub, Jira, Oder Bitbucket In die Tabelle Ereignisse [sn_devops_event] zur Verarbeitung durch einen vorgefertigten Subflow.
Dient zur Verarbeitung von Ereignissen aus einem anderen Tool GitHub, Jira, Oder Bitbucket, Verwenden Sie DevOps – /devops/Tool/{Capability} VERÖFFENTLICHEN Stattdessen Endpunkt.
URL-Format
Versionierte URL: /api/sn_devops/{api_Version}/devops/Tool/event/{sn_Tool_ID}
Standard-URL: /api/sn_devops/devops/Tool/event/{sn_Tool_ID}
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| api_version | Optional. Version des Endpunkts, auf den zugegriffen werden soll. 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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| 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 | Authentifizierung ist ungültig oder fehlt. |
| 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
Versionierte URL: /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. 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 Tabelle „Rückruf“ [sn_devops_Callback]. Datentyp: Zeichenfolge |
| Name | Beschreibung |
|---|---|
| toolId | Erforderlich. SYS_ID des DevOps Tool, das der Change-Steuerungsaufgabe zugeordnet ist. Datentyp: Zeichenfolge Tabelle: Orchestration-Tool [sn_devops_Orchestration_Tool] |
| Name | Beschreibung |
|---|---|
| callbackURL | Erforderlich. URL, die die ist ServiceNow Die Instanz kann zurückrufen, sobald der zugehörige Genehmigungsprozess für Change-Anforderungen abgeschlossen ist. Bei diesem Rückruf sollte die Pipeline-Ausführung basierend auf dem Genehmigungsergebnis fortgesetzt werden können oder nicht. Datentyp: Zeichenfolge |
| OrchestrationTaskDetails | Erforderlich. Beschreibung der Orchestration-Aufgabe. Datentyp: Objekt |
| OrchestrationAufgabendetails.Nachricht | 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 triggerTypeIst auf festgelegt Vorgelagert . URL der vorgelagerten Aufgabenausführung. 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 von DevOps Tool. Gültiger Wert: jenkins Datentyp: Zeichenfolge |
| TaskExecutionURL | 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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| Statuscode | Beschreibung |
|---|---|
| 200 | Anforderung erfolgreich abgeschlossen. |
| 400 | Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt. |
| 401 | Authentifizierung ist ungültig oder fehlt. |
| 404 | Nicht gefunden. Der angegebene Datensatz wurde nicht gefunden. |
| 500 | Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler. |
Parameter des Antwort-Haupttexts
| Name | Beschreibung |
|---|---|
| change_control | Kennzeichnung, die angibt, ob die Orchestration-Aufgabe unter Change-Steuerung steht. Mögliche Werte:
Datentyp: Boolesch |
| details | Eintrag für alle Fehlerbedingungen. Datentyp: Objekt |
| Details.Fehler | Beschreibung eines einzelnen Fehlers. Datentyp: Array von Objekten |
| Details.Fehler.Nachricht | 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 einer angegebenen Change-Anforderung.
URL-Format
Versionierte URL: /api/sn_devops/{api_Version}/devops/Orchestration/changeInfo/{changeInfo}
Standard-URL: /api/sn_devops/devops/Orchestration/changeInfo/{changeInfo}
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| api_version | Optional. Version des Endpunkts, auf den zugegriffen werden soll. 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. Change-Anforderungsnummer, 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 stateParameter, nur die folgenden Übergänge werden 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 auf klicken Token kopieren Schaltfläche im Tooldatensatz, die sich in der Tabelle „Tool“ [sn_devops_Tool] befindet. Das Token kann dann in einem Autorisierungsheader im Format verwendet werden Autorisierung: sn_devops.DevOpsToken <tool_sys_id>:<tool_token> .Hinweis: Wenn neben einem Autorisierungsheader mit Token Details zur Standardauthentifizierung (Anwendername und Passwort) angegeben werden, hat die Standardauthentifizierung Vorrang. Wenn devops.systemAnwender ist in Ihrer Instanz nicht verfügbar. Verwenden Sie die Wechseln Sie zu diesem Anwender, nachdem die tokenbasierte Authentifizierung erfolgreich war Eigenschaft. Mit dieser Eigenschaft können Sie alle Anwender festlegen, die über die Rolle sn_devops.integration verfügen, die zum Abschließen der Token-Authentifizierung 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 REST API-HTTP-Antwortcodes .
| 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 in der Change-Anforderung CHG0030023 aktualisiert werden.
curl -X PUT"
https://instance.servicenow.com/api/sn_devops/v1/devops/orchestration/changeInfo?changeRequestNumber=CHG0030023
-H "accept: application/json"\
-u "username":"password"
- D
{
"short_description": "Test description",
"priority": "1",
"start_date": "2021-02-05 08:00:00",
"end_date": "2022-04-05 08:00:00",
"justification": "test justification",
"description": "test description",
"cab_required": true,
"comments": "This update for work notes is from jenkins file",
"work_notes": "test work notes",
"assignment_group": "a715cd759f2002002920bde8132e7018"
}
Antwort:
{
"result": {
"updateStatus": "Done",
"status": "Success",
"message": "change request update successful"
}
}