从 git log 或 git show 解析批准者



使用 --pretty=format ,您可以根据需要格式化git loggit show标准输出。

git log 
--pretty=format:'{%n  "commit": "%H",%n  "author": "%an <%ae>",%n  "date": "%ad",%n  "message": "%f"%n},' 
$@ | 
perl -pe 'BEGIN{print "["}; END{print "]n"}' | 
perl -pe 's/},]/}]/'

上面的示例解析作者、提交、日期、消息值。我们如何解析拉取请求获得批准时可用的Approved-by值。

甚至官方文件也没有提到

Approved-by不是

内置字段,因此 Git 没有占位符。我们可以使用其他方法来获取字段并格式化输出。

假设Approved-by行如下所示:

批准人:好人

这是一个 bash 示例:

for commit in $(git log --pretty=%H);do
  echo -e "{n
    "commit": "$commit",n
    "author": "$(git log -1 $commit --pretty=%an)",n
    "date": "$(git log -1 $commit --pretty=%cd)",n
    "message": "$(git log -1 $commit --pretty=%f)",n
    "approved-by": "$(git log -1 $commit --pretty=%b | grep Approved-by | awk -F ': ' '{print $NF","}' | xargs echo | sed -e 's/,$//')"n
},"
done | 
perl -pe 'BEGIN{print "["}' | 
sed -e '$s/},/}]/'

它需要改进以满足您的实际需求,尤其是"approved-by"线。基本上,它首先获取所有提交 sha1 值,然后解析它们以获取每个提交的字段,然后格式化输出。

最新更新