f4996889d4fcf17c5290b81d1863c06fa3738e40 lrnassar Tue Aug 25 12:09:32 2026 -0700 redmineCli: add --target-version filter to the list subcommand. No RM. diff --git src/utils/redmineCli src/utils/redmineCli index 05582d42b64..bd685c77d9a 100755 --- src/utils/redmineCli +++ src/utils/redmineCli @@ -694,30 +694,34 @@ if args.status: params["status_id"] = args.status if args.assigned_to: if args.assigned_to.lower() == "me": params["assigned_to_id"] = "me" else: params["assigned_to_id"] = str(resolve_user(args.assigned_to)) if args.tracker: params["tracker_id"] = resolve_tracker(args.tracker) if args.search: params["subject"] = f"~{args.search}" + if args.target_version: + params["fixed_version_id"] = resolve_version( + args.target_version, args.project, args.base_url, args.api_key) + query = urllib.parse.urlencode(params) data = api_get(args.base_url, f"/issues.json?{query}", args.api_key) issues = data.get("issues", []) total = data.get("total_count", 0) if not issues: print("No issues found.") return out = [] out.append("| # | Status | Assignee | Subject |") out.append("|---|--------|----------|---------|") for iss in issues: tid = iss["id"] @@ -1304,30 +1308,32 @@ p_show.add_argument("--download-all", dest="download_all", action="store_true", help="Download all attachments to a temp directory") p_show.add_argument("--no-related", dest="no_related", action="store_true", help="Don't fetch and show related tickets (faster)") # list p_list = sub.add_parser("list", help="List/search tickets") p_list.add_argument("--project", default=DEFAULT_PROJECT, help="Project identifier (default: %(default)s)") p_list.add_argument("--status", default="open", help="Status filter: open, closed, * (default: %(default)s)") p_list.add_argument("--assigned-to", dest="assigned_to", help="Assignee name or 'me'") p_list.add_argument("--tracker", help="Tracker name or ID") + p_list.add_argument("--target-version", dest="target_version", + help="Target version name or ID (e.g. 503)") p_list.add_argument("--search", help="Search in subject") p_list.add_argument("--limit", type=int, default=25, help="Max results (default: %(default)s)") p_list.add_argument("--offset", type=int, default=0, help="Pagination offset (default: %(default)s)") p_list.add_argument("--sort", default="updated_on:desc", help="Sort field:direction (default: %(default)s)") # patch-queue p_pq = sub.add_parser("patch-queue", help="Report which Build Patch tickets are ready to patch") p_pq.add_argument("--target-version", dest="target_version", help="Only accept tickets targeting this release (e.g. 502)") p_pq.add_argument("--tickets", nargs="+", metavar="ID",