如何使用带有Java的JIRA API获得附件列表?我不需要附件,我只想知道那里的附件及其ID。我遵循了使用查询来获取问题的基础知识,但遇到的却是问题,但没有附件。我的代码:
[String searchQuery = "(created >= '2015/12/1' ) AND (created < '2016/01/1')"
JiraAuthentication jiraAuth;
JiraRestClient arc;
// Get JiraAuthentication instance to create basic HTTP authentication
// string
jiraAuth = JiraAuthentication.getInstance();
// Make sure you use a new instance
jiraAuth.initInstance();
jiraAuth = JiraAuthentication.getInstance();
// Get the JIRA Rest Client from the basic HTTP authentication
jrc = jiraAuth.getJrc();
// Receive search results based on query
SearchRestClient searchClient = jrc.getSearchClient();
// limit results to 50
SearchResult result = searchClient.searchJql(searchQuery, 50,0, null);
Iterator<BasicIssue> itIssue = result.getIssues().iterator();
// pull information on individual issues.
while (itIssue.hasNext()) {
BasicIssue lBasicIssue = (BasicIssue) itIssue.next();
String lIssueKey = lBasicIssue.getKey();
Issue issue = jrc.getIssueClient().getIssue(lIssueKey, null);
//This line should print the list of attachments. but everything is always null.
System.out.println(issue.getAttachements());
}][1]
我尝试获取信息的一个示例是HBASE-15062,它具有api链接。在api链接中没有显示任何附件,但在实际链接中有4个附件。
我知道Jira api调用api/2/issue/{issueIdOrKey}/attachments
。
我尝试了:api / 2 / issue / 12925031 / attachments我得到了响应HTTP Status 405 - Method Not Allowed
这是否意味着我无法获得附件列表,或者我只是在做错请求?
如何更改我的Java代码以获取附件?是否可以从APACHE JIRA获得附件?
我想说简尼斯答案将我引向这个问题的答案。
添加参数的jannis方法?expand=changelog
是获取附件的唯一方法。getIssue()
需要更改的Java调用我在这里找到了如何添加参数,api信息在这里。
getIssue(String issueKey, ProgressMonitor progressMonitor)
使用:
Issue issue = jrc.getIssueClient().getIssue(lIssueKey, null);
Issue issue = jrc.getIssueClient().getIssue(lIssueKey, Arrays.asList(IssueRestClient.Expandos.CHANGELOG), null);
随着对getIssue的更改调用,应该填充changelog字段。然后,您可以通过迭代更改日志来使用此字段来查看附件。我这样做:
private null findAttachments(Issue issue) {
String FieldName = "Attachment";
Iterable<ChangelogGroup> changes = issue.getChangelog();
StringBuilder attachments = new StringBuilder();
StringBuilder attachmentsIDs = new StringBuilder();
for (ChangelogGroup change: changes){
//Multiple change items per group.
for(ChangelogItem item: change.getItems()){
if(item.getField().equals(FieldName)){
//Gets attachment name.
attachments.append((String) item.getToString());
//Gets attachment ID to download if needed.
attachmentsIDs.append((String) item.getTo());
}
}
}
//Do something with attachments here..
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句