{"meta":{"title":"Использование стандартных блоков в рабочем процессе","intro":"Вы можете использовать и настраивать предварительно написанные действия для работы рабочего процесса.","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/actions","title":"GitHub Actions"},{"href":"/ru/actions/how-tos","title":"Инструкции"},{"href":"/ru/actions/how-tos/write-workflows","title":"Написание рабочих процессов"},{"href":"/ru/actions/how-tos/write-workflows/choose-what-workflows-do","title":"Выбор рабочих процессов"},{"href":"/ru/actions/how-tos/write-workflows/choose-what-workflows-do/find-and-customize-actions","title":"Поиск и настройка действий"}],"documentType":"article"},"body":"# Использование стандартных блоков в рабочем процессе\n\nВы можете использовать и настраивать предварительно написанные действия для работы рабочего процесса.\n\n## Просмотр действий Marketplace в редакторе рабочих процессов\n\nВы искать находить и просматривать действия непосредственно в редакторе рабочих процессов репозитория. На боковой панели можно найти конкретное действие, просмотреть рекомендуемые действия и рекомендуемые категории. Вы также можете просмотреть количество звезд, полученных от GitHub сообщества.\n\n1. В репозитории перейдите к файлу рабочего процесса, который необходимо изменить.\n2. Чтобы открыть редактор рабочего процесса, щелкните <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-pencil\" aria-label=\"Edit file\" role=\"img\"><path d=\"M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z\"></path></svg>в правом верхнем углу представления файла.\n\n![Снимок экрана: файл рабочего процесса с разделом заголовка. Значок карандаша для редактирования файлов выделен темным оранжевым контуром.](/assets/images/help/repository/actions-edit-workflow-file.png)\n\n1. Справа от редактора используйте боковую GitHub Marketplace панель для просмотра действий. Действия с индикатором <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-verified\" aria-label=\"Creator verified by GitHub\" role=\"img\"><path d=\"m9.585.52.929.68c.153.112.331.186.518.215l1.138.175a2.678 2.678 0 0 1 2.24 2.24l.174 1.139c.029.187.103.365.215.518l.68.928a2.677 2.677 0 0 1 0 3.17l-.68.928a1.174 1.174 0 0 0-.215.518l-.175 1.138a2.678 2.678 0 0 1-2.241 2.241l-1.138.175a1.17 1.17 0 0 0-.518.215l-.928.68a2.677 2.677 0 0 1-3.17 0l-.928-.68a1.174 1.174 0 0 0-.518-.215L3.83 14.41a2.678 2.678 0 0 1-2.24-2.24l-.175-1.138a1.17 1.17 0 0 0-.215-.518l-.68-.928a2.677 2.677 0 0 1 0-3.17l.68-.928c.112-.153.186-.331.215-.518l.175-1.14a2.678 2.678 0 0 1 2.24-2.24l1.139-.175c.187-.029.365-.103.518-.215l.928-.68a2.677 2.677 0 0 1 3.17 0ZM7.303 1.728l-.927.68a2.67 2.67 0 0 1-1.18.489l-1.137.174a1.179 1.179 0 0 0-.987.987l-.174 1.136a2.677 2.677 0 0 1-.489 1.18l-.68.928a1.18 1.18 0 0 0 0 1.394l.68.927c.256.348.424.753.489 1.18l.174 1.137c.078.509.478.909.987.987l1.136.174a2.67 2.67 0 0 1 1.18.489l.928.68c.414.305.979.305 1.394 0l.927-.68a2.67 2.67 0 0 1 1.18-.489l1.137-.174a1.18 1.18 0 0 0 .987-.987l.174-1.136a2.67 2.67 0 0 1 .489-1.18l.68-.928a1.176 1.176 0 0 0 0-1.394l-.68-.927a2.686 2.686 0 0 1-.489-1.18l-.174-1.137a1.179 1.179 0 0 0-.987-.987l-1.136-.174a2.677 2.677 0 0 1-1.18-.489l-.928-.68a1.176 1.176 0 0 0-1.394 0ZM11.28 6.78l-3.75 3.75a.75.75 0 0 1-1.06 0L4.72 8.78a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L7 8.94l3.22-3.22a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z\"></path></svg> эмблемы GitHub проверили создателя действия в качестве партнерской организации.\n\n![Снимок экрана: рабочий процесс в редакторе файлов. На боковой панели показаны действия Marketplace. Значок «Автор проверен GitHub» обведён оранжевым цветом.](/assets/images/help/repository/actions-marketplace-sidebar.png)\n\n## Добавление действия в рабочий процесс\n\nВы можете добавить действие в рабочий процесс, сославшись на действие в файле рабочего процесса. Действия, используемые в рабочем процессе, можно определять в следующих местах:\n\n* Тот же репозиторий, что и файл рабочего процесса\n* в любом общедоступном репозитории;\n* Опубликованное изображение контейнера Docker на Docker Hub\n\nДействия, на которые ссылаются рабочие процессы, можно просмотреть в виде зависимостей в GitHub Actions графе зависимостей репозитория, содержащего рабочие процессы. Дополнительные сведения см. в разделе \"[Граф зависимостей](/ru/code-security/concepts/supply-chain-security/dependency-graph)\".\n\n> \\[!NOTE]\n> Для повышения безопасности GitHub Actions не поддерживает перенаправления для действий или повторно используемых рабочих процессов. Это означает, что при изменении владельца, имени репозитория действия или имени действия все рабочие процессы, использующие это действие с предыдущим именем, завершаются ошибкой.\n\n### Добавление действия из GitHub Marketplace\n\nНа странице со списком действий приводятся версия действия и синтаксис рабочего процесса, необходимый для использования действия. Чтобы обеспечить стабильность рабочего процесса даже при изменении действия, можно указывать версию действия, которую требуется использовать, с помощью номера тега GIT или Docker в файле рабочего процесса.\n\n1. Перейдите к действию, которое необходимо использовать в рабочем процессе.\n2. Щелкните, чтобы просмотреть полный список marketplace для действия.\n3. В разделе \"Установка\" щелкните <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copy\" aria-label=\"Copy to clipboard\" role=\"img\"><path d=\"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z\"></path><path d=\"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z\"></path></svg> , чтобы скопировать синтаксис рабочего процесса.\n\n![Снимок экрана: описание marketplace для действия. Значок копирования в буфер обмена для действия выделен темным оранжевым контуром.](/assets/images/help/repository/actions-sidebar-detailed-view.png)\n\n1. Вставьте синтаксис в качестве нового шага рабочего процесса. Дополнительные сведения см. в разделе [Синтаксис рабочего процесса для GitHub Actions](/ru/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idsteps).\n2. Если действие требует предоставления входных данных, задайте их в рабочем процессе. Сведения о входных данных, которые может потребоваться действие, см. в разделе [Использование стандартных блоков в рабочем процессе](/ru/actions/how-tos/write-workflows/choose-what-workflows-do/find-and-customize-actions#using-inputs-and-outputs-with-an-action).\n\nВы также можете включить Dependabot version updates действия, добавляемые в рабочий процесс. Дополнительные сведения см. в разделе [Поддержка актуальности действий с помощью Dependabot](/ru/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/auto-update-actions).\n\n### Добавление действия из того же репозитория\n\nЕсли действие определено в том же репозитории, где файл рабочего процесса использует действие, можно ссылаться на действие с `$/path/to/dir` помощью ссылки на самовосполиемый репозиторий или с `{owner}/{repo}@{ref}``./path/to/dir` помощью синтаксиса в файле рабочего процесса. Синтаксис `$/` недоступен в GitHub Enterprise Server.\n\nПример структуры файла репозитория:\n\n```shell\n|-- hello-world (repository)\n|   |__ .github\n|       └── workflows\n|           └── my-first-workflow.yml\n|       └── actions\n|           |__ hello-world-action\n|               └── action.yml\n```\n\nРекомендуется ссылаться на действие с помощью ссылки на самостоятельный `$/path/to/dir` репозиторий. Это разрешается в тот же репозиторий во время выполнения фиксации, поэтому сначала не нужно извлечь репозиторий. Дополнительные сведения о `$/` сравнении с `{owner}/{repo}@{ref}` ими `./`см. в разделе [Синтаксис рабочего процесса для GitHub Actions](/ru/actions/reference/workflows-and-actions/workflow-syntax#example-using-an-action-in-the-same-repository-as-the-workflow-at-the-running-commit-recommended).\n\nПример файла рабочего процесса с помощью `$/`:\n\n```yaml\njobs:\n  my_first_job:\n    runs-on: ubuntu-latest\n    steps:\n      # This step references an action in the same repository at the\n      # running commit. No repository checkout is required.\n      - name: Use hello-world-action\n        uses: $/.github/actions/hello-world-action\n```\n\nВы также можете ссылаться на действие с относительным `./path/to/dir` синтаксисом, но это более подвержено ошибкам. Путь является относительным (`./`) к рабочему каталогу по умолчанию (`github.workspace`, `$GITHUB_WORKSPACE`поэтому требуется шаг проверки и если действие проверяет репозиторий в расположении, отличном от рабочего процесса, относительный путь должен быть обновлен.\n\nПример файла рабочего процесса с помощью `./`:\n\n```yaml\njobs:\n  my_first_job:\n    runs-on: ubuntu-latest\n    steps:\n      # This step checks out a copy of your repository.\n      - name: My first step - check out repository\n        uses: actions/checkout@v6\n      # This step references the directory that contains the action.\n      - name: Use local hello-world-action\n        uses: ./.github/actions/hello-world-action\n```\n\nФайл `action.yml` применяется для предоставления метаданных для действия. Узнайте о содержимом этого файла в [Справочник по синтаксису метаданных](/ru/actions/reference/workflows-and-actions/metadata-syntax).\n\n### Добавление действия из другого репозитория\n\nЕсли действие определено не в том же репозитории, где находится файл рабочего процесса, сослаться на действие можно с помощью синтаксиса `{owner}/{repo}@{ref}` в файле рабочего процесса.\n\nДействие должно храниться в общедоступном репозитории.\n\n```yaml\njobs:\n  my_first_job:\n    steps:\n      - name: My first step\n        uses: actions/setup-node@v7\n```\n\n### Ссылка на контейнер на Docker Hub\n\nЕсли действие определено в опубликованном изображении контейнера Docker на Docker Hub, вы должны ссылаться на действие синтаксисом `docker://{image}:{tag}` в вашем рабочем процессе. Для защиты вашего кода и данных мы настоятельно рекомендуем проверить целостность образа контейнера Docker из Docker Hub перед использованием его в вашем рабочем процессе.\n\n```yaml\njobs:\n  my_first_job:\n    steps:\n      - name: My first step\n        uses: docker://alpine:3.8\n```\n\nПримеры действий Docker см. в [разделе Docker-image.yml рабочий процесс](https://github.com/actions/starter-workflows/blob/main/ci/docker-image.yml) и [Создание действия контейнера Docker](/ru/actions/tutorials/use-containerized-services/create-a-docker-container-action).\n\n### Защита безопасности для использования действий в рабочих процессах\n\nGitHub предоставляет функции безопасности, которые можно использовать для повышения безопасности рабочих процессов. Встроенные функции можно использовать GitHub, чтобы убедиться, что вы уведомляете об уязвимостях в используемых действиях или автоматизируете процесс поддержания действий в рабочих процессах в актуальном состоянии. Дополнительные сведения см. в разделе [Справочник по безопасному использованию](/ru/actions/reference/security/secure-use).\n\n## Применение управления выпусками для пользовательских действий\n\nСоздатели действия сообщества могут использовать теги, ветви или значения SHA для управления выпусками действия. Как и в случае с любой зависимостью, следует указать версию действия, которую необходимо использовать, в зависимости от того, насколько приемлемо автоматическое принятие изменений действия.\n\nВерсия действия указывается в файле рабочего процесса. Узнать, какой подход к управлению выпусками применяется и какой тег, ветвь или значение SHA следует использовать, можно в документации по действию.\n\n> \\[!NOTE]\n> Рекомендуется использовать значение SHA при использовании сторонних действий. Однако важно отметить, что для уязвимых пользователейDependabot, Dependabot alerts использующих семантику управления версиями, важно отметитьGitHub Actions. Дополнительные сведения см. в разделе \\[AUTOTITLE и [Справочник по безопасному использованию](/ru/actions/reference/security/secure-use#using-third-party-actions)]\\(/code-security/concepts/supply-chain-security/dependabot-alerts).\n\n### Использование тегов\n\nТеги помогают решить, когда следует переключаться между основными и дополнительными версиями, но они являются временными и могут перемещаться или удаляться ответственным лицом. В этом примере показано, как нацелиться на действие, помеченное как `v1.0.1`:\n\n```yaml\nsteps:\n  - uses: actions/javascript-action@v1.0.1\n```\n\n### Использование значений SHA\n\nЕсли требуется более надежное управление версиями, следует использовать значение SHA, связанное с версией действия. Значения SHA являются неизменяемыми и, следовательно, более надежными, чем теги или ветви. Однако этот подход означает, что вы не будете автоматически получать обновления для действия, включая важные исправления ошибок и обновления системы безопасности. Необходимо использовать полное значение SHA фиксации, а не сокращенное.\nПри выборе SHA необходимо убедиться, что он находится в репозитории действия, а не вилке репозитория. Этот пример предназначен для SHA действия:\n\n```yaml\nsteps:\n  - uses: actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f\n```\n\n### Использование ветвей\n\nУказание целевой ветви для действия означает, что всегда будет использоваться версия в этой ветви. Этот подход может вызвать проблемы, если обновление ветви включает критические изменения. В этом примере используется ветвь с именем `@main`:\n\n```yaml\nsteps:\n  - uses: actions/javascript-action@main\n```\n\nДополнительные сведения см. в разделе [Управление пользовательскими действиями](/ru/actions/how-tos/create-and-publish-actions/manage-custom-actions#using-release-management-for-actions).\n\n## Использование входных и выходных данных с действием\n\nДействие часто принимает входные данные или требует их и создает выходные данные, которые можно использовать. Например, действие может требовать указать путь к файлу, имя метки или другие данные, которые будут использоваться в процессе обработки действия.\n\nЧтобы просмотреть входные и выходные данные действия, проверьте `action.yml` корневой каталог репозитория.\n\nВ этом примере файла `action.yml` ключевое слово `inputs` определяет обязательные входные данные `file-path` и включает значение по умолчанию, которое будет использоваться, если значение не указано. Ключевое слово `outputs` определяет выходные данные `results-file`, то есть файл с результатами.\n\n```yaml\nname: \"Example\"\ndescription: \"Receives file and generates output\"\ninputs:\n  file-path: # id of input\n    description: \"Path to test script\"\n    required: true\n    default: \"test-file.js\"\noutputs:\n  results-file: # id of output\n    description: \"Path to results file\"\n```"}