Pipeline-Step aktualisieren
Status melden und neue Folgeschritte anhängen.
/v1/event/{eventId}/stepAuthentifizierung: 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"
}
]
}