UAT Studiopar Salvion
Aide · Connexions

L'API REST d'UAT Studio

Lisez et enregistrez anomalies, commentaires, validations et testeurs depuis vos propres scripts et outils, et laissez votre pipeline demander si une version peut partir. Avec une clé d'API de projet.

Adresse https://app.uat.studio/api/v1Qui un administrateur du projet crée la cléFormat JSONFormules Team, Business, Partner et Enterprise
Avant de commencer

Ce qu'il vous faut

  • Le module Connections dans votre espace de travail : il est inclus dans les formules Team, Business, Partner et Enterprise, et disponible avec la formule Project via le module Integrations for one UAT.
  • Des droits d'administrateur dans le projet UAT Studio.
  • Un outil capable d'envoyer des requêtes HTTPS : un script, votre pipeline CI, Postman ou une plateforme d'intégration.

Vous utilisez Zapier ou Make ? Vous n'avez alors pas besoin d'appeler l'API vous-même : consultez Zapier et Make.

Configuration · une fois par projet

Connectez votre outil

1

Créez une clé d'API

  1. Connectez-vous sur app.uat.studio, ouvrez le projet et allez dans Setup.
  2. Dans la carte API keys, saisissez un nom, par exemple Release pipeline, et cliquez sur Create API key.
  3. Cliquez sur Copy. UAT Studio n'affiche la clé qu'une seule fois. Enregistrez-la comme secret dans votre outil, par exemple UAT_STUDIO_KEY.
2

Faites un appel

Envoyez la clé avec chaque requête sous la forme Authorization: Bearer, un espace, puis la clé. Par exemple, les anomalies les plus récentes :

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

Une nouvelle anomalie, avec du JSON dans le corps :

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 réponse est en JSON. Chaque anomalie est fournie avec sa clé (ISS-012), son titre, sa description, sa gravité, sa priorité, son statut, son responsable, le test et le testeur qui l'a trouvée, le ticket dans Jira ou Azure DevOps et un lien vers UAT Studio.

Ce que vous pouvez utiliser · https://app.uat.studio/api/v1

Les adresses de l'API

TypeRequêteCe qu'il fait
LireGET /meLe projet auquel appartient la clé.
LireGET /issues?order=createdLes anomalies les plus récentes. order=updated : les dernières modifiées. Également since (une date et une heure), status et limit (jusqu'à 100).
LireGET /issues/ISS-012Une anomalie, avec l'étape concernée et son historique.
CréerPOST /issuesUne nouvelle anomalie : title, et éventuellement description, severity, priority, test_number, step_number, assignee, record_url. Sans test_number (et avec group pour le groupe qui la teste), l'anomalie reçoit son propre cas de test dès qu'elle passe à Prête pour un nouveau test.
ModifierPATCH /issues/ISS-012status, severity, assignee ou record_url, avec un comment facultatif. Passer le status d'une anomalie sans cas de test à Ready for retest crée son cas de test ; la réponse contient alors "test_case": "created".
ModifierPOST /issues/ISS-012/commentsUn comment dans l'historique.
LireGET /casesLes cas de test avec leurs étapes et le nombre de résultats Pass, Fail, etc. Également epic, since et limit (jusqu'à 1 000).
CréerPOST /casesUn cas de test : title, steps (une liste de action, expected et éventuellement data), et éventuellement external_id, epic, group, links, priority (Must, Should ou Could) et risk (High, Medium ou Low). Renvoyez le même external_id pour le mettre à jour ; les étapes à la même position conservent leurs résultats.
CréerPOST /testersUn testeur : name, et éventuellement email et group. L'invitation est envoyée depuis Setup.
LireGET /signoffsLes validations, les plus récentes en premier.
LireGET /groupsLes groupes du projet.
LireGET /statusGo ou no-go pour une version : voir ci-dessous.
Pour votre pipeline

Release gate : déployer quand le métier a validé

GET /status répond avec une decision : go quand le cycle en cours est validé et qu'aucune anomalie Critical n'est ouverte, no-go quand une validation est rejetée ou qu'une anomalie Critical est ouverte, et open quand rien n'est encore décidé. Avec ?gate=1, toute réponse autre que go renvoie HTTP 409, et l'étape de votre pipeline échoue.

- 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"

Utilisez une clé dédiée pour le pipeline, pour pouvoir la révoquer séparément.

En cas de problème

Réponses et que faire

RéponseQue faire
401 : the API key is not validLa clé a été révoquée ou mal saisie. Créez une nouvelle clé sous Setup › API keys.
403 : ne fait pas partie de la formule, ou lecture seuleL'espace de travail n'a pas le module Connections, ou sa formule a pris fin. La lecture fonctionne encore en lecture seule.
404 : there is no issue ISS-…La clé appartient à un autre projet, ou l'anomalie a été fusionnée.
400 : un champ n'est pas correctLe message indique quel champ, par exemple une gravité qui n'existe pas.
409 avec ?gate=1La version ne peut pas encore partir : la réponse en donne les raisons.
Sécurité

Comment la clé est protégée

  • Une clé donne accès à un seul projet, rien d'autre dans votre espace de travail.
  • UAT Studio ne stocke qu'une empreinte de la clé, jamais la clé elle-même. Setup affiche les quatre derniers caractères et la date de dernière utilisation.
  • Revoke dans Setup désactive une clé immédiatement.
  • Chaque anomalie ou testeur créé ou modifié via une clé apparaît dans l'historique de l'anomalie et dans le journal d'audit, avec le nom de la clé.
  • Ne mettez jamais une clé dans un email, un chat ou du code ; enregistrez-la comme secret dans votre outil.