gpt4 book ai didi

java - 需要获取 JIRA 用户的工作日志条目

转载 作者:行者123 更新时间:2023-12-02 05:51:48 25 4
gpt4 key购买 nike

我有 15 个用户名,我需要提取这些用户的工作日志条目并从 JAVA 客户端进行操作

下面是用于连接 JIRA api 并获取值的 jar 文件

enter image description here

代码粘贴在下面

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());

}

对于任何给定的用户名,我都可以打印他的显示名称和电子邮件地址(所有这些基本信息)。

但我需要获取给定用户的工作日志列表。不知道如何继续

最佳答案

您可以找到所选问题的所有工作日志记录:

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!");
}
}

关于java - 需要获取 JIRA 用户的工作日志条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23472620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com