Автоматизируйте создание задачи в Jira - malikovalibek/groovyForJira GitHub Wiki

Обзор Этот сценарий экономит ваше время и усилия при создании задач вручную. Вы можете добавить этот скрипт в любое место в Jira, что позволяет вам добавлять пользовательский скрипт, например слушателей, функции рабочего процесса, конечные точки REST. Вы можете добавить этот сценарий как отдельный сценарий или как часть более крупного сценария, чтобы создать серьезную автоматизацию!

пример Я менеджер по продукту, и мне нужно еженедельно создавать несколько выпусков для разных отделов. Например, мне нужно, чтобы отдел маркетинга предоставил мне еженедельный аналитический отчет по проводимым нами продуктовым кампаниям. Раньше мне приходилось каждую неделю вручную назначать эти задачи. Однако этот сценарий означает, что задачи автоматически создаются еженедельно.

Хорошо знать Если пользователь-репортер не существует, он назначается вошедшему в систему пользователю. Определенный тип проблемы должен существовать в проекте. (Сервер) Если заданный приоритет не существует, он принимает приоритет проекта по умолчанию. (Облако) Если заданный приоритет не существует, он принимает первый приоритет, возвращаемый конечной точкой «приоритет».

import com.atlassian.jira.component.ComponentAccessor

// the project key under which the issue will get created final projectKey = 'TEST'

// the issue type for the new issue final issueTypeName = 'Bug'

// user with that user key will be the reporter of the issue final reporterKey = 'auser'

// the summary of the new issue final summary = 'Groovy Friday'

// the priority of the new issue final priorityName = 'Major'

def issueService = ComponentAccessor.issueService def constantsManager = ComponentAccessor.constantsManager def loggedInUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser

def project = ComponentAccessor.projectManager.getProjectObjByKey(projectKey) assert project : "Could not find project with key $projectKey"

def issueType = constantsManager.allIssueTypeObjects.findByName(issueTypeName) assert issueType : "Could not find issue type with name $issueTypeName"

// if we cannot find user with the specified key or this is null, then set as a reporter the logged in user def reporter = ComponentAccessor.userManager.getUserByKey(reporterKey) ?: loggedInUser

// if we cannot find the priority with the given name or if this is null, then set the default priority def priority = constantsManager.priorities.findByName(priorityName) ?: constantsManager.defaultPriority

def issueInputParameters = issueService.newIssueInputParameters().with { setProjectId(project.id) setIssueTypeId(issueType.id) setReporterId(reporter.key) setSummary(summary) setPriorityId(priority.id) }

def validationResult = issueService.validateCreate(loggedInUser, issueInputParameters) assert validationResult.isValid() : validationResult.errorCollection

def result = issueService.create(loggedInUser, validationResult) assert result.isValid() : result.errorCollection