Замаскированные переменные Gitlab CI ⇐ Python

Программы на Python
Anonymous
Замаскированные переменные Gitlab CI

Сообщение Anonymous »

Я пытаюсь использовать замаскированную переменную CI в нижестоящем сценарии, но она не работает «как заявлено» — я не нашел никакой уточняющей информации об использовании, которая могла бы помочь.
По сути, очень сложный CI-конвейер должен передавать защищенную и замаскированную переменную в скрипт Python, который ее фактически использует. Это не работает. Сценарий Python использует os.environ.get() для получения переменной CI. Это «успешно», но значение отображается как [Masked].
Это «вроде» ожидаемо, поскольку весь смысл состоит в том, чтобы запутать значение в удобочитаемых формах, таких как журнал заданий конвейера (echo или print()). Проблема в том, что фактическое значение, которое он получает, буквально просто «[Маскировано]», поскольку маскирование интерпретируется как фактическое значение переменной.
Я ожидал, что фактическое значение будет правильным. , но конвейер Gitlab CI заменял его на [Masked] всякий раз, когда он был «открыт». То есть значение переменной будет правильным, но если вы попытаетесь напечатать или отобразить сообщение тогда и только тогда, оно будет [Маскировано].
Например:
MY_CI_VARIABLE = 23 # Маскированная переменная.
myVariable = os.environ.get('MY_CI_VARIABLE') # значение myVariable должно быть 23
print(myVariable) # Должно появиться [Маскировано]
myNewVariable = myVariable + 1 # должно быть 24, потому что myVariable должна быть доступна сценарию
print (myNewVariable) # должно отображаться 24.
Это НЕ работает.
Моя единственная мысль заключается в том, что это неправильный способ доступа к переменной в Python и что мне нужно используйте Gitlab CLI в Python с токеном задания, чтобы правильно получить замаскированную переменную.
Однако есть еще одно странное поведение, которое похоже на то, что оно маскирует значение переменной во ВСЕХ экземплярах, а не только сама переменная.
Пример:
MY_CI_VARIABLE = "PRODUCTION_BOTH"
Затем в Python я просто есть оператор печати, например
print('Теперь используется переменная "PRODUCTION_BOTH"...')
Это выводит
"Теперь используя [Masked] переменная..."
Похоже, это противоречит моему утверждению выше о неправильном извлечении замаскированной переменной в Python, поскольку кажется, что маскирование происходит каждый раз, когда используется значение замаскированной переменной, независимо от того, как и когда , или почему. Это означает, что с положительной стороны, маскирование работает в нижестоящем скрипте Python, потому что я получаю ошибки при попытке использовать переменную, поскольку «[Masked]» не является допустимым значением для приложения, в котором она используется.
Этот пример может показаться немного глупым, но он просто подчеркивает проблему.
Может ли кто-нибудь поделиться правильным способом использования переменных в следующем скрипте Python? ?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -variables

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