@@ -31,44 +31,56 @@ def has_signature(comment: GithubComment, slug: str) -> bool:
31
31
)
32
32
33
33
34
- def get_comments_link (pr_number : int ) -> str :
35
- url = f"/repos/strawberry-graphql/strawberry/issues/{ pr_number } /comments"
34
+ def get_comments_link (pr_number : int , repo : typing .Optional [str ] = None ) -> str :
35
+ url = (
36
+ f"/repos/strawberry-graphql/{ repo or 'strawberry' } /issues/{ pr_number } /comments"
37
+ )
36
38
37
39
return API_BASE + url
38
40
39
41
40
- def get_labels_link (pr_number : int ) -> str :
41
- url = f"/repos/strawberry-graphql/strawberry/issues/{ pr_number } /labels"
42
+ def get_labels_link (pr_number : int , repo : typing . Optional [ str ] = None ) -> str :
43
+ url = f"/repos/strawberry-graphql/{ repo or ' strawberry' } /issues/{ pr_number } /labels"
42
44
43
45
return API_BASE + url
44
46
45
47
46
- def get_comments (pr_number : int ) -> typing .List [GithubComment ]:
47
- comments_link = get_comments_link (pr_number )
48
+ def get_comments (
49
+ pr_number : int , repo : typing .Optional [str ] = None
50
+ ) -> typing .List [GithubComment ]:
51
+ comments_link = get_comments_link (pr_number , repo = repo )
48
52
49
53
response = httpx .get (comments_link )
50
54
51
55
return response .json ()
52
56
53
57
54
- def get_labels (pr_number ) -> typing .List [GithubLabel ]:
55
- labels_link = get_labels_link (pr_number )
58
+ def get_labels (
59
+ pr_number : int , repo : typing .Optional [str ] = None
60
+ ) -> typing .List [GithubLabel ]:
61
+ labels_link = get_labels_link (pr_number , repo = repo )
56
62
57
63
response = httpx .get (labels_link )
58
64
59
65
return response .json ()
60
66
61
67
62
- def add_or_edit_comment (pr_number : int , comment_template : str , slug : str ):
63
- current_comments = get_comments (pr_number )
68
+ def add_or_edit_comment (
69
+ pr_number : int , comment_template : str , slug : str , repo : typing .Optional [str ] = None
70
+ ):
71
+ current_comments = get_comments (pr_number , repo = repo )
64
72
65
73
previous_comment = next (
66
74
(comment for comment in current_comments if has_signature (comment , slug )),
67
75
None ,
68
76
)
69
77
70
78
method = httpx .patch if previous_comment else httpx .post
71
- url = previous_comment ["url" ] if previous_comment else get_comments_link (pr_number )
79
+ url = (
80
+ previous_comment ["url" ]
81
+ if previous_comment
82
+ else get_comments_link (pr_number , repo = repo )
83
+ )
72
84
73
85
response = method (
74
86
url ,
@@ -79,7 +91,9 @@ def add_or_edit_comment(pr_number: int, comment_template: str, slug: str):
79
91
response .raise_for_status ()
80
92
81
93
82
- def update_labels (pr_number : int , release_info : typing .Optional [ReleaseInfo ]):
94
+ def update_labels (
95
+ pr_number : int , release_info : typing .Optional [ReleaseInfo ], repo : str | None = None
96
+ ):
83
97
labels_to_add = {"bot:has-release-file" }
84
98
labels_to_remove : typing .Set [str ] = set ()
85
99
@@ -92,10 +106,10 @@ def update_labels(pr_number: int, release_info: typing.Optional[ReleaseInfo]):
92
106
new_release_label = f"bot:release-type-{ release_info .change_type .value } "
93
107
labels_to_add .add (new_release_label )
94
108
95
- labels_url = get_labels_link (pr_number )
109
+ labels_url = get_labels_link (pr_number , repo = repo )
96
110
97
111
current_labels_url_by_name = {
98
- label ["name" ]: label ["url" ] for label in get_labels (pr_number )
112
+ label ["name" ]: label ["url" ] for label in get_labels (pr_number , repo = repo )
99
113
}
100
114
101
115
current_labels = set (current_labels_url_by_name .keys ())
0 commit comments