feat(issue): add --status/-s to assign and take - #151
Merged
Conversation
Allow `lc issue assign` and `lc issue take` to set a workflow state alongside the assignment in a single Linear issueUpdate mutation. - Extend the `:assign` Ash action with an optional `state_id` argument; `Issue.Update.Assign` conditionally adds `stateId` to the mutation input - Add `--status`/`-s` to both `assign` and `take` CLI subcommand specs - `issue assign` resolves the status name against the issue team's workflow states (case-insensitive, prefix match) before calling the API; invalid or ambiguous names exit 22 before any mutation fires - `issue take` threads the status name through per-issue so each issue resolves against its own team's states (different teams can use different state IDs for the same name) - The already-assigned shortcut in `gimme_da_issue!` is bypassed when a status is requested, so `take --status` always updates the state even when the caller is already the assignee - Backward compatible: omitting `--status` sends only `assigneeId` with no `stateId` key in the mutation, matching existing behaviour exactly - Updates Readme.adoc with examples and ash-domain-erd.adoc action inventory Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Elixir formatter prefers |> on its own line; auto-fixed via mix format. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This was referenced Aug 18, 2026
bougyman
pushed a commit
that referenced
this pull request
Aug 19, 2026
🤖 I have created a release *beep* *boop* --- ## [1.15.0](v1.14.0...v1.15.0) (2026-08-19) ### Features * **issue:** add --status/-s to assign and take ([#151](#151)) ([537f54b](537f54b)) ### Bug Fixes * **api:** handle GraphQL partial-success responses cleanly (CRY-61) ([#150](#150)) ([21d0363](21d0363)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
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.
Summary
Implements CRY-60: allow
lc issue assignandlc issue taketo set a workflow state alongside the assignment in a single LinearissueUpdatemutation.:assignwith an optionalstate_idargument;Issue.Update.Assignconditionally includesstateIdin the mutation input--status/-sto bothassignandtakesubcommandsissue assign: Resolves status name case-insensitively against the issue's team workflow states before calling the API; unknown/ambiguous names exit 22 before any mutation firesissue take: Per-issue status resolution so different teams resolve the same name independentlytake --statusbypasses the self-assigned shortcut so the state is always updated--statussends onlyassigneeId, exactly matching prior mutation shapeExamples
Test plan
--statuson assign: exact match, prefix match, case-insensitive, short-s--statuson take: exact match, prefix match, case-insensitive, short-sassigneeIdandstateId--statussends onlyassigneeId(backward compat)take --statusgiven--status--output jsonreturns structured output includingstate🤖 Generated with Claude Code