@@ -36,19 +36,34 @@ def get_openai_session() -> OpenAI:
36
36
def get_repo_and_pr () -> dict :
37
37
repo_and_pr : dict [str , list [object ]] = {}
38
38
repo_and_pr = {"repo" : [], "pr" : []}
39
+ github_ref = os .getenv ("GITHUB_REF" )
40
+ github_repo = os .getenv ("GITHUB_REPOSITORY" )
39
41
40
42
log .info ("Getting repo and pull request from runner environment..." )
41
43
42
- if not os . getenv ( "GITHUB_REF" ) :
44
+ if not github_ref :
43
45
log .error ("Cannot find pull request, exiting!" )
44
46
raise SystemExit (1 )
45
47
46
- if not os .getenv ("GITHUB_REPOSITORY" ):
48
+ # If the split from GITHUB_REF is not an int, exit
49
+ parts = github_ref .split ("/" )
50
+ if "pull" in parts :
51
+ try :
52
+ pr_index = parts .index ("pull" ) + 1
53
+ pr_number = int (parts [pr_index ])
54
+ repo_and_pr ["pr" ].append (pr_number )
55
+ except (ValueError , IndexError ):
56
+ log .error (f"GITHUB_REF does not contain a valid PR number: { github_ref } " )
57
+ raise SystemExit (1 )
58
+ else :
59
+ log .error ("GITHUB_REF does not reference a pull request" )
60
+ raise SystemExit (1 )
61
+
62
+ if not github_repo :
47
63
log .error ("Cannot get repository name, exiting!" )
48
64
raise SystemExit (1 )
49
65
50
- repo_and_pr ["repo" ].append (os .getenv ("GITHUB_REPOSITORY" ))
51
- repo_and_pr ["pr" ].append (int (os .getenv ("GITHUB_REF" ).split ("/" )[2 ]))
66
+ repo_and_pr ["repo" ].append (github_repo )
52
67
53
68
return repo_and_pr
54
69
0 commit comments