Source code for mindroot.coreplugins.admin.mod
import os
import subprocess
from datetime import datetime
[docs]
async def get_git_version_info(context=None):
"""Get git commit hash and date of last commit.
Returns a dictionary with commit hash and date, or None if not in a git repo.
Example:
{ "get_git_version_info": {} }
"""
try:
# Get the current working directory or use a default path
repo_path = os.getcwd()
if '/files/mindroot' in repo_path or repo_path.endswith('mindroot'):
# We're likely in the right place
pass
else:
# Try to find mindroot directory
if os.path.exists('/files/mindroot'):
repo_path = '/files/mindroot'
else:
return None
# Get commit hash
result = subprocess.run(
['git', 'rev-parse', 'HEAD'],
cwd=repo_path,
capture_output=True,
text=True,
timeout=10
)
if result.returncode != 0:
return None
commit_hash = result.stdout.strip()
# Get commit date
result = subprocess.run(
['git', 'log', '-1', '--format=%ci'],
cwd=repo_path,
capture_output=True,
text=True,
timeout=10
)
if result.returncode != 0:
return None
commit_date = result.stdout.strip()
return {
'commit_hash': commit_hash,
'commit_date': commit_date,
'retrieved_at': datetime.now().isoformat()
}
except Exception as e:
return None