99API_BASE = "https://api.github.com"
1010
1111
12- def has_signature (comment : dict , slug : str ) -> bool :
12+ class GithubUser (typing .TypedDict ):
13+ login : str
14+
15+
16+ class GithubComment (typing .TypedDict ):
17+ url : str
18+ body : str
19+ user : GithubUser
20+
21+
22+ class GithubLabel (typing .TypedDict ):
23+ name : str
24+ url : str
25+
26+
27+ def has_signature (comment : GithubComment , slug : str ) -> bool :
1328 return (
1429 comment ["user" ]["login" ] in ["github-actions[bot]" , "botberry" ]
1530 and SIGNATURE_TEMPLATE .format (slug = slug ) in comment ["body" ]
@@ -28,15 +43,15 @@ def get_labels_link(pr_number: int) -> str:
2843 return API_BASE + url
2944
3045
31- def get_comments (pr_number : int ) -> typing .List [dict ]:
46+ def get_comments (pr_number : int ) -> typing .List [GithubComment ]:
3247 comments_link = get_comments_link (pr_number )
3348
3449 response = httpx .get (comments_link )
3550
3651 return response .json ()
3752
3853
39- def get_labels (pr_number ) -> typing .List [dict ]:
54+ def get_labels (pr_number ) -> typing .List [GithubLabel ]:
4055 labels_link = get_labels_link (pr_number )
4156
4257 response = httpx .get (labels_link )
@@ -78,10 +93,9 @@ def update_labels(pr_number: int, release_info: typing.Optional[ReleaseInfo]):
7893 labels_to_add .add (new_release_label )
7994
8095 labels_url = get_labels_link (pr_number )
81- current_labels = get_labels (pr_number )
8296
8397 current_labels_url_by_name = {
84- label ["name" ]: label ["url" ] for label in current_labels
98+ label ["name" ]: label ["url" ] for label in get_labels ( pr_number )
8599 }
86100
87101 current_labels = set (current_labels_url_by_name .keys ())
0 commit comments