Esc
Tracklytic
AnleitungenAPI-ReferenzSDKsChangelogTracklytic öffnen

Pipeline-Step aktualisieren

View as MarkdownThe page as plain text

Status melden und neue Folgeschritte anhängen.

POST/v1/event/{eventId}/step

Authentifizierung: API-Token des Event-Projekts. Für Benutzer-Access-JWT gibt es PATCH.

Pfadparameter

eventId: ID aus der Pipeline-Erstellung.

Body

Feld Typ Bedeutung
id string, erforderlich ID eines bestehenden Steps.
status string waiting, running, success, failed, skipped, cancelled.
message string Audit-Nachricht, maximal 2000 Zeichen.
steps array Neue Step-Definitionen anhängen, bestehende bleiben erhalten.

Mindestens status oder steps ist erforderlich. Neue Steps brauchen id, name, stage; optional sind description, requires, required, allowFailure, status, actions. Für den gesamten Graphen gelten maximal 200 Steps, pro Step maximal 20 Actions. IDs sind eindeutig, höchstens 80 Zeichen und beginnen mit Buchstabe oder Ziffer; danach sind auch _, . und - erlaubt.

Voraussetzungen

Vor dem Start müssen alle Vorgänger erfüllt sein. stage erzeugt keine Abhängigkeit. Endzustände sind grundsätzlich abgeschlossen; ein fehlgeschlagener Step kann unter den Zustandsregeln erneut gestartet werden.

Antwort und Fehler

HTTP 200 liefert das aktualisierte Event mit abgeleitetem Status und Pipeline-Revision. Die Antwort rechts ist ein gekürztes Beispiel. 400: ungültiger Graph. 404: Event oder Step fehlt. 409: unerfüllte Vorgänger, unzulässiger Übergang, laufende Action, geschlossene Pipeline oder konkurrierende Änderung.

Request

curl -X POST 'https://api.tracklytic.de/v1/event/EVENT_ID/step' \
  -H "Authorization: Bearer $TRACKLYTIC_API_TOKEN" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "id": "build",
  "status": "success",
  "message": "Build abgeschlossen"
}'
const response = await fetch("https://api.tracklytic.de/v1/event/EVENT_ID/step", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TRACKLYTIC_API_TOKEN}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify(
    {
      "id": "build",
      "status": "success",
      "message": "Build abgeschlossen"
    }
  )
});

if (!response.ok) throw new Error(await response.text());
const result = await response.json();
import json
import os
from urllib.request import Request, urlopen

payload = {
  "id": "build",
  "status": "success",
  "message": "Build abgeschlossen"
}

request = Request(
    "https://api.tracklytic.de/v1/event/EVENT_ID/step",
    method="POST",
    headers={
        "Authorization": "Bearer " + os.environ["TRACKLYTIC_API_TOKEN"],
        "Content-Type": "application/json"
    },
    data=json.dumps(payload).encode("utf-8")
)

with urlopen(request) as response:
    result = json.load(response)

Response

200
{
  "id": "EVENT_ID",
  "status": "waiting",
  "pipeline": {
    "revision": 1
  },
  "steps": [
    {
      "id": "build",
      "name": "Build",
      "stage": "Build",
      "status": "success"
    },
    {
      "id": "deploy",
      "name": "Deployment",
      "stage": "Deploy",
      "requires": [
        "build"
      ],
      "status": "waiting"
    }
  ]
}