2

有没有办法使用 JRJC v1.0 创建子任务?我一直无法找到任何好的文档。有没有示例代码?

似乎库不支持它,但可以使用直接的 REST API。

JIRA v5.1.5

4

3 回答 3

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());
于 2013-03-14T19:02:17.067 回答
3

您像往常一样创建问题(例如),但将问题类型设置为所需的子任务类型。然后,将子任务链接到它的父级 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 可在此处获得

于 2013-02-05T13:09:40.043 回答
2

REST API http://docs.atlassian.com/jira/REST/latest/#id326540有评论:

创建子任务类似于创建常规问题,但有两个重要区别:

issueType 字段必须对应一个子任务的问题类型(您可以使用 /issue/createmeta 来发现子任务的问题类型),并且您必须在问题创建请求中提供一个包含父问题的 id 或键的父字段.

所以我认为常规的 createIssue 方法应该可以工作,但是你需要确保你已经传入了一个额外的 FieldInput 对象,该对象是用 ("parent", "ABC-123") 构造的

如果使用子任务链接类型的链接确实有效,我会感到惊讶。

于 2013-02-05T21:05:22.180 回答