YouTrack工作流:如何为自定义克隆命令指定项目参数?
在YouTrack中创建带参数的自定义克隆命令
我之前也踩过这个坑,YouTrack的actionFunction里没法直接拿到原始的命令参数字符串,得先在命令定义环节做好参数配置才行。下面是一步步的解决办法:
1. 给自定义命令添加参数配置
创建自定义命令时,找到「参数」设置区域(就在命令触发词输入框的下方),添加一个参数:
- 参数类型选「项目」(这样用户输入时会有项目自动补全,还能避免输入不存在的项目),如果要支持自由文本参数就选「文本」
- 参数名称设为
targetProject(这个名字要和后面代码里的调用对应上) - 可以补充提示文本,比如「输入要克隆到的目标项目名称」
2. 在actionFunction中获取并使用参数
配置好参数后,就能通过ctx.parameters拿到用户输入的参数值了。这里给你一个完整的克隆问题代码示例:
function(ctx) { // 从参数中获取目标项目 const targetProject = ctx.parameters.targetProject; // 先校验参数是否存在 if (!targetProject) { return "⚠️ 请指定要克隆到的目标项目!"; } // 获取当前要克隆的源问题 const sourceIssue = ctx.issue; // 执行克隆操作,用YouTrack内置的clone方法 return sourceIssue.clone({ project: targetProject, summary: sourceIssue.summary, description: sourceIssue.description, // 按需添加更多要克隆的字段,比如标签、优先级等 tags: sourceIssue.tags, priority: sourceIssue.priority }).then(clonedIssue => { return `✅ 问题已成功克隆到项目 ${targetProject.name}!克隆链接:${clonedIssue.url}`; }).catch(error => { return `❌ 克隆失败:${error.message}`; }); }
3. 命令的实际使用
配置完成后,用户在问题的命令输入框里输入clone_to ProjectB,YouTrack会自动把ProjectB映射到你定义的targetProject参数中,代码就能正确识别并执行克隆操作了。
额外提示
- 如果选「项目」类型参数,用户输入时会有智能补全,体验更流畅,还能避免无效输入
- 要确保执行命令的用户拥有「克隆问题」和「访问目标项目」的权限,否则会出现权限报错
- 如果需要多个参数,只需要在命令配置里添加多个参数项,然后在代码里通过
ctx.parameters.参数名分别获取即可
内容的提问来源于stack exchange,提问作者eresonance
相关产品推荐
相关产品推荐

