Cosa ti serve
- Il modulo Connections nella tua area di lavoro: è incluso nei piani Team, Business, Partner ed Enterprise, e come modulo aggiuntivo Integrazioni per un UAT con il piano Project.
- Diritti di amministratore nel progetto UAT Studio.
- Uno strumento in grado di inviare richieste HTTPS: uno script, la tua pipeline CI, Postman o una piattaforma di integrazione.
Usi Zapier o Make? Allora non devi chiamare l'API tu stesso: vedi Zapier e Make.
Collega il tuo strumento
Crea una chiave API
- Accedi su app.uat.studio, apri il progetto e vai su Setup.
- Nella scheda API keys, digita un nome come Release pipeline e fai clic su Create API key.
- Fai clic su Copy. UAT Studio mostra la chiave una sola volta. Salvala come segreto nel tuo strumento, per esempio
UAT_STUDIO_KEY.
Esegui una chiamata
Invia la chiave con ogni richiesta come Authorization: Bearer, uno spazio e la chiave. Per esempio, le anomalie più recenti:
curl -H "Authorization: Bearer $UAT_STUDIO_KEY" "https://app.uat.studio/api/v1/issues?order=created&limit=10"
Una nuova anomalia, con JSON nel 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}'
La risposta è in JSON. Ogni anomalia arriva con la sua chiave (ISS-012), titolo, descrizione, gravità, priorità, stato, assegnatario, il test e il tester che l'ha trovata, il ticket in Jira o Azure DevOps e un link a UAT Studio.
Gli indirizzi dell'API
| Tipo | Richiesta | Cosa fa |
|---|---|---|
| Lettura | GET /me | Il progetto a cui appartiene la chiave. |
| Lettura | GET /issues?order=created | Le anomalie più recenti. order=updated: le ultime modificate. Inoltre since (una data e un'ora), status e limit (fino a 100). |
| Lettura | GET /issues/ISS-012 | Una singola anomalia, con il passo a cui si riferisce e la sua cronologia. |
| Creazione | POST /issues | Una nuova anomalia: title e, facoltativamente, description, severity, priority, test_number, step_number, assignee, record_url. Senza test_number (e con group per il gruppo che la testa), l'anomalia riceve un proprio caso di test appena passa a Pronta per il retest. |
| Modifica | PATCH /issues/ISS-012 | status, severity, assignee o record_url, con un comment facoltativo. Impostare lo status di un'anomalia senza caso di test su Ready for retest crea il suo caso di test; la risposta contiene allora "test_case": "created". |
| Modifica | POST /issues/ISS-012/comments | Un comment nella cronologia. |
| Lettura | GET /cases | I casi di test con i loro passi e quanti risultati sono Pass, Fail e così via. Inoltre epic, since e limit (fino a 1.000). |
| Creazione | POST /cases | Un caso di test: title, steps (un elenco di action, expected e facoltativamente data) e, facoltativamente, external_id, epic, group, links, priority (Must, Should o Could) e risk (High, Medium o Low). Invia di nuovo lo stesso external_id per aggiornarlo; i passi nella stessa posizione mantengono i loro risultati. |
| Creazione | POST /testers | Un tester: name e, facoltativamente, email e group. L'invito viene inviato da Setup. |
| Lettura | GET /signoffs | I sign-off, dal più recente. |
| Lettura | GET /groups | I gruppi del progetto. |
| Lettura | GET /status | Go o no-go per una release: vedi sotto. |
Release gate: rilascia quando il business ha dato il sign-off
GET /status risponde con una decision: go quando il round corrente ha il sign-off e nessuna anomalia Critical è aperta, no-go quando un sign-off è respinto o un'anomalia Critical è aperta, e open quando non è ancora stato deciso. Con ?gate=1 qualsiasi risposta diversa da go restituisce HTTP 409, così il passo nella tua pipeline fallisce.
- 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"
Usa una chiave dedicata per la pipeline, così puoi revocarla separatamente.
Risposte e cosa fare
| Risposta | Cosa fare |
|---|---|
| 401: the API key is not valid | La chiave è stata revocata o digitata male. Crea una nuova chiave in Setup › API keys. |
| 403: non fa parte del piano, o sola lettura | L'area di lavoro non ha il modulo Connections, oppure il suo piano è terminato. In sola lettura la lettura funziona ancora. |
| 404: there is no issue ISS-… | La chiave appartiene a un altro progetto, oppure l'anomalia è stata unita. |
| 400: un campo non è corretto | Il messaggio indica quale campo, per esempio una gravità che non esiste. |
409 con ?gate=1 | La release non può ancora partire: la risposta contiene i motivi. |
Come viene protetta la chiave
- Una chiave dà accesso a un solo progetto, a nient'altro nella tua area di lavoro.
- UAT Studio conserva solo un'impronta della chiave, mai la chiave stessa. Setup mostra gli ultimi quattro caratteri e quando è stata usata l'ultima volta.
- Revoke in Setup disattiva immediatamente una chiave.
- Ogni anomalia o tester creato o modificato tramite una chiave compare nella cronologia dell'anomalia e nel registro di audit, con il nome della chiave.
- Non mettere mai una chiave in un'email, in una chat o nel codice; salvala come segreto nel tuo strumento.
