# Claude Code مع GitHub Actions: شغّله في CI بمفتاح API

> كيف تشغّل Claude Code في GitHub Actions بملف مسار عمل واحد، وأين تضع مفتاح API، وكم يكلّف كل تشغيل بمفتاح من 5abeer.

آخر تحديث: 2026-11-01

يشغّل Claude Code GitHub Actions برنامج Claude Code داخل مسارات العمل (workflows) في مستودعك. اذكر `@claude` في بلاغ (issue) أو طلب سحب (pull request)، فيجيب Claude أو يراجع أو يرفع إصلاحًا. وإذا أعطيته موجّهًا بدلًا من ذلك، عمل مع كل طلب سحب أو وفق جدول زمني. ومع مفتاح من 5abeer، تضيف سرًّا واحدًا وسطرًا لعنوان الأساس.

## ما Claude Code GitHub Actions؟

تصفه Anthropic بأنه إجراء (Action) في GitHub يشغّل Claude Code داخل مسارات العمل في مستودعك. وهو الخطوة `anthropics/claude-code-action`، المبنية على Claude Agent SDK. وعلى مشغّل (runner) من GitHub، يقرأ Claude مستودعك، ويشغّل الأوامر التي تسمح بها، ويعلّق على البلاغات وطلبات السحب، ويرفع إيداعات (commits).

ويختار الإجراء وضعه من ملف مسار العمل:

- **الوضع التفاعلي:** إذا لم يكن في الملف المُدخل `prompt`، ينتظر Claude ذكر `@claude` في تعليق أو مراجعة أو في عنوان بلاغ جديد أو نصه، ثم يرد في تعليق يحدّثه وهو يعمل.
- **وضع الأتمتة:** إذا كان المُدخل `prompt` موجودًا، يعمل Claude عند الحدث نفسه، مثل فتح طلب سحب أو موعد في جدول. وتظهر النتائج في سجل تشغيل مسار العمل، إلا إذا طلب منه الموجّه أن ينشرها.

## كيف تضيفه إلى مستودع؟

يحتاج الطريقان كلاهما إلى صلاحية المشرف (admin) على المستودع:

