Компьютеры · Инструкция
Как замаскировать секрет в логах GitHub Actions
Секрет иногда создаётся прямо во время job и ещё не существует в `secrets`. Workflow command `add-mask` регистрирует зна
Короткий ответ
Сразу после получения значения выполните `echo "::add-mask::$VALUE"` и только затем используйте его. Не печатайте значение до маскирования и не пытайтесь после этого передать его как step output.
Что делать
- Получите значение без вывода: Присвойте секрет переменной так, чтобы команда не напечатала его в stdout/stderr.
- Сразу зарегистрируйте маску: Выполните `echo "::add-mask::$VALUE"` до любого дальнейшего вывода значения.
- Используйте внутри job без output: Передавайте значение процессам через переменную окружения или другой подходящий механизм, но не записывайте masked value в `GITHUB_OUTPUT`.
- Проверьте лог: Убедитесь, что последующие появления значения заменяются маской; если значение уже утекло раньше, удаление последующих строк это не исправит.
Проверка результата
- Значение не появилось открытым до add-mask
- Masked value не используется как step output
Важно
`add-mask` не удаляет уже напечатанный текст. Кроме того, GitHub указывает: после маскирования значение нельзя установить как output, поэтому планируйте передачу данных до выбора этого механизма.
Что учитывать
`add-mask` не удаляет уже напечатанный текст. Кроме того, GitHub указывает: после маскирования значение нельзя установить как output, поэтому планируйте передачу данных до выбора этого механизма.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Workflow commands for GitHub Actions). Пример и формулировки — редакция N1RO на 2026-09-18.