Записи рабочего журнала пользователя JIRA должны быть извлечены

У меня есть 15 имен пользователей, мне нужно вытащить записи рабочего журнала этих пользователей и манипулировать ими из клиента JAVA.

Ниже приведены файлы jar, которые я использую для подключения API JIRA и получения значений.

введите здесь описание изображения

Код вставлен ниже

public class JiraConnector {

JiraRestClient jira;

public JiraConnector() throws URISyntaxException {
    String url = prop().getUrl();
    String userName = prop().getUser() ;
    String password = prop().getpwd() ;
    JerseyJiraRestClientFactory clientFactory = new JerseyJiraRestClientFactory();
    jira = clientFactory.createWithBasicHttpAuthentication(new URI(url),
            userName, password);
    System.out.println("Connection established to >> " + url);
}

public void printIssueDetails(String jiraNumber) {
    System.out.println("JiraNumber is " + jiraNumber);
    Issue issue = jira.getIssueClient().getIssue(jiraNumber, null);

    System.out.println(issue.getSummary());
    System.out.println(issue.getDescription());
}

public void printUserWorkLog(String userName) {
    System.out.println("user details invoked ... ");
    User user = jira.getUserClient().getUser(userName, null);
    System.out.println(user.getDisplayName());
    System.out.println(user.getEmailAddress());

}

Для любого заданного имени пользователя я могу распечатать его отображаемое имя и адрес электронной почты (вся эта основная информация).

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


person Arun    schedule 05.05.2014    source источник


Ответы (1)


Вы можете найти все записи рабочего журнала для выбранной проблемы:

List<Worklog> worklogByIssue = ComponentAccessor.getWorklogManager().getByIssue(issue);

После этого вы можете проанализировать все записи рабочего журнала, чтобы определить, для какого пользователя создана эта запись:

for (Worklog worklogByIssueItem : worklogByIssue)
{
   int timeSpent = worklogByIssueItem.getTimeSpent().intValue();
   String worklogAuthorName = worklogByIssueItem.getAuthorObject().getName();
   ...
}

И последняя задача — поиск задач по некоторым параметрам:

public static List<Issue> searchIssues(SearchParametersAggregator searchParams)
{
    String jqlQuery = searchParams.getJqlQuery();
    String projectId = searchParams.getProjectId();
    String condition = createCondition(jqlQuery, projectId);

    JqlQueryBuilder jqlQueryBuilder = prepareJqlQueryBuilder(condition);

    return searchIssues(jqlQueryBuilder);
}

static List<Issue> searchIssues(JqlQueryBuilder jqlQueryBuilder)
{
    Query query = jqlQueryBuilder.buildQuery();
    SearchService searchService = ComponentAccessor.getComponent(SearchService.class);
    try
    {
        ApplicationUser applicationUser = ComponentAccessor.getJiraAuthenticationContext().getUser();
        User user = applicationUser.getDirectoryUser();
        SearchResults searchResults = searchService.search(user, query, PagerFilter.getUnlimitedFilter());
        List<Issue> issues = searchResults.getIssues();

        return issues;
    }
    catch (SearchException e)
    {
        LOGGER.error("Error occurs during search of issues");
        e.printStackTrace();
    }

    return new ArrayList<Issue>();
}

static JqlQueryBuilder prepareJqlQueryBuilder(String condition)
{
    try
    {
        Query query = jqlQueryParser.parseQuery(condition);
        JqlQueryBuilder builder = JqlQueryBuilder.newBuilder(query);

        return builder;
    }
    catch (JqlParseException e)
    {
        throw new RuntimeException("JqlParseException during parsing jqlQuery!");
    }
}
person Community    schedule 09.07.2014
comment
С проблемой вы тянете рабочий журнал.. Спрашиваю, как вытащить рабочий журнал для пользователя за указанный диапазон дат - person Arun; 30.07.2014
comment
Вам нужно написать свою утилиту для извлечения рабочего журнала для пользователя и указанного диапазона дат из всех записей рабочего журнала. - person ; 30.07.2014
comment
Или вы можете поиграть с условием JQL, чтобы получить свои данные (см. метод prepareJqlQueryBuilder()) - person ; 30.07.2014