Przejdź do treści

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/me

Konwencje

Klucze zadań
AGENT-12, z dowolną wielkością liter. Początkowy # jest ignorowany, a numeryczne id też działa.
Opcje
type to task, bug lub feature. priority to lowest, low, medium, high lub urgent. activity przy czasie pracy to development, review, testing, design, meeting lub other.
Kategorie statusów
todo, in_progress lub done. status=open oznacza niezakończone.
Markdown
description i body komentarza 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-DD dla terminów i wpisów czasu.
Paginacja
Listy zwracają data, links i meta. per_page to od 1 do 100, domyślnie 25.
Limity
Ponad 240 żądań na minutę od jednego użytkownika zwraca 429.
Kody statusu błędów
KodZnaczenie
401Brak tokenu albo błędny token
403Rola lub uprawnienie tokenu na to nie pozwala
404Nie znaleziono
422Walidacja się nie powiodła
429Zbyt wiele żądań

Endpointy

Każda ścieżka jest względna wobec /api/v1.

Tabelę można przewijać

Endpointy REST API v1
MetodaŚcieżkaCel
GET/meWłaściciel tokenu i uprawnienia tokenu
GET/usersOsoby, którym można przypisać zadanie
GET/projectsAktywne projekty z liczbą otwartych zadań
GET/projects/{key}Projekt ze statusami, etykietami, typami i priorytetami
GET/projects/{key}/metaCo można wybrać przy tworzeniu zadania
GET/issuesLista z filtrami i paginacją
POST/issuesUtworzenie 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}/transitionsStatusy projektu z zaznaczonym bieżącym
POST/issues/{key}/transitionsZmiana statusu
POST/issues/{key}/assignPrzypisanie lub zdjęcie przypisania
GET/issues/{key}/commentsKomentarze, od najstarszych
POST/issues/{key}/commentsDodanie komentarza w Markdown
GET/issues/{key}/time-entriesZapisany czas
POST/issues/{key}/time-entriesZapis czasu
POST/issues/{key}/attachmentsWysłanie pliku
GET/attachments/{id}Pobranie pliku
GET/time-activitiesAktywności dla wpisów czasu
GET/searchWyszukiwanie tekstowe, z dokładnym kluczem na początku
GET, POST/webhooksLista 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"
Filtry listy zadań
ParametrWartości
assigneeme, none, identyfikator użytkownika lub e-mail
reporter, watchingme
statusopen, closed, all, identyfikator statusu lub nazwa
projectKlucz albo kilka kluczy rozdzielonych przecinkami
type, priorityIdentyfikator opcji albo kilka identyfikatorów rozdzielonych przecinkami
labelNazwa etykiety
qTekst w tytule lub opisie albo dokładny klucz
updated_sinceZnacznik czasu ISO 8601
sortDomyślnie -updated, a także created, priority, key i due, z - dla kolejności malejącej
per_page, pagePaginacja

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

Szukaj na stronie

Strzałki przenoszą między wynikami, Enter otwiera, Esc zamyka. Ctrl K /