تنتهي من بناء ميزة في Claude Code. يُظهر الفرق +2,148 −14، والفرع هو main، وكل ما تبقى هو الضغط على "Create PR" — وعندها يظهر شريط أحمر أعلى الشاشة:

⚠ طلب غير صالح
تعذّر التحقق من حالة طلب السحب.
قد تكون هذه المعلومات قديمة.

الجزء المزعج هو أن زر "Create PR" لا يزال موجودًا، ومع ذلك لم يعد بإمكانك معرفة حالة طلب السحب الحالية — أهو غير منشأ بعد، أم مفتوح بالفعل، أم تم دمجه. فجأةً، ودون أي علاقة بتغييرات الكود لديك، يصبح فقط "كيف يبدو هذا الفرع على GitHub الآن" غير مرئي.

إليك الخلاصة الأساسية: في معظم الحالات هذا ليس خطأً قاتلاً. عادةً ما يكون Claude Code قد تواصل مع GitHub لجلب أحدث حالة لطلب السحب، وفشلت تلك المحاولة الواحدة فقط. والسبب غالبًا إما أن الاتصال/المصادقة مع GitHub (عادةً عبر واجهة gh CLI) لم تمر للحظة، أو أن هذا الفرع ببساطة ليس له طلب سحب بعد / لم يُدفَع إلى المستودع البعيد. يستعرض هذا المقال الآلية، والأسباب الجذرية الخمسة، وترتيب التشخيص، وورقة أوامر مختصرة، وكيفية منع تكراره.

CLAUDE CODE · PR STATUS

"تعذّر التحقق من حالة طلب السحب" بنظرة سريعة

— طلب Claude Code من GitHub معرفة الحالة؛ فشل ذلك الطلب الواحد

العَرَض
حالة طلب السحب غير معروفة
منشأ أم لا — يصبح العرض قديمًا
السبب
تعذّر الوصول إلى GitHub
انتهت صلاحية gh auth أو لا دفع/طلب سحب بعد
الخطوة الأولى
gh auth status
تحقق مما إذا كانت المصادقة فعّالة

الجوهر: ليست "مشكلة في الكود" بل "مشكلة اتصال/مصادقة مع GitHub."
يمكن لعملك (توليد الكود، التزامات الكوميت) أن يستمر عادةً. لا حاجة للتسرع في جلسة جديدة.

1. ما الذي يقوله هذا الخطأ فعليًا

إذا قرأناه بوضوح، فهو يقول: "لم أتمكن من التحقق من الحالة التي عليها طلب السحب لهذا الفرع على GitHub الآن، لذا قد تكون المعلومات المعروضة على الشاشة قديمة."

المهم هو فهم أن أمرين لم يحدثا. أولاً، الكود والفرق الخاصان بك ليسا تالفين — تغييرات +2,148 −14 لا تزال موجودة تمامًا في شجرة عملك. ثانيًا، إنه لا يقول "فشل إنشاء طلب السحب." هذا تحذير في جانب القراءة: "كمقدمة لإنشاء طلب السحب، حاولت قراءة حالة طلب السحب الحالية (غير منشأ / مفتوح / مدموج / مغلق) وفشلت."

بعبارة أخرى، هذا الشريط هو رسالة من نوع "تعذّرت المزامنة"، وهو عادةً مؤقت. رأيي: عندما ترى هذا الشريط الأحمر، أول ما ينبغي الاشتباه به هو ليس "كودك" بل "حالة الاتصال مع GitHub" — وتحديدًا هذه الثلاثة: هل انتهت صلاحية المصادقة، وهل الشبكة قابلة للوصول، وهل هذا الفرع أصلاً في حالة يمكن أن يوجد فيها طلب سحب (مدفوع إلى المستودع البعيد).

2. الخلفية: كيف يرى Claude Code طلب السحب الخاص بك

لماذا قد يحدث "تعذّر التحقق" من الأساس؟ لأن Claude Code لا يحتفظ بحالة طلب السحب داخل نفسه. حقيقة طلب السحب موجودة فقط على خوادم GitHub. في كل مرة، يقوم Claude Code بالاستعلام من GitHub بسؤال "ما حالة طلب السحب لهذا الفرع؟" ويعكس الإجابة في الشارة والزر على الشاشة.

