如何将Github问题集成到人工构建信息中

罗兰杨
2023-01-22还剩11分08秒

主题

如何将Github问题集成到人工构建信息中

描述

将JIRA问题添加到构建信息是一个相当简单的过程,但是如何处理Github问题呢?

决议

使用JFrog CLI,有一个命令允许从本地. Git目录收集Git信息,并将其添加到build-info中。它还可以收集跟踪项目问题的列表(例如,存储在JIRA或其他bug跟踪系统中的问题),并将它们添加到build-info中。通过从本地git日志中读取git提交消息来收集问题。每个提交消息都与预配置的正则表达式匹配,正则表达式检索问题ID和问题摘要。本指南假设已经设置了JFrog CLI。

例如,如果我想从官方的JFrog图表Github存储库中收集Github问题,我需要一个配置文件issues-config。它包括以下内容:

版本:1
问题:
serverID:艺术
trackerName: GITHUB
regexp: \ # ([0 - 9] +) \ s - \ s(+)。
keyGroupIndex: 1
summaryGroupIndex: 2
trackerUrl: https://github.com/jfrog/charts/issues
总:真

使用的标准Github速记语法链接Github问题到提交使用#和问题号,我运行以下提交消息:$ git commit -m "尝试2修复#1 -测试问题"

这将把问题1与这个提交联系起来。您可以从我的regexp中看到,有2组,([0-9]+)和(.+)。这是在以下参数keyGroupIndex和summaryGroupIndex中捕获的内容。我们可以看到我的提交是“尝试2修复#1 -测试问题”,因此它将从“#”匹配,并将“1”添加到第一组(keyGroupIndex),并将“测试问题”添加到第二组(summaryGroupIndex)。您可能需要使用这个正则表达式来获得适合您需要的正确格式。

例如,如果您需要在github问题之前获得摘要,$ git commit -m " try 2 to fix: test issue - #1"试试这样的东西\: \ s (+) \ s - \ s # ([0 - 9] +),其中“test issue”将是第1组,“1”将是第2组,因此keyGroupIndex将是2,summaryGroupIndex将是1。

Github简写链接的另一个例子是GH-1而不是#1,$ git commit -m "尝试2修复:测试问题- GH-1"。在这种情况下,正则表达式将是:\: \ s (+) \ s - \功能减退([0 - 9]+)。同样,您需要将keyGroupIndex设置为2,并将summaryGroupIndex设置为1。

稍后,keyGroupIndex将包含一个链接,该链接将trackerUrl与keyGroupIndex结合起来。在我们的例子中,“尝试2修复#1 -测试问题”将把“#1”链接到Github链接中的https://github.com/jfrog/charts/issues/1。因此,在我们的构建信息中,我们将合并我们的trackerUrl + '/' + keyGroupIndex;https://github.com/jfrog/charts/issues + '/' + 1,给出了正确的链接。您需要事先去掉'//www.si-fil.com/www/knowledge-base/how-to-integrate-github-issues-into-artifactory-build-info/#'以符合Github的问题URL链接语法。

然后,运行正常的jfrog CLI构建命令,然后运行这个新命令:$ jfrog rt bag ——config issues-config

在你发表($ jfrog rt bp ),导航到问题选项卡,您应该会看到新发现的github问题。在build-info中也应该有一个问题部分。Json,看起来像这样:"问题":{
“追踪”:{
“名称”:“GITHUB”
},
“aggregateBuildIssues”:没错,
“affectedIssues”:[{
“关键”:“1”,
“url”:“https://github.com/jfrog/charts/issues/1”,
“summary”:“test issue”;
“聚合”:假的
})
}

有关配置文件和命令的更多信息,您可以在我们的wiki中阅读“从Git收集信息”:
//www.si-fil.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-CollectingBuildInformation