我正在尝试创建一个 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 中只看到我的命令中的选项,但我找不到其他选项。
谢谢您的帮助!
我编写了一个小型 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)
目前,这还没有在两个标签之间,但你可以通过 GitLab 13.6(2020 年 11 月):
将合并请求导出为 CSV
许多组织需要记录变更(合并请求)以及与这些事务相关的数据,例如谁编写了 MR、谁批准了它以及该变更何时合并到生产中。虽然不是详尽的列表,但它强调了可追溯性的反复出现的主题以及从 GitLab 导出此数据以满足审计或其他监管要求的需要。
以前,您需要使用 GitLab 的 merge requests API 来使用自定义工具编译此数据。现在,您只需单击一个按钮即可收到一个 CSV 文件,其中包含您所需的必要监管链信息。