public Issue plan(String issueKey, @Nullable String actionPlanKey) { verifyLoggedIn(); DbSession session = dbClient.openSession(false); try { ActionPlan actionPlan = null; if (!Strings.isNullOrEmpty(actionPlanKey)) { actionPlan = actionPlanService.findByKey(actionPlanKey, userSession); if (actionPlan == null) { throw new BadRequestException("Unknown action plan: " + actionPlanKey); } } DefaultIssue issue = getByKeyForUpdate(session, issueKey).toDefaultIssue(); IssueChangeContext context = IssueChangeContext.createUser(new Date(), userSession.getLogin()); if (issueUpdater.plan(issue, actionPlan, context)) { saveIssue(session, issue, context, null); } return issue; } finally { session.close(); } }
public Collection<String> setTags(String issueKey, Collection<String> tags) { verifyLoggedIn(); DbSession session = dbClient.openSession(false); try { DefaultIssue issue = getByKeyForUpdate(session, issueKey).toDefaultIssue(); IssueChangeContext context = IssueChangeContext.createUser(new Date(), userSession.getLogin()); if (issueUpdater.setTags(issue, tags, context)) { saveIssue(session, issue, context, null); } return issue.tags(); } finally { session.close(); } }
public Issue setSeverity(String issueKey, String severity) { verifyLoggedIn(); DbSession session = dbClient.openSession(false); try { DefaultIssue issue = getByKeyForUpdate(session, issueKey).toDefaultIssue(); userSession.checkComponentPermission(UserRole.ISSUE_ADMIN, issue.projectKey()); IssueChangeContext context = IssueChangeContext.createUser(new Date(), userSession.getLogin()); if (issueUpdater.setManualSeverity(issue, severity, context)) { saveIssue(session, issue, context, null); } return issue; } finally { session.close(); } }
public Issue assign(String issueKey, @Nullable String assignee) { verifyLoggedIn(); DbSession session = dbClient.openSession(false); try { DefaultIssue issue = getByKeyForUpdate(session, issueKey).toDefaultIssue(); User user = null; if (!Strings.isNullOrEmpty(assignee)) { user = userFinder.findByLogin(assignee); if (user == null) { throw new BadRequestException("Unknown user: " + assignee); } } IssueChangeContext context = IssueChangeContext.createUser(new Date(), userSession.getLogin()); if (issueUpdater.assign(issue, user, context)) { saveIssue(session, issue, context, null); } return issue; } finally { session.close(); } }
@Override public Function.Context setCloseDate(boolean b) { updater.setCloseDate(issue, b ? changeContext.date() : null, changeContext); return null; }
@Override public Function.Context setResolution(@Nullable String s) { updater.setResolution(issue, s, changeContext); return this; }
@Override public Function.Context setAssignee(@Nullable User user) { updater.assign(issue, user, changeContext); return this; }
private void assignIssue(Issue issue, User user) { issueUpdater.assign((DefaultIssue) issue, user, changeContext); // To be taken into account by the IssuePersister launched at the end of the scan, // we have to put back then updated issue in the cache issueCache.put((DefaultIssue) issue); }