مواد پر جائیں

GitHub PR سے Control Center سے بات کریں

یہ گائیڈ دکھاتی ہے کہ GitHub سے باہر نکلے بغیر Control Center کے ساتھ کیسے کام کریں: PR کے صفحے سے AI ریویو طلب کریں، کسی تبصرے میں بوٹ سے سوال پوچھیں، اور گفتگو اُس کے ریویو تھریڈز میں جاری رکھیں۔

بوٹ آپ کے سرور کا اپنا GitHub App ہے — وہی جو پہلے سے لوگوں کو سائن اِن کراتا ہے اور پس منظر کا کام چلاتا ہے۔ کوئی نئی چیز رجسٹر نہیں ہوتی، اور کوئی چیز انٹرنیٹ سے قابلِ رسائی ہونے کی ضرورت نہیں: سرور پولنگ کے ذریعے دریافت کرتا ہے کہ GitHub پر کیا کہا گیا، اس لیے NAT کے پیچھے پڑا لیپ ٹاپ بالکل ویسے ہی برتاؤ کرتا ہے جیسے کوئی عوامی ڈیپلائمنٹ۔

  • سرور کا GitHub App رجسٹر اور انسٹال ہو، جس کے پاس Pull requests: read and write (تبصروں، تھریڈز اور ری ایکشنز کے لیے) اور Issues: read (تبصرہ تلاش کے لیے) ہو۔ دونوں پہلے سے اُس گائیڈ کی اجازت فہرست میں شامل ہیں
  • ریپوزٹری Control Center کے کسی ورک اسپیس سے جڑی ہو
  • نہ کوئی ویب ہک URL، نہ ٹنل، نہ کال بیک — نیٹ ورک کی طرف کنفیگر کرنے کو کچھ نہیں

بوٹ کا لاگ اِن <appslug>[bot] ہوتا ہے، جہاں appslug وہ نام ہے جو آپ نے ایپ کو رجسٹر کرتے وقت دیا تھا۔

  1. ترتیبات → سرور → سنگل سائن آن پر جائیں اور فراہم کنندہ ایپس کارڈ تک اسکرول کریں
  2. GitHub بلاک کھولیں اور ٹیسٹ پر کلک کریں
  3. بوٹ لاگ اِن بھرتے ہی اسے کاپی کریں۔ اگر وہ اب بھی خالی اشارہ دکھائے تو لاگ اِن ہمیشہ <appslug>[bot] ہوتا ہے — وہی ٹائپ کریں، یا مختصر @appslug

GitHub اپنے @ آٹو کمپلیٹ میں ایپ اکاؤنٹس پیش نہیں کرتا، اس لیے لاگ اِن ٹائپ کرنا پڑتا ہے — اسی لیے سیٹنگز کارڈ اسے ایک کلک میں کاپی کے قابل بناتا ہے۔ [bot] لاحقہ اختیاری ہے: @myapp اور @myapp[bot] دونوں بوٹ کو مخاطب کرتے ہیں۔

دو طریقے، اور دونوں وہی پہلے سے فراہم کردہ pr_review پائپ لائن شروع کرتے ہیں جو AI سے پوچھیں بٹن شروع کرتا ہے:

  • PR پر ai-review لیبل شامل کریں۔ GitHub کے پاس بوٹ کو بطور ریویوور تفویض کرنے کے لیے اس سے زیادہ قریب کوئی چیز نہیں — ایپ اکاؤنٹس GitHub کے اصل requested-reviewer سلاٹ پر نہیں بیٹھ سکتے۔ ری ایکٹ کرنے کے لیے کوئی تبصرہ نہیں ہوتا، اس لیے GitHub پر کچھ پوسٹ نہیں ہوتا؛ ریویو Control Center میں شروع ہوتا ہے
  • PR کی گفتگو پر @myapp review تبصرہ کریں (یا صرف @myapp)۔ بوٹ 👀 کے ساتھ ری ایکٹ کرتا ہے، پھر جب ریویو شروع ہو جائے (یا کوئی پہلے ہی چل رہا ہو) تو جواب دیتا ہے

