วิธีการเชื่อม api ของ gitlab สำหรับดาวน์โหลดไฟล์ project ใน ภาษา Python

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: วิธีการเชื่อม api ของ gitlab สำหรับดาวน์โหลดไฟล์ project ใน ภาษา Python

วิธีการเชื่อม api ของ gitlab สำหรับดาวน์โหลดไฟล์ project ใน ภาษา Python

by jirawoot » 01/04/2020 3:38 pm

วิธีการเชื่อม api ของ gitlab สำหรับดาวน์โหลดไฟล์ project
Python Knowledge-1.png
Python Knowledge-1.png (45.35 KiB) Viewed 481 times
สำหรับนักพัฒนาซอฟต์แวร์ คงจะเคยได้คำว่า gitlab หรือตัวเก็บซอร์สโค้ดที่เราได้พัฒนาขึ้นมาเก็บไว้บน cloud เพื่อที่จะให้เพื่อนรวมงานสามารถพัฒนาต่อจากเราได้โดยหน้าที่ของมันจะมีอยู่ 2 ส่วน คือ จัดเก็บโค้ดและจัดการโครงการ (CI/CD ย่อมาจาก continuous integration and continuous delivery) และตัว gitlab สามารถดาวน์โหลดไฟล์ ผ่าน api ได้ เพื่อจะนำซอร์สโค้ดที่เราได้พัฒนาขึ้นใหม่หรือปรับแก้ไขในส่วนที่เป็นบักขึ้นระบบที่ออนไลน์อยู่ server ได้

ขั้นตอนสำหรับการเชื่อมต่อ API
จะมี บัญชีของ GitLab ก่อน และ Personal Access Tokens สำหรับเข้าถึงโปรเจค
สำหรับการขอ Personal Access Tokens สามารถดูได้ที่นี่ คลิก

ตัวอย่างโค้ดในการเซื่อมต่อ API ใน Python

Code: Select all

import requests
from zipfile import ZipFile
# xxxxx = เป็น project ID  
# xxxxxx = Personal Access Tokens ที่ขอในตอนแรก
re = requests.get('http://gitlab.example.com/api/v4/projects/xxxxx/repository/archive.zip?private_token=xxxxxx')
with open('archive.zip', 'wb') as zip_write:
    zip_write.write(re.content)
zip_write.close()
with ZipFile('archive.zip', 'r') as zipObj:
    zipObj.extractall()
เมื่อทำการรันโปรแกรมจะได้ดังรูป
Python Knowledge-1.png
Python Knowledge-1.png (13.04 KiB) Viewed 481 times




อ้างอิง
https://docs.gitlab.com/ee/api/api_resources.html
https://stackoverflow.com/questions/57469184/how-do-i-access-gitlab-api-using-python-gitlab
https://pypi.org/project/requests/

Top