List issues with compact one-line summaries.
(args, data)
| 365 | |
| 366 | |
| 367 | def cmd_list(args, data): |
| 368 | """List issues with compact one-line summaries.""" |
| 369 | if args.state: |
| 370 | if args.state == "open": |
| 371 | issues = list(data["open_issues"]) |
| 372 | else: |
| 373 | issues = list(data["closed_issues"]) |
| 374 | else: |
| 375 | issues = list(data["open_issues"]) |
| 376 | |
| 377 | if args.label: |
| 378 | label_lower = args.label.lower() |
| 379 | issues = [i for i in issues if any(label_lower == lbl.lower() for lbl in i["labels"])] |
| 380 | |
| 381 | if args.unlabeled: |
| 382 | issues = [i for i in issues if not i["labels"]] |
| 383 | |
| 384 | # Sort |
| 385 | sort_key = args.sort or "updated" |
| 386 | if sort_key == "updated": |
| 387 | issues.sort(key=lambda i: i["updated_at"], reverse=True) |
| 388 | elif sort_key == "created": |
| 389 | issues.sort(key=lambda i: i["created_at"], reverse=True) |
| 390 | elif sort_key == "comments": |
| 391 | issues.sort(key=lambda i: i["comment_count"], reverse=True) |
| 392 | elif sort_key == "reactions": |
| 393 | issues.sort(key=lambda i: i["reactions"].get("THUMBS_UP", 0), reverse=True) |
| 394 | |
| 395 | n = args.limit or len(issues) |
| 396 | for issue in issues[:n]: |
| 397 | print(format_list_line(issue)) |
| 398 | if n < len(issues): |
| 399 | print(f"... {len(issues) - n} more (use --limit to show more)") |
| 400 | print(f"\n({len(issues)} total)", file=sys.stderr) |
| 401 | |
| 402 | |
| 403 | def cmd_search(args, data): |
nothing calls this directly
no test coverage detected