لهذا الاستعلام، يستخدم Claude Code في سطر الأوامر واجهة GitHub CLI الرسمية (أمر gh) كمسار أساسي. تحتفظ gh برمز مصادقة GitHub نفسه (في ~/.config/gh/hosts.yml وما شابه) وتنفّذ استدعاءات الـ API نيابة عنك. من منظور Claude Code، لا يمكن جلب حالة طلب السحب بشكل صحيح إلا عندما تتوافق كل هذه الشروط معًا: "gh مُصادَق عليها، والشبكة قابلة للوصول، والفرع الصحيح موجود على المستودع البعيد."

ملاحظة من أجل الدقة

التفاصيل الداخلية لكيفية تحديث الواجهة الرسومية لـ Claude Code لشارة طلب السحب (فترة الاستطلاع، استراتيجية التخزين المؤقت، منطق عرض الأخطاء) غير موثّقة رسميًا. ما هو مؤكد أن "جلب حالة طلب السحب يتطلب اتصالاً صالحًا بـ GitHub"، وفي الممارسة يتلخص استكشاف الأخطاء في مصادقة GitHub والاتصال به. تستند الحلول في هذا المقال إلى ذلك الجزء المؤكد.

3. لماذا يحدث — 5 أسباب جذرية

يمكن تجميع المسارات التي تؤدي إلى "تعذّر التحقق من حالة طلب السحب" في 5 تقريبًا. وكلما كان السبب أعلى، كان أكثر شيوعًا.

5 ROOT CAUSES

5 أسباب تمنع جلب حالة طلب السحب

السبب 1 · انتهاء صلاحية المصادقة (الأكثر شيوعًا)
رمز gh منتهي الصلاحية أو مُلغى أو غير مُسجَّل الدخول. شائع بعد إعادة التشغيل أو تحديث نظام التشغيل. يخبرك gh auth status فورًا.
السبب 2 · لا طلب سحب بعد / لم يُدفَع
الفرع ليس على المستودع البعيد، أو أنك لم تنشئ طلب سحب. لا توجد "حالة" لجلبها. يأتي git push أولاً.
السبب 3 · الشبكة / البروكسي
بروكسي مؤسسي، أو VPN، أو حالة عدم اتصال، أو DNS يعني أن api.github.com غير قابل للوصول. إذا فشلت عمليات Git الأخرى أيضًا، فهذا هو السبب على الأرجح.
السبب 4 · نطاقات صلاحيات غير كافية
أنت مُسجَّل الدخول، لكن الرمز يفتقر إلى نطاقي repo / read:org. شائع مع المستودعات الخاصة أو المؤسسات. امنحها عبر gh auth refresh.
السبب 5 · فشل عابر (غير ضار غالبًا)
حد معدل الـ API لدى GitHub، أو خلل شبكي لمرة واحدة، أو تخزين مؤقت قديم للعرض. إذا كانت المصادقة والشبكة كلاهما فعّالين، فإنه عادةً يزول بعد انتظار قصير وإعادة محاولة.

الأسباب 1–4 هي مشكلات تهيئة/حالة (أصلحها ولن تتكرر).
السبب 5 عابر. البدء بالسبب 1 (المصادقة) والسبب 2 (وجود الدفع/طلب السحب) هو أسرع مسار.

4. أصلحه الآن — ترتيب التشخيص

عندما يظهر الشريط الأحمر، اعمل عبر 4 خطوات من الأعلى إلى الأسفل. تُحلّ معظم الحالات عند الخطوة 1 أو الخطوة 2.

4 STEPS

ترتيب التشخيص

الخطوة 1 · تحقق من المصادقة
شغّل gh auth status. إذا لم تشاهد "Logged in"، فقد انتهت صلاحية المصادقة. أعد تسجيل الدخول عبر gh auth login. هذا يحل غالبية الحالات.
الخطوة 2 · الدفع ووجود طلب السحب
ادفع إلى المستودع البعيد بـ git push -u origin <branch>، ثم تأكد من وجود طلب سحب بـ gh pr status. إن لم يوجد، فأنشئ واحدًا فحسب.
الخطوة 3 · الاتصال والنطاقات
أوقف الـ VPN/البروكسي أو جرّب شبكة أخرى. إذا كانت النطاقات مفقودة، امنحها بـ gh auth refresh -s repo,read:org.
الخطوة 4 · انتظر / أعد المحاولة
إذا كانت 1–3 سليمة، فهو عابر. انتظر لحظة وأعد المحاولة، أو حدّث Claude Code إلى أحدث إصدار وأعد التشغيل.

