n1ro°
RU

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

GitHub Actions: secrets недоступны в pull request из fork

Проверьте event и подтвердите, что PR действительно пришёл из fork. Определите, какие steps реально требуют секрета, и о

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

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

Обычные Actions secrets не передаются недоверенному коду PR из fork; разделите проверки без секрета и доверенный workflow после проверки/merge, а `pull_request_target` используйте только без выполнения недоверенного PR-кода с привилегиями.

Проверка по порядку

  • Проверьте event и подтвердите, что PR действительно пришёл из fork.
  • Определите, какие steps реально требуют секрета, и оставьте lint/test/build без него, если возможно.
  • Не выводите `${{ secrets.* }}` в лог и не передавайте секрет через artifact/комментарий.

Исправление

  1. Доверенные release/deploy steps запускайте после попадания проверенного кода в доверенную ветку.
  2. При `pull_request_target` не checkout/execute PR-код с write-token/secrets без отдельной безопасной архитектуры.
  3. Повторите сценарий на тестовом fork и убедитесь, что недоверенный step секрет не получает.

Как понять, что исправлено

  • Fork PR выполняет проверки без доступа к secrets, а доверенный release/deploy workflow получает секрет только в разрешённом контексте.

Важно

pull_request_target работает в контексте base repository. Не выполняйте непроверенный код fork с write-token или secrets — это риск утечки секрета.

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

pull_request_target работает в контексте base repository. Не выполняйте непроверенный код fork с write-token или secrets — это риск утечки секрета.

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

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