Merged
Conversation
Bumps [proptest](https://github.com/proptest-rs/proptest) from 1.10.0 to 1.11.0. - [Release notes](https://github.com/proptest-rs/proptest/releases) - [Changelog](https://github.com/proptest-rs/proptest/blob/main/CHANGELOG.md) - [Commits](proptest-rs/proptest@v1.10.0...v1.11.0) --- updated-dependencies: - dependency-name: proptest dependency-version: 1.11.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [insta](https://github.com/mitsuhiko/insta) from 1.46.3 to 1.47.1. - [Release notes](https://github.com/mitsuhiko/insta/releases) - [Changelog](https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md) - [Commits](mitsuhiko/insta@1.46.3...1.47.1) --- updated-dependencies: - dependency-name: insta dependency-version: 1.47.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
feat: add --limit and --all flags to sprint current (#72)
chore: bump version to 0.4.0-dev.5
…/codecov-action-6 chore(deps): bump codecov/codecov-action from 5 to 6
chore(deps): bump proptest from 1.10.0 to 1.11.0
chore(deps): bump insta from 1.46.3 to 1.47.1
Clarify that --description "" creates an empty ADF paragraph, not null. True clearing requires sending description: null (future --no-description).
…e failures The project_meta tests set XDG_CACHE_HOME via set_var but released the mutex guard immediately, allowing concurrent tests to change the env var while async work was in progress. Under cargo llvm-cov this caused intermittent EOF parse errors. Now the guard is held for the full test body.
Replace std::sync::Mutex with tokio::sync::Mutex to avoid the await_holding_lock lint. The async mutex is the correct choice here since the guard is held across await points.
feat: add description editing to issue edit (#82)
objectKey is the JSON field name in REST API responses, but Key is the reserved AQL keyword for querying by object key.
…h, fix docstring (#88)
The Err(_) branch discarded the actual error (e.g., connection reset) and showed "Unknown error". Now includes the error in the message so users can debug rare body-read failures.
…k-142 fix: preserve original error in parse_error fallback
When --unassign is used and the issue is already unassigned, exit 0 with changed: false instead of always calling the API. Consistent with the existing idempotent behavior of assign and move.
…-153 fix: add idempotency check to issue assign --unassign
refactor: extract shared default fields constant for issue endpoints
…rs (#123) resolve_user, resolve_assignee, and resolve_assignee_by_project shared ~75 lines of identical disambiguation logic (empty check, single result, partial_match with 4 branches, interactive prompt). Extract a private disambiguate_user helper that all three delegate to, reducing duplication from ~225 lines to ~75 lines.
…ser-123 refactor: extract shared user disambiguation logic from resolve helpers
Cover all non-interactive branches: empty list, single result, exact match, exact-multiple (duplicate names with email disambiguation), ambiguous substring match, and no match with custom none_msg_fn.
test: add unit tests for disambiguate_user helper branches
Also refactors build_filter_clauses to use a FilterOptions struct (fixes clippy::too_many_arguments), and boxes IssueCommand in the Command enum (fixes clippy::large_enum_variant from Task 2).
…113) Address PR review findings: - Test created_after_clause is included in output - Test updated_after + updated_before together (covers updated field name) - Test created date range combination (after + before)
feat: add date filter flags to issue list (#113)
chore: bump version to 0.4.0-dev.8
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
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.
v0.4.0
Features
Issue Management
--created-after,--created-before,--updated-after,--updated-beforeforjr issue list(issue list: add --created-after and --created-before date filters #113, feat: add date filter flags to issue list (#113) #163)--account-idflag — direct accountId assignment onissue assignandissue create(issue assign: accept accountId as fallback #115, feat: add --account-id flag to issue assign and create (#115) #143)--toflag on create — assign issues at creation time (issue create: add --assignee/--to flag #106, feat: add --to flag to issue create for assignment at creation (#106) #121)issue createnow shows the issue URL (issue create: include browse URL in table and JSON output #112, feat: add browse URL to issue create output (#112) #136)issue moveaccepts status name — target status by name, not just transition ID (issue move: accept target status name in addition to transition name #108, feat: issue move accepts target status name (#108) #124)--assignee,--reporter,--recentfilters — convenience flags forissue list(Add common filter flags: --assignee, --reporter, --recent #44, feat: add --assignee, --reporter, --recent filter flags (#44) #51)--openflag — exclude Done status category fromissue list(Add 'jr my issues' shortcut for daily workflow #45, feat: add --open flag to jr issue list (#45) #52)issue listdefaults to 30 results (Default result limit for issue list #43, feat: default result limit for issue list (#43) #50)jr issue commentscommand (feat: add jr issue comments command #37)--descriptiononissue edit(feat: add description editing to issue edit #82, feat: add description editing to issue edit (#82) #91)jr issue link,unlink,link-typescommandsAssets/CMDB
jr assets search,view,tickets,schemas,types,schema(feat: add Assets/CMDB support (jr assets search/view/tickets) #41, Add assets types/schema discovery command #87, feat: add assets schema discovery commands (#87) #100)--assetfilter — filter issues by linked asset key (Add --asset filter to issue list for filtering by linked asset #88, feat: add --asset filter to issue list (#88) #92)--open/--statuson assets tickets — filter connected tickets (assets tickets has no --status or --open filter #89, feat: add --open and --status filters to assets tickets (#89) #94)JSM
jr queue listandjr queue view(feat: add JSM queue support (jr queue list/view) #40)Boards & Sprints
--projectand--typefilters (sprint list requires --board with no project-to-board resolution #70, feat: board auto-resolve with --project and --type filters (#70) #74)--boardflag — override board_id for sprint and board commands (Feature: add --board flag to sprint and board commands #57, feat: add --board flag to sprint and board commands (#57) #63)--limit/--allon board view (board view has no --limit flag — unbounded output breaks AI agent workflows #69, feat: add --limit/--all flags to board view (#69) #73)--limit/--allon sprint current (sprint current has no --limit flag — same unbounded output as board view #72, feat: add --limit and --all flags to sprint current (#72) #76)Project
jr project list— discover accessible projects (Add 'jr project list' to discover available projects #47, feat: add jr project list for project discovery (#47) #53)project fields(Bug: project fields omits statuses despite help text promising them #55, fix: add statuses to project fields output (#55) #61)--projectflag for project fields (Bug: project fields rejects global --project flag, only accepts positional arg #56, fix: use global --project flag for project fields (#56) #62)Other
jr completioncommandFixes
issue assign --unassignexits 0 if already unassigned (fix: add idempotency check to issue assign --unassign #153, fix: add idempotency check to issue assign --unassign #158)--to/--unassignconflict — properly mutually exclusive (fix: add missing conflicts_with between --to and --unassign on issue assign #146, fix: add missing conflicts_with between --to and --unassign on issue assign #156)--toname resolution — resolve display names to account IDs (assign --to fails with 404 for all users except self #105, fix: resolve --to display names to account IDs in assign (#105) #118)--jql+--projectcomposition — AND logic instead of replacing (fix: compose --jql with --project scope using AND logic #60)Refactors
disambiguate_userhelper (refactor: extract shared user disambiguation logic from resolve helpers #123, refactor: extract shared user disambiguation logic from resolve helpers #160)BASE_ISSUE_FIELDSconstant (refactor: extract shared default fields constant for search_issues and get_issue #120, refactor: extract shared default fields constant for issue endpoints #159)CacheEntry(refactor: extract generic CacheEntry<T> to deduplicate cache read/write functions #104, refactor: extract generic CacheEntry to deduplicate cache read/write (#104) #116)Tests
--to me, idempotent operations (test: add handler-level integration tests for issue assign and create #139, test: add handler-level tests for --to me keyword and idempotent name resolution #148, test: add handler-level integration tests for issue assign and create (#139) #149, test: add handler-level tests for --to me keyword and idempotent name search (#148) #155)Chore