-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils.py
37 lines (29 loc) · 1.04 KB
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import re
from functools import lru_cache
from rich.table import Table
from rich.console import Console
console = Console()
def resolve_user_display_name(user):
if user:
return user.displayName
return "Unassigned"
def validate_issue_key(issue_key):
pattern = r'^[A-Z]+-\d+$'
return re.match(pattern, issue_key) is not None
@lru_cache(maxsize=128)
def cached_function(arg):
# Implement caching for expensive operations
pass
def create_issue_table(issues, title):
table = Table(title=title)
table.add_column("Key", style="cyan", no_wrap=True)
table.add_column("Summary", style="magenta")
table.add_column("Status", style="green")
table.add_column("Assignee", style="yellow")
for issue in issues:
assignee = issue.fields.assignee.displayName if issue.fields.assignee else "Unassigned"
table.add_row(issue.key, issue.fields.summary, issue.fields.status.name, assignee)
return table
def display_table(issues, title):
table = create_issue_table(issues, title)
console.print(table)