การร้องขอ merge request สำหรับโปรเจ็คบน GitLab เราสามารถกำหนด state parameter สำหรับการร้องขออย่างใดอย่างหนึ่ง (opened, closed หรือ merged) หรือทั้งหมด (all) โดยการระบุ parameter สำหรับคำสั่ง merge request บน GitLab สามารถดูได้จากตัวอย่างด้านล่าง

GET /projects/:id/merge_requests
GET /projects/:id/merge_requests?state=opened
GET /projects/:id/merge_requests?state=all
GET /projects/:id/merge_requests?iid=42

อธิบายเพิ่มเติมเกี่ยวกับ parameter ต่างๆ

  • id (requied) – ID ของโปรเจ็ค
  • iid (optional) – คืนค่าการร้องขอที่กำหนด iid
  • state (optional) – คืนค่าสำหรับการร้องขอ เช่น merged, opened, closed หรือ all
  • order_by (optional) – คืนค่าการร้องขอโดยการกำหนดในส่วนของ order_by เช่น created_at หรือ updated_at โดยค่า Default จะถูกกำหนดเป็น created_at
  • sort (optional) – คืนค่าการร้องขอโดยการเรียงลำดับจากน้อยไปมาก (asc) หรือมากไปน้อย (desc) โดยค่า Default จะถูกกำหนดเป็น desc


Continue reading

GitLab รองรับการทำงานเป็นทีมได้ โดยเราสามารถเพิ่มผู้ใช้ กำหนดสิทธิืการใช้งาน และกำหนดสมาชิกให้แต่ละโครงการได้ ครั้งนี้เราจะมาดูวิธีการจัดการผู้ใช้ใน GitLab พร้อมทั้งปรับแต่งและกำหนดสิทธิกัน การสร้างผู้ใช้สำหรับใช้งาน ให้เรากดที่ไอคอนฟันเฟืองที่มุมด้านขวาบน (ถ้าเอาเมาส์ไปวางบนไอคอนจะเรียกชื่อว่า Admin area)

จากนั้นให้เรากด New User และจะเห็นฟอร์มสำหรับกรอกข้อมูล user


Continue reading

การใช้งาน Container สามารถประยุกต์เข้ากับการพัฒนาร่วมกับ CI/CD ได้ โดยใช้เครื่องมือเพิ่มเพียงเพิ่มความสามารถในการเชื่อมต่อกับ Docker เพื่อสั่ง Deploy Container ไปยังเครื่องปลายทาง หรือ Build Dockerfile แล้ว push image ไปยัง Docker Registry ภายใน แล้วแต่ความต้องการใช้งาน ยกตัวอย่างการใช้งาน Gitlab CI หากท่านใดใช้ CI ตัวอื่นๆ ก็เอาไปประยุกต์ใช้กันได้

ตัวอย่างจากภาพ

  • นักพัฒนา commit code เข้าไปที่ git repository
  • build script ใน ci runner จะทำหน้าที่ build docker image แล้ว push image ไปยัง local registry
  • deploy docker image จาก local registry ไปยังเครื่อง development หรือเครื่อง production


Continue reading

หลังจากที่เราติดตั้ง GitLab ไปแล้ว ต่อมาเราจะมาทำการสร้าง Project เพื่อนำมาใช้สำหรับเก็บซอร์สโค้ดและทดลองใช้งานกัน

ปล. ผมขออ้างอิงต่อจากโพสการติดตั้ง GitLab นะครับ

ขั้นตอนแรก สร้าง Project สำหรับใช้งาน ให้เรา Log In ไปที่ root user ของเรา


Continue reading

