将 VSTS/Azure DevOps 中所有提交详细信息的列表导出到文件中?

Bit*_*eer 5 git reporting azure-devops

我想将存储库中所有提交的列表(日期时间、作者、评论)导出到一个文件(任何格式:CSV、XML、JSON、XLS 等)中,然后我将在电子表格中进行分析。

我想计算统计数据,例如:

  • 每个作者每月的提交次数
  • 每次提交的大小(更改的行数和文件数,以 kB 为单位的大小)
  • 一天中最繁忙的时间、一周中最繁忙的日子、一年中最繁忙的月份等。

这是一份高级管理报告,因此非技术经理可以了解工作的规模,而不会用实际的代码和架构细节来蒙蔽他们。

似乎没有明显的方法可以做到这一点。我在 Git 命令行文档中发现了一些复杂的想法,但没有一个能产生这些信息。不可否认,我不是 Git 专家。

有谁知道从 VSTS/Azure DevOps 或 Git 命令行中获取高级每次提交信息的简单方法?

直观地说,这应该很容易,但到目前为止,我必须将每一屏提交复制/粘贴到电子表格中,并逐步建立信息。疯狂的手动过程。但是在 Commits 下的 Azure Devops 浏览器界面中可以查看所有内容,为什么我不能一次导出所有内容?

当然,我不是地球上唯一想以这种方式分析提交活动的人!但到目前为止,我在网上找不到任何东西。

Bit*_*eer 6

感谢@Philippe 指导回答:

  • 在 .git 子目录中启动 MS-DOS 命令行以获取解决方案
  • 发出命令: git log --pretty=format:%h,%an,%aD,%s > ./GitLog.csv
  • 等待GitLog.csv文件出现并在电子表格程序中打开

格式选项含义:

  • %h = 提交哈希
  • %an = 作者姓名
  • %aD = 提交日期
  • %s = 主题(提交的评论)

有关更多信息,请参见此处:https : //git-scm.com/docs/pretty-formatshttps://devhints.io/git-log-format

这个解决方案没有给出每次提交的文件数量或大小,但它是一个很好的开始。

(菲利普,如果你能在正确的答案中移动你的评论,我会给你提供答案的功劳)

  • 这很好用,但在我的情况下,注释是非 unicode 字符(Pe​​rian 语言),此命令会导致注释字符不可读。有 **utf-8** 编码输出的选项吗? (2认同)

小智 5

我一直在寻找同样的:)看来管理层到处都需要类似的报告。

我认为我的解决方案更简单。阅读 AvureDevOps API 后,我意识到我们可以通过简单的 REST 查询来获取所有信息(它可以从浏览器中执行,因为它是 GET)

https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits?api-version=5.1&top$=10000

这提供了您需要的一切,包括更改数量。

参考 MS 文档: https://learn.microsoft.com/en-us/rest/api/azure/devops/git/commits/get%20commits? view=azure-devops-rest-5.1