ปัญหา
เมื่อเราทำงานในทีมที่มีคนหลายคน การแชร์ 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 ระหว่างนักพัฒนาได้โดยไม่ต้องส่งผ่านทางแชทอีกต่อไป
Top comments (0)