Короткий ответ Нужно использовать событие `pull_request` (а не `pull_request_target`) для запуска тестов untrusted-кода из форков — в этом режиме GitHub Actions по умолчанию не даёт джобе доступ к секретам репозитория и использует `GITHUB_TOKEN` с ограниченными правами; `pull_request_target`, выполняющийся в контексте целевой ветки с полным доступом к секретам, следует применять только для доверенных операций (например, проставление лейблов) и никогда не чекаутить и не выполнять код из PR внутри него. Как это работает подробнее `pull_request` запускает workflow с кодом и конфигурацией из ветки/форка контрибьютора, но в изолированном контексте без доступа к секретам репозитория и с токеном, ограниченным read-only для большинства ресурсов. `pull_request_target` запускает workflow из конфигурации целевой ветки (main), но с полным доступом к секретам — опасность возникает, если такой workflow дополнительно явно чекаутит и исполняет код из PR (`actions/checkout` с `ref: ${{ github.event.pull_request.head.sha }}`),