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",