Скрипт не обрабатывает результат публикации, и говорит, что всё нормально, даже если ничего не получилось.
Возникла проблема: как парсить результат, возвращаемый git.pull. Это не строка, а некая структура: Traceback (most recent call last): File "./apply_new_patches.py", line 92, in <module> result = patch.apply_with_tests() File "/srv/builder-robot/Projects/wine-tests/wine_repository.py", line 245, in apply_with_tests repo.publish() File "/srv/builder-robot/Projects/wine-tests/git_repository.py", line 57, in publish self.debug("Published correctly. Result=" + result) TypeError: cannot concatenate 'str' and 'IterableList' objec
Выяснилась ещё одна проблема: Скрипт посылает письмо автору до публикации репозитория.
функция push возвращает класс <git.remote.PushInfo object at 0x91cd9bc> Поля класса: ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattr__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__module__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '_id_attr', '_prefix', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] Пока не понятно где здесь искать результат пуша. Возможно это список, и обращаться к нему надо поэлементно.
Нет, это не список, хотя аттрибуты append явно на это указывают.
Решил напрямую использовать git push. Если прав нет, то возникает исключение. Сделал патч. Работает. Осталось сделать отправку письма после публикации.
> Осталось сделать отправку письма после публикации. Сделал Ещё добавил откат патча при неудачной публикации.
Проверил на живой системе. Исправил ошибки. Работает.