القاعدة: "اشتبه في اتصال GitHub قبل أن تشتبه في الكود."
أمر gh auth status في الخطوة 1 هو أسرع خطوة منفردة نحو السبب الحقيقي.

أمر أخير: حتى عندما يظهر هذا الشريط، فإن التزاماتك المحلية وشجرة عملك آمنة. لا حاجة للتسرع نحو git reset أو التخلص من جلستك. أصلح الاتصال أولاً، ثم اضغط "Create PR" مجددًا — هذا ينجح في معظم الحالات. وإذا ظللت غير قادر على إنشائه، شغّل gh pr create من سطر الأوامر يدويًا لإنشاء طلب السحب دون المرور بواجهة Claude Code.

5. ورقة الأوامر المختصرة

إليك الأوامر المستخدمة للتشخيص. شغّلها من الأعلى إلى الأسفل وستضيّق طبيعيًا أيُّ سبب ينطبق.

الغرضالأمرما الذي تنظر إليه
هل المصادقة فعّالة؟gh auth statusهل يظهر "Logged in to github.com" / نطاقات الرمز
إعادة تسجيل الدخولgh auth loginتفاعلي؛ مصادقة المتصفح هي الأكثر موثوقية
إضافة نطاقاتgh auth refresh -s repo,read:orgكثيرًا ما تكون مفقودة لمستودعات خاصة/مؤسسية
تحقق من تهيئة المستودع البعيدgit remote -vهل يشير origin إلى مستودع GitHub الصحيح
ادفع الفرعgit push -u origin <branch>يلبي الشرط المسبق لوجود طلب السحب
وجود طلب السحب / حالتهgh pr statusهل يوجد طلب سحب للفرع الحالي / مفتوح أم مدموج
إنشاء طلب سحب عبر CLIgh pr createالإنشاء مباشرة دون الواجهة الرسومية (حل بديل)
فحص الاتصالgh api rate_limitالاستجابة تعني أن الاتصال جيد / تحقق من المتبقي لحدود المعدل

إذا أعاد gh auth status "Logged in" واستجاب gh pr status بشكل طبيعي، فإن الأرجح أنها مجرد حالة عرض قديم في Claude Code. حدّث إلى أحدث إصدار وأعد التشغيل، وستتزامن الشارة من جديد بشكل صحيح.

6. هل يمكنك تجاهل "قد تكون قديمة"؟

عبارة "قد تكون هذه المعلومات قديمة" تعني أشياء مختلفة في مواقف مختلفة. تريد أن تميّز متى يمكن تجاهلها عن متى تحتاج إلى إجراء.

✅ آمن للتجاهل (غير ضار)

  • gh auth status سليم
  • عمليات Git/الدفع الأخرى تمر بشكل جيد
  • يزول بعد انتظار قصير / إعادة محاولة
  • شارة طلب السحب تبدو قديمة للحظة فقط

→ مجرد تأخر مزامنة / تخزين مؤقت. تابع العمل.

⚠ يحتاج إلى إجراء (حقيقي)

  • gh auth status يقول "not logged in"
  • كل من الدفع والسحب يفشل
  • لا يزول مهما كررت المحاولة
  • الضغط على "Create PR" لا يتقدم

مشكلة حقيقية في المصادقة/الاتصال. أصلحها بالخطوات 1–3.

الاختبار الحاسم هو، مرة أخرى، أمر gh auth status واحد. إذا كان أخضر (Logged in) ومرت عمليات Git الأخرى، فيمكنك ترك الشريط وشأنه. على العكس، إذا كانت المصادقة معطّلة، فإن العمليات التي تتجاوز طلبات السحب (الدفع، جلب المراجعات، إلخ) ستفشل عاجلاً أم آجلاً أيضًا، لذا من الحكمة إصلاحها في الحال.

7. قائمة منع التكرار

قائمة عملية كي لا يظل الشريط الأحمر نفسه يزعجك.

