Repository navigation
Type asana compact fields as always present - #1113
Merged
github-actions[bot] merged 1 commit intoOct 22, 2026
Merged
Conversation
Asana returns the fields of a resource's compact representation (the *Compact schemas in its OpenAPI spec) unless a request's opt_fields leaves them out. Declaring them implicitly-returns-nil made consumers that enable Steep's implicitly_returns_nil! nil-check names, story timestamps and the like on every read. Declare those fields as plain attr_readers, accepting that a request whose fields option omits one yields nil, and say so in the comment that explains the file's nil conventions. Fields the API can return as null keep their optional types. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01Wo4FerFK9aaxrGrmVE9ncZ
apiology
marked this pull request as ready for review
October 22, 2026 19:33
|
@apiology Thanks for your contribution! Please follow the instructions below for each change. Available commandsYou can use the following commands by commenting on this PR.
|
Contributor
Author
|
/merge |
apiology
added a commit
to apiology/checkoff
that referenced
this pull request
Oct 22, 2026
Move ruby/gem_rbs_collection from ee06947 to ca341ff, which includes ruby/gem_rbs_collection#1113, typing asana compact fields as always present. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01Wo4FerFK9aaxrGrmVE9ncZ
apiology
added a commit
to apiology/checkoff
that referenced
this pull request
Oct 22, 2026
Bring in the rbs_collection.lock.yaml refresh to ruby/gem_rbs_collection ca341ff, which includes ruby/gem_rbs_collection#1113. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01Wo4FerFK9aaxrGrmVE9ncZ
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.
Claude: This PR was written by Claude Code on behalf of @apiology.
Problem
A task's name types as nilable:
Callers must nil-check names, story text and timestamps that Asana returns on every request whose
opt_fieldsdoesn't exclude them; per Asana's input/output options, only the gid is guaranteed ("The gid of included objects will always be returned, regardless of the field options"), so a request whosefieldsomits one still getsnil, which this change accepts.Solution
Declare the fields in each resource's compact representation (the
*Compactschemas in Asana's OpenAPI spec) as plainattr_readers, keeping optional types for fields the spec marksnullable: true.