ข้ามไปยังเนื้อหา

บันทึกโปรเจกต์ไว้ใน GitHub

สรุปสั้น ๆเชื่อมต่อ GitHub ได้ในคลิกเดียวด้วย GitHub App ของ MonstarX (ไม่ต้องใช้โทเค็น คุณเลือกรีโพซิทอรีเอง) จากนั้นกด GitHub ที่แถบด้านบนของโปรเจกต์เพื่อสร้างรีโพซิทอรีใหม่หรือเชื่อมกับรีโพซิทอรีที่มีอยู่ MonstarX จะพุชทั้งโปรเจกต์ แล้วคอมมิตทุกการเปลี่ยนแปลงที่ทำ และดึงสิ่งที่คุณคอมมิตบน GitHub กลับมา แอปที่นำเข้ามาจะซิงค์กับบรานช์ monstarx บรานช์ของคุณเองจึงไม่ขยับเลย

GitHub คือที่ที่นักพัฒนาเก็บโค้ด พร้อมประวัติของทุกการเปลี่ยนแปลง เชื่อมโปรเจกต์ MonstarX กับรีโพซิทอรี GitHub (โฟลเดอร์ของโปรเจกต์บน GitHub) แล้วทั้งสองฝั่งจะตรงกันเสมอทั้งสองทาง สิ่งที่ MonstarX สร้างจะพุชขึ้นไปเป็นคอมมิต และสิ่งที่คุณหรือนักพัฒนาคอมมิตไว้ที่นั่นก็จะกลับเข้ามาใน MonstarX

มีประโยชน์เมื่อนักพัฒนาอยากแก้โค้ดในเครื่องมือแก้ไขของตัวเอง เมื่อบริษัทเก็บโค้ดทั้งหมดไว้ใน GitHub หรือเมื่อคุณปรับใช้แอปจาก GitHub เช่น Railway ที่ปรับใช้จาก GitHub

เชื่อมต่อ GitHub ครั้งเดียวสำหรับทั้งบัญชี MonstarX ได้จาก การตั้งค่าการเชื่อมต่อบริการ หรือจากปุ่ม GitHub ในโปรเจกต์ใดก็ได้ วิธีที่ง่ายที่สุดคือ GitHub App ของ MonstarX ไม่ต้องสร้างหรือวางโทเค็น และคุณกำหนดได้เองว่า MonstarX เข้าถึงรีโพซิทอรีไหนได้บ้าง

  1. คลิก เชื่อมต่อบัญชี GitHub ส่วนตัว

  2. GitHub จะเปิดขึ้นและถามว่าจะติดตั้งแอปที่ไหน ให้เลือก บัญชีส่วนตัวของคุณ (ไม่ใช่องค์กร)

  3. เลือกรีโพซิทอรีที่ MonstarX ใช้ได้ คือ All repositories หรือ Only select repositories แล้วติ๊กรีโพซิทอรีที่ต้องการ เปลี่ยนได้ภายหลังบน GitHub

  4. คลิก Install แล้วคลิก Authorize เมื่อ GitHub ขอให้ยืนยัน

  5. คุณจะกลับมาที่ MonstarX การ์ดจะแสดง เชื่อมต่อแล้ว · GitHub App

สิ่งที่ควรรู้เกี่ยวกับ GitHub App

  • ไม่ต้องขออนุมัติจากองค์กร แอปติดตั้งในบัญชีส่วนตัวของคุณเท่านั้น ถ้าเลือกองค์กรโดยไม่ได้ตั้งใจ MonstarX จะขอให้ติดตั้งในบัญชีส่วนตัวแล้วลองอีกครั้ง
  • รีโพซิทอรีใหม่จะสร้างในบัญชีส่วนตัวของคุณ MonstarX เข้าถึงรีโพซิทอรีที่ตัวเองสร้างได้เสมอ แม้คุณจะเลือก Only select repositories ไว้
  • รีโพซิทอรีที่คุณเลือกคือขอบเขตการเข้าถึง ถ้าจะเชื่อมกับรีโพซิทอรีที่มีอยู่ รีโพซิทอรีนั้นต้องเป็นรีโพซิทอรีที่คุณให้สิทธิ์แอปไว้ เพิ่มได้ในการตั้งค่าแอปที่ติดตั้งไว้บน GitHub
  • สิทธิ์เข้าถึงมีอายุสั้นและต่ออายุให้อัตโนมัติ เก็บแบบเข้ารหัส และไม่เคยส่งไปยังเบราว์เซอร์ของคุณ