1) اكتسب عادة التحقق من gh auth status من حين لآخر (يمكن أن تنتهي صلاحية الرموز في غضون أسابيع). 2) إذا كنت تستخدم مستودعات خاصة/مؤسسية، امنح النطاقات المطلوبة منذ البداية بـ gh auth refresh -s repo,read:org. 3) عندما تبدأ العمل على فرع جديد، نفّذ git push -u origin <branch> مبكرًا (إبقاؤه في حالة يمكن أن يوجد فيها طلب سحب يثبّت العرض). 4) على شبكة مؤسسية (بروكسي/VPN)، تحقق من الاتصال مرة واحدة بـ gh api rate_limit. 5) أبقِ Claude Code محدّثًا — تحسينات العرض والمزامنة تصل باستمرار. 6) إذا ظلت الواجهة الرسومية غير مستقرة، حوّل إنشاء طلب السحب إلى gh pr create (الأكثر موثوقية).

الخلاصة

رسالة Claude Code "تعذّر التحقق من حالة طلب السحب. قد تكون هذه المعلومات قديمة" تشير إلى ليس عيبًا في الكود، بل أن الاستعلام من GitHub (عادةً عبر gh CLI) لم يمر للحظة. عادةً ما يكون تأخر مزامنة غير ضار، لكن قد يختبئ خلفه مصادقة منتهية الصلاحية، أو فرع غير مدفوع / طلب سحب مفقود، أو مشكلة شبكية، أو نطاقات صلاحيات غير كافية.

أسرع طريقة للتشخيص: 1) تحقق من المصادقة بـ gh auth status، 2) تحقق من الدفع ووجود طلب السحب بـ git push + gh pr status، 3) افحص الاتصال والنطاقات، 4) إذا كان كل شيء سليمًا، انتظر وأعد المحاولة بالإضافة إلى التحديث لأحدث إصدار. وعندما تعجز فعلاً عن إنشائه من الواجهة الرسومية، أنشئه مباشرة بـ gh pr create. "اشتبه في اتصال GitHub قبل أن تشتبه في الكود" — تذكّر ذلك، ولن يخيفك هذا الشريط الأحمر بعد الآن.

قراءات ذات صلة: ما هو GitHub Copilot، ما هو Claude Agent SDK، خطأ 400 في كتل التفكير لدى Claude Code، وسير عمل النشر بـ Claude Code / Cursor.

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

س. إذا ظهر هذا الخطأ، هل سيُفقد كودي أو فرقي؟
ج. لا. هذا تحذير في جانب الاتصال بأنه "تعذّرت قراءة حالة طلب السحب"؛ وليس له أي تأثير على التزاماتك المحلية أو شجرة عملك أو الفرق (مثل +2,148 −14). لا حاجة للتسرع نحو git reset أو التخلص من جلستك.

س. ما الذي ينبغي أن أتحقق منه أولاً؟
ج. gh auth status. هذا الأمر الواحد يخبرك ما إذا كانت مصادقة GitHub لديك فعّالة. إذا رأيت "Logged in"، فالمصادقة سليمة — وهو عادةً عابر، لذا انتظر وأعد المحاولة. وإن لم تكن كذلك، أعد تسجيل الدخول بـ gh auth login وتُحلّ معظم الحالات.

س. هل يمكنني ترك "قد تكون هذه المعلومات قديمة" وشأنها؟
ج. إذا كانت كل من المصادقة والشبكة فعّالة، نعم. غالبًا ما يكون مجرد تأخر مزامنة / تخزين مؤقت ويزول بعد انتظار قصير أو إعادة محاولة. لكن إذا قال gh auth status "not logged in"، أو حتى فشل الدفع، فتلك مشكلة حقيقية — أصلحها.

س. زر "Create PR" لا يمرّ مهما حاولت.
ج. شغّل gh pr create مباشرة من الطرفية، متجاوزًا الواجهة الرسومية؛ فهذا يتيح لك إنشاء طلب السحب نفسه. وإذا ظل يفشل، تحقق مما إذا كان الفرع على المستودع البعيد بـ git push -u origin <branch>، وما إذا كان origin يشير إلى المستودع الصحيح بـ git remote -v.

س. يحدث كثيرًا على شبكة شركتي. لماذا؟
ج. على الأرجح أن بروكسي أو VPN أو جدار حماية يحجب حركة المرور إلى api.github.com. تحقق مما إذا كان gh api rate_limit يستجيب؛ وإن لم يفعل، فأنت بحاجة إلى سماح من جانب الشبكة (إضافة نطاقات GitHub إلى قائمة السماح). كما يساعد إيقاف الـ VPN مؤقتًا لعزل المشكلة.