3
3
import sys
4
4
import subprocess
5
5
import re
6
- from github import Github
6
+ from github import Github # type: ignore
7
7
8
8
9
9
# Constants for message titles
@@ -52,7 +52,8 @@ def run_commit_check() -> int:
52
52
args = [
53
53
arg
54
54
for arg , value in zip (
55
- args , [MESSAGE , BRANCH , AUTHOR_NAME , AUTHOR_EMAIL , COMMIT_SIGNOFF , MERGE_BASE ]
55
+ args ,
56
+ [MESSAGE , BRANCH , AUTHOR_NAME , AUTHOR_EMAIL , COMMIT_SIGNOFF , MERGE_BASE ],
56
57
)
57
58
if value == "true"
58
59
]
@@ -104,7 +105,12 @@ def add_pr_comments() -> int:
104
105
try :
105
106
token = os .getenv ("GITHUB_TOKEN" )
106
107
repo_name = os .getenv ("GITHUB_REPOSITORY" )
107
- pr_number = os .getenv ("GITHUB_REF" ).split ("/" )[- 2 ]
108
+ pr_number = os .getenv ("GITHUB_REF" )
109
+ if pr_number is not None :
110
+ pr_number = pr_number .split ("/" )[- 2 ]
111
+ else :
112
+ # Handle the case where GITHUB_REF is not set
113
+ raise ValueError ("GITHUB_REF environment variable is not set" )
108
114
109
115
# Initialize GitHub client
110
116
g = Github (token )
@@ -157,6 +163,21 @@ def add_pr_comments() -> int:
157
163
return 1
158
164
159
165
166
+ def log_error_and_exit (failure_title , result_text , ret_code ):
167
+ """
168
+ Logs an error message to GitHub Actions and exits with the specified return code.
169
+
170
+ Args:
171
+ failure_title (str): The title of the failure message.
172
+ result_text (str): The detailed result text to include in the error message.
173
+ ret_code (int): The return code to exit with.
174
+ """
175
+ if result_text :
176
+ error_message = f"{ failure_title } \n ```\n { result_text } \n ```"
177
+ print (f"::error::{ error_message } " )
178
+ sys .exit (ret_code )
179
+
180
+
160
181
def main ():
161
182
"""Main function to run commit-check, add job summary and post PR comments."""
162
183
log_env_vars ()
@@ -169,7 +190,8 @@ def main():
169
190
if DRY_RUN == "true" :
170
191
ret_code = 0
171
192
172
- sys .exit (ret_code )
193
+ result_text = read_result_file ()
194
+ log_error_and_exit (FAILURE_TITLE , result_text , ret_code )
173
195
174
196
175
197
if __name__ == "__main__" :
0 commit comments