Из os.getlogin()
документов : «Возвращает пользователя, вошедшего в систему на управляющем терминале процесса».Ваш скрипт не имеет управляющего терминала при запуске из cron
.Далее в документах предлагается: «В большинстве случаев более полезно использовать переменную окружения LOGNAME
, чтобы узнать, кто пользователь, или pwd.getpwuid(os.getuid())[0]
, чтобы получить имя для входа в систему для действующего в настоящее время идентификатора пользователя».
Так как вы не хотите изменять GitPython, вы можете написать скрипт, который делает это:
import os, pwd
os.getlogin = lambda: pwd.getpwuid(os.getuid())[0]
import git
# do whatever you need to do with GitPython here
Я бы посоветовал сообщить об ошибке (или, что еще лучше, отправить исправление) в GitPythonВпрочем.