1 คะแนน โดย GN⁺ 3 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Gitolite ช่วยโฮสต์ Git repository บนเซิร์ฟเวอร์กลาง และทำให้สามารถใช้ การควบคุมการเข้าถึงแบบละเอียด แยกตาม repository ได้
  • เมื่อติดตั้งผ่าน package manager มักใช้ชื่อแพ็กเกจว่า gitolite3 และซอร์สโค้ดมีให้บน Codeberg และ GitHub
  • หากคุ้นเคยกับ Unix และ SSH สามารถใช้เอกสาร ติดตั้งแบบรวดเร็ว ได้ ส่วนผู้ที่ต้องการคำแนะนำทีละขั้นตอนให้ทำตามลำดับเอกสารฉบับเต็มหรือคู่มือติดตั้งแบบป้องกันข้อผิดพลาด
  • ข้อผิดพลาดในการติดตั้ง·ตั้งค่าและการทำคีย์หายมีอธิบายในเอกสาร emergencies ส่วน ปัญหาด้านความปลอดภัยให้รายงานโดยตรงทางอีเมล และการขอความช่วยเหลือทั่วไปให้ใช้ mailing list
  • ซอฟต์แวร์เผยแพร่ภายใต้ GPL v2 ส่วนเอกสารที่ดูแลแยกต่างหากโดยหลักแล้วใช้ Creative Commons BY-NC-SA 3.0

เอกสารการติดตั้งและการดูแลระบบ

  • Gitolite ช่วยจัดวาง Git repository บนเซิร์ฟเวอร์กลางและทำให้สามารถใช้ การควบคุมการเข้าถึงแบบละเอียด ได้
    • สามารถใช้ GitHub เป็น repository ซอร์สสำรองได้เช่นกัน
    • ชื่อแพ็กเกจใน package manager มักเป็น gitolite3
  • หากคุ้นเคยกับ Unix และ SSH สามารถดู การติดตั้งแบบรวดเร็ว ได้
  • หากต้องการการสนับสนุนแบบทีละขั้นตอน ให้ทำตาม คู่มือติดตั้งแบบป้องกันข้อผิดพลาด ตามนั้น และหลังติดตั้งแล้วสามารถใช้ตัวอย่างใน cookbook สำหรับงานทั่วไปได้
  • emergencies ครอบคลุมปัญหาการติดตั้ง·ตั้งค่า, การกู้คืนคีย์ที่หายไป, ข้อผิดพลาดทั่วไปหรือที่พบได้น้อย และการตั้งค่าที่ไม่เป็นมาตรฐานซึ่งอาจก่อปัญหาได้

ช่องทางสนับสนุนและไลเซนส์

  • ปัญหาด้านความปลอดภัย ให้รายงานโดยตรงไปที่ sitaramc@gmail.com
  • การสนับสนุนและการสนทนาทั่วไปใช้ mailing list ของ Google Groups
    • อีเมลฉบับแรกของสมาชิกใหม่จะถูกพักไว้จนกว่าจะได้รับอนุมัติ แต่อีเมลถัดไปจากที่อยู่เดียวกันจะไม่ถูกพักไว้
    • มี mailing list แบบทางเดียวความถี่ต่ำแยกต่างหากสำหรับประกาศรีลีสและประกาศความปลอดภัยด้วย
  • รับการสนับสนุนทาง IRC ได้ที่ช่อง #gitolite บน libera.chat และในช่อง Git #git ก็มีผู้ใช้ที่คุ้นเคยกับ Gitolite อยู่เช่นกัน
  • ซอฟต์แวร์ Gitolite เผยแพร่ภายใต้ GPL v2
    • เอกสารโดยหลักแล้วอยู่ภายใต้ Creative Commons BY-NC-SA 3.0 แต่ส่วนที่มีผู้มีส่วนร่วมจากภายนอกอาจระบุไลเซนส์แยกไว้ในแต่ละไฟล์
    • ตัวอย่างโค้ดในเอกสารและคอมเมนต์ที่เกี่ยวข้องสามารถถือว่าอยู่ภายใต้ GPL v2 ได้ หากเห็นว่าไม่เข้าข่ายการใช้งานโดยชอบธรรม
  • GIT เป็นเครื่องหมายการค้าของ Software Freedom Conservancy และชื่อ Gitolite ถูกใช้ตามไลเซนส์