ریویوورز PR کے ریویو اسپیس میں کام کرتے ہیں؛ نتائج پڑھنے اور شائع کرنے کا طور وہی ہے جو AI سے چلنے والا ریویو استعمال کریں میں ہے۔ GitHub پر واپس شائع کرنا پھر بھی وہ فیصلہ ہے جو آپ Control Center میں کرتے ہیں — GitHub سے ریویو شروع کرنا خود بخود GitHub پر کچھ شائع نہیں کرتا۔

لیبل فی PR ایک بار چلتا ہے: اسے شامل کرنا ہی طلب ہے، اور ہٹا کر دوبارہ لگانے پر وہ دوبارہ تیار نہیں ہوتا۔ ریویو دوبارہ چلانے کے لیے — مثلاً کسی پش کے بعد — بوٹ کا ذکر کریں۔

PR کی گفتگو پر تبصرہ کریں:

@myapp why does the flaky test in runner_test.dart fail on CI but not locally?

ترتیب وار کیا ہوتا ہے:

  1. بوٹ 👀 کے ساتھ ری ایکٹ کرتا ہے تاکہ آپ کو معلوم ہو کہ تبصرہ دیکھ لیا گیا
  2. سوال PR کے ریویو اسپیس میں آپ کی حیثیت سے پوسٹ ہوتا ہے — وہی انتساب جیسے آپ نے اسے Control Center میں ٹائپ کیا ہو
  3. کوئی ایجنٹ اسپیس میں جواب دیتا ہے، اور جواب PR پر ایک تبصرے کے طور پر واپس پوسٹ ہوتا ہے جو آپ کا @-ذکر کرتا ہے

جس PR پر ابھی کوئی ریویو نہ چلا ہو، اُس پر سوال ورک اسپیس کے CEO ایجنٹ کو جگاتا ہے؛ ایک بار ریویو چل جانے کے بعد آخری بات کرنے والا ایجنٹ جواب دیتا ہے، چنانچہ پیروی والے سوالات اُسی کے پاس پہنچتے ہیں جس کے پاس سیاق و سباق ہو۔

کسی ایسے اِن لائن ریویو تھریڈ کے اندر جواب دیں جس کا بوٹ حصہ ہو — کوئی ڈف تبصرہ جو اُس نے چھوڑا ہو، یا کوئی جواب جو اُس نے اُسی تھریڈ میں پوسٹ کیا ہو۔ کسی ذکر کی ضرورت نہیں؛ تھریڈ ہی مخاطب کرنے کا ذریعہ ہے:

> @myapp the retry loop looks O(n²) to me
what would the complexity be with the bounded queue instead?

کئی باریوں والی گفتگو بھی ویسے ہی چلتی ہے: ہر جواب اُسی گفتگو میں ایک اور سوال ہوتا ہے، ریویو اسپیس بطور سیاق، اور جواب اُسی تھریڈ میں واپس آتا ہے۔

PR کی گفتگو کی ٹائم لائن پر کوئی پیروی ایک نیا ٹاپ لیول تبصرہ ہوتا ہے، اس لیے اُسے پھر بھی @-ذکر کی ضرورت پڑتی ہے۔

GitHub کا تبصرہ اپنے ساتھ لاگ اِن سے زیادہ کچھ نہیں لاتا، اس لیے بوٹ کچھ کرنے سے پہلے مصنف کو حل کرتا ہے:

  • آپ کا GitHub اکاؤنٹ Control Center میں آپ کی شناخت سے جڑا ہونا چاہیے — GitHub سے سائن اِن کریں، یا کوئی ٹوکن پیسٹ کریں، ترتیبات → ورک اسپیس → پروفائل اور شناخت → کوڈ ہوسٹنگ سے
  • آپ کو اُس ورک اسپیس کا لکھنے کے کردار والا رکن ہونا چاہیے (member، admin، یا owner) جو ریپوزٹری سے جڑا ہو

