我正在尝试获得项目的所有问题,然后找到哪些已完成,但我不知道如何.
我将用户连接到Jira,并希望得到他所有的项目和所有问题.然后我想找到,完成了哪些问题.请问有人帮帮我吗?
我有这个:
Iterable <BasicProject> allProj;
this.yourUsername = userName;
this.yourPassword = password;
this.jiraServerUri = new URI("https://applifting.atlassian.net");
this.factory = new JerseyJiraRestClientFactory();;
this.restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, yourUsername, yourPassword);
final NullProgressMonitor pm = new NullProgressMonitor();
allProj = this.restClient.getProjectClient().getAllProjects(pm);
for(Iterator<BasicProject> i = allProj.iterator(); i.hasNext(); ) {
BasicProject proj = i.next();
Project ActualProject = this.restClient.getProjectClient().getProject(proj.getKey(), pm);
ComponentRestClient cm =
}
Run Code Online (Sandbox Code Playgroud)
我想在这个for循环中,当我拥有所有项目时,我应该得到所有问题.
我一直在阅读本指南:JIRA API文档,如果您使用gmail登录Jira,似乎无法弄清楚如何简单地对API进行身份验证.我希望在我的ruby应用程序中使用REST API以链接github和jira
编辑:代码:
uri = URI.parse("https://<address>.jira.com/rest/api/2/issue/<issue-name>")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(uri.request_uri)
request["user"] = "<username>"
request["password"] = "<password>"
@jira_response = http.request(request)
Run Code Online (Sandbox Code Playgroud)
用上面的代码; 我收到了HTTP未经授权的响应.
我正在尝试设置自定义字段,同时我正在使用 Java Jira Rest 客户端创建 Jira 实例。
下面是我试图实现的自定义字段的 XML 表示形式,其中“DATAOBJECT”是多选选项中的一个项目:
<customfield id="customfield_10730" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
<customfieldname>Environnements</customfieldname>
<customfieldvalues>
<customfieldvalue key="13044">
<![CDATA[ DATAOBJECT]]>
</customfieldvalue>
</customfieldvalues>
</customfield>
Run Code Online (Sandbox Code Playgroud)
下面是我的 Java 代码,它允许我在 Jira 中创建一个实例,但没有自定义字段。
JiraRestClientFactory restClientFactory = new AsynchronousJiraRestClientFactory();
try {
JiraRestClient restClient = restClientFactory.createWithBasicHttpAuthentication(new URI("http://JIRA_DOMAIN"), "Username", "Passwd");
IssueRestClient i = restClient.getIssueClient();
IssueInputBuilder issueBuilder = new IssueInputBuilder("projectKey", issueTypeID));
issueBuilder.setSummary("description");
issueBuilder.setFieldValue("customfield_10730", "DATAOBJECT");
IssueInput issue = issueBuilder.build();
Promise<BasicIssue> promise = i.createIssue(issue);
try
{
BasicIssue basicIssue = promise.get();
System.out.println(basicIssue.getId());
restClient.close();
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
catch (URISyntaxException …Run Code Online (Sandbox Code Playgroud)
我正在使用JRJC jira-rest-java-client-2.0.0-m2.
我的目标是能够从问题中复制自定义字段并使用该值创建新问题.这通常很好:
Field trigger = issue.getFieldByName("Trigger");
if (trigger != null) {
newIssue.setFieldValue(trigger.getId(), trigger.getValue());
}
Run Code Online (Sandbox Code Playgroud)
(newIssue是IssueInputBuilder类型的对象;类型问题的问题)
但它不适用于下拉列表(单选),这会引发以下异常:
com.atlassian.jira.rest.client.domain.input.CannotTransformValueException: Any of available transformers was able to transform given value. Value is: org.codehaus.jettison.json.JSONObject: {"self":"http:\/\/localhost:8080\/rest\/api\/2\/customFieldOption\/10100","value":"SQL Statement","id":"10100"}
at com.atlassian.jira.rest.client.domain.input.ValueTransformerManager.apply(ValueTransformerManager.java:83)
at com.atlassian.jira.rest.client.domain.input.IssueInputBuilder.setFieldValue(IssueInputBuilder.java:135)
at com.sonydadc.lfiala.jira.CopyUtil.copy(CopyUtil.java:152)
at com.sonydadc.lfiala.jira.JiraUtil.copyTask(JiraUtil.java:90)
at com.sonydadc.lfiala.jira.Start.main(Start.java:13)
Run Code Online (Sandbox Code Playgroud)
直接设置值不起作用:
Field trigger = issue.getFieldByName("Trigger");
if (trigger != null) {
newIssue.setFieldValue(trigger.getId(), trigger);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,会抛出此异常:
com.atlassian.jira.rest.client.RestClientException: Could not find valid 'id' or 'value' in the Parent Option object.
at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:165)
at com.atlassian.jira.rest.client.internal.async.AbstractAsynchronousRestClient$2.apply(AbstractAsynchronousRestClient.java:159)
at com.atlassian.httpclient.api.ResponsePromiseMapFunction.apply(ResponsePromiseMapFunction.java:48)
at com.atlassian.httpclient.api.ResponsePromiseMapFunction.apply(ResponsePromiseMapFunction.java:12)
at com.atlassian.util.concurrent.Promises$Of$3.apply(Promises.java:285) …Run Code Online (Sandbox Code Playgroud)