Return dueDate, estimate, and delegate from issues list/search - #73
Open
FelixLisczyk wants to merge 2 commits into
Open
Return dueDate, estimate, and delegate from issues list/search#73FelixLisczyk wants to merge 2 commits into
FelixLisczyk wants to merge 2 commits into
Conversation
SearchIssuesEnhanced (powering `issues list` and `linear search`) omitted dueDate, estimate, and delegate from its GraphQL selection set, so those fields were always null/omitted even though GetIssue's identical selection returns them fine. Fixed the same gap in ListAssignedIssues and ListAllIssues, which have the identical pattern but aren't yet wired into the CLI, and extended IssueWithDetails/convertIssueDetails so ListAllIssues's fix survives its conversion to core.Issue. Added HTTP-mock regression tests for all three query methods, sharing a new CapturingTransport test helper, to catch this class of bug (a field silently missing from a query) going forward.
Addresses minor cosmetic discrepancies flagged during plan verification of the dueDate/estimate/delegate query fix: reorder the new fields in SearchIssuesEnhanced and ListAllIssues to mirror GetIssue's exact selection shape, add omitempty consistently to ListAllIssues's pointer decode fields, and add empty labels fixtures to the unpopulated test nodes for symmetry with their sibling tests. No behavioral change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
linear issues listandlinear searchnever return an issue's due date, estimate, or delegate, in either text or JSON output — even when the issue has these values set:issues getreports all three fields correctly, so this is a query-construction gap in the sharedSearchIssuesEnhancedGraphQL query used by bothissues listandsearch, not an API limitation or a downstream rendering bug — the text and JSON renderers already handle these fields correctly once present.Changes
This PR:
dueDate,estimate, anddelegate { id name email }to theSearchIssuesEnhancedGraphQL query, matchingGetIssue's existing selection set.ListAssignedIssuesandListAllIssues, which have the same missing-fields pattern.DueDate,Estimate, andDelegatefields tocore.IssueWithDetailsand updatesListAllIssues's response decoding and node-to-result mapping, since it decodes into that type rather thancore.Issuedirectly.convertIssueDetailsso the three fields survive theIssueWithDetails → core.Issueconversion.CapturingTransporttest helper (pkg/linear/testutil) that records the outgoing GraphQL request body, and anassertQueryRequestsFieldshelper, reused across new regression tests for all three fixed query methods.No changes were needed in
internal/formator the JSON DTO layer — both already handledDueDate/Estimate/Delegatecorrectly once the query returns them.Testing
make buildandmake testpass.issues list/searchnow returndueDatematchingissues getfor the same issue, in both text and JSON output; issues without a due date continue to omit/null it.pkg/linear/issues/client_test.go) forSearchIssuesEnhanced,ListAssignedIssues, andListAllIssues, asserting both the outgoing query text and the round-tripped field values (including a populated vs. unpopulated case).convertIssueDetailsunit test (internal/service/issue_convert_test.go) starting from a fully-populated fixture to confirm the fields survive the conversion.