import com.atlassian.jira.project.Project; //導入方法依賴的package包/類
public void addIssueTypesToProjectIssueTypeScheme(final Project jiraProject, final List hubIssueTypes) {
// Get Project's Issue Type Scheme
try {
final FieldConfigScheme issueTypeScheme = jiraServices.getIssueTypeSchemeManager()
.getConfigScheme(jiraProject);
final Collection origIssueTypeObjects = jiraServices.getIssueTypeSchemeManager()
.getIssueTypesForProject(jiraProject);
final Collection issueTypeIds = new ArrayList<>();
for (final IssueType origIssueTypeObject : origIssueTypeObjects) {
issueTypeIds.add(origIssueTypeObject.getId());
}
// Add BDS Issue Types to it
boolean changesMadeToIssueTypeScheme = false;
for (final IssueType bdIssueType : hubIssueTypes) {
if (!origIssueTypeObjects.contains(bdIssueType)) {
logger.debug("Adding issue type " + bdIssueType.getName() + " to issue type scheme "
+ issueTypeScheme.getName());
issueTypeIds.add(bdIssueType.getId());
changesMadeToIssueTypeScheme = true;
} else {
logger.debug("Issue type " + bdIssueType.getName() + " is already on issue type scheme "
+ issueTypeScheme.getName());
}
}
if (changesMadeToIssueTypeScheme) {
logger.debug("Updating Issue Type Scheme " + issueTypeScheme.getName());
jiraServices.getIssueTypeSchemeManager().update(issueTypeScheme, issueTypeIds);
} else {
logger.debug(
"Issue Type Scheme " + issueTypeScheme.getName() + " already included Black Duck Issue Types");
}
} catch (final Exception e) {
logger.error(e);
String jiraProjectName = null;
if (jiraProject != null) {
jiraProjectName = jiraProject.getName();
}
settingService.addHubError(e, null, null, jiraProjectName, null, null, "addIssueTypesToProjectIssueTypeScheme()");
}
}