This content originally appeared on DEV Community and was authored by Anuchit Prasertsang
ปัญหา
เมื่อเราทำงานในทีมที่มีคนหลายคน การแชร์ configuration หรือรหัสต่างๆของโปรเจคสำหรับ ระหว่างนักพัฒนานั้น
เป็นหนึ่งปัญหาที่อยากลำบาก ถ้าไม่มี Vault ส่วนใหญ่ก็จะส่งกันผ่านทางแชท ซึ่งไม่ค่อยปลอดภัยเท่าไหร่
ใช้ GitLab Secure files ในการแชร์ Configuration
สร้างไฟล์ที่จะแชร์ นำไปไว้ที่ GitLab Repository
- สร้างไฟล์ที่จะเก็บ configuration ขึ้นมาในโปรเจคของเรา กรณีนี้เราจะสร้างไฟล์ชื่อ
env.backend
ขึ้นมา ซึ่งเป็น key-value ของ environment ของ backend ตัวอย่างเช่น
ENV_BACKEND=production
DATABASE_URL=postgres://user:password@host:port/dbname
- ไปที่ GitLab โปรเจคของเรา แล้วไปที่
Settings
>CI/CD
>Secure files
แล้วอัพโหลดไฟล์env.backend
ขึ้นไป
ใช้ Secure Files API ในการดึงไฟล์จาก GitLab ลงมาที่เครื่องของเรา
- สร้าง Personal Access Token ใน GitLab โดยไปที่
User Settings
>Access Tokens
แล้วสร้าง Token ขึ้นมา - ใช้ Token ที่สร้างขึ้นมาในการดึงไฟล์จาก GitLab โดยใช้ Secure Files API โดยใช้คำสั่ง
curl --header "PRIVATE-TOKEN: <GITLAB_ACCESS_TOKEN>" \
"https://gitlab.com/api/v4/projects/<PROJECT_ID>/secure_files/<FILE_ID>/download" \
--output <OUTPUT_FILE_NAME>
โดยที่
-
<GITLAB_ACCESS_TOKEN>
คือ Personal Access Token ที่สร้างขึ้นมา -
<PROJECT_ID>
คือ ID ของโปรเจคที่เรา (อยู่ใกล้ปุ่ม Fork ของโปรเจค หรือไปที่Settings
>General
แล้วดูที่Project ID
) -
<FILE_ID>
คือ ID ของไฟล์ที่เราอยากดาวน์โหลด เราสามารถใช้ Secure Files API ในการดูรายละเอียดของไฟล์ทั้งหมดได้ -
<OUTPUT_FILE_NAME>
คือ ชื่อไฟล์ที่เราอยากจะบันทึกไฟล์ที่ดาวน์โหลดลงมาในเครื่องของเรา
ดูรายละเอียดของ Secure Files ทั้งหมด
curl --header "PRIVATE-TOKEN: <GITLAB_ACCESS_TOKEN>" \
"https://gitlab.com/api/v4/projects/<PROJECT_ID>/secure_files"
ตัวอย่างผลลัพธ์
[
{
"id": 2233783, // FILE_ID
"filename": "env.backend", // FILE_NAME
"filesize": 30,
"filetype": "text/plain",
... // รายละเอียดอื่นๆ
}
]
เพียงเท่านี้เราก็สามารถแชร์ configuration ระหว่างนักพัฒนาได้โดยไม่ต้องส่งผ่านทางแชทอีกต่อไป
อ้างอิง
This content originally appeared on DEV Community and was authored by Anuchit Prasertsang