---
read_when:
    - Публикация навыка или плагина
    - Отладка ошибок владельца или области видимости пакета
    - Добавление поведения публикации в пользовательский интерфейс, CLI или серверную часть
summary: Как работает публикация в ClawHub для навыков, плагинов, владельцев, областей видимости, выпусков и проверки.
x-i18n:
    generated_at: "2026-07-13T17:55:57Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: 5c0270c0bc3316d970feddfc689c1125e1c90a62beeb40d8098dc6a6752cfa70
    source_path: clawhub/publishing.md
    workflow: 16
---

# Публикация

При публикации папка навыка или пакет плагина отправляется в ClawHub от имени
выбранного вами владельца. ClawHub проверяет, позволяет ли ваш токен публиковать
от имени этого владельца, проверяет метаданные, имя, версию, файлы и сведения
об исходном коде, затем сохраняет выпуск и запускает автоматические проверки
безопасности.

Если проверка завершается с ошибкой, ничего не публикуется. Новые выпуски также
могут не появляться в обычных интерфейсах установки и скачивания до завершения
проверки.

## Skills

Самый простой способ публикации — через CLI. Войдите в систему, затем
опубликуйте локальную папку навыка:

```bash
clawhub login
clawhub skill publish ./my-skill \
  --slug my-skill \
  --name "My Skill" \
  --owner <owner>
```

Используйте `--owner <handle>` при публикации от имени владельца-организации.
Не указывайте этот параметр, чтобы публиковать от имени аутентифицированного
пользователя. При публикации неизменённое содержимое пропускается. Новый навык
начинается с версии `1.0.0`, а последующие изменения автоматически
публикуются со следующей версией исправления. Передавайте `--version`
только тогда, когда необходимо явно указать версию.

