在GitLab中進行程式碼審核是一個非常重要的環節,其中Merge Request(MR)是一種非常重要的方式。當程式碼編輯器在GitLab上提交一個MR後,你可以在MR頁面進行討論和變更請求。
在討論MR時,了解MR中修改的文件清單可以幫助更好的理解和評估開發人員所做的變更。本文將向你介紹如何在GitLab中取得一次MR修改的檔案清單。
方法一:透過命令列取得
首先,你需要在本機上複製repo。
接下來,我們需要安裝GitLab的API。你可以透過以下方式使用pip進行安裝:
pip install python-gitlab
安裝完成後,我們需要取得repo的ID和私有token。你可以透過造訪repo首頁 --> 點選右上角的三個點 --> 造訪"Settings" --> 造訪"Access Token"來取得私有token。
取得到私有token後,你需要設定GitLab API所需的環境變數:
export GITLAB_PRIVATE_TOKEN=<your_access_token> export GITLAB_URL=https://<your_gitlab_server>/api/v4
現在,我們可以使用以下指令來取得MR中的修改檔:
gl = gitlab.Gitlab(os.environ['GITLAB_URL'], private_token=os.environ['GITLAB_PRIVATE_TOKEN']) project = gl.projects.get(<project_id>) merge = project.merge_requests.get(<merge_request_id>) changes = merge.changes() files = changes.get('changes') for file in files: print(file['new_file']['path'])
你可以將程式碼片段中的<project_id>
和<merge_request_id>
替換為實際的數字。
方法二:透過GitLab API取得
首先,你需要取得到repo的ID和私有token,這個流程請參考方法一。
下面,我們將向你介紹如何使用GitLab API來取得MR中的修改文件。
我們可以發送以下請求(請替換<your_gitlab_server>
,<project_id>
,<merge_request_id>
等資訊):
GET https://<your_gitlab_server>/api/v4/projects/<project_id>/merge_requests/<merge_request_id>/changes
回應將如下所示:
{ "changes": [ { "old_path": "Old file path", "new_path": "New file path" }, ... ] }
我們可以在程式碼中使用以下Python程式碼來解析回應並取得檔案清單:
import os import requests url = f"https://<your_gitlab_server>/api/v4/projects/<project_id>/merge_requests/<merge_request_id>/changes" response = requests.get(url, headers={"PRIVATE-TOKEN": "<your_access_token>"}) changes = response.json()["changes"] for change in changes: print(change["new_path"])
你可以根據你的需求修改輸出檔案列表的程式碼。
總結
在本文中,我們向你介紹如何透過命令列和GitLab API來取得一次MR修改的檔案清單。根據你的需要,你可以選擇任何一種方法。無論選擇哪種方法,都可以幫助你更好的理解程式碼審核中的變更。
以上是gitlab中怎麼取得一次MR修改的檔案列表的詳細內容。更多資訊請關注PHP中文網其他相關文章!