สำหรับนักพัฒนาที่มีโอกาสได้ใช้งานตัว Git เชื่อว่าหลายๆ คนน่าจะคุ้นกับชื่อของ GitLab เพราะว่าเป็น 1 ในเว็บไซต์ยอดนิยมที่ทำหน้าที่เป็น Git Server โดยนอกจากเรื่องของการเก็บ Source Code แล้ว ทาง GitLab ยังมี Feature ที่น่าสนใจอีกหลายอย่างที่จะช่วยสนับสนุนงานพัฒนาระบบให้มีประสิทธิภาพและรวดเร็วมากขึ้น รวมทั้งยังมีช่องทาง API สำหรับให้ระบบภายนอกสามารถเข้ามาเรียกใช้ข้อมูลส่วนต่างๆ ไปใช้งานต่อได้อีกด้วย ในบทความนี้จะมาแนะนำตัวอย่างการเรียก API เพื่อดาวน์โหลดไฟล์ล่าสุดจาก Git กันนะครับ
สิ่งที่ต้องมีก่อนเชื่อมต่อ API
- บัญชีของ GitLab สามารถสมัครใช้งานได้ฟรี
- Personal Access Tokens สำหรับเข้าถึงโปรเจคและไฟล์ต่างๆ
วิธีการขอ Personal Access Tokens
เข้าระบบ GitLab คลิกที่ไอคอนด้านขวาบน เลือก Settings
ดูที่เมนูด้านซ้ายเลือก Access Tokens
ใส่ชื่อของ Access Tokens ถ้าต้องการกำหนดวันหมดอายุก็ใส่ไปได้ แล้วก็ติ๊กเลือกช่อง api และ คลิก Create personal access token
เราก็จะได้ Access Tokens สำหรับใช้งานแล้ว
การดู ID ของ Project
การดู ID ของ Project จะอยู่ด้านล่างชื่อโปรเจค
ตัวอย่างโค้ดสำหรับ การเชื่อมต่อ API ของ GitLab เพื่อดาวน์โหลดไฟล์
โค้ด: เลือกทั้งหมด
<?php
// xxxx คือ access token ที่ได้มาเอามาใส่แทน
$authorization = "Authorization: Bearer xxxx";
$ch = curl_init();
// xxxx คือ ID ของ Project เอามาใส่แทน
// สำหรับ URL นี้จะใช้สำหรับดาวน์โหลดไฟล์ zip ของ Source Code ทั้งหมด
curl_setopt($ch, CURLOPT_URL, 'https://gitlab.com/api/v4/projects/xxxx/repository/archive.zip');
// กำหนด header ที่ส่งไปเป็นข้อมูล access token
curl_setopt($ch, CURLOPT_HTTPHEADER, array ($authorization));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// $response ที่ได้กลับมาคือ เนื้อหาของไฟล์ zip นะครับ ต้องเอาไปเขียนใส่ไฟล์อีกที
$f = fopen('archive.zip', 'w+');
fwrite($f, $response);
fclose($f);
$zip = new ZipArchive();
if ($zip->open( 'archive.zip') === TRUE)
{
// ให้แตกไฟล์ออกที่โฟลเดอร์ที่รันไฟล์นี้อยู่
$zip->extractTo(dirname(__FILE__));
$zip->close();
}
ข้อมูลเพิ่มเติม
API ทั้งหมดที่ใช้งานได้ https://docs.gitlab.com/ee/api/api_resources.html