Skip to content

Get method not supported hierarchical structure of Children #392

@devcomm-fg-saijo

Description

@devcomm-fg-saijo

IssueChild does not support the hierarchical structure of Children.

ex) rest api response

<issue>
    <id>21512</id>
    <project id="1498" name="project name" />
    <tracker id="9" name="group" />
    <status id="2" name="start" is_closed="false" />
    <priority id="2" name="normal" />
    <author id="25" name="foo" />
    <subject>parent issue</subject>
    <description />
    <start_date>2025-04-17</start_date>
    <due_date>2025-09-30</due_date>
    <done_ratio>64</done_ratio>
    <is_private>false</is_private>
    <estimated_hours />
    <total_estimated_hours>0.0</total_estimated_hours>
    <spent_hours>0.0</spent_hours>
    <total_spent_hours>125.2</total_spent_hours>
    <created_on>2025-02-03T08:35:55Z</created_on>
    <updated_on>2025-08-18T23:48:17Z</updated_on>
    <closed_on />
    <children type="array">
        <issue id="21558">
            <tracker id="5" name="func" />
            <subject>issue-10 dev</subject>
            <children type="array">
                <issue id="21641">
                    <tracker id="9" name="group" />
                    <subject>issue-10 #plan survey</subject>
                    <children type="array">
                        <issue id="21642">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #plan 1</subject>
                        </issue>
                        <issue id="23139">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #plan 2</subject>
                        </issue>
                    </children>
                </issue>
                <issue id="21644">
                    <tracker id="9" name="group" />
                    <subject>issue-10 #UID</subject>
                    <children type="array">
                        <issue id="23055">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #UI task-1</subject>
                        </issue>
                        <issue id="23319">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #UI task-2</subject>
                        </issue>
                    </children>
                </issue>
                <issue id="21645">
                    <tracker id="9" name="group" />
                    <subject>issue-10 #SSD</subject>
                    <children type="array">
                        <issue id="21646">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #SS task-1</subject>
                        </issue>
                        <issue id="23062">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #SS task-2-1</subject>
                        </issue>
                        <issue id="23063">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #SS task-2-2</subject>
                        </issue>
                    </children>
                </issue>
                <issue id="21648">
                    <tracker id="9" name="group" />
                    <subject>issue-10 #PG</subject>
                    <children type="array">
                        <issue id="21649">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PG task-1-1</subject>
                        </issue>
                        <issue id="23442">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PG task-1-2</subject>
                        </issue>
                        <issue id="23443">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PG task-1-3</subject>
                        </issue>
                        <issue id="23571">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PG task-2-1</subject>
                        </issue>
                        <issue id="23572">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PG task-2-2</subject>
                        </issue>
                    </children>
                </issue>
                <issue id="21650">
                    <tracker id="9" name="group" />
                    <subject>issue-10 #PT</subject>
                    <children type="array">
                        <issue id="21651">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PT task-1-1</subject>
                        </issue>
                        <issue id="23577">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PT task-1-2</subject>
                        </issue>
                        <issue id="23578">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PT task-1-3</subject>
                        </issue>
                        <issue id="23579">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PT task-2-1</subject>
                        </issue>
                        <issue id="23580">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #PT task-2-2</subject>
                        </issue>
                     </children>
                </issue>
                <issue id="21652">
                    <tracker id="9" name="group" />
                    <subject>issue-10 #IT</subject>
                    <children type="array">
                        <issue id="21653">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #IT task-1</subject>
                        </issue>
                        <issue id="23585">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #IT task-2</subject>
                        </issue>
                    </children>
                </issue>
                <issue id="23056">
                    <tracker id="9" name="group" />
                    <subject>issue-10 #ST</subject>
                    <children type="array">
                        <issue id="23057">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #ST task</subject>
                        </issue>
                    </children>
                </issue>
                <issue id="23591">
                    <tracker id="9" name="group" />
                    <subject>issue-10 #MAN</subject>
                    <children type="array">
                        <issue id="23592">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #MAN A</subject>
                        </issue>
                        <issue id="23593">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #MAN B</subject>
                        </issue>
                        <issue id="23797">
                            <tracker id="6" name="task" />
                            <subject>issue-10 #MAN C</subject>
                        </issue>
                    </children>
                </issue>
            </children>
        </issue>
    </children>
</issue>

code

RedmineManagerOptionsBuilder optionsBuilder = new RedmineManagerOptionsBuilder();
optionsBuilder.WithHost("redmine url");
optionsBuilder.WithApiKeyAuthentication("my api key");
optionsBuilder.WithSerializationType(SerializationType.Xml);
//optionsBuilder.WithSerializationType(SerializationType.Json);

RedmineManager redmineManager = new RedmineManager(optionsBuilder);
RequestOptions requestOptions = new RequestOptions();
requestOptions.QueryString = new NameValueCollection();
requestOptions.QueryString.Add(RedmineKeys.INCLUDE, RedmineKeys.CHILDREN);

var issue = await redmineManager.GetAsync<T>("21512", requestOptions, cancellationToken);

SerializationType.Xml:
issue.Children.Count is 1.
missmatch id, subject.

id: 21558
subject: issue-10 #MAN C

SerializationType.Json:
issue.Children.Count is 2.

id: 21642
subject: issue-10 #plan 1

id: 23139
subject: issue-10 #plan 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions