diff --git a/update_diffs.py b/update_diffs.py index 1043066..5287861 100644 --- a/update_diffs.py +++ b/update_diffs.py @@ -5,6 +5,7 @@ import subprocess import os import tempfile from pathlib import Path +import ast import parse @@ -131,6 +132,21 @@ def get_module_developer(file_path): return None +def _parse_version_from_source(source: str): + try: + tree = ast.parse(source) + except SyntaxError: + return None + + for node in tree.body: + if isinstance(node, ast.Assign): + for target in node.targets: + if isinstance(target, ast.Name) and target.id == "__version__": + try: + return ast.literal_eval(node.value) + except (ValueError, SyntaxError): + return None + def is_module_file(file_path): """Check if file is a Python module in a modules directory""" @@ -271,8 +287,18 @@ async def main(): except Exception: old_hash = arguments.base_commit + version = "" + try: + with open(file_path, 'r', encoding='utf-8') as f: + source = f.read() + version_tuple = _parse_version_from_source(source) + if version_tuple: + version = '.'.join(map(str, version_tuple)) + except Exception as e: + print(f"Error parsing version from {file_path}: {e}") + diff_url = f"https://github.com/MuRuLOSE/limoka/compare/{old_hash}...{new_hash}.diff" - title = f"🪼 Module {module_name} changes approved" + title = f"🪼 Module {module_name} {version} changes approved" if developer: title += f"\nby {developer}"