首先需要安裝python-gitlab
函式庫
1 |
|
1 2 3 |
|
首先需要對環境進行設定才能使用cli ,需要提供一個設定文件,指明gitlab server 資訊以及連線參數,設定檔格式為 INI
,樣例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
其中 global
部分是必須提供的,主要是連接gitlab 的參數
#其他部分是可選,當沒有設定時預設用的是default
使用過程中可以透過 -g
指定具體使用的是那一節,如 gitlab -g somewhere project list
本文使用的設定檔如下:
1 2 3 4 5 6 7 8 |
|
設定檔可以透過以下幾種方法生效:
透過環境變數設定 PYTHON_GITLAB_CFG
放在系統設定下 /etc/python-gitlab.cfg
放在目前使用者home 目錄下 ~/.python-gitlab.cfg
透過命令列指定-c
或 --config-file
#本文的設定檔放在了home 下。
當設定好了環境就可以愉快的使用了
列出所有的project (分頁回傳)
1 2 |
|
列出所有的project
1 |
|
#試到這裡有個疑問,怎麼知道 gitlab
目前支援哪些指令呢
1 2 3 4 5 |
|
這樣可以列出目前gitlab 支援的資源,知道了支援的資源,那有怎麼知道某種資源支援哪些操作的,以project 為例,
1 2 3 4 5 6 |
|
這樣就可以知道 gitlab
支援對何種資源做哪些操作,再透過 --help
就可以知道特定的參數,如
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
這樣就可以很方便的對 gitlab
進行操作了。
除了透過命令列操作gitlab 之外,還可以用程式設計的方式進行集成,一個常見的場景,要從gitlab 下載某個檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
透過gitlab raw url 進行下載檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
原始碼位址: https://github. com/python-gitlab/python-gitlab/
從setup.py#L31:5 可以看出
1 2 3 4 5 6 7 8 9 |
|
python-gitlab 採用setuptools 進行打包,打成的包有兩個作用:
當成python 函式庫使用(預設)
entry_points={"console_scripts": ["gitlab = gitlab. cli:main"]}
說明可以當作cli 使用,指令是 gitlab
,真正呼叫的是 gitlab.cli:main
函數
#在看 cli.py
這個入口文件,從入口文件可以看到cli.py#L182:14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
這裡可以cli 解析函式庫用的是 argparse
做命令列參數的解析。
透過 GitlabCLI
class cli.py#L29:7 可以看出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
cli 基本格式為 gitlab what action args
,即上圖cli
章節提到的 gitlab 支援的資源做什麼操作對應的參數
透過走讀 client.py
client.py#L446 :9 這個檔案可以看到
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
|
以上是python中gitlab函式庫有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!