{"meta":{"title":"Контексты","intro":"Сведения о контекстах в GitHub Actions.","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/enterprise-cloud@latest/actions","title":"GitHub Actions"},{"href":"/ru/enterprise-cloud@latest/actions/concepts","title":"Основные понятия"},{"href":"/ru/enterprise-cloud@latest/actions/concepts/workflows-and-actions","title":"Рабочие процессы и действия"},{"href":"/ru/enterprise-cloud@latest/actions/concepts/workflows-and-actions/contexts","title":"Контексты"}],"documentType":"article"},"body":"# Контексты\n\nСведения о контекстах в GitHub Actions.\n\n## Сведения о контекстах\n\nКонтексты — это способ доступа к сведениям о запусках рабочих процессов, переменных, средах выполнения, заданиях и шагах. Каждый контекст — это объект, содержащий свойства, которые могут быть строками или другими объектами.\n\nКонтексты, объекты и свойства во многом зависят от условий выполнения рабочего процесса. Например, `matrix` контекст заполняется только для заданий в [матрице](/ru/enterprise-cloud@latest/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstrategymatrix).\n\nОбращаться к контекстам можно с помощью синтаксиса выражений. Дополнительные сведения см. в разделе [Оценка выражений в рабочих процессах и действиях](/ru/enterprise-cloud@latest/actions/reference/workflows-and-actions/expressions).\n\n`${{ <context> }}`\n\n> \\[!WARNING]\n> При создании рабочих процессов и действий следует всегда учитывать, может ли код выполнять ненадежные входные данные от возможных злоумышленников. Некоторые контексты следует считать непроверенными, так как злоумышленники могут вставить собственное вредоносное содержимое. Дополнительные сведения см. в разделе [Справочник по безопасному использованию](/ru/enterprise-cloud@latest/actions/reference/security/secure-use#good-practices-for-mitigating-script-injection-attacks).\n\n## Когда используются контексты\n\nGitHub Actions включает набор переменных, *называемых контекстами* , и аналогичный набор переменных, *называемых переменными по умолчанию*. Эти переменные предназначены для использования в разных точках рабочего процесса:\n\n* **Переменные среды по умолчанию:** эти переменные среды существуют только в средстве выполнения, выполняющего задание. Дополнительные сведения см. в разделе [Справочник по переменным](/ru/enterprise-cloud@latest/actions/reference/workflows-and-actions/variables#default-environment-variables).\n* **Контексты.** Вы можете использовать большинство контекстов в любой точке рабочего процесса, включая, когда *переменные* по умолчанию будут недоступны. Например, можно использовать контексты с выражениями для выполнения начальной обработки перед маршрутизацией задания в средство выполнения тестов. Это позволяет использовать контекст с условным ключевым словом `if`, чтобы определить, следует ли выполнять шаг. После выполнения задания можно также извлечь переменные контекста из средства выполнения тестов, которое выполняет задание, например `runner.os`. Дополнительные сведения о том, где можно использовать различные контексты в рабочем процессе, см. в разделе [Справочник по контекстам](/ru/enterprise-cloud@latest/actions/reference/workflows-and-actions/contexts#context-availability).\n\nВ следующем примере показано, как эти различные типы переменных можно использовать вместе в задании:\n\n```yaml copy\nname: CI\non: push\njobs:\n  prod-check:\n    if: ${{ github.ref == 'refs/heads/main' }}\n    runs-on: ubuntu-latest\n    steps:\n      - run: echo \"Deploying to production server on branch $GITHUB_REF\"\n```\n\nВ этом примере инструкция `if` проверяет контекст [`github.ref`](/ru/enterprise-cloud@latest/actions/reference/workflows-and-actions/contexts#github-context), чтобы определить имя текущей ветви; если используется имя `refs/heads/main`, то выполняются последующие шаги.\n`if` Проверка обрабатывается с GitHub Actionsпомощью , и задание отправляется бегущему только если результат равен `true`. После отправки задания в средство выполнения выполняется шаг и ссылается на [`$GITHUB_REF`](/ru/enterprise-cloud@latest/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables) переменную из средства выполнения."}