Die Codeüberprüfung in GitLab ist ein sehr wichtiger Link, wobei Merge Request (MR) eine sehr wichtige Methode ist. Wenn der Code-Editor einen MR auf GitLab einreicht, können Sie Anfragen auf der MR-Seite besprechen und ändern.
Wenn es um MR geht, kann die Kenntnis der Liste der in MR geänderten Dateien dabei helfen, die von Entwicklern vorgenommenen Änderungen besser zu verstehen und zu bewerten. In diesem Artikel erfahren Sie, wie Sie die von MR in GitLab geänderte Dateiliste erhalten.
Methode 1: Holen Sie es sich über die Befehlszeile
Zunächst müssen Sie das Repo lokal klonen.
Als nächstes müssen wir die API von GitLab installieren. Sie können es mit pip wie folgt installieren:
pip install python-gitlab
Nachdem die Installation abgeschlossen ist, müssen wir die ID und den privaten Token des Repos erhalten. Sie können das private Token erhalten, indem Sie die Repo-Homepage besuchen. Klicken Sie auf die drei Punkte in der oberen rechten Ecke. Besuchen Sie „Einstellungen“.
Nach Erhalt des privaten Tokens müssen Sie die für die GitLab-API erforderlichen Umgebungsvariablen festlegen:
export GITLAB_PRIVATE_TOKEN=<your_access_token> export GITLAB_URL=https://<your_gitlab_server>/api/v4
Jetzt können wir den folgenden Befehl verwenden, um die geänderten Dateien in MR abzurufen:
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'])
Sie können den ändern < im Code-Snippet Ersetzen Sie ;project_id>
und <merge_request_id>
durch tatsächliche Zahlen. <project_id>
和<merge_request_id>
替换为实际的数字。
方法二:通过GitLab API获取
首先,你需要获取到repo的ID和私有token,这个过程请参考方法一。
下面,我们将向你介绍如何使用GitLab API来获取MR中的修改文件。
我们可以发送以下请求(请替换<your_gitlab_server>
,<project_id>
,<merge_request_id>
<your_gitlab_server>
, <project_id>
, <merge_request_id>
und andere Informationen) :
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" }, ... ] }
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"])
Das obige ist der detaillierte Inhalt vonSo erhalten Sie die von MR geänderte Dateiliste in Gitlab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!