目前,管理我们的代码的工作流程是错误的。为了解决这个问题,我们决定采用新的工作流程。现在有了工具,我们试图实现这一点。
实施的第一步是找出当项目从TO-DO移动时自动创建特征分支的方法---> JIRA正在进行中。
我昨天和今天花了很多钱来解决这个问题但没有结果。根据Atlassian文档,有一种方法可以创建触发器,只要对项密钥执行某些操作,它就会自动更新JIRA中的项。但是,我需要反过来,如果项目从to-do移动到哪里 - > in -progress创建一个分支。以下是我想要实现的目标。
TO D0 - >正在进行中 - 分支从开发中分出来。 正在进行中 - >需要测试 - 分叉分支合并到测试环境中。
在测试中 - >测试完成---合并分叉分支以开发以及暂存和删除fork分支。
请建议。
答案 0 :(得分:0)
我们将开发,质量检查和发布工作流程的所有部分以某种方式集成到JIRA中,但并非所有部分都严格自动化。我不推荐你的做法。在Stash(现在称为Bitbucket)具有该功能之前,我们编写了一个自定义Google estension,在故障单细节上注入一个部分,以显示链接到Stash的分支创建屏幕的分支创建链接。我们只需要每个开发人员使用此方法创建其分支,以确保所有分支都具有确切的问题ID(JIRA-123)。然后,扩展程序还会按问题ID查找相应的分支,如果有,则会将其显示在故障单详细信息屏幕上。
如果你试图在没有Stash的情况下完成所有这些操作,你当然可以让git自动创建一个分支,但我猜你是否必须经常开始清理分支,如果某些故障单开始但后来被更改或稍后优先级排序
无论如何,如果你真的想这样做,你需要转到http://(yourjira)/plugins/servlet/webhooks或从任何JIRA屏幕点击GG并输入“webhooks”
您可以创建一个钩子,检查“问题更新”框,使其仅在问题转换时触发,并将您的webhook指向您要编写的脚本的URL以创建分支。
在PHP中,您可以使用此代码接收webhook POST数据,并在移动故障单时将$ transition设置为新状态的值,在您的情况下,我认为是“In-Progress”。
$raw = file_get_contents("php://input");
$data = json_decode($raw);
if (json_last_error() == JSON_ERROR_NONE && $data)
{
// get the transition name if it exists and this is an update command
$changelog_items_array = $data->changelog->items;
$changelog_last_item_key = array_search(max($changelog_items_array),$changelog_items_array);
$transition = $changelog_items_array[$changelog_last_item_key]->toString;
}