def main(repos):
log_cmd = '%s log "%s"' % (SVNLOOK, repos)
log_msg = os.popen(log_cmd, 'r').readline().rstrip('n')
rev_number_cmd = '%s info "%s"' % (SVNLOOK, repos)
out = subprocess.Popen(rev_number_cmd, stdout=subprocess.PIPE, shell=True)
revs = out.stdout.read().decode('UTF-8')
own_key = check_commit_message(log_msg, jira)
comment_jira_ticket(jira, own_key, revs)
if __name__ == '__main__':
main(sys.argv[1])username
2020-05-07 20:53:48 +0300 (Thu, 07 May 2020)
53
ISSUE-148 Win В первом раундеusername
2020-05-07 20:53:48 +0300 (Thu, 07 May 2020)
53
ISSUE-148 Win {U+0412} {U+043F}{U+0435}{U+0440}{U+0432}{U+043E}{U+043C} {U+0440}{U+0430}{U+0443}{U+043D}{U+0434}{U+0435}
Shell=true, как раз ради того, чтобы выполнять сий код через оболочку.
subprocess.Popen здесь для того, чтобы независимо вызвать процесс
можно заменить его на os.popen и по сути ничего не изменится.
Зачем? Ваш svnlook, это же не команда bash, как например, cd, а нормальный elf. (может, конечно оказаться и bash script'ом, но я сильно я этом сомневаваюсь) Ну, запустите which svnlook и проверьте, что это выполняемый файл. А вот which cd ничего не найдет. И, ведь os.popen() отработал?
62 27 69 67 72 6f 74 65 6b 5c 6e 32 30 32 30 2d 30 35 2d 32 37 20 31 34 3a 34 37 3a 31 33 20 2b 30 33 30 30 20 28 57 65 64 2c 20 32 37 20 4d 61 79 20 32 30 32 30 29 5c 6e 31 33 34 5c 6e 57 46 42 2d 31 34 38 20 5b 70 74 62 5f 50 79 72 61 6d 69 64 5f 75 70 5d 20 7b 55 2b 30 34 31 32 7d 20 7b 55 2b 30 34 33 46 7d 7b 55 2b 30 34 33 35 7d 7b 55 2b 30 34 34 30 7d 7b 55 2b 30 34 33 32 7d 7b 55 2b 30 34 33 45 7d 7b 55 2b 30 34 33 43 7d 20 7b 55 2b 30 34 34 30 7d 7b 55 2b 30 34 33 30 7d 7b 55 2b 30 34 34 33 7d 7b 55 2b 30 34 33 44 7d 7b 55 2b 30 34 33 34 7d 7b 55 2b 30 34 33 35 7d 5c 6e 5c 6e 5c 6e 5c 6e 27 $ which svnlook
/usr/bin/svnlookimport subprocess
if __name__ == '__main__':
rc = subprocess.run(['svnlook', 'help'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf8')
print()
print('----- stdout -----')
print(rc.stdout)
print('----- stderr -----')
print(rc.stderr)
print('----- end -----')
username
2020-05-07 20:53:48 +0300 (Thu, 07 May 2020)
53
ISSUE-148 Win {U+0412} {U+043F}{U+0435}{U+0440}{U+0432}{U+043E}{U+043C} {U+0440}{U+0430}{U+0443}{U+043D}{U+0434}{U+0435}
>>> print(rc.stdout)
igrotek
2020-05-27 17:39:42 +0300 (Wed, 27 May 2020)
55
ISSUE-148 Win В первом раунде