GitLab でのコード レビューは非常に重要なリンクであり、その中でもマージ リクエスト (MR) は非常に重要な方法です。コードエディターが GitLab 上で MR を送信すると、MR ページで議論したりリクエストを変更したりできます。
MR について議論する場合、MR で変更されたファイルのリストを理解すると、開発者による変更をより深く理解し、評価することができます。この記事では、GitLab で MR が変更したファイル一覧を取得する方法を紹介します。
方法 1: コマンド ラインから取得する
まず、リポジトリをローカルに複製する必要があります。
次に、GitLab の API をインストールする必要があります。 pip を使用して次の方法でインストールできます:
pip install python-gitlab
インストールが完了したら、リポジトリの ID とプライベート トークンを取得する必要があります。プライベート トークンは、リポジトリのホームページにアクセスし、右上隅の 3 つの点をクリックし、[設定] にアクセスし、[アクセス トークン] にアクセスして取得できます。
プライベート トークンを取得した後、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>
を実際の数値に置き換えることができます。
方法 2: GitLab API 経由で取得する
まず、リポジトリの ID とプライベート トークンを取得する必要があります。このプロセスについては、方法 1 を参照してください。
以下では、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 中国語 Web サイトの他の関連記事を参照してください。