@@ -24,7 +24,7 @@ def get_github_prs(token, owner, repo, milestone, label, state):
24
24
25
25
milestone_id = None
26
26
milestone_url = f"https://api.github.com/repos/{ owner } /{ repo } /milestones"
27
- params = {"state" : state }
27
+ params = {"state" : open }
28
28
29
29
try :
30
30
response = requests .get (milestone_url , headers = headers , params = params )
@@ -37,17 +37,19 @@ def get_github_prs(token, owner, repo, milestone, label, state):
37
37
38
38
if not milestone_id :
39
39
print (f"Milestone '{ milestone } ' not found in repository '{ owner } /{ repo } '." )
40
- return []
40
+ exit ( 1 )
41
41
42
42
except requests .exceptions .RequestException as e :
43
43
print (f"Error fetching milestones: { e } " )
44
- return []
44
+ exit ( 1 )
45
45
46
- prs_url = f"https://api.github.com/repos/{ owner } /{ repo } /pulls"
46
+ # This endpoint allows filtering by milestone and label. A PR in GH's perspective is a type of issue.
47
+ prs_url = f"https://api.github.com/repos/{ owner } /{ repo } /issues"
47
48
params = {
48
49
"state" : state ,
49
50
"milestone" : milestone_id ,
50
51
"labels" : label ,
52
+ "per_page" : 100 ,
51
53
}
52
54
53
55
all_prs = []
@@ -61,18 +63,19 @@ def get_github_prs(token, owner, repo, milestone, label, state):
61
63
62
64
if not prs :
63
65
break # No more PRs to fetch
64
-
65
- all_prs .extend (prs )
66
+
67
+ # Check for pr key since we are using issues endpoint instead.
68
+ all_prs .extend ([item for item in prs if "pull_request" in item ])
66
69
page += 1
67
70
68
71
except requests .exceptions .RequestException as e :
69
72
print (f"Error fetching pull requests: { e } " )
70
- break
73
+ exit ( 1 )
71
74
72
75
return all_prs
73
76
74
77
if __name__ == "__main__" :
75
- github_token = os .environ .get ("GITHUB_TOKEN" )
78
+ github_token = os .environ .get ("GITHUB_TOKEN" )
76
79
77
80
if not github_token :
78
81
print ("Error: GITHUB_TOKEN environment variable not set." )
0 commit comments