У меня есть репозиторий, настроенный с помощью TravisCI, и в файл .travis.yaml
включены два зашифрованных значения: имя пользователя и пароль (зашифрованные с использованием travis encrypt --pro USERNAME=<username>
и аналогичным образом для пароля). Это имя пользователя также является частью имени репозитория, в котором работает travis.
В связи с тем, как настроена сборка, в какой-то момент имя репозитория выводится в журналах.
Что я заметил, так это то, что хотя использование имени пользователя / пароля было выполнено с переменными (такими как echo $PASSWORD | docker login -u $USERNAME --password-stdin
), и это работало нормально (ничего не чувствительно записывается в вывод), любое другое вхождение имени пользователя было помечено как [secure]
Например, если USERNAME
было определено как foobar
, а репо - foobar/myrepo
, то при печати имени репо это выглядит как [secure]/myrepo
. Это означает, что если бы кто-то имел доступ к журналам сборки и репозиторию, он мог бы мгновенно выяснить, какое имя пользователя основано на том факте, что другое вхождение foobar
было помечено [secure]
.
Поскольку я хотел бы сохранить используемое имя пользователя в секрете (даже если эта же строка используется в другом месте), возможность извлечь его не идеальна.
Существует ли какой-то способ гарантировать, что Travis заменяет только зашифрованные значения с [secure]
, если его источником является зашифрованная переменная?