- **الإعداد السريع:** شغّل `/install-github-app` في `claude` داخل المستودع. ويحتاج إلى GitHub CLI بعد تسجيل الدخول بالأمر `gh auth login`، ولا يعمل إلا مع github.com. ويثبّت تطبيق Claude على GitHub، ويحفظ مفتاح API أو رمزًا في سر للمستودع، ويرفع فرعًا فيه مسار العمل، ثم يفتح لك في المتصفح صفحة طلب السحب لتنشئه وتدمجه.
- **الإعداد اليدوي:** ثبّت [تطبيق Claude على GitHub](https://github.com/apps/claude)، وأضف السر بنفسك، وانسخ الملف `examples/claude.yml` من مستودع الإجراء إلى المجلد `.github/workflows/`.

ولا يحتوي مسار العمل الذي يكتبه الإعداد السريع على سطر لعنوان الأساس، فيتصل بواجهة Anthropic. وإذا استخدمت الإعداد السريع، فضع مفتاحك من 5abeer في السر وأضف أسطر `env` الآتية. ويستخدم الإجراء ثلاثًا من صلاحيات التطبيق، كلها للقراءة والكتابة: Contents وIssues وPull requests. لكن تثبيت التطبيق يمنحه كل صلاحياته، ومنها الكتابة في Actions وWorkflows، لأن GitHub لا يسمح بقبول جزء منها. ولتمنح هذه الثلاث فقط، أنشئ تطبيق GitHub خاصًا بك كما في دليل إعداد الإجراء.

## ماذا يحتوي ملف مسار العمل؟

يرد مسار العمل هذا على `@claude` في تعليقات البلاغات وطلبات السحب، بمفتاح من 5abeer:

```yaml
name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
env:
  ANTHROPIC_BASE_URL: https://api.5abeer.ai
jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    timeout-minutes: 30
    permissions:
      contents: write
      pull-requests: write
      issues: write
      id-token: write
      actions: read
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          claude_args: "--model claude-sonnet-5.5 --max-turns 10"
```

وهذه الأسطر المهمة:

- **`ANTHROPIC_BASE_URL`:** يرسل طلبات Claude Code إلى 5abeer. واكتبه دون `/v1`.
- **`anthropic_api_key`:** يقرأ مفتاحك من 5abeer من السر `ANTHROPIC_API_KEY`، فلا يظهر المفتاح في الملف.
- **`claude_args`:** يمرّر وسائط سطر الأوامر إلى Claude Code. فيختار `--model` نموذجًا يقدّمه مفتاحك، ويحدّ `--max-turns` من حجم العمل في التشغيل الواحد.
- **`id-token: write` و`actions: read`:** الأولى مطلوبة لمصادقة الإجراء الافتراضية عبر تطبيق GitHub، والثانية تسمح بأن يقرأ Claude نتائج CI.
- **`if` و`timeout-minutes`:** لا تبدأ المهمة إلا مع التعليقات التي تذكر `@claude`، وتتوقف بعد 30 دقيقة إذا علقت.

احفظ الملف في المستودع، ثم اكتب في طلب سحب التعليق `@claude explain what this pull request changes`.

## كيف تُبقي المفتاح سرًّا؟

وثائق Anthropic واضحة في هذا: لا تضع مفاتيح API أو رموز OAuth في المستودع مباشرة أبدًا. احفظ المفتاح سرًّا (secret) في GitHub:

- **أضف السر:** افتح في المستودع Settings، ثم Secrets and variables، ثم Actions، واختر New repository secret. وسمّه `ANTHROPIC_API_KEY`، وضع مفتاحك من 5abeer قيمةً له.
- **شاركه بين المستودعات:** احفظه مرة واحدة سرًّا من أسرار Actions على مستوى المؤسسة (organization).
- **ألغِه في مكانين:** حذف السر من GitHub لا يُبطل المفتاح نفسه، فاحذف المفتاح أيضًا من [مفاتيحك في 5abeer](https://5abeer.ai/ar/docs/start/keys.md).
- **امنح المهمة ما تحتاج إليه فقط:** اجعل القسم `permissions` في أضيق حد، وراجع تغييرات Claude قبل أن تدمجها.

ويتحقق الإجراء أيضًا ممن شغّله: ففي أحداث البلاغات وطلبات السحب يحتاج المستخدم إلى صلاحية الكتابة، ويُرفض الروبوت (bot) ما لم تذكره في `allowed_bots`. أما عنوان الأساس فليس سرًّا، فيبقى في الملف.

## كيف تشغّله بمفتاح من 5abeer؟

### 1. اشحن رصيدك

ادفع بإحدى [طرق الدفع](https://5abeer.ai/ar/docs/start/payment.md). ويُخصم من هذا الرصيد كل طلب يرسله تشغيل مسار العمل.

### 2. أنشئ مفتاحًا لمسار العمل

أنشئ مفتاحًا لمزوّد Anthropic كما في [إنشاء مفتاح](https://5abeer.ai/ar/docs/start/keys.md#create). وسمّه `github-actions`، وضع عليه حد إنفاق كما في [تحكّم في كل مفتاح](https://5abeer.ai/ar/docs/start/keys.md#controls).

### 3. جرّب المفتاح

أرسل طلبًا واحدًا من جهازك قبل أن تحفظ المفتاح في GitHub. فإذا جاء الرد، فالمفتاح وعنوان الأساس يعملان:

```bash
curl --request POST "https://api.5abeer.ai/v1/messages" \
  --header "x-api-key: $KHABEER_API_KEY" \
  --header "Content-Type: application/json" \
  --header "anthropic-version: 2023-06-01" \
  --data '{"model":"claude-sonnet-5.5","max_tokens":512,"messages":[{"role":"user","content":"اكتب فكرة منتج في سطر واحد"}]}'
```

```python
import os
import requests

response = requests.post(
    "https://api.5abeer.ai/v1/messages",
    headers={
        "x-api-key": os.environ['KHABEER_API_KEY'],
        "Content-Type": "application/json",
        "anthropic-version": "2023-06-01",
    },
    json={
    "model": "claude-sonnet-5.5",
    "max_tokens": 512,
    "messages": [
        {
            "role": "user",
            "content": "اكتب فكرة منتج في سطر واحد"
        }
    ]
},
    stream=False,
    timeout=60,
)

response.raise_for_status()
print(response.json())
```

### 4. أضف السر ومسار العمل

احفظ المفتاح في السر `ANTHROPIC_API_KEY`، وأضف مسار العمل السابق إلى المستودع، ثم اذكر `@claude` في طلب سحب.

واكتب بعد `--model` معرّفًا يقدّمه مفتاحك. وهذه أحدث نماذج Claude في Claude Code، بسعرنا لكل مليون توكن:

| النموذج | المعرّف | الإدخال (سعرنا) | الإخراج (سعرنا) | السياق |
| --- | --- | --- | --- | --- |
| Claude Sonnet 5.5 | `claude-sonnet-5.5` | 0.60 US$ | 3 US$ | 1M |
| Claude Opus 5.5 | `claude-opus-5.5` | 1.20 US$ | 6 US$ | 1M |
| Claude Fable 5.1 | `claude-fable-5.1` | 3 US$ | 15 US$ | — |

ولتشغّل Claude Code بمفتاح من النوع نفسه على جهازك، راجع [إعداد Claude Code](https://5abeer.ai/ar/docs/apps/claude-code.md#manual). وكل النماذج وصيغ API التي يفتحها المفتاح في [صفحة الـ API](https://5abeer.ai/ar/api).

## هل يستطيع أن يراجع كل طلب سحب وحده؟

نعم، في وضع الأتمتة. فمسار العمل هذا يشغّل إضافة `code-review` من Anthropic حين يُفتح طلب سحب، أو يُحدَّث، أو يُعاد فتحه، أو يصبح جاهزًا للمراجعة:

```yaml
name: Code Review
on:
  pull_request:
    types: [opened, synchronize, ready_for_review, reopened]
env:
  ANTHROPIC_BASE_URL: https://api.5abeer.ai
jobs:
  review:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    permissions:
      contents: read
      pull-requests: read
      issues: read
      id-token: write
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          plugin_marketplaces: "https://github.com/anthropics/claude-plugins-official.git"
          plugins: "code-review@claude-plugins-official"
          prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
          claude_args: '--model claude-sonnet-5.5 --allowedTools "mcp__github_inline_comment__create_inline_comment"'
```

ومع `--comment`، ينشر Claude تعليقًا على السطر عند كل مشكلة يجدها، أو تعليقًا واحدًا يلخّص المراجعة إذا لم يجد شيئًا. وأبقِ `--allowedTools`، لأن الإجراء لا يشغّل أداة التعليق على الأسطر إلا إذا ذكرها `claude_args`. ويتخطى Claude المسودات وطلبات السحب المغلقة والبسيطة وتلك التي علّق عليها من قبل.

وللمهمة المجدولة، استخدم `on: schedule` مع سطر cron مثل `"0 9 * * *"` ومُدخل `prompt`. ولا يصل الموجّه النصي إلى shell أو إلى GitHub حتى تمنحه الأدوات بالخيار `--allowedTools`، أو بقاعدة `permissions.allow` في المُدخل `settings`. ولا يشغّل GitHub الجداول إلا من الفرع الافتراضي، ويعطّلها في المستودعات العامة بعد 60 يومًا بلا نشاط.

## كم يكلّف كل تشغيل؟

يستهلك كل تشغيل شيئين: دقائق GitHub Actions، ويحاسبك عليها GitHub بأسعاره، وتوكنات النموذج، وتُخصم من رصيدك في 5abeer. وأغلب التوكنات مدخلات، لأن Claude يقرأ `CLAUDE.md` والتغييرات والملفات المحيطة بها، وكل دورة تُرسل المحادثة حتى لحظتها من جديد.

ومثال ذلك مراجعة طلب سحب متوسط الحجم تقرأ نحو 150,000 توكن على مدى دوراتها وتكتب 8,000، على النموذج الافتراضي:

مثال: 150,000 توكن إدخال و8,000 توكن إخراج على Claude Sonnet 5.5 (`claude-sonnet-5.5`) تكلّف 0.11 US$ بسعرنا مقابل 0.38 US$ بالسعر الرسمي (أقل بنسبة 70%). آخر مراجعة للسعر الرسمي: 19 أكتوبر 2026.

وتقترح وثائق Anthropic هذه الطرق لتقليل التكلفتين:

- **اكتب طلبات محددة.** فالطلب `@claude fix the TypeError in the dashboard component` يحتاج إلى دورات أقل من طلب مبهم.
- **استخدم قوالب البلاغات** ليصل السياق إلى Claude من البداية.
- **اجعل `CLAUDE.md` قصيرًا،** لأن Claude يقرؤه في كل تشغيل.
- **ضع سقفًا لكل تشغيل** بالخيار `--max-turns` في `claude_args` والإعداد `timeout-minutes` في المهمة.
- **قلّل التشغيلات المتوازية** بالإعداد `concurrency` في GitHub.

وراجع إنفاق مفتاح CI في [تتبّع استخدامك](https://5abeer.ai/ar/docs/start/pricing.md#usage). وسعرنا بجوار السعر الرسمي في [صفحة Claude API](https://5abeer.ai/ar/api/claude)، ويقارن دليل [أرخص طريقة لاستخدام Claude Code](https://5abeer.ai/ar/guides/claude-code-cheapest-way) بين المفتاح والباقة.

## الأخطاء الشائعة وحلولها

إذا لم يرد Claude، فتأكد أن تطبيق Claude على GitHub مثبّت في المستودع، وأن مسارات العمل مفعّلة، وأن السر موجود، وأن التعليق يذكر `@claude` كلمةً كاملة، وأن لصاحب التعليق صلاحية الكتابة. وإذا لم يعمل CI على إيداعات Claude، فاحذف أي سطر `github_token: ${{ secrets.GITHUB_TOKEN }}`، لأن GitHub لا يشغّل مسارات العمل على الإيداعات التي تُرفع بهذا الرمز.

وإذا ظهر خطأ مصادقة من Anthropic، لا رمز من رموزنا، فسطر `ANTHROPIC_BASE_URL` غير موجود، وقد ذهب مفتاحك إلى Anthropic. وتظهر أخطاؤنا في سجل التشغيل:

- [`INVALID_API_KEY`](https://5abeer.ai/ar/docs/help/errors.md#INVALID_API_KEY): في السر مفتاح غير صحيح أو محذوف. جرّبه بالطلب السابق.
- [`MODEL_PLATFORM_NOT_ALLOWED`](https://5abeer.ai/ar/docs/help/errors.md#MODEL_PLATFORM_NOT_ALLOWED): المفتاح لمزوّد غير Claude.
- [`MODEL_UNAVAILABLE`](https://5abeer.ai/ar/docs/help/errors.md#MODEL_UNAVAILABLE): النموذج غير متاح الآن. أعد المحاولة، أو اختر معرّفًا آخر يقدّمه مفتاحك. وإذا فشل وكيل فرعي، فاضبط `ANTHROPIC_DEFAULT_HAIKU_MODEL` أو `ANTHROPIC_DEFAULT_SONNET_MODEL` أو `ANTHROPIC_DEFAULT_OPUS_MODEL` في القسم `env` على معرّف يقدّمه مفتاحك، والإجراء يمرّرها إلى Claude Code.
- [`INSUFFICIENT_BALANCE`](https://5abeer.ai/ar/docs/help/errors.md#INSUFFICIENT_BALANCE): الرصيد لا يكفي لهذا التشغيل. اشحن رصيدك ثم أعد تشغيل المهمة.
- [`API_KEY_QUOTA_EXHAUSTED`](https://5abeer.ai/ar/docs/help/errors.md#API_KEY_QUOTA_EXHAUSTED): وصل مفتاح CI إلى حد إنفاقه، وكثيرًا ما يحدث ذلك بعد تشغيلات كثيرة في يوم واحد.

وكل رمز مشروح في [الأخطاء وحلولها](https://5abeer.ai/ar/docs/help/errors.md).

## أسئلة شائعة

### هل أستطيع استخدام باقتي من 5abeer في GitHub Actions؟

استخدم مفتاح API. الباقات مخصّصة للتطبيقات المدعومة؛ لاستخدام النماذج من الكود الخاص بك أنشئ مفتاح API. ويُخصم كل تشغيل حينها من رصيدك، ضمن حد الإنفاق الخاص بالمفتاح. راجع [ما الذي تشغّله كل باقة](https://5abeer.ai/ar/docs/subscriptions/plan-apps.md#claude-code).

### هل يعمل مع GitHub Enterprise Server؟

لا يعمل الإعداد السريع إلا مع github.com. ولخوادم GitHub المستضافة ذاتيًا، اتبع دليل Anthropic [GitHub Enterprise Server](https://code.claude.com/docs/en/github-enterprise-server).

### هل يعمل مع GitLab؟

ليس هذا الإجراء. فالأمر `/install-github-app` يتوقف إذا كان المستودع البعيد (remote) على gitlab.com أو bitbucket.org. ولمسارات GitLab، راجع [Claude Code GitLab CI/CD](https://code.claude.com/docs/en/gitlab-ci-cd).

### كيف أرقّي مسار عمل من @beta؟

غيّر `@beta` إلى `@v1`، واحذف المُدخل `mode`، وغيّر اسم `direct_prompt` إلى `prompt`، وانقل `max_turns` و`model` إلى `claude_args`. ويصبح `custom_instructions` الخيار `--append-system-prompt`.

### لماذا لا تعمل المراجعة على طلبات السحب من النسخ المتفرعة (forks)؟

في المستودعات العامة، يحجب GitHub الأسرار عن التشغيلات التي تبدأها طلبات سحب من نسخ متفرعة، فلا يصل المفتاح إلى الإجراء. وتعمل المراجعة على طلبات السحب من فروع المستودع نفسه.

### كيف أدفع ثمن الـ API؟

تشحن رصيدك في 5abeer بأي طريقة من [طرق الدفع](https://5abeer.ai/ar/docs/start/payment.md#methods)، وتُخصم طلبات مسار العمل من هذا الرصيد.

### هل 5abeer جزء من Anthropic؟

لا. 5abeer خدمة مستقلة لا تتبع Anthropic.

## المصادر

راجعناها في 2026-11-01:

- وثائق Claude Code: [Claude Code GitHub Actions](https://code.claude.com/docs/en/github-actions)
- وثائق Claude Code: [Model configuration](https://code.claude.com/docs/en/model-config)
- GitHub: [claude-code-action, action.yml](https://github.com/anthropics/claude-code-action/blob/main/action.yml)
- وثائق GitHub: [Using secrets in GitHub Actions](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions)

## ابدأ

أنشئ مفتاحًا لنماذج Claude، واحفظه في السر `ANTHROPIC_API_KEY`، ثم أضف مسار العمل السابق إلى المستودع.
