{"meta":{"title":"Управление пользовательскими действиями","intro":"Узнайте, как создавать собственные действия и управлять ими, а также настраивать действия, общие сообществом GitHub .","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/enterprise-cloud@latest/actions","title":"GitHub Actions"},{"href":"/ru/enterprise-cloud@latest/actions/how-tos","title":"Инструкции"},{"href":"/ru/enterprise-cloud@latest/actions/how-tos/create-and-publish-actions","title":"Создание и публикация действий"},{"href":"/ru/enterprise-cloud@latest/actions/how-tos/create-and-publish-actions/manage-custom-actions","title":"Управление пользовательскими действиями"}],"documentType":"article"},"body":"# Управление пользовательскими действиями\n\nУзнайте, как создавать собственные действия и управлять ими, а также настраивать действия, общие сообществом GitHub .\n\n## Выбор расположения для действия\n\nЕсли вы разрабатываете действие для других пользователей, рекомендуется сохранить действие в собственном репозитории вместо объединения его с другим кодом приложения. Это позволяет осуществлять управление версиями, отслеживание и выпуск для действия точно так же, как и для любого другого программного обеспечения.\n\nХранение действия в своем собственном репозитории упрощает GitHub обнаружение действия сообществом, сужает область базы кода для разработчиков, устраняющих проблемы и расширяя действие, и разделяет управление версиями действия от управления версиями другого кода приложения.\n\nЧтобы совместно использовать действия в организации без публикации действий публично, можно хранить действия во внутреннем репозитории, а затем настроить репозиторий, чтобы разрешить доступ к GitHub Actions рабочим процессам в других репозиториях, принадлежащих той же организации или любой организации в организации. Дополнительные сведения см. в разделе [Совместное использование действий и рабочих процессов с вашим предприятием](/ru/enterprise-cloud@latest/actions/how-tos/reuse-automations/share-with-your-enterprise).\n\nЕсли вы создаете действие, которое вы не планируете предоставлять другим пользователям, вы  можете хранить файлы действия в любом расположении в репозитории. Если вы планируете объединить действие, рабочий процесс и код приложения в одном репозитории, рекомендуется хранить действия в каталоге `.github`. Например, `.github/actions/action-a` и `.github/actions/action-b`.\n\n## Обеспечение совместимости с другими платформами\n\nМногие пользователи получают доступ GitHub к домену, отличному GitHub.comот домена, например GHE.com или личного домена.GitHub Enterprise Server\n\nЧтобы убедиться, что действие совместимо с другими платформами, не используйте жестко закодированные ссылки на URL-адреса API, например `https://api.github.com`. Вместо этого можно:\n\n* Используйте переменные среды (см [. AUTOTITLE](/ru/enterprise-cloud@latest/actions/reference/workflows-and-actions/variables#default-environment-variables)):\n\n  * Для REST API используйте переменную среды `GITHUB_API_URL`.\n  * Для GraphQL используйте переменную среды `GITHUB_GRAPHQL_URL`.\n\n* Используйте набор средств, например [`@actions/github`](https://github.com/actions/toolkit/tree/main/packages/github), который может автоматически задать правильные URL-адреса.\n\n## Использование управления выпусками для действий\n\nЕсли вы разрабатываете действие для других пользователей, мы рекомендуем использовать управление выпусками для управления распространением обновлений. Пользователи могут ожидать, что версия исправления действия включает в себя необходимые критические исправления и обновления системы безопасности, сохраняя при этом совместимость с существующими рабочими процессами. Рекомендуется выпускать новый основной номер версии всякий раз, когда изменения затрагивают совместимость.\n\nВ рамках этого подхода к управлению выпусками пользователи не должны ссылаться на ветвь по умолчанию действия, так как, скорее всего, содержит последний код и, следовательно, может быть неустойчивым. Вместо этого можно порекомендовать, чтобы пользователи указывали основной номер версии при использовании действия, и перенаправлять их к более конкретной версии только при возникновении проблем.\n\nЧтобы использовать определенную версию действия, пользователи могут настроить рабочий GitHub Actions процесс для назначения тега, SHA фиксации или ветви с именем выпуска.\n\n### Использование тегов для управления выпусками\n\n> \\[!NOTE] Если вы включили неизменяемые выпуски, чтобы предотвратить атаки цепочки поставок и случайные изменения в выпусках, вместо этого см [. autoTITLE](/ru/enterprise-cloud@latest/actions/how-tos/create-and-publish-actions/using-immutable-releases-and-tags-to-manage-your-actions-releases).\n\nМы рекомендуем использовать теги для управления выпусками действий. С помощью этого подхода пользователи могут легко различать основной и дополнительный номера версии:\n\n1. Разработка и проверка выпуска в ветви выпуска (например, `release/v1`).\n2. Создайте выпуск с тегом выпуска с помощью семантического управления версиями (например, `v1.0.1`). Дополнительные сведения см. в разделе [Управление выпусками в репозитории](/ru/enterprise-cloud@latest/repositories/releasing-projects-on-github/managing-releases-in-a-repository).\n3. Переместите тег основной версии (например, `v1`), чтобы указать ссылку на Git ref текущего выпуска. Дополнительные сведения см[. в основах Git.](https://git-scm.com/book/en/v2/Git-Basics-Tagging)\n4. Введите новый тег основной версии (например, `v2`) для изменений, которые будут нарушать существующие рабочие процессы, такие как изменение входных данных действия.\n\n#### Синтаксис для ссылок\n\nВ этом примере показано, как пользователь может ссылаться на основной тег версии:\n\n```yaml\nsteps:\n    - uses: actions/javascript-action@v1\n```\n\nВ этом примере показано, как пользователь может ссылаться на тег определенного выпуска исправления:\n\n```yaml\nsteps:\n    - uses: actions/javascript-action@v1.0.1\n```\n\n### Использование ветвей для управления выпусками\n\nЕсли вы предпочитаете использовать имена ветвей для управления выпусками, в этом примере показано, как ссылаться на именованную ветвь:\n\n```yaml\nsteps:\n    - uses: actions/javascript-action@v1-beta\n```\n\n### Использование SHA фиксации для управления выпусками\n\nКаждая фиксация Git получает вычисляемое значение SHA, которое является уникальным и неизменяемым. Пользователи вашего действия могут предпочесть использование значения SHA фиксации, так как такой подход может оказаться более надежным, чем указание тега, который может быть удален или перемещен. Однако это означает, что пользователи не получат дальнейшие обновления для такого действия. Необходимо использовать полное значение SHA фиксации, а не сокращенное.\n\n```yaml\nsteps:\n    - uses: actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f\n```\n\n## Создание файла сведений для действия\n\nМы рекомендуем создать файл сведений, чтобы помочь людям понять, как следует использовать ваше действие. В файл `README.md` можно включить следующее:\n\n* подробное описание того, что делает действие;\n* обязательные входные и выходные аргументы;\n* необязательные входные и выходные аргументы;\n* секреты, используемые действием;\n* переменные среды, используемые действием;\n* пример использования действия в рабочем процессе."}