# GitHub Actions

> شغّل فحص ريتلا من سير عمل في GitHub عبر ritla-app/scan-action، وأفشِل المهمة حين يجد ملاحظات بالخطورة التي تحددها أو أعلى.

الصفحة: https://ritla.app/ar/docs/integrations/github-actions

يشغّل `ritla-app/scan-action` فحصًا من ريتلا لأحد مشاريعك من داخل سير عمل في GitHub، ويُفشل المهمة حين يجد ملاحظات بالخطورة التي تحددها أو أعلى. إنه الفحص نفسه الذي يشغّله `ritla scan` في [سطر الأوامر](https://ritla.app/ar/docs/cli#scan)، في خطوة واحدة من سير العمل.

## سير العمل

أنشئ مفتاح API للفحص من الإعدادات في لوحة التحكم، واحفظه سرًّا في المستودع باسم `RITLA_API_KEY`. معرّف المشروع هو قيمة UUID في رابط المشروع في لوحة التحكم.

```yaml
name: Arabic QA
on:
  push:
    branches: [main]
jobs:
  ritla:
    runs-on: ubuntu-latest
    timeout-minutes: 40
    steps:
      - uses: ritla-app/scan-action@v1
        with:
          api-key: ${{ secrets.RITLA_API_KEY }}
          project-id: <project UUID from the dashboard URL>
          fail-on: high
```

> [!WARNING]
> مرّر المفتاح سرًّا من أسرار GitHub فقط. المفتاح المكتوب في ملف سير العمل، أو المحفوظ في `vars`، يُطبع في سجل التشغيل قبل أن يتمكن الإجراء من إخفائه.

## المدخلات

| المدخل | القيمة الافتراضية | ما يفعله |
| --- | --- | --- |
| `api-key` | مطلوب | مفتاح API للفحص من ريتلا، من سرّ. |
| `project-id` | مطلوب | قيمة UUID الخاصة بالمشروع من رابطه في لوحة التحكم. يُرفض رابط الموقع. |
| `fail-on` | `critical` | `critical` أو `high` أو `medium` أو `low` أو `never`. درجات متتالية: `high` يُفشل المهمة على الملاحظات الحرجة أيضًا، و`never` يعرض النتيجة دون أن يُفشلها. |
| `timeout-seconds` | `1800` | مدة انتظار النتيجة، بما فيها الوقت في الطابور. انتهاء المهلة يُفشل المهمة. |
| `api-url` | `https://ritla.app` | لاختبار نشر آخر فقط. عبر HTTPS فقط. |

## المخرجات

| المخرج | ما يحمله |
| --- | --- |
| `scan-id` | معرّف الفحص. |
| `score` | النتيجة من 0 إلى 100، للصفحات التي زحف إليها الفحص. |
| `band` | `Excellent` أو `Good` أو `Needs work` أو `Not ready`، أي ممتاز أو جيد أو يحتاج إلى عمل أو غير جاهز. |
| `pages` | عدد الصفحات التي زحف إليها الفحص. |
| `report-url` | التقرير الكامل في لوحة التحكم. |

يعرض ملخص المهمة النتيجة وعدد الصفحات والملاحظات حسب الخطورة ورابط التقرير.

## ما الذي تتوقعه

- يستغرق الفحص دقائق لا ثواني، فهو يعرض كل صفحة بثلاثة مقاسات عرض: سطح المكتب والجهاز اللوحي والجوال. اجعل `timeout-minutes` للمهمة أطول من `timeout-seconds`، كما في سير العمل أعلاه.
- كل تشغيل يستهلك فحصًا واحدًا من حصة خطتك الشهرية، فشغّله عند كل `push` إلى الفرع الرئيسي أو على جدول زمني، لا مع كل `commit`.
- طلبات الدمج القادمة من نسخ مشتقة (forks) لا تحصل على الأسرار، فلا يعمل الإجراء عليها.
- الفحص الذي يفشل أو تنتهي مهلته يُفشل المهمة، ولا يُحتسب نجاحًا أبدًا.
- يعمل على مشغّلات GitHub المستضافة بأنظمة Linux وmacOS وWindows، ويحتاج إلى `bash` و`curl` و`jq`، وهي متوفرة فيها كلها.
