Wat je nodig hebt
- De module Connections in je werkruimte: die zit in de pakketten Team, Business, Partner en Enterprise, en als add-on Integrations for one UAT bij het pakket Project.
- Beheerdersrechten in het project in UAT Studio.
- Een tool die HTTPS-verzoeken kan sturen: een script, je CI-pipeline, Postman of een integratieplatform.
Gebruik je Zapier of Make? Dan hoef je de API niet zelf aan te roepen: zie Zapier en Make.
Je tool koppelen
Een API-sleutel maken
- Log in op app.uat.studio, open het project en ga naar Setup.
- Typ in de kaart API keys een naam zoals Release pipeline en klik op Create API key.
- Klik op Copy. UAT Studio toont de sleutel maar één keer. Bewaar hem als geheim in je tool, bijvoorbeeld
UAT_STUDIO_KEY.
Een aanroep doen
Stuur de sleutel bij elk verzoek mee als Authorization: Bearer, een spatie en de sleutel. Bijvoorbeeld de nieuwste issues:
curl -H "Authorization: Bearer $UAT_STUDIO_KEY" "https://app.uat.studio/api/v1/issues?order=created&limit=10"
Een nieuw issue, met JSON in de body:
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}'
Het antwoord is JSON. Elk issue komt met zijn sleutel (ISS-012), titel, beschrijving, ernst, prioriteit, status, toegewezene, de test en de tester die het vond, het ticket in Jira of Azure DevOps en een link naar UAT Studio.
De adressen van de API
| Soort | Verzoek | Wat het doet |
|---|---|---|
| Lezen | GET /me | Het project waar de sleutel bij hoort. |
| Lezen | GET /issues?order=created | De nieuwste issues. order=updated: de laatst gewijzigde. Ook since (een datum en tijd), status en limit (tot 100). |
| Lezen | GET /issues/ISS-012 | Eén issue, met de stap waar het over gaat en de geschiedenis. |
| Aanmaken | POST /issues | Een nieuw issue: title, en eventueel description, severity, priority, test_number, step_number, assignee, record_url. Zonder test_number (en met group voor de groep die het test) krijgt het issue een eigen testcase zodra het op Klaar voor hertest staat. |
| Wijzigen | PATCH /issues/ISS-012 | status, severity, assignee of record_url, met eventueel een comment. Zet je de status van een issue zonder testcase op Ready for retest, dan wordt de testcase gemaakt; het antwoord bevat dan "test_case": "created". |
| Wijzigen | POST /issues/ISS-012/comments | Een comment in de historie. |
| Lezen | GET /cases | De testcases met hun stappen en hoeveel resultaten Pass, Fail enzovoort zijn. Ook epic, since en limit (tot 1.000). |
| Aanmaken | POST /cases | Een testcase: title, steps (een lijst met action, expected en eventueel data), en eventueel external_id, epic, group, links, priority (Must, Should of Could) en risk (High, Medium of Low). Stuur dezelfde external_id nog eens om hem bij te werken; stappen op dezelfde plek houden hun resultaten. |
| Aanmaken | POST /testers | Een tester: name, en eventueel email en group. De uitnodiging stuur je vanuit Setup. |
| Lezen | GET /signoffs | De sign-offs, nieuwste eerst. |
| Lezen | GET /groups | De groepen van het project. |
| Lezen | GET /status | Go of no-go voor een release: zie hieronder. |
Release gate: uitrollen als de business heeft getekend
GET /status antwoordt met een decision: go als de huidige ronde is afgetekend en er geen Critical issue open staat, no-go als een sign-off is afgewezen of een Critical issue open staat, en open als het nog niet besloten is. Met ?gate=1 antwoordt alles behalve go met HTTP 409, zodat de stap in je pipeline faalt.
- 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"
Gebruik voor de pipeline een eigen sleutel, zodat je die apart kunt intrekken.
Antwoorden en wat je doet
| Antwoord | Wat je doet |
|---|---|
| 401: de API-sleutel is niet geldig | De sleutel is ingetrokken of verkeerd overgenomen. Maak een nieuwe sleutel onder Setup › API keys. |
| 403: geen onderdeel van het pakket, of alleen-lezen | De workspace heeft de module Connections niet, of het pakket is afgelopen. Lezen werkt dan nog wel. |
| 404: er is geen issue ISS-… | De sleutel hoort bij een ander project, of het issue is samengevoegd. |
| 400: een veld klopt niet | De melding zegt welk veld, bijvoorbeeld een ernst die niet bestaat. |
409 met ?gate=1 | De release mag nog niet: in het antwoord staan de redenen. |
Hoe de sleutel veilig blijft
- Een sleutel geeft toegang tot één project, verder niets in je werkruimte.
- UAT Studio bewaart alleen een vingerafdruk van de sleutel, nooit de sleutel zelf. Setup toont de laatste vier tekens en wanneer hij voor het laatst is gebruikt.
- Revoke op Setup schakelt een sleutel direct uit.
- Elk issue of elke tester die via een sleutel is aangemaakt of gewijzigd, staat in de historie van het issue en in het auditlog, met de naam van de sleutel.
- Zet een sleutel nooit in een e-mail, een chat of code; bewaar hem als geheim in je tool.
