Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.project.version.Version

// 配置源项目与目标项目 Key
final String sourceProjectKey = "L200A"
final String targetProjectKey = "JS"

def projectManager = ComponentAccessor.projectManager
def versionManager = ComponentAccessor.versionManager

def sourceProject = projectManager.getProjectObjByKey(sourceProjectKey)
def targetProject = projectManager.getProjectObjByKey(targetProjectKey)

assert sourceProject : "找不到源项目: ${sourceProjectKey}"
assert targetProject : "找不到目标项目: ${targetProjectKey}"

// 1. 获取源项目所有版本
Collection<Version> sourceVersions = versionManager.getVersions(sourceProject.id)
def existingNames = versionManager.getVersions(targetProject.id)*.name as Set

sourceVersions.each { version ->
    // 只处理已发布版本(按需保留或删除此判断)
    if (!version.released) return
    if (version.name in existingNames) return  // 跳过已存在
    // 2. 调用原生 createVersion 写入目标项目
    // 签名:createVersion(name, startDate, releaseDate, description, projectId, scheduleAfterVersion, released)
    versionManager.createVersion(
        version.name,
        version.startDate,
        version.releaseDate,
        version.description,
        targetProject.id,
        null,              // scheduleAfterVersion: 无需排序则传 null
        version.released
    )
}
  • No labels