生成两个标签之间合并的所有合并请求的列表,所有信息都在 csv 文件中

问题描述 投票:0回答:2

我正在尝试创建一个 csv 文件,其中包含有关两个标签之间合并的合并请求的所有信息。我正在尝试为每个合并请求获取此类信息:

UID; ID; TITLE OF MR; REPOSITORIES; STATUS; MILESTONE; ASSIGNED; CREATION-DATE; MERGED-DATE; LABEL; URL.

现在我有一个命令,可以将两个标签之间的所有合并请求与一些信息合并,并将其放入 csv 文件中:

git log --merges --first-parent master --pretty=format:"%aD;%an;%H;%s;%b" TagA..TagB --shortstat >> MRList.csv

如何获取其他信息?我在 git log api 中只看到我的命令中的选项,但我找不到其他选项。

谢谢您的帮助!

gitlab export-to-csv git-merge pretty-print git-log
2个回答
3
投票

我编写了一个小型 Python 脚本来执行此操作。用途:

git log --pretty="format:%H" <start>..<end> | python collect.py

脚本:

#!/usr/bin/env python

import sys
import requests

endpoint = 'https://gitlab.com'
project_id = '4242'

mrs = set()
for line in sys.stdin:
    hash = line.rstrip('\n')
    r = requests.get(endpoint + '/api/v4/projects/' + project_id + '/repository/commits/' + hash + '/merge_requests')
    for mr in r.json():
        if mr['state'] != 'merged':
            continue
        if mr['id'] in mrs:
            continue
        mrs.add(mr['id'])

        print('!{} {} ({})'.format(mr['iid'], mr['title'], mr['web_url']), flush=True)

0
投票

目前,这还没有在两个标签之间,但你可以通过 GitLab 13.6(2020 年 11 月):

将合并请求导出为 CSV

许多组织需要记录变更(合并请求)以及与这些事务相关的数据,例如谁编写了 MR、谁批准了它以及该变更何时合并到生产中。虽然不是详尽的列表,但它强调了可追溯性的反复出现的主题以及从 GitLab 导出此数据以满足审计或其他监管要求的需要。

以前,您需要使用 GitLab 的 merge requests API 来使用自定义工具编译此数据。现在,您只需单击一个按钮即可收到一个 CSV 文件,其中包含您所需的必要监管链信息。

请参阅文档问题

© www.soinside.com 2019 - 2024. All rights reserved.