You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ScriptRunner操作Jira Cloud创建工单、关联工单及复制附件问题求助

工单关联创建失败解决方法

你代码里有三个可直接修复的错误:

  • 变量名大小写错误:Groovy语法大小写敏感,你预先定义的触发工单key变量是issueKey(K大写),但在关联配置中写的是issuekey(k小写),该变量为null导致关联参数无效。
  • issuelinks结构不符合Jira REST API规范:issuelinks字段是操作列表,每个add操作需要额外包裹一层数组。
  • 关联类型参数冗余:创建关联时仅需传入关联类型的name/id即可,传入inward/outward参数会触发接口校验失败。

修改后的创建工单body配置参考:

.body([
    fields: [
        summary : summary,
        description: description,
        customfield_10078: [
            id: sysname
        ],
        customfield_10060: ticketno,
        project : [
            key: projectkey
        ],
        issuetype : [
            id: issuetypekey
        ]
    ],
    update: [
        issuelinks: [
            [
                add: [
                    type:[
                        name: "Blocks"
                    ],
                    outwardIssue: [
                        key: issueKey
                    ]
                ]
            ]
        ]
    ]
])

如果修改后仍不生效,可额外检查两点:

  • 执行脚本的用户拥有两个项目的「关联工单」权限
  • 你的Jira实例中确实存在名为Blocks的关联类型,中文实例可能名为阻塞,替换为对应名称即可。

中文附件名乱码解决方法

该问题不需要额外引入依赖,仅需上传时对文件名做UTF-8编码即可,修改附件上传部分的.field参数:

def encodedFileName = URLEncoder.encode(attachment['filename'] as String, "UTF-8").replace("+", "%20")
def resp = Unirest.post("/rest/api/2/issue/${clonedIssue.id}/attachments")
        .header("X-Atlassian-Token", "no-check")
        .field("file", fileBody, ContentType.create(attachment['mimeType'] as String), encodedFileName)
        .asObject(List)

编码时将空格对应的+替换为%20可避免文件名中空格被错误识别。


内容的提问来源于stack exchange,提问作者Carlos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:54:04