مفت شروع کرو
← سارے گائیڈ

اپنا کوڈ جوڑیں: ایک حقیقی کوڈ بیس میں تبدیلی کریں، چیک کریں، منظور کریں، ڈیپلائے کریں اور واپس لوٹائیں

اپنا کوڈ جوڑیں (/projects/connect/code) ایک aiKit پروجیکٹ کو آپ کے پہلے سے موجود Git ریپوزٹری سے جوڑتا ہے، جیسے GitHub پر Laravel ایپ، اور اس جگہ سے بھی جہاں وہ چلتا ہے: آپ کا اپنا سرور، یا aiKit ہوسٹنگ۔ اس کے بعد آپ پروجیکٹ کے Hosting ٹیب پر سادہ الفاظ میں تبدیلیاں مانگ سکتے ہیں۔ aiKit کا AI کوڈ کی ایک کاپی میں ترمیم کرتا ہے، پروجیکٹ کی چیکس چلاتا ہے، آپ کو diff اور پیش نظارہ دکھاتا ہے، اور صرف اس وقت ڈیپلائے کرتا ہے جب آپ کی ٹیم کا کوئی شخص منظوری دے۔ ہر ڈیپلائے ایک نمبر والی ریلیز ہے جسے ایک کلک میں واپس لوٹایا جا سکتا ہے۔ آپ کی ریپوزٹری ہی اصل ماخذ رہتی ہے، اور آپ کا سرور ویسے ہی ڈیپلائے کرتا رہتا ہے جیسے پہلے کرتا تھا۔

اپنا کوڈ جوڑیں →
1

مرحلہ 1 اور 2: پروجیکٹ کو نام دیں اور ریپوزٹری جوڑیں

پروجیکٹ کو نام دیں، پھر ریپوزٹری کا پتہ (GitHub کے سبز Code بٹن سے) اور وہ برانچ چسپاں کریں جس سے سائٹ چلتی ہے، عموماً main۔ منتخب کریں کہ aiKit اس تک کیسے پہنچے۔ GitHub token: ایک فائن گرینولر ٹوکن جو آپ GitHub پر صرف اس ایک ریپوزٹری کے لیے بنائیں، جس میں Contents کو Read and write پر رکھا گیا ہو؛ یہ https:// پتے کے ساتھ جاتا ہے۔ Deploy key: ایک کی جوڑی جو صرف اس ریپوزٹری کے لیے بنائی گئی ہو، جس کا پبلک حصہ آپ ریپوزٹری کی Settings، Deploy keys میں شامل کریں، Allow write access ٹِک کرکے؛ یہ git@ پتے کے ساتھ جاتی ہے۔ Public repository: صرف پڑھنے کے لیے، اس لیے منظور شدہ تبدیلیاں محفوظ نہیں ہو سکتیں؛ اسے صرف دیکھنے کے لیے استعمال کریں۔

ٹوکن یا کی آپ خود چسپاں کرتے ہیں۔ یہ aiKit کے انجن پر خفیہ شکل میں محفوظ ہوتی ہے اور کسی کو دوبارہ نہیں دکھائی جاتی۔ صفحہ صرف ایک فنگر پرنٹ دکھاتا ہے۔ ریپوزٹری جوڑنے پر کوڈ انجن پر کاپی ہوتا ہے اور پڑھا جاتا ہے کہ یہ کس قسم کا پروجیکٹ ہے (Laravel، JavaScript، یا static فائلیں)۔ ریپوزٹری میں کوئی تبدیلی نہیں ہوتی۔

جو پروجیکٹ آپ کے پاس پہلے سے ہے، وہ بھی جوڑا جا سکتا ہے: اس کے Hosting ٹیب پر مالک کو Connect your code نظر آتا ہے۔

2

مرحلہ 3: یہ کہاں چلتا ہے

آپ کا اپنا سرور: سائٹ بالکل وہیں رہتی ہے جہاں ہے۔ سرور کا پتہ درج کریں، SSH پورٹ (عموماً 22)، وہ لاگ اِن جو aiKit استعمال کرتا ہے (سیٹ اپ مراحل میں aikit نامی بنایا جاتا ہے)، سائٹ کا فولڈر (Laravel Forge سائٹ کے لیے /home/forge/your-site.com)، وہ ڈیپلائے کمانڈ جو سائٹ پہلے سے استعمال کرتی ہے (عموماً bash scripts/deploy.sh)، اور وہ صفحات جو ہر ڈیپلائے کے بعد جواب دینے چاہئیں، ہر لائن میں ایک مکمل پتہ۔ سرور لاگ اِن کی private key چسپاں کریں (سیٹ اپ مرحلہ 1 میں بنائی گئی)۔ محفوظ کریں اور کنکشن چیک کریں۔

