Naykipapからのこの回答のおかげで、私は実用的な解決策を見つけました。これが私が思いついたものです:
// copy attachments uploaded in screen to new issue
def changeItems = transientVars["changeItems"]
def uploadChanges = changeItems.findAll { item -> item.getField() == "Attachment" && item.getFieldType() == "jira" }
uploadChanges.each { uploadChange ->
def Attachment attachment = attachmentManager.getAttachment(uploadChange.getTo()?.toLong())
if (attachment) {
def filePath = PathUtils.joinPaths(pathManager.attachmentPath, currentIssue.projectObject.key, currentIssue.key, attachment.id.toString())
def atFile = new File(filePath)
if (atFile.canRead()) {
log.debug("Cloning attachment ${attachment.filename}")
attachmentManager.createAttachmentCopySourceFile(atFile, attachment.filename, attachment.mimetype, attachment.author, newIssue, [:], attachment.created)
}
}
}
重要:問題がdbに保存された後、スクリプトを実行する必要があります。それ以外の場合、transientVarsにchangeItemsがないか、添付ファイルがディスクに保存されません。私はそれを実行の最後まで動かしました、そしてそれは私にとってうまくいきました。