# Контексты

Сведения о контекстах в GitHub Actions.

## Сведения о контекстах

Контексты — это способ доступа к сведениям о запусках рабочих процессов, переменных, средах выполнения, заданиях и шагах. Каждый контекст — это объект, содержащий свойства, которые могут быть строками или другими объектами.

Контексты, объекты и свойства во многом зависят от условий выполнения рабочего процесса. Например, `matrix` контекст заполняется только для заданий в [матрице](/ru/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstrategymatrix).

Обращаться к контекстам можно с помощью синтаксиса выражений. Дополнительные сведения см. в разделе [Оценка выражений в рабочих процессах и действиях](/ru/enterprise-server@3.22/actions/reference/workflows-and-actions/expressions).

`${{ <context> }}`

> \[!WARNING]
> При создании рабочих процессов и действий следует всегда учитывать, может ли код выполнять ненадежные входные данные от возможных злоумышленников. Некоторые контексты следует считать непроверенными, так как злоумышленники могут вставить собственное вредоносное содержимое. Дополнительные сведения см. в разделе [Справочник по безопасному использованию](/ru/enterprise-server@3.22/actions/reference/security/secure-use#good-practices-for-mitigating-script-injection-attacks).

## Когда используются контексты

GitHub Actions включает набор переменных, *называемых контекстами* , и аналогичный набор переменных, *называемых переменными по умолчанию*. Эти переменные предназначены для использования в разных точках рабочего процесса:

* **Переменные среды по умолчанию:** эти переменные среды существуют только в средстве выполнения, выполняющего задание. Дополнительные сведения см. в разделе [Справочник по переменным](/ru/enterprise-server@3.22/actions/reference/workflows-and-actions/variables#default-environment-variables).
* **Контексты.** Вы можете использовать большинство контекстов в любой точке рабочего процесса, включая, когда *переменные* по умолчанию будут недоступны. Например, можно использовать контексты с выражениями для выполнения начальной обработки перед маршрутизацией задания в средство выполнения тестов. Это позволяет использовать контекст с условным ключевым словом `if`, чтобы определить, следует ли выполнять шаг. После выполнения задания можно также извлечь переменные контекста из средства выполнения тестов, которое выполняет задание, например `runner.os`. Дополнительные сведения о том, где можно использовать различные контексты в рабочем процессе, см. в разделе [Справочник по контекстам](/ru/enterprise-server@3.22/actions/reference/workflows-and-actions/contexts#context-availability).

В следующем примере показано, как эти различные типы переменных можно использовать вместе в задании:

```yaml copy
name: CI
on: push
jobs:
  prod-check:
    if: ${{ github.ref == 'refs/heads/main' }}
    runs-on: ubuntu-latest
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"
```

В этом примере инструкция `if` проверяет контекст [`github.ref`](/ru/enterprise-server@3.22/actions/reference/workflows-and-actions/contexts#github-context), чтобы определить имя текущей ветви; если используется имя `refs/heads/main`, то выполняются последующие шаги.
`if` Проверка обрабатывается с GitHub Actionsпомощью , и задание отправляется бегущему только если результат равен `true`. После отправки задания в средство выполнения выполняется шаг и ссылается на [`$GITHUB_REF`](/ru/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables) переменную из средства выполнения.