feat(issue): add interactive issue assign command - #140
Merged
Conversation
bougyman
commented
Aug 18, 2026
Member
Author
|
Addressed the inline review comment on with {:ok, %{"team" => team}} when is_map(team) <- Api.call(document, %{"id" => team_id}),
%{"members" => %{"nodes" => nodes}} <- team do
{:ok, Enum.map(nodes, &User.from_map/1)}
else
{:ok, _} -> {:ok, []}
error -> error
endThe |
Add `lc issue assign <issue-id>` to assign an issue to any team member,
not just the current user (which `issue take` already handles).
- User.Read.ByTeam: new manual read action fetching team members via
`team(id:) { members(first: 50) { nodes { ... } } }` GraphQL query
- Linear.team_members/1: new domain code interface
- Commands.issue_assign/1: resolves issue, fetches team members, resolves
target via --assignee flag (exact then prefix match) or Prompt.select/2,
then calls Linear.assign_issue/2 and displays the result
- Optimus spec for `assign` subcommand with --assignee/-a option
- Dispatch clause and "a" alias under issue subcommands
- 14 new tests: flag-based, prefix match, ambiguous/unknown errors,
interactive selection, JSON output, alias routing, empty-members guard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
bougyman
force-pushed
the
CRY-54-interactive-issue-assign
branch
from
August 18, 2026 14:22
bcb3d13 to
96e272c
Compare
This was referenced Aug 18, 2026
bougyman
pushed a commit
that referenced
this pull request
Aug 18, 2026
🤖 I have created a release *beep* *boop* --- ## [1.14.0](v1.13.2...v1.14.0) (2026-08-18) ### Features * **issue:** add --description option to lc issue update ([#141](#141)) ([d762f32](d762f32)) * **issue:** add interactive issue assign command ([#140](#140)) ([33176bd](33176bd)) --- 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
lc issue assign <issue-id>— assigns an issue to any team member, not just self (whichissue takealready handles)team.membersGraphQL query (confirmed in schema)issue statuspattern exactly:--assignee/-aflag for non-interactive use,Prompt.select/2when omittedlc issue a CRY-1routes toissue assignChanges
app/lib/linear_cli/linear/user.ex: NewUser.Read.ByTeammanual read action +:by_teamaction declarationapp/lib/linear_cli/linear.ex:Linear.team_members/1domain code interfaceapp/lib/linear_cli/cli/commands.ex:Commands.issue_assign/1command function with member resolution helpersapp/lib/linear_cli/cli.ex: Optimus spec, dispatch clause,"a"aliasTest plan
--assigneeexact name match (case-insensitive)--assigneeunique prefix match--assigneeunknown name → exits 22 with "smells bad" message--assigneeambiguous prefix → exits 22 with "smells bad" message--assignee) prompts sorted member list--output jsonemits structured issue outputaroutes toissue assignLinearCli.GitTestfailures unrelated to this change)Closes: https://linear.app/cryptokairos/issue/CRY-54/add-an-interactive-issue-assign-command
🤖 Generated with Claude Code