API trackera
REST API v1 w Skribly Tracker, dla agentów tak samo jak dla ludzi. Przyjmuje i zwraca JSON, a opis OpenAPI 3.1 jest dołączony do aplikacji.
Uwierzytelnianie
Utwórz osobisty token dostępu w profilu i wysyłaj go jako token bearer. Token działa z rolą właściciela: obserwatorzy mogą tylko czytać, członkowie i administratorzy mogą zmieniać zadania, a webhooki są dla administratorów. Endpointy, które zmieniają dane, wymagają też uprawnienia write w tokenie.
export TRACKER=http://localhost:8100/api/v1
export TOKEN='...'
curl -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" $TRACKER/meKonwencje
- Klucze zadań
AGENT-12, z dowolną wielkością liter. Początkowy#jest ignorowany, a numeryczneidteż działa.- Opcje
typetotask,buglubfeature.prioritytolowest,low,medium,highluburgent.activityprzy czasie pracy todevelopment,review,testing,design,meetinglubother.- Kategorie statusów
todo,in_progresslubdone.status=openoznacza niezakończone.- Markdown
descriptionibodykomentarza to Markdown, zwracany tak, jak został zapisany. Interfejs webowy renderuje je z escapowaniem surowego HTML.- Daty
- ISO 8601 z przesunięciem dla znaczników czasu,
YYYY-MM-DDdla terminów i wpisów czasu. - Paginacja
- Listy zwracają
data,linksimeta.per_pageto od 1 do 100, domyślnie 25. - Limity
- Ponad 240 żądań na minutę od jednego użytkownika zwraca
429.
| Kod | Znaczenie |
|---|---|
401 | Brak tokenu albo błędny token |
403 | Rola lub uprawnienie tokenu na to nie pozwala |
404 | Nie znaleziono |
422 | Walidacja się nie powiodła |
429 | Zbyt wiele żądań |
Endpointy
Każda ścieżka jest względna wobec /api/v1.
Tabelę można przewijać
| Metoda | Ścieżka | Cel |
|---|---|---|
| GET | /me | Właściciel tokenu i uprawnienia tokenu |
| GET | /users | Osoby, którym można przypisać zadanie |
| GET | /projects | Aktywne projekty z liczbą otwartych zadań |
| GET | /projects/{key} | Projekt ze statusami, etykietami, typami i priorytetami |
| GET | /projects/{key}/meta | Co można wybrać przy tworzeniu zadania |
| GET | /issues | Lista z filtrami i paginacją |
| POST | /issues | Utworzenie zadania |
| GET | /issues/{key} | Jedno zadanie z komentarzami i załącznikami |
| PATCH | /issues/{key} | Zmiana wybranych pól |
| DELETE | /issues/{key} | Usunięcie zadania, przez administratora lub zgłaszającego |
| GET | /issues/{key}/transitions | Statusy projektu z zaznaczonym bieżącym |
| POST | /issues/{key}/transitions | Zmiana statusu |
| POST | /issues/{key}/assign | Przypisanie lub zdjęcie przypisania |
| GET | /issues/{key}/comments | Komentarze, od najstarszych |
| POST | /issues/{key}/comments | Dodanie komentarza w Markdown |
| GET | /issues/{key}/time-entries | Zapisany czas |
| POST | /issues/{key}/time-entries | Zapis czasu |
| POST | /issues/{key}/attachments | Wysłanie pliku |
| GET | /attachments/{id} | Pobranie pliku |
| GET | /time-activities | Aktywności dla wpisów czasu |
| GET | /search | Wyszukiwanie tekstowe, z dokładnym kluczem na początku |
| GET, POST | /webhooks | Lista lub dodanie webhooków, dla administratorów |
| DELETE | /webhooks/{id} | Usunięcie webhooka, dla administratorów |
Filtrowanie zadań
curl -H "Authorization: Bearer $TOKEN" "$TRACKER/issues?assignee=me&status=open&sort=-updated&per_page=100"
curl -H "Authorization: Bearer $TOKEN" "$TRACKER/issues?updated_since=2026-10-29T12:00:00Z&status=all"| Parametr | Wartości |
|---|---|
assignee | me, none, identyfikator użytkownika lub e-mail |
reporter, watching | me |
status | open, closed, all, identyfikator statusu lub nazwa |
project | Klucz albo kilka kluczy rozdzielonych przecinkami |
type, priority | Identyfikator opcji albo kilka identyfikatorów rozdzielonych przecinkami |
label | Nazwa etykiety |
q | Tekst w tytule lub opisie albo dokładny klucz |
updated_since | Znacznik czasu ISO 8601 |
sort | Domyślnie -updated, a także created, priority, key i due, z - dla kolejności malejącej |
per_page, page | Paginacja |
Zmiany w zadaniach
Tworzenie
Wymagane są tylko project i title. Nieznane nazwy etykiet są tworzone w projekcie.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" $TRACKER/issues -d '{
"project": "AGENT",
"title": "Saved filters in the sidebar",
"type": "feature",
"priority": "medium",
"assignee": "me"
}'Zmiana statusu
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
$TRACKER/issues/AGENT-3/transitions -d '{"status": "Done"}'Komentarz i zapis czasu
hours jest wymagane, większe od 0 i najwyżej 24. date domyślnie to dzisiaj, a activity to development.
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
$TRACKER/issues/AGENT-3/comments -d '{"body": "## Done\n- Filters saved"}'
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
$TRACKER/issues/AGENT-3/time-entries -d '{"hours": 1.5, "comment": "Review", "activity": "review"}'Webhooki
Administratorzy dodają webhooki w Ustawieniach lub przez API. Sekret jest pokazywany raz. Zdarzenia to issue.created, issue.updated, issue.deleted i comment.created, a każde dostarczenie to POST z kolejki, z maksymalnie trzema próbami.
POST /hooks/skribly
Content-Type: application/json
X-Skribly-Event: issue.updated
X-Skribly-Signature: sha256=<hex HMAC-SHA256 of the raw body>Żeby zweryfikować dostarczenie, oblicz HMAC surowej treści sekretem webhooka i porównaj w stałym czasie.
Czytaj dalej
- Skonfiguruj tracker
Uruchom go i utwórz token.
- Zobacz integracje
Co działa z każdym trackerem.
- Przeczytaj o danych
Co jest zapisywane i gdzie.