ถ้าต้องการ ก็มีอีก 2 วิธีให้เลือก

วิธีควรใช้เมื่อไร
รีโพซิทอรีส่วนตัวแบบจำกัดสิทธิ์ (ในการตั้งค่าคือ เชื่อมต่อรีโพซิทอรีของบัญชีส่วนตัวด้วยสิทธิ์เข้าถึงที่จำกัด)คุณต้องการให้ MonstarX เข้าถึงรีโพซิทอรีเดียวเท่านั้นด้วย โทเค็นการเข้าถึงส่วนบุคคล (personal access token คือรหัสผ่านที่สร้างบน GitHub สำหรับใช้งานเฉพาะอย่าง) สร้างโทเค็นแบบ fine-grained โดยให้บัญชีส่วนตัวเป็น resource owner เลือกเฉพาะรีโพซิทอรีนั้น และให้สิทธิ์ Contents: read and write สร้างรีโพซิทอรีบน GitHub ไว้ก่อน เพราะโทเค็นประเภทนี้สร้างรีโพซิทอรีใหม่ไม่ได้
ใช้การอนุญาต GitHub แทนคุณต้องการพุชไปยังรีโพซิทอรีขององค์กรที่คุณเป็นสมาชิก หน้าลงชื่อเข้าใช้ปกติของ GitHub อาจรวมสิทธิ์เข้าถึงองค์กรเหล่านั้นไว้ด้วย จึงควรตรวจดูก่อนอนุญาต

เมื่อเชื่อมต่อแล้ว การ์ดจะแสดงวิธีที่เชื่อมต่อ (GitHub App ลงชื่อเข้าใช้ด้วย GitHub หรือ โทเค็นการเข้าถึงส่วนบุคคล) และแสดงรายการทุกรีโพซิทอรีที่ MonstarX อัปเดตให้ พร้อมเวลาที่ซิงค์ล่าสุด และบอกว่าซิงค์แบบ อัตโนมัติ หรือ ด้วยตนเอง ถ้าเชื่อมต่อด้วยวิธีอื่นในภายหลัง การเชื่อมต่อใหม่จะแทนที่การเชื่อมต่อเดิม แต่รีโพซิทอรีที่เชื่อมไว้จะยังเชื่อมอยู่

  1. เปิดโปรเจกต์แล้วคลิก GitHub ที่แถบด้านบน (มีอยู่ใน การตั้งค่าส่งออก ของโปรเจกต์ด้วย ใต้ เก็บไว้ใน GitHub)

  2. ถ้ายังไม่ได้เชื่อมต่อบัญชี ก็เชื่อมต่อได้ตรงนั้นเลย

  3. เลือก รีโพซิทอรีใหม่ หรือ รีโพซิทอรีที่มีอยู่

    • รีโพซิทอรีใหม่ เลือก เจ้าของ (คุณเองหรือองค์กรที่คุณอยู่) พิมพ์ ชื่อรีโพซิทอรี ติ๊ก รีโพซิทอรีส่วนตัว ไว้ตามเดิม เว้นแต่อยากให้ทุกคนเห็นโค้ด แล้วคลิก สร้างรีโพซิทอรีและพุช
    • รีโพซิทอรีที่มีอยู่ พิมพ์ owner/repository หรือวางที่อยู่ github.com ของรีโพซิทอรี ใส่ บรานช์ ด้วยก็ได้ (ถ้าเว้นว่างจะใช้บรานช์เริ่มต้น) แล้วคลิก เชื่อมโยงและซิงค์ บัญชีของคุณต้องมีสิทธิ์พุชไปยังรีโพซิทอรีนั้น
  4. MonstarX จะพุชทั้งโปรเจกต์เป็นรีโพซิทอรีที่พร้อมปรับใช้ ปุ่ม GitHub จะมีจุดสีเขียวเมื่อซิงค์ตรงกันแล้ว

รีโพซิทอรีใหม่จะเริ่มด้วยคอมมิตเดียวคือ “Initial commit from MonstarX” ส่วนรีโพซิทอรีที่มีอยู่ โปรเจกต์จะคอมมิตต่อจากบรานช์ ส่วนไฟล์ที่ MonstarX ไม่ได้ดูแล เช่น LICENSE เวิร์กโฟลว์ CI หรือเอกสาร จะไม่มีการแตะต้องเลย