پہلی بار جب aiKit سرور تک پہنچتا ہے تو وہ سرور کا فنگر پرنٹ دکھاتا ہے اور پوچھتا ہے Is this your server؟ اسے سیٹ اپ مرحلہ 6 میں سرور کی چھپی ہوئی معلومات سے ملائیں۔ صرف It matches دبائیں، جب دونوں بالکل ایک جیسے ہوں۔ اس کے بعد اس پتے پر کوئی مختلف سرور قبول نہیں ہوگا۔ جب چیک کامیاب ہو جائے تو صفحہ بتاتا ہے کہ سرور اس وقت کون سا ورژن چلا رہا ہے۔

aiKit ہوسٹنگ: aiKit کوڈ خود بناتا اور چلاتا ہے، شروع میں ایک مفت پتے کے ساتھ۔ سائٹس اور فرنٹ اینڈز کے لیے بہترین۔

3

سرور سیٹ اپ (ایک بار، تقریباً 10 منٹ)

Server setup کے تحت صفحہ آٹھ کاپی اور پیسٹ والے مراحل دکھاتا ہے، جو آپ کی قدروں کے ساتھ پہلے سے بھرے ہوئے ہیں؛ ہر ایک کے ساتھ Copy بٹن ہے۔ مرحلے 1 اور 8 آپ کے کمپیوٹر پر چلتے ہیں، مرحلے 2 تا 7 سرور پر sudo والے صارف کے طور پر۔

یہ کیا بناتے ہیں: ایک ایسا لاگ اِن جس کا کوئی پاس ورڈ اور کوئی shell نہیں (مرحلہ 2)۔ اس کی ایک key ایک چھوٹے gate اسکرپٹ تک محدود ہے (مرحلے 3 اور 5) جو بالکل دو کمانڈز قبول کرتا ہے: status (کون سا ورژن چل رہا ہے، اور کیا سائٹ maintenance mode میں ہے) اور ایک مخصوص commit کا deploy۔ Deploy سائٹ کے اپنے صارف کے طور پر ایک sudo قاعدے کے ذریعے چلتا ہے، چیک کرتا ہے کہ GitHub پر برانچ اسی commit کی طرف اشارہ کرتی ہے، پھر آپ کا موجودہ deploy اسکرپٹ بغیر کسی تبدیلی کے چلاتا ہے۔ مرحلہ 4 فولڈر کی اجازتیں ایسی سیٹ کرتا ہے کہ لاگ اِن صرف سائٹ کے فولڈر تک پہنچے: اسی home فولڈر میں دوسری سائٹس تک نہیں، اور کبھی .env تک نہیں۔ مرحلہ 7 ان سب کی جانچ کرتا ہے اور ہر لائن کے لیے بتاتا ہے کہ آپ کو کیا نظر آنا چاہیے، اور مرحلہ 8 aiKit میں اس کی key چسپاں کرنے سے پہلے آپ کے کمپیوٹر سے لاگ اِن کی جانچ کرتا ہے۔

اگر کسی سرور پر دوسرے کاروبار بھی میزبانی کرتے ہیں تو یہی وہ نکتہ ہے: aiKit کا لاگ اِن صرف یہ ایک سائٹ ڈیپلائے کر سکتا ہے، کوئی اور نہیں۔ سائٹ کا کوڈ پھر بھی سائٹ کے صارف کے طور پر چلتا ہے، بالکل ویسے ہی جیسے جب آپ خود GitHub سے ڈیپلائے کرتے ہیں، اسی لیے ہر تبدیلی کا جائزہ لیا جاتا ہے اور خطرناک فائلیں محفوظ رکھی جاتی ہیں۔

4

کوڈ پروجیکٹ کا Hosting ٹیب

اوپر چار ٹائلیں: Repository: ریپوزٹری، برانچ، تازہ ترین commit، اور پروجیکٹ کی قسم۔ Runs on: آپ کا اپنا سرور (لاگ اِن اور آخری بار کب جواب دیا) یا aiKit ہوسٹنگ۔ Live release: وہ ریلیز جو سائٹ چلا رہی ہے، اسے کس نے بنایا، اور کب۔ Pages: آخری چیک میں جواب دینے والے صفحات کی تعداد؛ Check now انہیں دوبارہ دیکھتا ہے، اور جو صفحہ جواب نہ دے اسے نیچے اس کی واپسی کے ساتھ درج کیا جاتا ہے۔

