feat(issue-helpers): add move_issue/2 for moving an issue to a resolved project - #186
Merged
Conversation
bougyman
commented
Aug 24, 2026
bougyman
left a comment
Member
Author
There was a problem hiding this comment.
Code Review
Branch: EXT-8-add-move-issue — 1 commit (32e518c)
Reviewer: automated code-review agent (Run 1)
Summary
Clean, minimal change that adds IssueHelpers.move_issue/2 and refactors attach_project/2 to delegate to it. The diff is small (~40 lines net), well-scoped, and follows existing patterns in the module exactly.
Quality Suite
All checks pass:
mix ci: deps audit, format, credo --strict, usage_rules, tests- 323 tests pass (2 new)
- No compiler warnings
Issues Found
None critical or major.
Minor
- Docstring length (
issue_helpers.ex:285-293) — The@doconmove_issue/2is relatively verbose for a thin wrapper (8 lines of doc for 9 lines of code). The cross-reference toattach_project/2is useful, but the first paragraph restates what the typespec already says. Not a blocker — project convention seems to favor thorough docs.
What Looks Good
- Correct delegation pattern:
attach_project/2now delegates tomove_issue/2cleanly. The resolution-then-delegate split is the right abstraction boundary — resolution stays inattach_project, move+feedback lives inmove_issue. - Message consistency: "was moved to" aligns with the CLI help text (
--projectdescribed as "Project to move the issue to"). Good decision documented in the workpad. - Test coverage: Both happy path and error propagation are tested for
move_issue/2directly. Existingattach_project/2andupdate_issue/2dispatch tests updated for the new message text. Tests follow the module's establishedstub_responses+capture_iopattern. - No nil-crash regression: The faithfully-ported nil-crash risk in
attach_project/2(whenproject_forreturns nil) is unchanged —project.idinmove_issue/2will raise the sameKeyErroras the old inlineproject.iddid. The doc correctly notes this. - ERD unaffected: No new Ash resource, action, or code interface was added — only a CLI-layer helper. The domain ERD does not need updating.
- Typespec accurate:
@spec move_issue(%Linear.Issue{}, %Linear.Project{}) :: {:ok, %Linear.Issue{}} | {:error, term()}matches the implementation.
Overall Assessment
Approve. The change is correct, well-tested, follows project conventions, and the CI suite is green. No issues that warrant requesting changes.
…ed project
Add IssueHelpers.move_issue/2, which takes a pre-resolved %Project{}
struct and calls Linear.attach_issue_to_project/2 with a confirmation
message. Refactor attach_project/2 to delegate to move_issue/2 after
resolving the search string, removing duplicated attachment logic.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
bougyman
force-pushed
the
EXT-8-add-move-issue
branch
from
August 24, 2026 10:00
32e518c to
b1d9d97
Compare
This was referenced Aug 24, 2026
bougyman
pushed a commit
that referenced
this pull request
Aug 25, 2026
🤖 I have created a release *beep* *boop* --- ## [2.5.0](v2.4.0...v2.5.0) (2026-08-24) ### Features * **issue-helpers:** add move_issue/2 for moving an issue to a resolved project ([#186](#186)) ([6c43e39](6c43e39)) * **issue:** add --from/--to bulk project-to-project mode to lc issue move ([#189](#189)) ([bbb2df3](bbb2df3)) * **issue:** add lc issue move subcommand ([#187](#187)) ([51cd1f7](51cd1f7)) --- 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
IssueHelpers.move_issue/2that accepts a pre-resolved%Project{}struct and moves an issue to it viaLinear.attach_issue_to_project/2, printing a confirmation message ("IDENTIFIER was moved to PROJECT_NAME")attach_project/2to delegate tomove_issue/2after resolving the search string, removing duplicated attachment logic"was moved to"confirmation message (previously"was attached to")move_issue/2directly (success + error propagation cases)Test plan
mix test test/linear_cli/cli/issue_helpers_test.exs— all 36 tests pass (was 34)mix cifrom repo root — all checks pass (deps audit, format, credo, usage_rules, tests)attach_project/2test still passes (confirmation message updated to match new behavior)update_issue/2dispatch:projecttest still passesCloses https://linear.app/the-rubyists/issue/EXT-8
🤖 Generated with Claude Code