jira - Bamboo 可以更改 JIRA 中的票证状态吗

标签 jira bamboo

我们有一个使用 JIRA 集成设置的 Bamboo 环境。

每当开发人员向 git 提交已修复的问题时,他都会在提交消息中记录问题编号,并且确实我可以在 Bamboo 中看到该问题的正确链接,这会导致 JIRA 中的票证。

我想知道 - Bamboo 有没有办法自动将提交到构建的每个票证的票证状态设置为“准备 QA”?

因此,例如,如果我开始一个在 JIRA 中提交了 ISSUE-123 的新构建,Bamboo 会将 ISSUE-123 状态设置为“准备 QA”?

最佳答案

是的,Bamboo 可以更改 JIRA 中的票证状态。但是你需要做一点魔法。

首先,您需要学习如何使用CLI plugin for JIRA .它是一个很棒的工具(值得一提的是,它在 2010 年成为了 atlassian codegeist contest 的赢家),用于自动化常规 JIRA 相关任务。实际上,这个工具的几个版本允许通过命令行脚本自动化几乎所有的 Atlassian 工具(JIRA、Confluence、Bamboo、Crucible、Fisheye、Stash)。尽管它有点慢,但它几乎可以做任何事情,包括问题状态更改。请注意,它既可以用作 JIRA 插件,也可以用作独立的命令行工具。您需要在运行 Bamboo 构建代理的机器上安装独立版本的 JIRA CLI 插件(这里是 installation guide)。

为了在 JIRA 中快速跟踪问题(即 Atlassian 开发人员如何调用自动更改问题状态的过程),您需要使用以下命令:

java -jar jira-cli-3.3.0.jar --action progressIssue --issue ISSUE-123 --step WORKFLOW_TRANSITION_ID --user USERNAME --password PASSWORD --server http://yourjira.company.com 

用您的实际值替换模板选项值。重要值是 WORKFLOW_TRANSITION_ID只要它指定将使用哪个工作流转换来将您的 JIRA 问题转换为您实际需要的状态。为了找到WORKFLOW_TRANSITION_ID ,您需要检查用于 ISSUE-123 的工作流程。通常,您将快速跟踪具有相同问题类型(例如,错误、增强等)的问题。此外,通常具有相同问题类型的问题具有相同的工作流程(例如,Bug 工作流程)。

您需要进入 JIRA 的管理部分并找到该工作流程。然后,您需要找出导致更新后您希望问题具有的状态的所有转换的 ID。在您的情况下,您需要找到“准备 QA”状态及其所有传入转换。记下这些转换的 id 并稍后使用它们以替换 WORKFLOW_TRANSITION_ID模板中的值。

如果您有 ID 为 51、62 和 83 的过渡,那么您的脚本将如下所示:
java -jar jira-cli-3.3.0.jar --action progressIssue --issue ISSUE-123 --step 51 --user USERNAME --password PASSWORD --server http://yourjira.company.com
java -jar jira-cli-3.3.0.jar --action progressIssue --issue ISSUE-123 --step 62 --user USERNAME --password PASSWORD --server http://yourjira.company.com
java -jar jira-cli-3.3.0.jar --action progressIssue --issue ISSUE-123 --step 83 --user USERNAME --password PASSWORD --server http://yourjira.company.com

如果您需要快速跟踪其他问题类型的问题,因此需要快速跟踪工作流,您将需要找到这些工作流并找到导致“准备 QA”状态的转换(如果工作流实际使用),就像您所做的一样之前的工作流程。

如果您对所有可用的命令行选项及其值感到困惑,请使用 JIRA CLI documentation作为命令行选项引用。

在您弄清楚将问题快速跟踪到所需状态的脚本内容后(在您的情况下为“准备 QA”),您需要将其包含到 Bamboo 使用的构建脚本中。

下一步是将快速跟踪脚本的内容存储到文件中:

Bash (build.sh):
while getopts "j:" opt; do
  case $opt in
    j)
      java -jar jira-cli-3.3.0.jar --action progressIssue --issue $OPTARG --step 51 --user USERNAME --password PASSWORD --server http://yourjira.company.com
      java -jar jira-cli-3.3.0.jar --action progressIssue --issue $OPTARG --step 62 --user USERNAME --password PASSWORD --server http://yourjira.company.com
      java -jar jira-cli-3.3.0.jar --action progressIssue --issue $OPTARG --step 83 --user USERNAME --password PASSWORD --server http://yourjira.company.com
      ;;
    \?)
      echo "No issue key has been passed: -$OPTARG" >&2
      ;;
  esac
done

请注意,它使用 -j选项以便将脚本的 JIRA 问题 key 指定为命令行参数。

其他一切都取决于您使用的构建管理工具(Ant、Maven 或只是普通的 bash)。但是,在任何情况下,您都可以将 jira key ( Bamboo 从 git 注释中为您获取的)作为您在 Bamboo 上使用的构建脚本的命令行选项传递:

重击:
./build.sh -j ${bamboo.issueKey} 

Ant :
ant -Djirakey=${bamboo.issueKey}

行家:
mvn -Djirakey=${bamboo.issueKey}

您需要的最后一步是为您使用的构建管理工具调整快速跟踪代码。

Ant (build.xml):
<exec executable="bash" dir=".">
   <arg value="build.sh"/>
   <arg value="-j"/>
   <arg value="${jirakey}"/>
</exec>

对于 Maven 它要复杂得多。使用 maven exec执行插件 build.sh从你的构建脚本。

为了避免编写复杂的构建脚本,您可以选择 add standalone build step在成功构建后运行的 Bamboo 上。但在这种情况下,您将无法在构建仍在运行时更新问题状态(实际上,不确定,您是否想要这样做)。通常添加独立构建步骤足以实现您想要的。就放 ./build.sh -j ${bamboo.issueKey}在“参数”字段中,同时在 Bamboo 上添加新的构建步骤。

注意:我没有测试任何这些脚本,因为目前我没有安装 Bamboo ,也没有机会试验 CI 服务器的快速跟踪。因此,请小心并确保您了解自己在做什么。

希望我的建议能帮助你实现你想要的。祝你好运!

关于jira - Bamboo 可以更改 JIRA 中的票证状态吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16505433/

相关文章:

java - 发布时找不到资源包

bamboo - 如何在 Bamboo 墙板上显示所有发布和支持分支

continuous-integration - 支持 GitLab 中自动生成的 "Release notes"

JIRA REST API 6.01 - 列出所有组

mysql - Jira:连接数据库时出错

continuous-integration - 是否可以在一台计算机上为 Atlassian Bamboo 安装多个远程代理?

.net-core - 在 Bamboo 中显示 Asp.Net.Core XUnit 测试结果

java - 创建临时文件时出现IOException?

JIRA - 将一个子任务从一个故事移到另一个故事

jira - 是否可以从 greenhopper/Jira 中取消删除任务?