Skip to content

feat(cli): resolve bare issue numbers via active profile, favorited teams, or a team prompt - #65

Merged
bougyman merged 2 commits into
mainfrom
issue-59
Aug 11, 2026
Merged

feat(cli): resolve bare issue numbers via active profile, favorited teams, or a team prompt#65
bougyman merged 2 commits into
mainfrom
issue-59

Conversation

@bougyman

Copy link
Copy Markdown
Member

Summary

  • Adds LinearCli.CLI.IssueHelpers.expand_issue_id/1: expands a bare issue number (1234) to a full team-prefixed identifier (CRY-1234), resolving the team via the active profile, then favorited teams (single used directly, several prompted), then a prompt across every team - never a hard error short of the user having no teams at all.
  • Wires it into gimme_da_issue!/2 (covers issue develop/pr/take for free) and Commands.issue_list/1/issue_update/1.
  • Closes Bare issue numbers: resolve the team via active profile, then favorited teams #59.

Test plan

  • mix test - 226 passed, including new expand_issue_id_test.exs (all 5 resolution-order cases) and 5 new integration tests in profile_defaults_test.exs covering issue_list/issue_update/issue_develop/issue_pr/issue_take
  • mix format --check-formatted clean
  • mix compile --warnings-as-errors clean

🤖 Generated with Claude Code

…eams, or a team prompt (#59)

closes #59

release-as: 1.0.0
Copilot AI lite review requested due to automatic review settings August 11, 2026 18:41
@bougyman
bougyman merged commit 8b183da into main Aug 11, 2026
2 checks passed
@bougyman
bougyman deleted the issue-59 branch August 11, 2026 18:46
Copilot stopped reviewing on behalf of bougyman due to an error August 11, 2026 18:52

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for passing “bare” Linear issue numbers (e.g. 1234) to CLI commands by expanding them to team-prefixed identifiers (e.g. CRY-1234) using profile/favorites/prompt-based team resolution, and wires the expansion into the main issue lookup paths.

Changes:

  • Introduces LinearCli.CLI.IssueHelpers.expand_issue_id/1 with team resolution order: active profile → favorited teams → prompt across all teams.
  • Applies bare-id expansion in gimme_da_issue!/2, Commands.issue_list/1, and Commands.issue_update/1.
  • Adds unit + integration test coverage for the resolution order and for impacted commands; updates README usage docs.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Readme.adoc Documents that issue commands accept bare numbers and how they’re resolved.
app/test/linear_cli/cli/profile_defaults_test.exs Adds integration tests ensuring bare ids expand via active profile across several commands.
app/test/linear_cli/cli/expand_issue_id_test.exs Adds focused tests for expand_issue_id/1 resolution order and passthrough behavior.
app/lib/linear_cli/cli/issue_helpers.ex Implements expand_issue_id/1 and integrates it into gimme_da_issue!/2.
app/lib/linear_cli/cli/commands.ex Expands positional issue ids before calling Linear.issues/1 in list/update.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +398 to +403
defp resolve_bare_team do
case Profiles.default_team() do
nil -> resolve_bare_team_from_favorites()
team_key -> team_key
end
end
This was referenced Aug 11, 2026
bougyman pushed a commit that referenced this pull request Aug 11, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.0.0](v1.0.0...v1.0.0)
(2026-08-11)


### ⚠ BREAKING CHANGES

* graduate to 1.0.0 - disable pre-major version bumping
([#70](#70))
* **cd:** parallelize Burrito target builds and fix Trivy/Podman image
scanning ([#68](#68))
* **ci:** rename release.yaml to main.yaml, workflow name to "main"
([#38](#38))
* add Readme/LICENSE, feat: wire up the issue list --project picker
([#12](#12))

### Features

* add mix githooks.install to activate the repo's git hooks
([#51](#51))
([9b35472](9b35472))
* **api:** add LinearCli.Api GraphQL client (Phase 1)
([723f3f6](723f3f6))
* **ci:** add a full SBOM - app deps, OTP/Elixir runtime, container OS
packages ([#54](#54))
([e296fdd](e296fdd))
* **cli:** add favorite teams/projects, filtering list views by them
([#61](#61))
([6c858d9](6c858d9))
* **cli:** add issue create/develop/pr/take/update write commands (Phase
6)
([1649618](1649618))
* **cli:** add profiles - default team/project stored in local SQLite
([#57](#57))
([554e336](554e336))
* **cli:** add project update - post a status update to a project
([#43](#43))
([30dc6dc](30dc6dc))
* **cli:** make version respect --output json
([#33](#33))
([b160aad](b160aad))
* **cli:** resolve bare issue numbers via active profile, favorited
teams, or a team prompt
([#65](#65))
([8b183da](8b183da))
* **cli:** support Ruby's short subcommand aliases
([#15](#15))
([9fca6b5](9fca6b5))
* initial commit with ash submodule
([c2ceafb](c2ceafb))
* **linear:** add Ash domain resources for
Issue/Project/Team/User/Label/WorkflowState/Comment (Phase 2)
([e2a27f3](e2a27f3))
* **oban:** add scheduled monthly project rollover (Phase 7)
([11afb43](11afb43))
* phase 4 from initial plan -> complete
([012866e](012866e))
* phase 8 - packaging, releasing, and CI
([#1](#1))
([905c238](905c238))
* scaffold Elixir port and enforce conventional commits
([a4d03a0](a4d03a0))


### Bug Fixes

* **ci:** consolidate the release pipeline into one workflow/DAG
([ba821bb](ba821bb))
* **ci:** create releases as drafts so assets survive Immutable Releases
([#19](#19))
([8572623](8572623))
* **ci:** package release binaries with the wrapper scripts
([#24](#24))
([5fb24a4](5fb24a4))
* **ci:** rebuild the release pipeline to stop the version-bump runaway
loop ([#30](#30))
([c311fd4](c311fd4))
* **ci:** relabel the release PR as tagged after we tag it ourselves
([ab1408e](ab1408e))
* **ci:** skip commit-subject validation in the post-merge pipeline
([#41](#41))
([3d00a85](3d00a85))
* **cli:** reject unrecognized flags instead of treating them as issue
ids ([#2](#2))
([#4](#4))
([e697ff6](e697ff6))
* **deps:** update ash to a non-vulnerable version
([#63](#63))
([b838e2a](b838e2a))


### Performance Improvements

* **linear:** fan out find-by-ids and per-team project fetches (Phase 5)
([fb00153](fb00153))


### Documentation

* add Readme/LICENSE, feat: wire up the issue list --project picker
([#12](#12))
([eb42c69](eb42c69))


### Miscellaneous Chores

* **ci:** rename release.yaml to main.yaml, workflow name to "main"
([#38](#38))
([2581a40](2581a40))
* graduate to 1.0.0 - disable pre-major version bumping
([#70](#70))
([87a65ae](87a65ae))


### Continuous Integration

* **cd:** parallelize Burrito target builds and fix Trivy/Podman image
scanning ([#68](#68))
([5cc829a](5cc829a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bare issue numbers: resolve the team via active profile, then favorited teams

2 participants