import os import subprocess import logging from datetime import datetime logger = logging.getLogger(__name__) def get_git_commit_message(): """ 获取当前Git commit message """ try: # 执行git命令获取最近的commit message result = subprocess.run( ["git", "log", "-1", "--pretty=%B"], capture_output=True, text=True, cwd=os.path.dirname(os.path.dirname(os.path.abspath(__file__))), ) # 获取分支信息 branch_result = subprocess.run( ["git", "branch", "--show-current"], capture_output=True, text=True, cwd=os.path.dirname(os.path.dirname(os.path.abspath(__file__))), ) if result.returncode == 0: commit_message = result.stdout.strip() branch = ( branch_result.stdout.strip() if branch_result.returncode == 0 else "unknown" ) # 格式化输出 formatted_message = f"""☀️☀️☀️☀️☀️ 🕐 {datetime.now().strftime('%Y-%m-%dT%H:%M:%S')} 🔧 {branch} -> {branch} 🏆 prod / 📝 提交信息: {commit_message}""" return formatted_message else: logger.error(f"获取Git commit message失败: {result.stderr}") return None except Exception as e: logger.error(f"获取Git commit message出错: {e}") return None