ในการพัฒนาซอฟต์แวร์เราจำเป็นต้องเก็บซอร์สโค้ดไว้ในเวอร์ชั่นคอนโทรล (version control) เพื่อที่บันทึการเปลี่ยนแปลงต่างๆ ในซอร์สโค้ดของเราและการทำงานร่วมกับทุกคนในทีม ซึ่งซอฟต์แวร์ประเภทเวอร์ชั่นคอนโทรลที่นิยมกันในปัจจุบันนั้นก็คือ Git และก็มีคลาวด์เซอร์วิสที่ควบคุมการทำงาน Git อีกทีเพื่อเราทำงานกับคนในทีมได้สะดวกยิ่งขึ้นด้วย เช่น GitHub, Bitbucket เป็นต้น เซอร์วิสอย่าง GitHub หรือ Bitbucket มีบางอย่างที่ไม่ตอบโจทย์ระดับองค์กรเหมือนกัน เช่น ไม่รองรับจำนวนคนในองค์กรได้ การใช้งาน repository อาจจะไม่เพียงพอ หรืออยากเก็บซอร์สโค้ดเป็นความลับในองค์กรทำให้เราไม่อยากฝากไว้กับผู้ให้บริการภายนอก เป็นต้น เพราะฉะนั้นจึงมีคนคิดค้นให้เซอร์วิสพวกนี้ให้ทำงานได้สำหรับองค์กร ซึ่งมีชื่อว่า GitLab
Continue reading

ครั้งที่แล้วนำเสนอเรื่อง GitLab ไปมีพาดพิงเรื่อง CI (Continuous Integration) ไปนิดหน่อย ซึ่ง GitLab เองก็มีโครงการ GitLab CI เช่นกัน พูดถึง CI หลายท่านที่ใช้เครื่องมือแบบนี้อยู่แล้วก็คงต้องบอกว่า Jenkins เจ๋งสุด! แหมใช้ GitLab แล้วจะไปทำ CI ใน Jenkins ก็จะดูแปลกๆ มาใช้ GitLab CI กันดีกว่า :) GitLab CI แบ่งโครงการออกเป็น 2 ส่วน คือ

  • GitLab CI หน้าเว็บหลักของ GitLab CI
  • GitLab CI Runner เป็นส่วน Builder สามารถแยกหรืออยู่ร่วมกับ GitLab CI ได้

ครั้งนี้เราจะมาติดตั้ง GitLab + GitLab CI กัน โดยใช้วิธีที่ง่ายมากมากมาก โดยใช้ตัวติดตั้งของ Bitnami สำหรับวิธีปกติดูได้ที่เว็บโครงการ GitLab CI ครับ

ขั้นแรกดาวน์โหลด GitLab มาก่อน

wget http://downloads.bitnami.com/files/stacks/gitlab/6.9.2-1/bitnami-gitlab-6.9.2-1-linux-x64-installer.run

จากนั้น chmod ให้ execute ได้

chmod +x bitnami-gitlab-6.9.2-1-linux-x64-installer.run

ติดตั้งด้วยคำสั่ง

./bitnami-gitlab-6.9.2-1-linux-x64-installer.run


Continue reading

ผมมักโดนถามคำถามเกี่ยวกับเครื่องมือที่ผมใช้งานอยู่บ่อยครั้ง ผมมักก็ตอบว่า Git, GitHub และตามด้วยประโยคที่ว่า “Private Project ต้องเสียเงิน ถ้าเป็น OpenSource Project ใช้ฟรี” ก็เลยมีหลายท่านถามว่า ​”เอาแบบ Private Project ไม่ต้องเสียเงินได้ไหม” งั้นแนะนำให้ใช้ GitLab เลยครับ เจ้า GitLab เหมาะสำหรับคนที่ใช้ GitHub มาก เพราะการใช้งานบนเว็บเหมือนกัน ไม่นับบน command line นะครับ :P นอกจากจะติดตั้งในหน่วยงานได้แล้วยังสามารถสร้าง Private Project ได้แบบไม่ต้องเสียเงินด้วย ตอบโจทย์เลยใช่มั๊ยครับ GitLab มีด้วยกัน 2 รุ่น คือ

  • GitLab Comminuty
  • GitLab Enterprise

ดูความแตกต่างของแต่ละรุ่นได้ที่หน้าเว็บ GitLab กันได้ นอกจากนี้ยังมี Jitlab CI ด้วย ซึ่งเราสามารถผูก GitLab กับ GitLab CI ได้ด้วย เอาไว้วันหลังจากมาเล่าให้ฟังว่าเล่นยังไง สำหรับวิธีการติดตั้ง GitLab นั้นมีหลายวิธี แต่ผมขอเลือกวิธีง่ายระดับมาก โดยใช้ GitLab Omnibus (มีวิธีแบบง่ายมากๆ อยู่ขอไม่กล่าวถึงละกันนะครับ) ลองมาติดตั้ง GitLab Community เล่นกันครับ


Continue reading