@@ -273,6 +273,31 @@ def is_fork_pr_with_readonly_token() -> bool:
273273 return is_fork_pr () and os .getenv ("GITHUB_EVENT_NAME" , "" ) != "pull_request_target"
274274
275275
276+ def get_pr_number () -> int :
277+ """Extract the pull request number from event payload or GITHUB_REF.
278+
279+ For pull_request: GITHUB_REF is refs/pull/<number>/merge
280+ For pull_request_target: GITHUB_REF is refs/heads/<branch> (not useful),
281+ so we fall back to the event payload.
282+ """
283+ ref = os .getenv ("GITHUB_REF" , "" )
284+ parts = ref .split ("/" )
285+ if len (parts ) >= 4 and parts [1 ] == "pull" :
286+ return int (parts [2 ])
287+ # Fallback: read PR number from event payload
288+ event_path = os .getenv ("GITHUB_EVENT_PATH" )
289+ if event_path :
290+ try :
291+ with open (event_path , "r" ) as f :
292+ event = json .load (f )
293+ number = event .get ("number" ) or (event .get ("pull_request" , {}) or {}).get ("number" )
294+ if number :
295+ return int (number )
296+ except Exception :
297+ pass
298+ raise ValueError ("Unable to determine PR number from GITHUB_REF or GITHUB_EVENT_PATH" )
299+
300+
276301def add_pr_comments () -> int :
277302 """Posts the commit check result as a comment on the pull request."""
278303 if not PR_COMMENTS_ENABLED :
@@ -309,18 +334,14 @@ def add_pr_comments() -> int:
309334
310335 token = os .getenv ("GITHUB_TOKEN" )
311336 repo_name = os .getenv ("GITHUB_REPOSITORY" )
312- pr_number = os .getenv ("GITHUB_REF" )
313- if pr_number is not None :
314- pr_number = pr_number .split ("/" )[- 2 ]
315- else :
316- raise ValueError ("GITHUB_REF environment variable is not set" )
337+ pr_number = get_pr_number ()
317338
318339 if not token :
319340 raise ValueError ("GITHUB_TOKEN is not set" )
320341
321342 g = Github (auth = Auth .Token (token ))
322343 repo = g .get_repo (repo_name )
323- pull_request = repo .get_issue (int ( pr_number ) )
344+ pull_request = repo .get_issue (pr_number )
324345
325346 result_text = read_result_file ()
326347 pr_comment_body = build_result_body (result_text )
0 commit comments