【Python-GUI開發】四 python+gitlab自動獲取代碼文件

目錄

1、需要先安裝python-gitlab庫

2、登錄gitlab

3、gitlab文件提取以及正則表達式查找關鍵字符串


在使用PYQT5進行代碼生成時,有時候需要抓取gitlab最新代碼中的版本號,以保持最新版本自動顯示。

實際嘗試有幾種解決方案:

(1)模擬bash登錄訪問

(2)request庫方式訪問:get請求、post請求

(3)python-gitlab庫方式訪問

經過分析對比,使用python-gitlab庫進行gitlab操作的方式最爲合適

1、需要先安裝python-gitlab庫

pip install python-gitlab

gitlab庫的基本使用可以參考python-gitlab官方文檔

使用指導:https://python-gitlab.readthedocs.io/en/stable/api-usage.html

接口說明:https://python-gitlab.readthedocs.io/en/stable/api/gitlab.html#module-gitlab

 

2、登錄gitlab

            # 服務器地址
            url = 'http://xxxxx.com.cn'
            # 在gitlab--settings中獲取Access Token
            accessToken = 'xxxxxxxxxx'
            gl = gitlab.Gitlab(url, accessToken)

url爲所使用的gitlab服務器地址

AccessToken爲訪問該服務器所需要的訪問令牌,這個token是在gitlab的用戶設置中進行配置的,如下所示:

這裏可以設置這個accessToken的權限、有效日期。 

 

 特別注意的是:這個AccessToken只會在生成的首次纔會顯示,需要妥善另行保存,否則後面就無法查看到這個Token值了

 

爲了做容錯處理,特地加上了try exception結構,保證在Token失效情況下不會出現系統崩潰的問題。

 

3、gitlab文件提取以及正則表達式查找關鍵字符串

示例代碼如下所示 

# gilab包,re包
import gitlab,re

class getGitlabFileVersion:
    # 獲得項目:projectID的格式隨意,反正我就寫了個數字進去
    def getProject(self):
        try:
            # 服務器地址
            url = 'http://xxxxx.com.cn'
            # 在gitlab--settings中獲取Access Token
            accessToken = 'xxxxxxxxxx'
            gl = gitlab.Gitlab(url, accessToken)

            print(gl)
            projects = gl.projects.list()
            for project in projects:
                print(project)
            tmp = gl.projects.get(334)
            f = tmp.files.get(file_path='xx/version.c', ref='master')
            content = f.decode()
            content = content.decode()
            print(content)
            ret = re.search("\d"+"."+"\d"+"."+"\d",content)
            print(ret.group())
        except:
            print("err")
            #raise error(e.error_message, e.response_code, e.response_body)

# 測試
obj= getGitlabFileVersion()
obj.getProject()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章