Для репозиториев-каталогов используйте переиспользуемый
[процесс `skill-publish.yml`](https://github.com/openclaw/clawhub/blob/main/.github/workflows/skill-publish.yml)
ClawHub. Он вызывает `skill publish` для каждой непосредственно вложенной
папки навыка в `root` (по умолчанию:
`skills`) или только для папки, переданной как `skill_path`.

```yaml
jobs:
  publish:
    uses: openclaw/clawhub/.github/workflows/skill-publish.yml@main
    with:
      owner: <owner>
      dry_run: false
    secrets:
      clawhub_token: ${{ secrets.CLAWHUB_TOKEN }}
```

Используйте `dry_run: true`, чтобы предварительно просмотреть новые и
изменённые навыки без публикации.

## Плагины

Плагины используют имена пакетов в стиле npm. Имена пакетов с областью включают
владельца в первой части имени:

```text
@owner/package-name
```

Область должна соответствовать выбранному владельцу публикации. Если ваш пакет
называется `@openclaw/dronzer`, его можно опубликовать только от имени
`@openclaw`. Если вы публикуете от имени `@vintageayu`,
переименуйте пакет в `@vintageayu/dronzer`.

Это не позволяет пакету присвоить пространство имён организации, которое
издатель не контролирует.

Если вы являетесь законным владельцем организации, бренда, области пакета,
идентификатора владельца или пространства имён, которое уже занято или
зарезервировано в ClawHub, создайте
[запрос на подтверждение организации или пространства имён](https://github.com/openclaw/clawhub/issues/new?template=org-namespace-claim.yml),
приложив публичные неконфиденциальные доказательства. В разделе
[Подтверждение прав на организации и пространства имён](/clawhub/namespace-claims)
указано, что следует включить и какие сведения не следует публиковать в
общедоступных запросах.

### Перед публикацией плагина

- Выберите владельца, соответствующего области пакета.
- Добавьте `openclaw.plugin.json`. Для плагинов с кодом также
  требуется `package.json` с `openclaw.compat.pluginApi` и `openclaw.build.openclawVersion`.
- Чтобы отображать собственный значок карточки плагина, добавьте
  `icon` в `openclaw.plugin.json`, указав любой URL изображения по HTTPS.
- Укажите репозиторий исходного кода и метаданные точного
  коммита либо используйте CLI из рабочей копии на основе GitHub, чтобы эти
  сведения были обнаружены автоматически.
- Перед публикацией выполните `clawhub package validate <source>`. Сведения об
  устранении ошибок пакета, манифеста, импорта SDK или артефакта приведены в
  разделе [Исправление ошибок проверки плагинов](/clawhub/plugin-validation-fixes).
- Перед созданием выпуска выполните `clawhub package publish <source> --dry-run`.
- Будьте готовы к тому, что новые выпуски не появятся в
  общедоступных интерфейсах установки до завершения автоматических проверок
  безопасности и верификации.

### Доверенная публикация пакетов

Настройка доверенной публикации пакета выполняется в два этапа:

1. Один раз опубликуйте пакет обычным способом вручную или через
   аутентифицированный токен `clawhub package publish`. Это создаёт запись пакета и
   определяет менеджеров пакета, которые могут изменять конфигурацию его
   доверенного издателя.
2. Менеджер пакета задаёт конфигурацию доверенного издателя
   GitHub Actions:

```bash
clawhub package trusted-publisher set @owner/package-name \
  --repository owner/repo \
  --workflow-filename package-publish.yml
```

После настройки конфигурации последующие поддерживаемые публикации через GitHub
Actions могут использовать OIDC и доверенную публикацию без хранения
долгосрочного токена ClawHub в репозитории. Настроенные репозиторий и имя файла
процесса должны соответствовать утверждению OIDC GitHub Actions. Если также
передаётся `--environment <name>`, утверждение окружения GitHub Actions должно в
точности соответствовать этому имени.

При настройке конфигурации доверенного издателя ClawHub проверяет указанный
репозиторий GitHub. Общедоступные репозитории можно проверять по открытым
метаданным GitHub. Для частных репозиториев ClawHub необходим доступ GitHub к
этому репозиторию, например через будущую установку приложения ClawHub для
GitHub или другую авторизованную интеграцию GitHub.

Текущий переиспользуемый процесс публикации пакетов поддерживает доверенную
публикацию без секретов для публикаций `workflow_dispatch`, когда доступен
`id-token: write`. Для фактических публикаций при отправке тегов по-прежнему
требуется `clawhub_token`, поэтому сохраняйте `CLAWHUB_TOKEN` доступным
для выпусков по тегам, первых публикаций, недоверенных пакетов и экстренных
публикаций.

Просмотреть или удалить конфигурацию можно следующими командами:

```bash
clawhub package trusted-publisher get @owner/package-name
clawhub package trusted-publisher delete @owner/package-name
```

Удаление конфигурации доверенного издателя служит способом отката. Оно отключает
выпуск токенов для будущих доверенных публикаций, пока менеджер пакета снова не
задаст конфигурацию.

## Часто задаваемые вопросы

### Область пакета должна соответствовать выбранному владельцу

Если область пакета не соответствует выбранному владельцу, ClawHub отклоняет
публикацию:

```text
Область пакета "@openclaw" должна соответствовать выбранному владельцу "@vintageayu".
Публикуйте от имени "@openclaw" или переименуйте этот пакет в "@vintageayu/dronzer".
```

Чтобы исправить ошибку, выберите владельца, указанного в области пакета, либо
переименуйте пакет так, чтобы область соответствовала владельцу, от имени
которого вы можете публиковать.

Если имя пакета уже содержит правильную область, но пакет принадлежит не тому
издателю, вместо переименования передайте права владения:

```sh
clawhub package transfer @opik/opik-openclaw --to opik
```

Передавайте пакет или навык только при наличии административного доступа как к
текущему владельцу, так и к целевому издателю. Передача пакета не позволяет
публиковать в области, которой вы не можете управлять.

Если у вас нет доступа к текущему владельцу, но вы считаете свою организацию,
проект или бренд законным владельцем пространства имён, создайте
[запрос на подтверждение организации или пространства имён](https://github.com/openclaw/clawhub/issues/new?template=org-namespace-claim.yml),
приложив публичные неконфиденциальные доказательства для проверки сотрудниками.
Перед отправкой ознакомьтесь с разделом
[Подтверждение прав на организации и пространства имён](/clawhub/namespace-claims).

Это защищает пространства имён организаций. Пакет с именем
`@openclaw/dronzer` занимает пространство имён `@openclaw`, поэтому
опубликовать его могут только издатели с доступом к владельцу
`@openclaw`.
