انتقل إلى المحتوى

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

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

آخر تحديث: 1 نوفمبر 2026نسخة Markdown

يشغّل 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، وأضف السر بنفسك، وانسخ الملف examples/claude.yml من مستودع الإجراء إلى المجلد .github/workflows/.

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

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

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

.github/workflows/claude.yml
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.
  • امنح المهمة ما تحتاج إليه فقط: اجعل القسم permissions في أضيق حد، وراجع تغييرات Claude قبل أن تدمجها.

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

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

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

    ادفع بإحدى طرق الدفع. ويُخصم من هذا الرصيد كل طلب يرسله تشغيل مسار العمل.

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

    أنشئ مفتاحًا لمزوّد Anthropic كما في إنشاء مفتاح. وسمّه github-actions، وضع عليه حد إنفاق كما في تحكّم في كل مفتاح.

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

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

    cURL
    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":"اكتب فكرة منتج في سطر واحد"}]}'
    الرد
    {
      "id": "msg_01Xh7",
      "type": "message",
      "role": "assistant",
      "model": "claude-sonnet-5.5",
      "content": [
        {
          "type": "text",
          "text": "مرحبًا! كيف أساعدك اليوم؟"
        }
      ],
      "stop_reason": "end_turn",
      "usage": {
        "input_tokens": 21,
        "output_tokens": 12
      }
    }

    المفتاح يُقرأ من متغير البيئة ⁦KHABEER_API_KEY⁩، فلا يظهر في الكود.

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

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

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

لكل مليون توكن
  • Claude Sonnet 5.5الافتراضيالإدخال‏30 ج.م‏الإخراج‏150 ج.م‏السياق1M
  • Claude Opus 5.5الإدخال‏60 ج.م‏الإخراج‏300 ج.م‏السياق1M
  • Claude Fable 5.1الإدخال‏150 ج.م‏الإخراج‏750 ج.م‏السياق—

السعر الرسمي من صفحة المزوّد، بتاريخ 19 أكتوبر 2026.

كل النماذج والأسعار

ولتشغّل Claude Code بمفتاح من النوع نفسه على جهازك، راجع إعداد Claude Code. وكل النماذج وصيغ API التي يفتحها المفتاح في صفحة الـ API.

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

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

.github/workflows/claude-review.yml
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، على النموذج الافتراضي:

مثال: تكلفة ⁦Claude Sonnet 5.5⁩

150 ألف توكن إدخال و8 آلاف توكن إخراج

سعرنا‏5.70 ج.م‏أقل من السعر الرسمي بنسبة 70%‎
السعر الرسمي‏19.00 ج.م‏

السعر الرسمي من صفحة المزوّد، بتاريخ 19 أكتوبر 2026.

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

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

وراجع إنفاق مفتاح CI في تتبّع استخدامك. وسعرنا بجوار السعر الرسمي في صفحة Claude API، ويقارن دليل أرخص طريقة لاستخدام Claude Code بين المفتاح والباقة.

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

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

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

  • INVALID_API_KEY: في السر مفتاح غير صحيح أو محذوف. جرّبه بالطلب السابق.
  • MODEL_PLATFORM_NOT_ALLOWED: المفتاح لمزوّد غير Claude.
  • MODEL_UNAVAILABLE: النموذج غير متاح الآن. أعد المحاولة، أو اختر معرّفًا آخر يقدّمه مفتاحك. وإذا فشل وكيل فرعي، فاضبط ANTHROPIC_DEFAULT_HAIKU_MODEL أو ANTHROPIC_DEFAULT_SONNET_MODEL أو ANTHROPIC_DEFAULT_OPUS_MODEL في القسم env على معرّف يقدّمه مفتاحك، والإجراء يمرّرها إلى Claude Code.
  • INSUFFICIENT_BALANCE: الرصيد لا يكفي لهذا التشغيل. اشحن رصيدك ثم أعد تشغيل المهمة.
  • API_KEY_QUOTA_EXHAUSTED: وصل مفتاح CI إلى حد إنفاقه، وكثيرًا ما يحدث ذلك بعد تشغيلات كثيرة في يوم واحد.

وكل رمز مشروح في الأخطاء وحلولها.

أسئلة شائعة#

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

استخدم مفتاح API. الباقات مخصّصة للتطبيقات المدعومة؛ لاستخدام النماذج من الكود الخاص بك أنشئ مفتاح API. ويُخصم كل تشغيل حينها من رصيدك، ضمن حد الإنفاق الخاص بالمفتاح. راجع ما الذي تشغّله كل باقة.

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

لا يعمل الإعداد السريع إلا مع github.com. ولخوادم GitHub المستضافة ذاتيًا، اتبع دليل Anthropic GitHub Enterprise Server.

هل يعمل مع GitLab؟#

ليس هذا الإجراء. فالأمر /install-github-app يتوقف إذا كان المستودع البعيد (remote) على gitlab.com أو bitbucket.org. ولمسارات GitLab، راجع Claude Code GitLab CI/CD.

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

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

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

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

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

تشحن رصيدك في 5abeer بأي طريقة من طرق الدفع، وتُخصم طلبات مسار العمل من هذا الرصيد.

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

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

المصادر#

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

ابدأ#

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