UAT Studioby Salvion
Pomoc · Połączenia

REST API UAT Studio

Odczyt i rejestrowanie zgłoszeń, komentarzy, sign-offów i testerów z własnych skryptów i narzędzi, a pipeline może zapytać, czy wydanie może wyjść. Za pomocą klucza API projektu.

Adres https://app.uat.studio/api/v1Kto administrator projektu tworzy kluczFormat JSONPlany Team, Business, Partner i Enterprise
Zanim Państwo zaczną

Co będzie potrzebne

  • Moduł Connections w przestrzeni roboczej: jest dostępny w planach Team, Business, Partner i Enterprise, a w planie Project jako dodatek Integracje dla jednego UAT.
  • Uprawnienia administratora w projekcie UAT Studio.
  • Narzędzie, które potrafi wysyłać żądania HTTPS: skrypt, pipeline CI, Postman lub platforma integracyjna.

Korzystają Państwo z Zapier lub Make? Wtedy nie trzeba samodzielnie wywoływać API: zobacz Zapier i Make.

Konfiguracja · raz na projekt

Połączenie narzędzia

1

Utworzenie klucza API

  1. Zalogować się na app.uat.studio, otworzyć projekt i przejść do Setup.
  2. Na karcie API keys wpisać nazwę, np. Release pipeline, i kliknąć Create API key.
  3. Kliknąć Copy. UAT Studio pokazuje klucz tylko raz. Należy zapisać go jako sekret w używanym narzędziu, np. UAT_STUDIO_KEY.
2

Wywołanie

Klucz należy wysyłać z każdym żądaniem jako Authorization: Bearer, spacja i klucz. Na przykład najnowsze zgłoszenia:

curl -H "Authorization: Bearer $UAT_STUDIO_KEY" "https://app.uat.studio/api/v1/issues?order=created&limit=10"

Nowe zgłoszenie, z JSON w treści żądania:

curl -X POST "https://app.uat.studio/api/v1/issues" \
  -H "Authorization: Bearer $UAT_STUDIO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title": "Save fails on a new quote", "severity": "High", "test_number": 12}'

Odpowiedź jest w formacie JSON. Każde zgłoszenie zawiera klucz (ISS-012), tytuł, opis, wagę, priorytet, status, osobę przypisaną, test i testera, który je znalazł, ticket w Jira lub Azure DevOps oraz link do UAT Studio.

Co można wykorzystać · https://app.uat.studio/api/v1

Adresy API

RodzajŻądanieCo robi
OdczytGET /meProjekt, do którego należy klucz.
OdczytGET /issues?order=createdNajnowsze zgłoszenia. order=updated: ostatnio zmienione. Ponadto since (data i godzina), status i limit (do 100).
OdczytGET /issues/ISS-012Jedno zgłoszenie, z krokiem, którego dotyczy, i jego historią.
TworzeniePOST /issuesNowe zgłoszenie: title i opcjonalnie description, severity, priority, test_number, step_number, assignee, record_url. Bez test_number (i z group dla grupy, która je testuje) zgłoszenie dostaje własny przypadek testowy, gdy otrzyma status Gotowe do ponownego testu.
ZmianaPATCH /issues/ISS-012status, severity, assignee lub record_url, z opcjonalnym comment. Ustawienie status zgłoszenia bez przypadku testowego na Ready for retest tworzy jego przypadek testowy; odpowiedź zawiera wtedy "test_case": "created".
ZmianaPOST /issues/ISS-012/commentscomment w historii.
OdczytGET /casesPrzypadki testowe z krokami i liczbą wyników Pass, Fail itd. Ponadto epic, since i limit (do 1000).
TworzeniePOST /casesPrzypadek testowy: title, steps (lista action, expected i opcjonalnie data) oraz opcjonalnie external_id, epic, group, links, priority (Must, Should lub Could) i risk (High, Medium lub Low). Ponowne wysłanie tego samego external_id aktualizuje przypadek; kroki w tym samym miejscu zachowują swoje wyniki.
TworzeniePOST /testersTester: name i opcjonalnie email oraz group. Zaproszenie wysyła się z Setup.
OdczytGET /signoffsSign-offy, od najnowszych.
OdczytGET /groupsGrupy projektu.
OdczytGET /statusGo lub no-go dla wydania: zob. poniżej.
Dla pipeline'u

Release gate: wdrożenie, gdy biznes udzielił sign-off

GET /status odpowiada polem decision: go, gdy bieżąca runda ma sign-off i nie ma otwartego zgłoszenia Critical, no-go, gdy sign-off został odrzucony lub jest otwarte zgłoszenie Critical, oraz open, gdy decyzja jeszcze nie zapadła. Z ?gate=1 każda odpowiedź inna niż go zwraca HTTP 409, więc krok w pipeline'ie kończy się błędem.

- name: UAT signed off?
  run: curl --fail-with-body -sS -H "Authorization: Bearer ${{ secrets.UAT_STUDIO_KEY }}" "https://app.uat.studio/api/v1/status?gate=1"

Dla pipeline'u warto użyć osobnego klucza, aby można go było unieważnić oddzielnie.

Gdy coś pójdzie nie tak

Odpowiedzi i co zrobić

OdpowiedźCo zrobić
401: klucz API jest nieprawidłowyKlucz został unieważniony lub błędnie wpisany. Należy utworzyć nowy klucz w Setup › API keys.
403: poza planem lub tylko do odczytuPrzestrzeń robocza nie ma modułu Connections lub jej plan się zakończył. W trybie tylko do odczytu odczyt nadal działa.
404: brak zgłoszenia ISS-…Klucz należy do innego projektu lub zgłoszenie zostało scalone.
400: nieprawidłowe poleKomunikat wskazuje, które pole, np. nieistniejącą wagę.
409 z ?gate=1Wydanie nie może jeszcze wyjść: odpowiedź zawiera powody.
Bezpieczeństwo

Jak chroniony jest klucz

  • Klucz daje dostęp do jednego projektu i do niczego więcej w przestrzeni roboczej.
  • UAT Studio przechowuje tylko odcisk klucza, nigdy sam klucz. Setup pokazuje cztery ostatnie znaki i datę ostatniego użycia.
  • Revoke w Setup natychmiast wyłącza klucz.
  • Każde zgłoszenie lub tester utworzony bądź zmieniony za pomocą klucza jest widoczny w historii zgłoszenia i dzienniku audytu, z nazwą klucza.
  • Klucza nigdy nie należy umieszczać w e-mailu, na czacie ani w kodzie; należy przechowywać go jako sekret w używanym narzędziu.