有没有办法使用JRJC v1.0创建子任务?我一直无法找到任何关于此的好文档。有任何样本代码吗?
似乎它不是通过库支持,但可以使用直接的REST API。
JIRA v5.1.5
答案 0 :(得分: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());
答案 1 :(得分:3)
您可以像往常一样创建问题(example),但将问题类型设置为所需的子任务类型。然后,将子任务链接到它的父使用linkIssue
,类似于:
LinkIssuesInput linkIssuesInput = new LinkIssuesInput("TST-1", "TST-2", "jira_subtask_link", Comment.valueOf("simple comment"));
issueClient.linkIssue( linkIssuesInput , pm);
我自己没有测试过,我在旧的JIra中使用了XML-RPC,在新的中使用了python-jira。完整的API可用here
答案 2 :(得分:2)
REST API http://docs.atlassian.com/jira/REST/latest/#id326540有一条评论:
创建子任务类似于创建常规问题,有两个重要区别:
issueType字段必须对应于子任务问题类型(您可以使用/ issue / createmeta来发现子任务问题类型),以及 您必须在问题创建请求中提供父字段,其中包含父问题的ID或密钥。
所以我认为常规createIssue方法应该可以工作,但是你需要确保传入一个额外的FieldInput对象(“parent”,“ABC-123”)
如果使用子任务链接类型的链接确实有效,我会感到惊讶。