کسی اور کو ایک شائستہ جواب ملتا ہے جو بتاتا ہے کہ کیا کمی ہے — نامعلوم لاگ اِن (نہ جڑا ہوا، یا جڑا ہوا مگر یہاں کا رکن نہ ہونا) اور صرف پڑھنے والا کردار، یہ دو صورتیں ہیں — اور اُن کے الفاظ کبھی ورک اسپیس میں داخل نہیں ہوتے۔ ai-review لیبل پر یہ پابندی نہیں: اُس کا کوئی مصنف نہیں، اس لیے وہ ریویو اُس ورک اسپیس میں شروع کرتا ہے جو پہلے سے ریپو سے جڑا ہو۔

چیز رویہ
تصدیق تقریباً ایک منٹ میں تبصرے پر 👀 — اسکین کا وقفہ۔ ai-review لیبل کے پاس ری ایکٹ کرنے کو کوئی تبصرہ نہیں ہوتا
جوابات بوٹ (ایپ) کے طور پر پوسٹ ہوتے ہیں، اُسی لین میں جہاں سوال پوچھا گیا تھا
اسپیس میں انتساب سوال آپ کا ہے؛ ایجنٹ آپ کی طرف سے چلتا ہے، اسپیس کی خود مختاری کی سیٹنگز کے تحت
ریویوز نتائج ریویو اسپیس میں پہنچتے ہیں؛ GitHub پر شائع کرنا دستی ہے

تقریباً ایک منٹ کی تاخیر اُس سودے کا مول ہے کہ کسی اِن باؤنڈ نیٹ ورک رسائی کی ضرورت بالکل نہیں۔ اسکین کے بارے میں کچھ بھی فوری نہیں، اور سرور آف لائن رہنے کے دوران کچھ ضائع نہیں ہوتا — ڈاؤن ٹائم میں آنے والا تبصرہ اگلے اسکین میں پکڑ لیا جاتا ہے۔

بوٹ کا ذکر کرنے والے تبصرے پر کچھ نہیں ہوتا۔

  • کیا ایپ اُس اکاؤنٹ پر انسٹال ہے جو ریپو کا مالک ہے، اور کیا ریپو کسی ورک اسپیس سے جڑا ہے؟ غیر جڑا ریپو کچھ ریکارڈ ہونے سے پہلے ہی چھوڑ دیا جاتا ہے، اس لیے بعد میں جڑنے پر پھر بھی سب پہنچ جاتا ہے
  • کیا آپ کا GitHub اکاؤنٹ جڑا ہوا ہے، اور کیا آپ لکھنے کے کردار والے رکن ہیں؟ PR پر بوٹ کے انکار والے جواب کو دیکھیں — وہ بتا دیتا ہے کہ کون سی بات ہے
  • پھر بھی کچھ نہیں؟ کچھ ناکام ہونے پر سرور لاگ اسکین اور PR کا نام لیتا ہے؛ pr_conversation: (پولر) اور github_pr_conversation: (برج) تلاش کریں

لیبل ریویو شروع نہیں کرتا۔

یہ فی PR ایک بار چلتا ہے۔ اگر ریویو پہلے ہی چل چکا ہو، یا لیبل اُس وقت لگایا گیا ہو جب سرور نے PR کو کبھی دیکھا ہی نہ ہو (پہلا اسکین بیک لاگ کو طوفان کی طرح چلانے کے بجائے خاموشی سے ریکارڈ کر لیتا ہے)، تو اس کے بجائے بوٹ کا ذکر کریں — @myapp review ہمیشہ ایک شروع کرتا ہے، اِلا یہ کہ کوئی ریویو پہلے ہی جاری ہو۔

بوٹ کا جواب GitHub پر کبھی نہیں پہنچا۔

جواب خود کبھی ضائع نہیں ہوتا — وہ Control Center میں PR کے ریویو اسپیس میں موجود ہوتا ہے۔ پوسٹ کرنے کی ناکامی (GitHub ڈاؤن، اجازتیں بدل جانا) لاگ ہو جاتی ہے اور جواب دوبارہ نہیں بھیجا جاتا؛ اگر اہم ہو تو تھریڈ میں دوبارہ پوچھیں۔