有没有办法使用 JRJC v1.0 创建子任务?我一直无法找到任何好的文档。有没有示例代码?
似乎库不支持它,但可以使用直接的 REST API。
JIRA v5.1.5
我能够将以下有效的代码放在一起。
IssueInputBuilder issueBuilder = new IssueInputBuilder("Project1", 5L);//5 is the id for subtask type. You can know the id of subtask type by querying this REST api /rest/api/2/issue/createmeta
issueBuilder.setDescription(">> Test Description");
issueBuilder.setSummary("Test summary");
issueBuilder.setProjectKey("Project1");
Map<String, Object> parent = new HashMap<String, Object>();
parent.put("key", "SOMEISSUE-234");
FieldInput parentField = new FieldInput("parent", new ComplexIssueInputFieldValue(parent));
Map<String, Object> customField = new HashMap<String, Object>();
customField.put("value", "someValue");//This is some custom field value on the subtask
customField.put("id", "12345");//This is the id of the custom field. You can know this by calling REST GET for a manually created sub-task
issueBuilder.setFieldInput(parentField);
issueBuilder.setFieldValue("customfield_12345", new ComplexIssueInputFieldValue(customField));//here again you have to query an existing subtask to know the "customfield_*" value
com.atlassian.jira.rest.client.domain.input.IssueInput issueInput = issueBuilder.build();
BasicIssue bIssue = restClient.getIssueClient().createIssue(issueInput, pm);
System.out.println(">>> " + bIssue.getKey());
您像往常一样创建问题(例如),但将问题类型设置为所需的子任务类型。然后,将子任务链接到它的父级 use linkIssue
,例如:
LinkIssuesInput linkIssuesInput = new LinkIssuesInput("TST-1", "TST-2", "jira_subtask_link", Comment.valueOf("simple comment"));
issueClient.linkIssue( linkIssuesInput , pm);
我自己没有测试过,我在旧的 JIra 中使用了XML-RPC ,在新的 JIra 中使用了python-jira。完整的 API 可在此处获得
REST API http://docs.atlassian.com/jira/REST/latest/#id326540有评论:
创建子任务类似于创建常规问题,但有两个重要区别:
issueType 字段必须对应一个子任务的问题类型(您可以使用 /issue/createmeta 来发现子任务的问题类型),并且您必须在问题创建请求中提供一个包含父问题的 id 或键的父字段.
所以我认为常规的 createIssue 方法应该可以工作,但是你需要确保你已经传入了一个额外的 FieldInput 对象,该对象是用 ("parent", "ABC-123") 构造的
如果使用子任务链接类型的链接确实有效,我会感到惊讶。