n1ro°
RU

Компьютеры · Инструкция

Как замаскировать секрет в логах GitHub Actions

Секрет иногда создаётся прямо во время job и ещё не существует в `secrets`. Workflow command `add-mask` регистрирует зна

Редакция N1RO · Проверено

Короткий ответ

Сразу после получения значения выполните `echo "::add-mask::$VALUE"` и только затем используйте его. Не печатайте значение до маскирования и не пытайтесь после этого передать его как step output.

Что делать

  1. Получите значение без вывода: Присвойте секрет переменной так, чтобы команда не напечатала его в stdout/stderr.
  2. Сразу зарегистрируйте маску: Выполните `echo "::add-mask::$VALUE"` до любого дальнейшего вывода значения.
  3. Используйте внутри job без output: Передавайте значение процессам через переменную окружения или другой подходящий механизм, но не записывайте masked value в `GITHUB_OUTPUT`.
  4. Проверьте лог: Убедитесь, что последующие появления значения заменяются маской; если значение уже утекло раньше, удаление последующих строк это не исправит.

Проверка результата

  • Значение не появилось открытым до add-mask
  • Masked value не используется как step output

Важно

`add-mask` не удаляет уже напечатанный текст. Кроме того, GitHub указывает: после маскирования значение нельзя установить как output, поэтому планируйте передачу данных до выбора этого механизма.

Что учитывать

`add-mask` не удаляет уже напечатанный текст. Кроме того, GitHub указывает: после маскирования значение нельзя установить как output, поэтому планируйте передачу данных до выбора этого механизма.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Workflow commands for GitHub Actions). Пример и формулировки — редакция N1RO на 2026-09-18.