@@ -221,11 +221,18 @@ def get_log_content(status: GithubStatus) -> str:
221
221
return content
222
222
223
223
224
- def main (pr_number : int ):
225
- LOGGER .info (f"Getting status URL for codeql PR #{ pr_number } " )
226
- github_sha = subprocess .check_output (
227
- ["gh" , "api" , f"repos/github/codeql/pulls/{ pr_number } " , "--jq" , ".head.sha" ]
228
- ).decode ("utf-8" ).strip ()
224
+ def main (pr_number : Optional [int ], sha_override : Optional [str ] = None ):
225
+ if not pr_number and not sha_override :
226
+ raise Exception ("Must specify either a PR number or a SHA" )
227
+
228
+ if sha_override :
229
+ github_sha = sha_override
230
+ else :
231
+ LOGGER .info (f"Getting status URL for codeql PR #{ pr_number } " )
232
+ github_sha = subprocess .check_output (
233
+ ["gh" , "api" , f"repos/github/codeql/pulls/{ pr_number } " , "--jq" , ".head.sha" ]
234
+ ).decode ("utf-8" ).strip ()
235
+
229
236
local_sha = subprocess .check_output (
230
237
["git" , "rev-parse" , "HEAD" ]
231
238
).decode ("utf-8" ).strip ()
@@ -411,15 +418,22 @@ def ok_job_name(job_name: str) -> bool:
411
418
if semmle_code_changed :
412
419
print ("Expected output in semmle-code changed!" )
413
420
414
- def get_pr_number () -> int :
421
+
422
+ def call_main ():
423
+ pr_number = None
424
+ override_sha = None
415
425
if len (sys .argv ) < 2 :
416
426
pr_number_response = subprocess .check_output ([
417
427
"gh" , "pr" , "view" , "--json" , "number"
418
428
]).decode ("utf-8" )
419
429
420
- return json .loads (pr_number_response )["number" ]
430
+ pr_number = json .loads (pr_number_response )["number" ]
421
431
else :
422
- return int (sys .argv [1 ])
432
+ if len (sys .argv [1 ]) > 10 :
433
+ override_sha = sys .argv [1 ]
434
+ else :
435
+ pr_number = int (sys .argv [1 ])
436
+ main (pr_number , override_sha )
423
437
424
438
425
439
if __name__ == "__main__" :
@@ -443,4 +457,4 @@ def get_pr_number() -> int:
443
457
sys .exit (1 )
444
458
445
459
os .chdir (CODEQL_REPO_DIR )
446
- main ( get_pr_number () )
460
+ call_main ( )
0 commit comments