Skip to content

Commit 037d58f

Browse files
committed
PR number parsing fix
1 parent 8254562 commit 037d58f

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

reviewbot/utils.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,18 @@
22
import requests
33

44
def get_diff():
5-
# GitHub repo info and PR number are available in GitHub Actions env
65
repo = os.environ.get("GITHUB_REPOSITORY") # e.g. "owner/repo"
7-
pr_number = os.environ.get("GITHUB_REF").split("/")[-1] # e.g. "42"
6+
ref = os.environ.get("GITHUB_REF") # e.g. "refs/pull/123/merge"
87

9-
if not repo or not pr_number:
10-
raise Exception("Missing GitHub repository or PR number environment variables.")
8+
if not repo or not ref:
9+
raise Exception("Missing GitHub repository or ref environment variables.")
10+
11+
# Extract PR number safely:
12+
parts = ref.split("/")
13+
if len(parts) >= 3 and parts[-3] == "pull":
14+
pr_number = parts[-2]
15+
else:
16+
raise Exception(f"Unexpected GITHUB_REF format: {ref}")
1117

1218
token = os.environ.get("GITHUB_TOKEN")
1319
if not token:
@@ -21,8 +27,6 @@ def get_diff():
2127
url = f"https://api.github.com/repos/{repo}/pulls/{pr_number}/files"
2228

2329
diffs = []
24-
25-
# Pagination handling in case there are many files
2630
page = 1
2731
while True:
2832
response = requests.get(url, headers=headers, params={"page": page, "per_page": 100})
@@ -39,4 +43,3 @@ def get_diff():
3943
page += 1
4044

4145
return "\n".join(diffs)
42-

0 commit comments

Comments
 (0)