Claude Code مع GitHub Actions: شغّله في CI بمفتاح API
كيف تشغّل Claude Code في GitHub Actions بملف مسار عمل واحد، وأين تضع مفتاح API، وكم يكلّف كل تشغيل بمفتاح من 5abeer.
يشغّل 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:
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؟#
أنشئ مفتاحًا لمسار العمل#
أنشئ مفتاحًا لمزوّد Anthropic كما في إنشاء مفتاح. وسمّه
github-actions، وضع عليه حد إنفاق كما في تحكّم في كل مفتاح.جرّب المفتاح#
أرسل طلبًا واحدًا من جهازك قبل أن تحفظ المفتاح في GitHub. فإذا جاء الرد، فالمفتاح وعنوان الأساس يعملان:
cURLcurl --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، فلا يظهر في الكود.
أضف السر ومسار العمل#
احفظ المفتاح في السر
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 حين يُفتح طلب سحب، أو يُحدَّث، أو يُعاد فتحه، أو يصبح جاهزًا للمراجعة:
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 ألف توكن إدخال و8 آلاف توكن إخراج
السعر الرسمي من صفحة المزوّد، بتاريخ 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 Code: Claude Code GitHub Actions
- وثائق Claude Code: Model configuration
- GitHub: claude-code-action, action.yml
- وثائق GitHub: Using secrets in GitHub Actions
ابدأ#
أنشئ مفتاحًا لنماذج Claude، واحفظه في السر ANTHROPIC_API_KEY، ثم أضف مسار العمل السابق إلى المستودع.
أدلة ذات صلة
- الخطافات (hooks) في Claude Code: فحص وتنسيق وتنبيهات تلقائيةما الخطافات (hooks) في Claude Code، وعلى أي أحداث تعمل، وأمثلة جاهزة للنسخ، وكيف تشغّلها بأمان بمفتاح API.
- الوكلاء الفرعيون في Claude Code: طريقة إعدادهم وتكلفتهمكيف يعمل الوكلاء الفرعيون في Claude Code، وكيف تكتب وكيلًا في مجلد .claude/agents، وأي نموذج يعمل عليه كل وكيل، وكم يكلّف بمفتاح API.
- اشتراك Claude Code في مصر: أرخص طريقة، باقة أم مفتاح API؟كم يكلّف Claude Code باشتراك Claude وبمفتاح API، وما متوسط التكلفة الذي تنشره Anthropic، وأي الطريقين أرخص للاستخدام الخفيف والثقيل.
جاهز للبدء؟
اختر باقة تشغّل التطبيقات الرسمية، أو أنشئ مفتاح API تستخدمه من الكود الخاص بك.