ٹائلوں کے نیچے: Request a change (یا جو تبدیلی اس وقت کھلی ہے)، Releases، Change log، Protected files، اور مالک کے لیے Connection۔

5

تبدیلی کی درخواست کریں، جائزہ لیں، منظور کریں

لکھیں کہ کیا بدلنا چاہیے، صفحے کا نام اور آپ کیا دیکھنا چاہتے ہیں، پھر Make the change دبائیں۔ کارڈ Change #1 میں بدل جاتا ہے جس میں براہ راست پیش رفت ہوتی ہے: تازہ ترین کوڈ حاصل کرنا، وہ فائلیں جنہیں AI پڑھتا اور ترمیم کرتا ہے، پھر ہر چیک۔ AI صرف فائلیں ترمیم کرتا ہے؛ وہ کوئی کمانڈ نہیں چلاتا۔ ہر پروجیکٹ کے لیے ایک وقت میں ایک تبدیلی کھلی رہتی ہے، اور ہر درخواست پروجیکٹ کی AI حد میں شمار ہوتی ہے۔

جب یہ مکمل ہوتا ہے تو آپ کو نظر آتا ہے: درخواست اور کس نے کی؛ AI کے مطابق اس نے کیا کیا؛ چیکس، ہر ایک پر ٹِک یا کراس اور اس کا آؤٹ پٹ؛ چیک شدہ صفحات کے Preview بٹن؛ Added، Changed یا Removed والی فائلیں اور جہاں لاگو ہو وہاں Protected بیج؛ اور diff، فائل بہ فائل، اضافہ شدہ لائنیں سبز اور حذف شدہ لائنیں سرخ۔ یہی diff بالکل وہی ہے جو commit اور ڈیپلائے ہوگا۔

منظور کریں تے ڈیپلائے کریں (مالک تے بلڈرز) تبدیلی نوں اک پیغام نال برانچ وچ کمٹ کردا اے جو دسدا اے کہ کس نے پुچھیا تے کس نے منظور کیتا، اسنوں پش کردا اے (کدی زبردستی نہیں: جے کسے نے اس دوران پش کیتا ہووے تاں تبدیلی نوں پرانی لکھیا جاندا اے تے کچھ وی ڈیپلائے نہیں ہوندا)، اسنوں ڈیپلائے کردا اے، تے صفحات چیک کردا اے۔ ڈسکارڈ کرن نال تصدیق توں بعد تبدیلی ضائع ہو جاندی اے؛ کچھ وی ڈیپلائے نہیں ہویا۔ ریویewer سب کجھ پڑھ سکدے نيں پر دوویں بٹن نہیں دبا سکدے۔

چیک پاس ہون توں بعد دی ترتیب کنیکشن، چیک تے ریویو دے تحت ہے۔ منظوری دا انتظار ڈیفالٹ ہے۔ آٹومیٹک ڈیپلائے تبدیلی نوں اپنے آپ اوس وقت ہی ڈیپلائے کردا اے جدوں ہر چیک پاس ہووے تے کوئی محفوظ فائل نہ بدلی ہووے؛ باقی ہر صورت وچ انتظار جاری رہندا اے۔

6

چیک تے پیش‌نظارہ

لارавel پروجیکٹ لئی چیک ایہہ نیں: ہر بدلی ہوئی PHP فائل پارس ہووے (php -l)؛ ہر Blade view کمپائل ہووے (php artisan view:cache)؛ فرنٹ اینڈ بلڈ ہووے (npm run build)؛ تے ایپ اک ٹیسٹ رن تے چلے جس وچ ریپوزٹری توں بنایا تے بھریا گیا عارضی SQLite ڈیٹابیس ہووے، تے Pages وچ دتے ہر صفحے دا جواب 200 آوے۔ ایہہ سب aiKit دے انجن تے چلدے نیں، کدی تہاڈے سرور تے یا تہاڈے لائیو ڈیٹابیس تے نہیں۔ پروجیکٹ دی .env فائل کدی کاپی یا پڑھی نہیں جاندی؛ ٹیسٹ رن نوں عارضی ترتیبات ملدیاں نیں۔

ناکام چیک Approve نوں بلاک کردا اے۔ صرف مالک Deploy ٹِک کر سکدا اے، چاہے چیک ناکام ہوئے ہون، اوس چیک لئی جو کسے ایسی وجہ توں ناکام ہویا ہووے جو لائیو سائٹ نوں متاثر نہیں کردی۔

