use of com.synopsys.integration.alert.channel.jira.cloud.JiraCloudProperties in project hub-alert by blackducksoftware.
the class JiraCloudGlobalFieldModelTestAction method isUserAdmin.
@Override
protected boolean isUserAdmin(FieldUtility fieldUtility) throws IntegrationException {
JiraCloudProperties jiraProperties = jiraCloudPropertiesFactory.createJiraProperties(fieldUtility);
JiraCloudServiceFactory jiraCloudServiceFactory = jiraProperties.createJiraServicesCloudFactory(logger, gson);
MyPermissionsService myPermissionsService = jiraCloudServiceFactory.createMyPermissionsService();
MultiPermissionResponseModel myPermissions = myPermissionsService.getMyPermissions(JiraGlobalFieldModelTestAction.JIRA_ADMIN_PERMISSION_NAME);
PermissionModel adminPermission = myPermissions.extractPermission(JiraGlobalFieldModelTestAction.JIRA_ADMIN_PERMISSION_NAME);
return null != adminPermission && adminPermission.getHavePermission();
}
use of com.synopsys.integration.alert.channel.jira.cloud.JiraCloudProperties in project hub-alert by blackducksoftware.
the class JiraCloudGlobalFieldModelTestAction method isAppMissing.
@Override
protected boolean isAppMissing(FieldUtility fieldUtility) throws IntegrationException {
JiraCloudProperties jiraProperties = jiraCloudPropertiesFactory.createJiraProperties(fieldUtility);
JiraCloudServiceFactory jiraCloudServiceFactory = jiraProperties.createJiraServicesCloudFactory(logger, gson);
PluginManagerService jiraAppService = jiraCloudServiceFactory.createPluginManagerService();
return !jiraAppService.isAppInstalled(JiraConstants.JIRA_APP_KEY);
}
use of com.synopsys.integration.alert.channel.jira.cloud.JiraCloudProperties in project hub-alert by blackducksoftware.
the class JiraCloudGlobalFieldModelTestAction method canUserGetIssues.
@Override
protected boolean canUserGetIssues(FieldUtility fieldUtility) throws IntegrationException {
JiraCloudProperties jiraProperties = jiraCloudPropertiesFactory.createJiraProperties(fieldUtility);
JiraCloudServiceFactory jiraCloudServiceFactory = jiraProperties.createJiraServicesCloudFactory(logger, gson);
IssueSearchService issueSearchService = jiraCloudServiceFactory.createIssueSearchService();
IssueSearchResponseModel issueSearchResponseModel = issueSearchService.queryForIssuePage("", 0, 1);
return issueSearchResponseModel.getIssues().size() > 0;
}
use of com.synopsys.integration.alert.channel.jira.cloud.JiraCloudProperties in project hub-alert by blackducksoftware.
the class JiraCloudProcessorFactory method createProcessor.
@Override
public IssueTrackerProcessor<String> createProcessor(JiraCloudJobDetailsModel distributionDetails) throws AlertException {
JiraCloudProperties jiraProperties = createJiraCloudProperties();
JiraCloudServiceFactory jiraCloudServiceFactory = jiraProperties.createJiraServicesCloudFactory(logger, gson);
if (!jiraProperties.isPluginCheckDisabled()) {
checkIfAlertPluginIsInstalled(jiraCloudServiceFactory.createPluginManagerService());
}
// Jira Cloud Services
IssueService issueService = jiraCloudServiceFactory.createIssueService();
IssueSearchService issueSearchService = jiraCloudServiceFactory.createIssueSearchService();
IssuePropertyService issuePropertyService = jiraCloudServiceFactory.createIssuePropertyService();
// Common Helpers
JiraIssueAlertPropertiesManager issuePropertiesManager = new JiraIssueAlertPropertiesManager(gson, issuePropertyService);
// Extractor Requirement
JiraIssueStatusCreator jiraIssueStatusCreator = new JiraIssueStatusCreator(distributionDetails.getResolveTransition(), distributionDetails.getReopenTransition());
JiraSearcherFactory jiraSearcherFactory = new JiraSearcherFactory(issuePropertiesManager, jiraIssueStatusCreator, issueService::getTransitions, issueCategoryRetriever, modelTransformer);
JiraCloudQueryExecutor jiraCloudQueryExecutor = new JiraCloudQueryExecutor(issueSearchService);
IssueTrackerSearcher<String> jiraSearcher = jiraSearcherFactory.createJiraSearcher(distributionDetails.getProjectNameOrKey(), jiraCloudQueryExecutor);
IssueTrackerModelExtractor<String> extractor = new IssueTrackerModelExtractor<>(jiraMessageFormatter, jiraSearcher);
ProjectService projectService = jiraCloudServiceFactory.createProjectService();
FieldService fieldService = jiraCloudServiceFactory.createFieldService();
JiraCustomFieldResolver customFieldResolver = new JiraCustomFieldResolver(fieldService::getUserVisibleFields);
JiraIssueCreationRequestCreator issueCreationRequestCreator = new JiraIssueCreationRequestCreator(customFieldResolver);
JiraErrorMessageUtility jiraErrorMessageUtility = new JiraErrorMessageUtility(gson, customFieldResolver);
IssueTrackerMessageSender<String> messageSender = messageSenderFactory.createMessageSender(issueService, distributionDetails, projectService, issueCreationRequestCreator, issuePropertiesManager, jiraErrorMessageUtility);
return new IssueTrackerProcessor<>(extractor, messageSender);
}
use of com.synopsys.integration.alert.channel.jira.cloud.JiraCloudProperties in project hub-alert by blackducksoftware.
the class JiraCloudCustomFunctionAction method createActionResponse.
@Override
public ActionResponse<String> createActionResponse(FieldModel fieldModel, HttpServletContentWrapper ignoredServletContent) {
JiraCloudProperties jiraProperties = jiraCloudPropertiesFactory.createJiraProperties(fieldModel);
try {
JiraCloudServiceFactory jiraServicesCloudFactory = jiraProperties.createJiraServicesCloudFactory(logger, gson);
PluginManagerService jiraAppService = jiraServicesCloudFactory.createPluginManagerService();
int statusCode = jiraAppService.installMarketplaceCloudApp(JiraConstants.JIRA_APP_KEY);
if (!HttpStatusCodes.isSuccess(statusCode)) {
return new ActionResponse<>(HttpStatus.BAD_REQUEST, "The Jira Cloud server responded with error code: " + statusCode);
}
boolean jiraPluginInstalled = JiraPluginCheckUtils.checkIsAppInstalledAndRetryIfNecessary(jiraAppService);
if (!jiraPluginInstalled) {
return new ActionResponse<>(HttpStatus.NOT_FOUND, String.format("Unable to confirm successful installation of the Jira Cloud '%s' plugin. Please verify the installation on your Jira Cloud server.", JiraConstants.JIRA_ALERT_APP_NAME));
}
return new ActionResponse<>(HttpStatus.OK, String.format("Successfully installed the '%s' plugin on Jira Cloud", JiraConstants.JIRA_ALERT_APP_NAME));
} catch (IntegrationException e) {
logger.error("There was an issue connecting to Jira Cloud", e);
return new ActionResponse<>(HttpStatus.BAD_REQUEST, "The following error occurred when connecting to Jira Cloud: " + e.getMessage());
} catch (InterruptedException e) {
logger.error("Thread was interrupted while validating jira install.", e);
Thread.currentThread().interrupt();
return new ActionResponse<>(HttpStatus.INTERNAL_SERVER_ERROR, String.format("Thread was interrupted while validating Jira '%s' plugin installation: %s", JiraConstants.JIRA_ALERT_APP_NAME, e.getMessage()));
}
}
Aggregations