ทุกอย่างที่ได้จากการส่งออก ทั้งโค้ดของแอป ไฟล์เฟรมเวิร์กของ MonstarX การกำหนดค่าสำหรับรันและปรับใช้ ไมเกรชันของฐานข้อมูล รายชื่อข้อมูลลับที่แอปต้องใช้ (ไม่มีค่าจริง) และไฟล์ README

บางอย่างไม่เคยขึ้นไปที่ GitHub

  • ค่าของข้อมูลลับ รวมถึง แถวในฐานข้อมูล และ ไฟล์ที่อัปโหลด ของแอปจะอยู่กับ MonstarX
  • แถวที่นำเข้าจากสเปรดชีต ไม่เคยพุชขึ้นไป เพราะรีโพซิทอรีอาจเป็นแบบสาธารณะ และแถวเหล่านั้นคือข้อมูลของลูกค้าคุณ
  • ไฟล์ไบนารีและไฟล์ที่ใหญ่กว่า 1 MB จะข้ามไปและแสดงรายการไว้ในบันทึกการซิงค์

ระหว่างที่เปิด พุชทุกการเปลี่ยนแปลงโดยอัตโนมัติ ไว้ (เปิดอยู่เป็นค่าเริ่มต้น) MonstarX จะซิงค์

  • หลังทุกคำขอที่เปลี่ยนไฟล์ของแอป โดยใช้คำขอของคุณเป็นข้อความคอมมิต
  • หลัง QA แก้ไขอัตโนมัติ
  • หลังคุณกู้คืนเวอร์ชัน
  • หลังคุณบันทึกหรือลบไฟล์ในมุมมองโค้ด

ซิงค์เลย ในเมนู GitHub จะพุชและดึงข้อมูลได้ทุกเมื่อที่ต้องการ ปิดการพุชอัตโนมัติได้ถ้าอยากซิงค์เอง

คอมมิตบน GitHub ได้ตามปกติ ในการซิงค์ครั้งถัดไป MonstarX จะดึงการเปลี่ยนแปลงเข้ามาในโปรเจกต์

  • การเปลี่ยนแปลงในไฟล์ของแอปเอง (src/ public/ migrations/ และ README.md) จะเข้ามาใน MonstarX พรีวิวจะอัปเดต ไมเกรชันใหม่ของฐานข้อมูลจะทำงาน และจะมีเวอร์ชันชื่อ จาก GitHub: ตามด้วยหัวเรื่องของคอมมิตปรากฏในเวอร์ชัน
  • การ์ดในแชท เช่น “ดึง 3 ไฟล์ จาก GitHub” จะแสดงรายการไฟล์ ให้ทั้งคุณและเอเจนต์ MonstarX รู้ว่ามีอะไรเปลี่ยน
  • การเปลี่ยนแปลงในไฟล์เฟรมเวิร์กของ MonstarX เช่น package.json หรือการกำหนดค่า จะอยู่บน GitHub จนกว่า MonstarX จะเปลี่ยนไฟล์นั้นเองในครั้งถัดไป
  • ถ้าไฟล์เดียวกันเปลี่ยน ทั้งสองฝั่ง MonstarX จะเก็บเวอร์ชันของตัวเอง ส่วน GitHub จะเก็บเวอร์ชันของคุณไว้ในประวัติ การ์ดจะระบุว่า “เปลี่ยนทั้งสองฝั่ง เก็บเวอร์ชันของ MonstarX ไว้”
  • รีโพซิทอรี บรานช์ และบอกว่าเป็น ส่วนตัว หรือ สาธารณะ
  • เวลาที่ซิงค์ล่าสุด (ซิงค์แล้ว เมื่อไม่กี่นาทีที่แล้ว) หรือ การซิงค์ครั้งล่าสุดล้มเหลว พร้อมสาเหตุ
  • ซิงค์เลย และ เปิดรีโพซิทอรี
  • พุชทุกการเปลี่ยนแปลงโดยอัตโนมัติ
  • การซิงค์ล่าสุด แสดง 5 ครั้งล่าสุด พร้อมคอมมิตของแต่ละครั้ง
  • ยกเลิกการเชื่อมโยงรีโพซิทอรี หยุดการซิงค์ รีโพซิทอรียังอยู่บน GitHub
  • ยกเลิกการเชื่อมต่อ ยกเลิกการเชื่อมต่อบัญชี GitHub จะไม่มีการพุชใด ๆ จนกว่าจะเชื่อมต่ออีกครั้ง