1 ความคิดเห็น

 
GN⁺ 3 시간 전
ความเห็นจาก Lobste.rs
  • ในปี 2013 ที่ University of Cambridge ได้สร้างเซิร์ฟเวอร์ Git ที่ใช้ gitolite และ gitweb เป็นพื้นฐาน เลือกใช้เพราะคิดว่าน่าจะใช้เวลาดูแลน้อยกว่า GitLab หรือ Gitorious ยุคแรกมาก และในความเป็นจริงก็เป็นเช่นนั้นโดยรวม
    gitolite มีโครงสร้างเฉพาะตัวที่รันคำสั่งผ่าน SSH และจัดการสิทธิ์การเข้าถึงด้วยไฟล์ตั้งค่าที่ละเอียด จึงไม่มีคอนโซลจัดการผ่านเว็บและมีอุปสรรคในการเริ่มต้นใช้งานอยู่บ้าง จึงทำคู่มือเริ่มต้นขึ้นมา แต่ก็เหมาะเฉพาะกับผู้ใช้ที่มั่นใจด้านเทคนิคเท่านั้น
    ตอนนั้นไม่มีบุคลากรที่ถูกจัดสรรให้บริการ Git เลย จึงใช้เวลาส่วนตัวสร้างบริการชั่วคราวขึ้นมาเพื่อพิสูจน์ความต้องการและหางบประมาณ การเก็บการเปลี่ยนแปลงของโอเพนซอร์สไว้ใน SVN หรือวาง Git repository ไว้ในโฮมไดเรกทอรีที่ไม่มีใครหาเจอเป็นสิ่งที่ยอมรับได้ยาก มองว่าการสนับสนุนด้านวิศวกรรมซอฟต์แวร์ยังไม่เพียงพอเมื่อเทียบกับความต้องการด้านการเขียนโปรแกรมเชิงวิทยาศาสตร์ของมหาวิทยาลัย และบริการ IT ส่วนกลางควรสนับสนุนทั้งการสอนและการวิจัยทั่วทั้งมหาวิทยาลัย ไม่ใช่แค่การใช้งานภายใน
    ใช้ความสามารถด้านการมอบหมายการจัดการผู้ใช้เพื่อให้ผู้เชี่ยวชาญของแต่ละกลุ่มวิจัยหรือภาควิชารับช่วงงานจัดการบัญชีและการสนับสนุนแทบทั้งหมด ด้วยความที่เป็นเครื่องมือเข้าใจยาก จึงดึงดูดกลุ่ม early adopter สายเทคนิคตามที่ตั้งใจไว้ มีผู้ใช้ค่อนข้างมากแต่แทบไม่มีคำขอซัพพอร์ตเลย นอกจากนี้ยังรองรับโครงการที่มีหลายมหาวิทยาลัยเข้าร่วมได้ เพราะไม่ได้จำกัดการเข้าถึงไว้เฉพาะสมาชิก Cambridge
    การประเมินพลาดครั้งใหญ่ที่สุดคือไม่ได้คิดว่าบริการชั่วคราวนี้จะอยู่ยาวถึงประมาณ 8 ปี ก่อนจะถูกแทนที่ด้วย GitLab ที่มีทีมเฉพาะดูแล งานที่ใช้เวลามากที่สุดคือการเพิ่มความทนทานต่อความเสียหาย และโครงสร้างที่ทำ replication ของ Git repository ไปยังไซต์อื่นแบบเกือบเรียลไทม์ก็น่าจะซับซ้อนเกินความจำเป็น

    • ตอนที่เข้ามารับช่วงบริการนี้ เดิมตั้งใจจะย้ายไปยังsoftware forgeที่มีทั้ง CI และ package repository ด้วย ในช่วงนั้นเริ่มมีการยอมรับคุณค่าของซอฟต์แวร์ในฐานะผลงานวิจัย และบรรยากาศก็เอื้อต่อการใส่งบให้บริการส่วนกลางของมหาวิทยาลัยมากขึ้น
      จังหวะนั้น Microsoft ก็เข้าซื้อ GitHub พอดี เป็นช่วงที่เริ่มมีการคาดการณ์ครั้งแรกว่า GitHub จะเสื่อมความนิยมลง ซึ่งน่าสนใจที่ประวัติศาสตร์ดูเหมือนจะซ้ำรอย GitLab เสนอไลเซนส์ในเงื่อนไขที่ดีมาก และภายในองค์กรก็ต้องการเดโมการใช้ Kubernetes และ infrastructure as code กับบริการคลาวด์ด้วย ตอนนี้ไม่ได้อยู่ที่มหาวิทยาลัยแล้ว แต่ GitLab ก็ยังคงเปิดให้บริการอยู่ที่ https://gitlab.developers.cam.ac.uk/
    • ช่วงปี 2012~2013 เคยดูแล gitolite ให้ภาควิชาหนึ่งของมหาวิทยาลัยท้องถิ่น โดยมีผู้ใช้หลักเป็นนักศึกษาสาขาวิศวกรรมซอฟต์แวร์ ถือว่าเกินความจำเป็นเมื่อเทียบกับขนาดผู้ใช้ แต่ด้วยความเรียบง่ายและ access control list ที่ละเอียด จึงเหมาะกับการจัดการหลายทีมและสิทธิ์ของหลายโครงการภายในภาควิชา
      ไม่กี่ปีต่อมาก็ไม่มีคนรับหน้าที่ดูแลต่อ และเมื่อ GitHub ได้รับความนิยมมาก ผู้ใช้ก็ย้ายจากบริการภายในมหาวิทยาลัยไปยังบริการโฮสต์ภายนอก ดีใจที่เห็นว่าโครงการนี้ยังคงได้รับการดูแลอย่างต่อเนื่อง เพราะเคยนึกว่ามันหายไปแล้ว
  • ใช้access control list ที่ละเอียดของ gitolite เพื่อให้บางคีย์ clone ได้อย่างเดียวแต่ push ไม่ได้ หรืออนุญาตให้ push ได้แต่ห้าม force push ก็ได้ มันเบาและสะดวกมาก และถ้าเป็นตอนนี้ก็น่าจะลองใช้ https://github.com/djmdjm/gitlimit

    • Gitlimit ดูเหมือนจะมีซอร์สโค้ดที่เรียบง่าย จนสามารถขยายฟีเจอร์อย่างคำสั่งแบบกำหนดเองได้ง่ายด้วย
  • ถ้าเป็นโปรเจกต์ส่วนตัว Fossil ก็เหมาะเช่นกัน มีเว็บเซิร์ฟเวอร์ฝังมาในไบนารีขนาดเล็กจึงเปิดให้บริการได้ง่าย และหากต้องการก็เชื่อมกับ Git repository ต้นทางได้ด้วย

    • gitolite เป็นเครื่องมือสำหรับผู้ใช้จำนวนมากที่ต้องการการควบคุมสิทธิ์การเข้าถึงที่ซับซ้อน และสำหรับการโฮสต์หลาย repository
  • ที่ NRAO ก็เคยใช้ gitolite เป็นทางออกชั่วคราวอยู่พักหนึ่ง ตอนนั้นเครื่องมือที่รองรับอย่างเป็นทางการคือ Subversion แต่หัวหน้ากลุ่มติดตั้งไว้ให้ผู้ใช้ภายในที่ต้องการใช้ Git แม้ฟีเจอร์จะมีไม่มาก แต่ก็ทำสิ่งที่จำเป็นได้ดีพอ
    ปัจจุบันมีGitLab ที่ติดตั้งใช้งานทั้งหอดูดาว และก็อาจย้ายไป GitHub หรือ GitLab ได้ แต่ไม่รู้ว่าตัดสินใจสุดท้ายเป็นอย่างไร ใช้เวลาไปมากกับการปรับระบบ CI/CD และก็นึกวิธีที่จะให้ gitolite รองรับสิ่งนี้ หรือทำ workflow แบบ pull/merge request ไม่ออก แต่ก็อาจเป็นไปได้ว่าประโยชน์ของฟีเจอร์เหล่านั้นถูกพูดเกินจริง

  • ใช้ fugit(https://github.com/cbdevnet/fugit) ที่ทำมาโดยเน้นความเรียบง่ายสุดขีด และจัดการไฟล์ตั้งค่าด้วย Nix module มันง่ายและได้ผลดี ส่วน gitolite นั้นรู้สึกว่าใช้งานค่อนข้างจุกจิกอยู่เสมอ