ما تحتاجه
- وحدة Connections في مساحة العمل الخاصة بك: متاحة مع باقات Team وBusiness وPartner وEnterprise، وكإضافة Integrations for one UAT مع باقة Project.
- صلاحيات المسؤول في مشروع UAT Studio.
- أداة يمكنها إرسال طلبات HTTPS: نص برمجي، أو خط CI لديك، أو Postman، أو منصة تكامل.
تستخدم Zapier أو Make؟ إذن لا تحتاج إلى استدعاء واجهة API بنفسك: اطّلع على Zapier وMake.
اربط أداتك
أنشئ مفتاح API
- سجّل الدخول على app.uat.studio، وافتح المشروع وانتقل إلى Setup.
- في البطاقة API keys، اكتب اسمًا مثل Release pipeline وانقر على Create API key.
- انقر على Copy. لا يعرض UAT Studio المفتاح إلا مرة واحدة. خزّنه كسرّ في أداتك، مثل
UAT_STUDIO_KEY.
أجرِ استدعاءً
أرسل المفتاح مع كل طلب على هيئة Authorization: Bearer، ثم مسافة، ثم المفتاح. مثلًا، أحدث المشكلات:
curl -H "Authorization: Bearer $UAT_STUDIO_KEY" "https://app.uat.studio/api/v1/issues?order=created&limit=10"
مشكلة جديدة، مع JSON في نص الطلب:
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}'
الاستجابة بصيغة JSON. تأتي كل مشكلة مع مفتاحها (ISS-012) وعنوانها ووصفها ودرجة خطورتها وأولويتها وحالتها والمكلَّف بها والاختبار والمختبِر الذي اكتشفها والتذكرة في Jira أو Azure DevOps ورابط إلى UAT Studio.
عناوين واجهة API
| النوع | الطلب | ما يفعله |
|---|---|---|
| القراءة | GET /me | المشروع الذي ينتمي إليه المفتاح. |
| القراءة | GET /issues?order=created | أحدث المشكلات. order=updated: آخر ما تغيّر. وكذلك since (تاريخ ووقت) وstatus وlimit (حتى 100). |
| القراءة | GET /issues/ISS-012 | مشكلة واحدة، مع الخطوة التي تخصّها وسجلها. |
| الإنشاء | POST /issues | مشكلة جديدة: title، واختياريًا description وseverity وpriority وtest_number وstep_number وassignee وrecord_url. بدون test_number (ومع group لتحديد المجموعة التي تختبرها)، تحصل المشكلة على حالة اختبار خاصة بها عند تعيينها إلى جاهزة لإعادة الاختبار. |
| التغيير | PATCH /issues/ISS-012 | status أو severity أو assignee أو record_url، مع comment اختياري. تعيين status لمشكلة بلا حالة اختبار إلى Ready for retest ينشئ حالة الاختبار الخاصة بها؛ ويتضمن الرد عندها "test_case": "created". |
| التغيير | POST /issues/ISS-012/comments | comment في السجل. |
| القراءة | GET /cases | حالات الاختبار مع خطواتها وعدد النتائج من نوع Pass وFail وغيرها. وكذلك epic وsince وlimit (حتى 1,000). |
| الإنشاء | POST /cases | حالة اختبار: title، وsteps (قائمة من action وexpected واختياريًا data)، واختياريًا external_id وepic وgroup وlinks وpriority (Must أو Should أو Could) وrisk (High أو Medium أو Low). أرسل external_id نفسه مرة أخرى لتحديثها؛ والخطوات التي تبقى في المكان نفسه تحتفظ بنتائجها. |
| الإنشاء | POST /testers | مختبِر: name، واختياريًا email وgroup. تُرسل الدعوة من Setup. |
| القراءة | GET /signoffs | عمليات الاعتماد، الأحدث أولًا. |
| القراءة | GET /groups | مجموعات المشروع. |
| القراءة | GET /status | go أو no-go لإصدار: انظر أدناه. |
بوابة الإصدار: انشر عندما تعتمد الأعمال
يجيب GET /status بـ decision: go عندما تكون الجولة الحالية معتمدة ولا توجد مشكلة Critical مفتوحة، وno-go عندما يُرفض اعتماد أو تكون هناك مشكلة Critical مفتوحة، وopen عندما لم يُتخذ القرار بعد. ومع ?gate=1 يُجاب عن أي شيء غير go بـ HTTP 409، فتفشل الخطوة في خط الإنتاج لديك.
- 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"
استخدم مفتاحًا خاصًا بخط الإنتاج، لتتمكن من إلغائه بشكل منفصل.
الاستجابات وما يجب فعله
| الاستجابة | ما يجب فعله |
|---|---|
| 401: the API key is not valid | أُلغي المفتاح أو كُتب بشكل خاطئ. أنشئ مفتاحًا جديدًا ضمن Setup › API keys. |
| 403: not part of the plan, or read-only | لا تحتوي مساحة العمل على وحدة Connections، أو انتهت باقتها. ولا تزال القراءة ممكنة عندما تكون للقراءة فقط. |
| 404: there is no issue ISS-… | ينتمي المفتاح إلى مشروع آخر، أو دُمجت المشكلة. |
| 400: a field is not right | تحدّد الرسالة الحقل المعني، مثل درجة خطورة غير موجودة. |
409 مع ?gate=1 | لا يمكن إطلاق الإصدار بعد: تتضمن الاستجابة الأسباب. |
كيف يُحفظ المفتاح بأمان
- يمنح المفتاح الوصول إلى مشروع واحد، ولا شيء آخر في مساحة العمل الخاصة بك.
- لا يخزّن UAT Studio إلا بصمة للمفتاح، ولا يخزّن المفتاح نفسه أبدًا. وتعرض Setup آخر أربعة أحرف وآخر مرة استُخدم فيها.
- يوقف Revoke في Setup المفتاح فورًا.
- تظهر كل مشكلة أو كل مختبِر أُنشئ أو تغيّر عبر مفتاح في سجل المشكلة وفي سجل التدقيق، مع اسم المفتاح.
- لا تضع مفتاحًا أبدًا في رسالة بريد إلكتروني أو محادثة أو في الشيفرة البرمجية؛ خزّنه كسرّ في أداتك.
