gitlab中怎么獲取一次MR修改的文件列表

在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'])

你可以將代碼片段中的替換為實際的數字。

方法二:通過GitLab API獲取

首先,你需要獲取到repo的ID和私有token,這個過程請參考方法一。

下面,我們將向你介紹如何使用GitLab API來獲取MR中的修改文件。

我們可以發送以下請求(請替換等信息):

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修改的文件列表。根據你的需要,你可以選擇任何一種方法。無論選擇哪種方法,都可以幫助你更好的理解代碼審核中的變更。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享