Как сделать многострочное описание мерж-реквеста из командной строкиPython

Программы на Python
Anonymous
Как сделать многострочное описание мерж-реквеста из командной строки

Сообщение Anonymous »

Я работаю над сценарием для создания MR (merge-request) из командной строки.
Я уже сталкивался с этой проблемой, которая привела меня к этой документации.
Я запускаю это в Python через подпроцесс, поскольку именно так это будет сделано в окончательной реализации.

Код: Выделить всё

 1 description = [
2     "This is the first line of the description.",
3     "The description has multiple lines.",
4     "Each line is an element in this list."
5 ]
6
7 git_MR_options = [
8     '-o merge_request.create',
9     # ... other options
10     '-o merge_request.description="' + '\n'.join(description) + '"'
11 ]
12
13 subprocess.run(
14     ["git", "push", * git_MR_options],
15     check=True, text=True, capture_output=True
16 )
Однако по какой-то причине git не нравится мое многострочное описание,
Я получаю следующую ошибку:

Код: Выделить всё

fatal: push options must not have new line characters
Очевидно, -o merge_request.description не должен содержать \n для разделения новых строк.
(Я попробовал заменить \n в строке 10 пробелом, и это сработало нормально,
но я явно не хочу, чтобы описание было в одной строке)
Есть ли способ, как я могу это исправить это?
Версия Git, установленная в моей системе: 2.39.5

Вернуться в «Python»