پیش‌نظارہ بدلی ہوئی ایپ نوں ٹیسٹ رن توں نويں ٹیب وچ کھولدا اے، ٹیسٹ ڈیٹا تے فارم بند ہوندے نیں۔ آخری استعمال توں 15 منٹ بعد ایہہ بند ہو جاندا اے تے تبدیلی منظور یا ڈسکارڈ ہون تے ختم ہو جاندا اے۔

7

محفوظ فائلاں

AI محفوظ فائلاں نوں ہتھ نہیں لاندا۔ فہرست وچ شروع توں ایہہ نیں: اوہ migrations جو لائیو سائٹ تے پہلاں چل چکے نیں (لائیو ریلیز وچ ہر migration، کیونکہ ہر ڈیپلائے انہاں نوں چلاندا اے)، نويں migrations (اوہ اگلے ڈیپلائے تے لائیو ڈیٹابیس بدل دین گے)، ڈیپلائے سکرپٹ، تے ڈیپنڈنسی فائلاں (composer.json, composer.lock, package.json, package-lock.json)۔ ہر اندراج دسدا اے کہ کیوں۔ مالک فائل یا فولڈر شامل کر سکدا اے (config/** دا مطلب config دے اندر ہر چیز) اک وجہ نال، اندراج ہٹا سکدا اے، تے Save protected files دباندا اے۔

کسے محفوظ فائل نوں جان بوجھ کے بدلن لئی، مالک Allow protected files for this request ٹِک کردا اے۔ فیر تبدیلی دسدی اے کہ اس نے کہڑیاں محفوظ فائلاں چھیڑیاں، تے صرف مالک ہی اسنوں منظور کر سکدا اے، Yes, deploy the changes to protected files ٹِک کر کے۔ جو بلڈر کجھ نہیں ٹِک دا اسنوں محفوظ رسائی نہیں ملدی۔

.env فائلاں، پرائیویٹ کیز تے auth.json اک سخت درجے وچ نیں: کدی پڑھی نہیں جاندیاں، کدی بدلی نہیں جاندیاں، کدی diff دا حصہ نہیں بندیاں، تے کوئی وی اسنوں بند نہیں کر سکدا۔

8

ریلیزز، Deploy، تے Roll back

پہلی واری جدوں aiKit تہاڈے سرور تک پہنچدا اے تاں اوہ ریکارڈ کردا اے کہ سرور کیہ چلا رہیا اے، ریلیز 1 دے طور تے، Before aiKit، تاکہ aiKit دا پہلا ڈیپلائے وی رول بیک ہو سکے۔ اس توں بعد ہر ڈیپلائے اک نمبر والی ریلیز ہوندی اے: Change (اک منظور شدہ تبدیلی؛ اس دا نام اوہ تبدیلی کھولدا اے)، Redeploy، یا Rollback، اپنے کمٹ، کس نے کیتا، اس دا سٹیٹس (Live, Earlier, Live but pages failing, Deploy failed)، کنے صفحات نے جواب دتا، تے ڈیپلائے لاگ۔ aiKit آخری 5 رکھدا اے۔

Deploy the latest code برانچ تے اس وقت جو وی سب توں نويں ہے اوہ ڈیپلائے کردا اے، تصدیق توں بعد، مثلاً جدوں کسے نے سدھا کوئی fix پش کیتا ہووے۔

Roll back to this، کسے پرانی ریلیز تے، اک نويں کمٹ بناندا اے جس دیاں فائلاں بالکل اوہناں نال مل دیاں نیں، اسنوں پش کردا اے، عام طریقے نال ڈیپلائے کردا اے، فیر صفحات چیک کردا اے۔ ہسٹری کدی نہیں بدلی جاندی، اس لئی rollback خود وی رول بیک ہو سکدا اے۔

9

تبدیلیاں دا لاگ

ہر درخواست اپنے نمبر، درخواست، کس نے پچھی، کس نے منظور یا ڈسکارڈ کیتی، کدوں، تے اس دا موجودہ حال دے نال۔ کسے قطار تے دبانے نال اوہ تبدیلی اپنے چیک تے diff نال کھل جاندی اے؛ پتہ ?change=<id> بنداے، تاکہ تسی لنک اپنی ٹیم نال شیئر کر سکو۔

اگلا گائیڈ Printer’s Helper بارے: ایہ کی لئی اے، تے اس دیاں حدود

اس دی تھاں کوئی تیز تے خاص سوال ہے؟ FAQ ویکھو۔