{"meta":{"title":"Блокировки зависимостей рабочего процесса","intro":"Блокфайл закрепляет каждое действие, которое рабочие процессы зависят от проверенной фиксации, поэтому проверенный код является кодом, который выполняется.","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/actions","title":"GitHub Actions"},{"href":"/ru/actions/concepts","title":"Основные понятия"},{"href":"/ru/actions/concepts/security","title":"Безопасность"},{"href":"/ru/actions/concepts/security/workflow-dependency-lockfiles","title":"Блокировки зависимостей"}],"documentType":"article"},"body":"# Блокировки зависимостей рабочего процесса\n\nБлокфайл закрепляет каждое действие, которое рабочие процессы зависят от проверенной фиксации, поэтому проверенный код является кодом, который выполняется.\n\n> \\[!NOTE] Файлы блокировки зависимостей рабочего процесса находятся и подвергаются Публичный предварительный просмотр изменению.\n\n## Почему зависимости рабочих процессов блокируются?\n\nКогда рабочий процесс ссылается на действие тегом или ветвью, например `uses: octo-org/deploy-action@v3` или `uses: octo-org/deploy-action@main`, GitHub Actions разрешает эту ссылку на то, что зафиксирует тег или ветвь во время выполнения.\n\nТеги и ветви могут перемещаться, поэтому код, который выполняется, не гарантируется, что код, который автор рабочего процесса первоначально рассмотрел. Если учетная запись вышестоящего обработчика скомпрометирована, а тег переназначается, репозитории могут запускать вредоносный код.\n\nФайл блокировки зависимостей рабочего процесса закрепляет sha фиксации для каждого действия (включая транзитивные зависимости) и повторно используемый рабочий процесс, от которых зависят рабочие процессы. Это дает вам следующее:\n\n* Воспроизводимые сборки\n* Просмотр изменений зависимостей и Dependabot обновлений версий\n* Аудит зависимостей систем CI/CD\n\n## Как работает блокировка?\n\nФайл блокировки определяется в репозитории по адресу `.github/workflows/actions.lock`. Он создается расширением `gh actions-lock`GitHub CLI и никогда не должен изменяться вручную.\n\nРабочие процессы репозитория можно подключить к файлу блокировки один раз или одновременно. После подключения рабочего процесса:\n\n* Все зависимости действий, которые использует рабочий процесс, должны присутствовать в файле блокировки.\n* Заблокированная фиксация — это то, что выполняется при выполнении рабочего процесса, а также то, какие политики разрешенных действий проверяются. Эта фиксация должна существовать в ветви исходного репозитория.\n\nФайл блокировки охватывает рабочие процессы в собственном репозитории. Он распространяется на транзитивные зависимости (действия, используемые *зависимостями действия* ), **за исключением** зависимостей повторно используемых вызовов рабочих процессов. Повторно используемый рабочий процесс охватывается блокировкой репозитория, в котором он определен.\n\n## Что такое запись lockfile?\n\nВ файле блокировки есть два раздела.\n`workflows` записывает зависимости каждого подключенного рабочего процесса и `dependencies` записывает записи, в которых фиксируется каждая из этих ссылок.\n\n```yaml\n# This file is machine-generated by `gh actions-lock`.\n# Do not edit by hand; run `gh actions-lock` to update.\nversion: 'v0.0.2'\nworkflows:\n    '.github/workflows/ci.yml':\n        - 'octo-org/deploy-action@v3.1.0'\ndependencies:\n    'octo-org/deploy-action@v3.1.0':\n        ref: 'v3.1.0'\n        commit: 'sha1-...'\n        owner_id: 44036562\n        repo_id: 197814629\n```\n\nКаждая запись зависимостей:\n\n* **`ref`**: ссылка на рабочий процесс используется, например тег или ветвь.\n* **`commit`**: точная фиксация ссылки, разрешенной. Это код, который будет выполняться.\n* **`owner_id` и `repo_id`**: числовое удостоверение исходного репозитория. GitHub Actions использует их для подтверждения во время выполнения, что репозиторий за именем по-прежнему заблокирован.\n\n## Как файлы блокировки сравниваются с закреплением SHA?\n\nGitHub в файлах рабочего процесса рекомендуется закреплять сторонние действия с полной фиксацией SHA в файлах рабочего процесса. Для репозиториев, которые принимают блокировку, SHA закрепление в файлах рабочих процессов **больше не требуется**. Блокировка является лучшим вариантом, так как она поддерживает транзитивные зависимости, упрощает чтение файлов рабочих процессов и записывает удостоверение исходного репозитория.\n\n## Дальнейшие действия\n\nСведения о создании файла блокировки для репозитория см. в разделе [Блокировка зависимостей действий в рабочих процессах репозитория](/ru/actions/how-tos/secure-your-work/lock-workflow-dependencies)."}