เมื่อคุณนำเข้าแอปจากรีโพซิทอรีที่คุณพุชได้ โปรเจกต์จะยังเชื่อมกับรีโพซิทอรีนั้นอยู่ บนบรานช์ใหม่ชื่อ monstarx ที่เริ่มจากคอมมิตที่คุณนำเข้า บรานช์ของคุณเองจึงไม่ขยับเลย เมื่อพอใจกับการเปลี่ยนแปลงของ MonstarX แล้ว เปิดพูลรีเควสต์ ในเมนู GitHub จะพาไปที่ GitHub เพื่อรวมการเปลี่ยนแปลง

ต้องใช้โทเค็น GitHub ไหม

ไม่ต้อง เชื่อมต่อบัญชี GitHub ส่วนตัว จะติดตั้ง GitHub App ของ MonstarX ให้ คุณแค่ลงชื่อเข้าใช้บน GitHub เลือกรีโพซิทอรี ก็เสร็จแล้ว โทเค็นการเข้าถึงส่วนบุคคลเป็นแค่ทางเลือกสำหรับคนที่อยากจำกัดให้ MonstarX เข้าถึงรีโพซิทอรีเดียวด้วยวิธีนั้น

GitHub App เข้าถึงองค์กรของบริษัทได้ไหม

ไม่ได้ แอปติดตั้งในบัญชีส่วนตัวของคุณเท่านั้น และสร้างรีโพซิทอรีใหม่ในบัญชีนั้น ถ้าจะพุชไปยังรีโพซิทอรีขององค์กร ให้เชื่อมต่อด้วย ใช้การอนุญาต GitHub แทน หรือขอให้องค์กรเพิ่มคุณเป็นสมาชิก แล้วเชื่อมจากบัญชีของคุณ

ให้ MonstarX เข้าถึงรีโพซิทอรีอื่นภายหลังได้อย่างไร

บน GitHub เปิดการตั้งค่า GitHub App ที่ติดตั้งไว้ เลือก MonstarX แล้วเพิ่มรีโพซิทอรี (หรือเปลี่ยนเป็น All repositories) จากนั้นเชื่อมจากเมนู GitHub ของโปรเจกต์

รีโพซิทอรีเป็นแบบส่วนตัวไหม

รีโพซิทอรีใหม่เป็นแบบส่วนตัวโดยค่าเริ่มต้น ติ๊ก รีโพซิทอรีส่วนตัว ออกเฉพาะเมื่ออยากให้โค้ดเป็นสาธารณะ MonstarX ไม่เคยพุชค่าของข้อมูลลับหรือข้อมูลของแอป

เชื่อมกับรีโพซิทอรีขององค์กรบริษัทได้ไหม

ได้ ถ้าบัญชี GitHub ของคุณพุชไปยังรีโพซิทอรีนั้นได้ ใช้ รีโพซิทอรีที่มีอยู่ หรือเลือกองค์กรเป็น เจ้าของ เมื่อสร้างรีโพซิทอรีใหม่

ถ้ายกเลิกการเชื่อมโยงรีโพซิทอรีจะเกิดอะไรขึ้น

MonstarX จะหยุดซิงค์ รีโพซิทอรีและประวัติทั้งหมดยังอยู่บน GitHub และเชื่อมใหม่ได้ภายหลัง

นักพัฒนาแก้ package.json บน GitHub ทำไมไม่กลับเข้ามา

ไฟล์เฟรมเวิร์ก เช่น package.json และการกำหนดค่า เป็นไฟล์ที่ MonstarX ดูแล การแก้ไขจะอยู่บน GitHub จนกว่า MonstarX จะเปลี่ยนไฟล์นั้นในครั้งถัดไป และการซิงค์ครั้งต่อ ๆ ไปจะไม่ย้อนการแก้ไขนั้นแบบเงียบ ๆ

ปรับใช้แอปจากรีโพซิทอรีได้ไหม

ได้ รีโพซิทอรีพร้อมปรับใช้ และ Railway ปรับใช้จากรีโพซิทอรีได้ ดูเพิ่มเติมที่ เผยแพร่ไปยังโฮสต์อื่น

ถ้าโอนย้ายโปรเจกต์ การเชื่อมจะเป็นอย่างไร

การเชื่อมจะหลุดไป จึงไม่มีอะไรพุชไปยังบัญชี GitHub ของคุณในนามเจ้าของใหม่ ส่วนตัวรีโพซิทอรียังอยู่เหมือนเดิม