เชื่อมต่อโค้ด (/projects/connect/code) เชื่อมโปรเจกต์ aiKit กับที่เก็บ Git ที่คุณมีอยู่แล้ว เช่น แอป Laravel บน GitHub และกับที่ที่โปรเจกต์ทำงาน ได้แก่ เซิร์ฟเวอร์ของคุณเองหรือโฮสติ้ง aiKit หลังจากนั้น คุณขอให้แก้ไขด้วยภาษาธรรมดาในแท็บโฮสติ้งของโปรเจกต์ AI ของ aiKit จะแก้ไขสำเนาของโค้ด รันการตรวจสอบของโปรเจกต์ แสดงความแตกต่างและตัวอย่างให้คุณดู และเผยแพร่เฉพาะเมื่อมีคนในทีมอนุมัติ การเผยแพร่ทุกครั้งเป็นรุ่นที่มีหมายเลข และคุณย้อนกลับได้ด้วยคลิกเดียว ที่เก็บของคุณยังเป็นแหล่งข้อมูลหลัก และเซิร์ฟเวอร์ของคุณยังเผยแพร่แบบเดิมเช่นที่เคยทำ
เชื่อมต่อโค้ดของคุณ →ตั้งชื่อโปรเจกต์ จากนั้นวางที่อยู่ของที่เก็บโค้ด (จากปุ่ม Code สีเขียวของ GitHub) และสาขาที่เว็บไซต์ทำงานอยู่ ซึ่งมักเป็น main เลือกวิธีที่ aiKit จะเข้าถึงที่เก็บ โทเค็น GitHub: โทเค็นแบบละเอียดที่คุณสร้างบน GitHub สำหรับที่เก็บนี้เพียงแห่งเดียว โดยตั้ง Contents เป็น Read and write ใช้กับที่อยู่ที่ขึ้นต้นด้วย https:// คีย์เพื่อการปรับใช้: คู่คีย์ที่สร้างขึ้นสำหรับที่เก็บนี้เท่านั้น โดยนำส่วนสาธารณะไปเพิ่มใต้ Settings, Deploy keys ของที่เก็บ และติ๊กเลือก Allow write access ใช้กับที่อยู่ที่ขึ้นต้นด้วย git@ ที่เก็บสาธารณะ: อ่านได้อย่างเดียว การแก้ไขที่อนุมัติจึงบันทึกไม่ได้ ใช้เพื่อดูเท่านั้น
คุณวางโทเค็นหรือคีย์ด้วยตนเอง ระบบจะเก็บไว้แบบเข้ารหัสในเอนจินของ aiKit และจะไม่แสดงอีกเลย ให้ใครก็ตามเห็น หน้านี้แสดงเพียงลายนิ้วมือเท่านั้น การเชื่อมต่อที่เก็บจะคัดลอกโค้ดไปยังเอนจินและอ่านว่าโปรเจกต์เป็นประเภทใด (Laravel, JavaScript หรือไฟล์สแตติก) ไม่มีการเปลี่ยนแปลงใดๆ ในที่เก็บ
โปรเจกต์ที่คุณมีอยู่แล้วก็เชื่อมต่อได้เช่นกัน: ในแท็บโฮสติ้ง เจ้าของจะเห็น เชื่อมต่อโค้ดของคุณ
เซิร์ฟเวอร์ของคุณเอง: เว็บไซต์จะยังอยู่ที่เดิมทุกประการ กรอกที่อยู่เซิร์ฟเวอร์ พอร์ต SSH (มักเป็น 22) ชื่อผู้ใช้ที่ aiKit ใช้ (ขั้นตอนการตั้งค่าจะสร้างชื่อ aikit) โฟลเดอร์ของเว็บไซต์ (สำหรับเว็บไซต์ Laravel Forge คือ /home/forge/your-site.com) คำสั่งปรับใช้ที่เว็บไซต์ใช้อยู่ (มักเป็น bash scripts/deploy.sh) และหน้าที่ต้องตอบสนองหลังการปรับใช้ทุกครั้ง โดยหนึ่งที่อยู่เต็มต่อหนึ่งบรรทัด วางคีย์ส่วนตัวของบัญชีเซิร์ฟเวอร์ (สร้างในขั้นตอนการตั้งค่าที่ 1) บันทึกแล้วตรวจสอบการเชื่อมต่อ
ครั้งแรกที่ aiKit เข้าถึงเซิร์ฟเวอร์ ระบบจะแสดงลายนิ้วมือของเซิร์ฟเวอร์และถามว่า นี่คือเซิร์ฟเวอร์ของคุณใช่ไหม ให้เทียบกับสิ่งที่เซิร์ฟเวอร์แสดงในขั้นตอนการตั้งค่าที่ 6 กดเฉพาะ ตรงกัน เชื่อมต่อ เมื่อทั้งสองตรงกันทุกประการ หลังจากนั้น หากมีเซิร์ฟเวอร์อื่นที่ที่อยู่เดียวกัน จะถูกปฏิเสธ เมื่อการตรวจสอบผ่าน หน้าจอจะแสดงเวอร์ชันที่เซิร์ฟเวอร์ใช้งานอยู่ในขณะนี้
โฮสติ้ง aiKit: aiKit สร้างและให้บริการโค้ดเอง พร้อมที่อยู่ฟรีสำหรับเริ่มต้น เหมาะที่สุดสำหรับเว็บไซต์และส่วนหน้าเว็บ
ภายใต้ การตั้งค่าเซิร์ฟเวอร์ หน้าจอแสดงขั้นตอนคัดลอกและวางแปดขั้นตอน กรอกค่าของคุณไว้แล้ว แต่ละขั้นตอนมีปุ่มคัดลอก ขั้นตอนที่ 1 และ 8 ทำงานบนคอมพิวเตอร์ของคุณ ขั้นตอนที่ 2 ถึง 7 ทำงานบนเซิร์ฟเวอร์โดยใช้ผู้ใช้ที่มีสิทธิ์ sudo
สิ่งที่ขั้นตอนเหล่านี้สร้างขึ้น: บัญชีที่ไม่มีรหัสผ่านและไม่มี shell (ขั้นตอนที่ 2) คีย์เดียวของบัญชีถูกล็อกไว้กับสคริปต์ประตูขนาดเล็ก (ขั้นตอนที่ 3 และ 5) ซึ่งรับคำสั่งเพียงสองอย่าง คือ status (ดูว่ากำลังทำงานเวอร์ชันใด และเว็บไซต์อยู่ในโหมดปิดปรับปรุงหรือไม่) และ deploy ของคอมมิตที่ระบุแน่นอน การ deploy ทำงานในฐานะผู้ใช้ของเว็บไซต์ผ่านกฎ sudo เพียงข้อเดียว ตรวจสอบว่าสาขาบน GitHub ชี้ไปยังคอมมิตนั้นจริง แล้วจึงรันสคริปต์ปรับใช้เดิมของคุณโดยไม่เปลี่ยนแปลง ขั้นตอนที่ 4 ตั้งสิทธิ์โฟลเดอร์ เพื่อให้บัญชีเข้าถึงได้เฉพาะโฟลเดอร์ของเว็บไซต์ ไม่ถึงเว็บไซต์อื่นในโฟลเดอร์บ้านเดียวกัน และไม่ถึงไฟล์ .env เลย ขั้นตอนที่ 7 ทดสอบทุกส่วนและบอกว่าแต่ละบรรทัดควรเห็นอะไร ขั้นตอนที่ 8 ทดสอบบัญชีจากคอมพิวเตอร์ของคุณ ก่อนที่คุณจะวางคีย์ลงใน aiKit
หากเซิร์ฟเวอร์มีธุรกิจอื่นใช้งานด้วย นี่คือจุดสำคัญ บัญชี aiKit สามารถปรับใช้เว็บไซต์นี้ได้เพียงเว็บเดียวเท่านั้น ไม่สามารถทำอย่างอื่นได้ โค้ดของเว็บไซต์ยังคงทำงานภายใต้ผู้ใช้ของเว็บไซต์ เช่นเดียวกับเมื่อคุณปรับใช้จาก GitHub ด้วยตนเอง นี่คือเหตุผลที่ทุกการแก้ไขต้องได้รับการตรวจสอบ และไฟล์ที่มีความเสี่ยงได้รับการป้องกัน
การ์ดสี่ใบด้านบน ที่เก็บ: ที่เก็บ สาขา คอมมิตล่าสุด และประเภทโปรเจกต์ ทำงานบน: เซิร์ฟเวอร์ของคุณเอง (พร้อมบัญชีและเวลาที่ตอบสนองล่าสุด) หรือโฮสติ้ง aiKit การเผยแพร่ปัจจุบัน: รุ่นที่เว็บไซต์ใช้งานอยู่ ใครเป็นผู้สร้าง และเมื่อไร หน้า: จำนวนหน้าที่ต้องตอบสนองซึ่งตอบสนองในการตรวจสอบล่าสุด กดตรวจสอบตอนนี้เพื่อเข้าไปดูอีกครั้ง หน้าใดที่ไม่ตอบสนองจะแสดงอยู่ด้านล่างพร้อมผลลัพธ์ที่ได้รับ
ด้านล่างการ์ด: ขอการเปลี่ยนแปลง (หรือการเปลี่ยนแปลงที่เปิดอยู่ในขณะนี้) รุ่น บันทึกการเปลี่ยนแปลง ไฟล์ที่ป้องกัน และสำหรับเจ้าของ การเชื่อมต่อ
พิมพ์สิ่งที่ควรเปลี่ยน โดยระบุหน้าและสิ่งที่ต้องการเห็น แล้วกด ทำการเปลี่ยนแปลง การ์ดจะเปลี่ยนเป็น การเปลี่ยนแปลง #1 พร้อมความคืบหน้าแบบสด ได้แก่ การดึงโค้ดล่าสุด ไฟล์ที่ AI อ่านและแก้ไข แล้วแต่ละการตรวจสอบ AI แก้ไขเฉพาะไฟล์เท่านั้น ไม่รันคำสั่งใดๆ ในแต่ละโปรเจกต์ เปิดการเปลี่ยนแปลงได้ทีละหนึ่งรายการ และคำขอแต่ละครั้งนับรวมในขีดจำกัด AI ของโปรเจกต์
เมื่อเสร็จสิ้น คุณจะเห็น: คำขอและผู้ที่ขอ สิ่งที่ AI บอกว่าได้ทำไป การตรวจสอบแต่ละรายการพร้อมเครื่องหมายถูกหรือกากบาทและผลลัพธ์ ปุ่มดูตัวอย่างสำหรับหน้าที่ผ่านการตรวจสอบ ไฟล์ที่มีป้าย Added, Changed หรือ Removed และป้าย Protected หากเกี่ยวข้อง และความแตกต่าง ทีละไฟล์ โดยบรรทัดที่เพิ่มเป็นสีเขียวและบรรทัดที่ลบเป็นสีแดง ความแตกต่างนี้คือสิ่งที่จะถูกคอมมิตและเผยแพร่จริงทุกประการ
อนุมัติและเผยแพร่ (สำหรับเจ้าของและผู้สร้าง) จะบันทึกการเปลี่ยนแปลงลงในสาขา พร้อมข้อความที่ระบุว่าใครขอและใครอนุมัติ แล้วส่งขึ้นระบบ (จะไม่มีการบังคับส่ง: ถ้ามีคนส่งเข้ามาระหว่างนั้น การเปลี่ยนแปลงจะถูกทำเครื่องหมายว่าล้าสมัย และจะไม่มีการเผยแพร่) จากนั้นเผยแพร่และตรวจสอบหน้าเว็บ ยกเลิกจะลบการเปลี่ยนแปลงหลังจากยืนยันแล้ว ไม่มีอะไรถูกเผยแพร่ ผู้ตรวจทานอ่านได้ทุกอย่างแต่กดปุ่มทั้งสองไม่ได้
หลังจากการตรวจสอบผ่านแล้ว เป็นการตั้งค่าในส่วนการเชื่อมต่อ การตรวจสอบ และการรีวิว ค่าเริ่มต้นคือรอการอนุมัติ เผยแพร่อัตโนมัติจะเผยแพร่การเปลี่ยนแปลงเองก็ต่อเมื่อการตรวจสอบทุกรายการผ่านและไม่มีไฟล์ที่ป้องกันถูกแก้ไข กรณีอื่นยังคงต้องรอ
สำหรับโปรเจกต์ Laravel การตรวจสอบประกอบด้วย: ไฟล์ PHP ที่เปลี่ยนแปลงทุกไฟล์ต้องวิเคราะห์ไวยากรณ์ได้ (php -l); ทุกมุมมอง Blade ต้องคอมไพล์ได้ (php artisan view:cache); ส่วนหน้าต้องสร้างสำเร็จ (npm run build); และแอปเริ่มทำงานในการทดสอบด้วยฐานข้อมูล SQLite ชั่วคราว ที่ย้ายและใส่ข้อมูลตั้งต้นจากที่เก็บโค้ด โดยทุกหน้าที่ระบุไว้ในหน้าเว็บที่ต้องทดสอบต้องตอบกลับด้วย 200 การตรวจสอบทำงานบนระบบของ aiKit ไม่เคยทำงานบนเซิร์ฟเวอร์ของคุณหรือฐานข้อมูลจริงของคุณ ไฟล์ .env ของโปรเจกต์จะไม่ถูกคัดลอกหรืออ่าน และการทดสอบจะใช้การตั้งค่าชั่วคราวแยกต่างหาก
หากการตรวจสอบรายการใดไม่ผ่าน จะไม่สามารถกดอนุมัติได้ มีเพียงเจ้าของเท่านั้นที่สามารถเลือกเผยแพร่แม้การตรวจสอบจะไม่ผ่าน ได้ในกรณีที่การตรวจสอบนั้นล้มเหลวจากสาเหตุที่ไม่กระทบเว็บไซต์จริง
การดูตัวอย่างจะเปิดแอปที่เปลี่ยนแปลงจากการทดสอบในแท็บใหม่ โดยใช้ข้อมูลทดสอบและปิดแบบฟอร์มไว้ จะหยุดทำงานหลังจากไม่ได้ใช้งาน 15 นาที และจะสิ้นสุดเมื่อการเปลี่ยนแปลงถูกอนุมัติหรือยกเลิก
AI จะไม่แตะต้องไฟล์ที่ได้รับการป้องกัน รายการเริ่มต้นประกอบด้วย: ไฟล์ย้ายฐานข้อมูลที่รันไปแล้วบนเว็บไซต์จริง (ทุกไฟล์ย้ายฐานข้อมูลในรุ่นที่ใช้งานอยู่ เพราะทุกการเผยแพร่จะรันไฟล์เหล่านี้) ไฟล์ย้ายฐานข้อมูลใหม่ (จะเปลี่ยนฐานข้อมูลจริงในการเผยแพร่ครั้งถัดไป) สคริปต์การเผยแพร่ และไฟล์ที่ระบุการพึ่งพา (composer.json, composer.lock, package.json, package-lock.json) แต่ละรายการจะบอกเหตุผลไว้ เจ้าของสามารถเพิ่มไฟล์หรือโฟลเดอร์ (config/** หมายถึงทุกอย่างภายใต้ config) พร้อมเหตุผล ลบรายการ และกดบันทึกไฟล์ที่ป้องกัน
หากต้องการแก้ไขไฟล์ที่ได้รับการป้องกันโดยตั้งใจ เจ้าของต้องเลือกอนุญาตไฟล์ที่ได้รับการป้องกันสำหรับคำขอนี้ การเปลี่ยนแปลงจะแสดงว่าแตะต้องไฟล์ที่ได้รับการป้องกันใดบ้าง และมีเพียงเจ้าของเท่านั้นที่อนุมัติได้ หลังจากเลือกยืนยันให้เผยแพร่การเปลี่ยนแปลงกับไฟล์ที่ได้รับการป้องกัน ผู้สร้างที่ไม่เลือกอะไรจะไม่สามารถเข้าถึงไฟล์ที่ได้รับการป้องกันได้
ไฟล์ .env, คีย์ส่วนตัว และ auth.json อยู่ในระดับที่เข้มงวดกว่า: จะไม่ถูกอ่าน ไม่ถูกเปลี่ยนแปลง ไม่รวมอยู่ในความแตกต่างใด ๆ และไม่มีใครปิดการตั้งค่านี้ได้
ครั้งแรกที่ aiKit เชื่อมต่อกับเซิร์ฟเวอร์ของคุณ ระบบจะบันทึกสิ่งที่เซิร์ฟเวอร์รันอยู่เป็นรุ่นที่ 1 ก่อน aiKit ดังนั้นแม้แต่การเผยแพร่ครั้งแรกของ aiKit ก็สามารถย้อนกลับได้ หลังจากนั้น ทุกการเผยแพร่จะเป็นรุ่นที่มีหมายเลข ได้แก่ การเปลี่ยนแปลง (การเปลี่ยนแปลงที่อนุมัติแล้ว ชื่อของรายการจะเปิดการเปลี่ยนแปลงนั้น) เผยแพร่ซ้ำ หรือย้อนกลับ พร้อมคอมมิต ผู้ที่ดำเนินการ สถานะ (ใช้งานอยู่ รุ่นก่อนหน้า ใช้งานอยู่แต่หน้าเว็บมีปัญหา เผยแพร่ล้มเหลว) จำนวนหน้าที่ตอบกลับ และบันทึกการเผยแพร่ aiKit เก็บไว้ 5 รุ่นล่าสุด
เผยแพร่โค้ดล่าสุด จะเผยแพร่สิ่งที่ใหม่ที่สุดบนสาขาในขณะนี้ หลังจากยืนยันแล้ว เช่น เมื่อมีคนส่งการแก้ไขเข้ามาโดยตรง
ย้อนกลับไปยังรุ่นนี้ สำหรับรุ่นก่อนหน้า จะสร้างคอมมิตใหม่ที่มีไฟล์ตรงกับรุ่นนั้นทุกประการ ส่งขึ้นระบบ และเผยแพร่ตามขั้นตอนปกติ จากนั้นตรวจสอบหน้าเว็บ ประวัติจะไม่ถูกเขียนทับ ดังนั้นการย้อนกลับเองก็สามารถย้อนกลับได้
ทุกคำขอพร้อมหมายเลข คำขอ ใครเป็นผู้ขอ ใครเป็นผู้อนุมัติหรือยกเลิก เมื่อใด และสถานะปัจจุบัน กดแถวเพื่อเปิดการเปลี่ยนแปลงนั้นพร้อมการตรวจสอบและความแตกต่าง ที่อยู่เว็บจะมี ?change=<id> เพื่อให้คุณแชร์ลิงก์กับทีมได้
มีคำถามเฉพาะเจาะจงที่อยากได้คำตอบเร็วกว่านี้ไหม ดูคำถามที่พบบ่อย