Get started
Публикация
Публикация
При публикации папка навыка или пакет плагина отправляется в ClawHub от имени выбранного вами владельца. ClawHub проверяет, позволяет ли ваш токен публиковать от имени этого владельца, проверяет метаданные, имя, версию, файлы и сведения об исходном коде, затем сохраняет выпуск и запускает автоматические проверки безопасности.
Если проверка завершается с ошибкой, ничего не публикуется. Новые выпуски также могут не появляться в обычных интерфейсах установки и скачивания до завершения проверки.
Skills
Самый простой способ публикации — через CLI. Войдите в систему, затем опубликуйте локальную папку навыка:
clawhub loginclawhub skill publish ./my-skill \ --slug my-skill \ --name "My Skill" \ --owner <owner>Используйте --owner <handle> при публикации от имени владельца-организации.
Не указывайте этот параметр, чтобы публиковать от имени аутентифицированного
пользователя. При публикации неизменённое содержимое пропускается. Новый навык
начинается с версии 1.0.0, а последующие изменения автоматически
публикуются со следующей версией исправления. Передавайте --version
только тогда, когда необходимо явно указать версию.
Для репозиториев-каталогов используйте переиспользуемый
процесс skill-publish.yml
ClawHub. Он вызывает skill publish для каждой непосредственно вложенной
папки навыка в root (по умолчанию:
skills) или только для папки, переданной как skill_path.
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. Имена пакетов с областью включают владельца в первой части имени:
@owner/package-nameОбласть должна соответствовать выбранному владельцу публикации. Если ваш пакет
называется @openclaw/dronzer, его можно опубликовать только от имени
@openclaw. Если вы публикуете от имени @vintageayu,
переименуйте пакет в @vintageayu/dronzer.
Это не позволяет пакету присвоить пространство имён организации, которое издатель не контролирует.
Если вы являетесь законным владельцем организации, бренда, области пакета, идентификатора владельца или пространства имён, которое уже занято или зарезервировано в ClawHub, создайте запрос на подтверждение организации или пространства имён, приложив публичные неконфиденциальные доказательства. В разделе Подтверждение прав на организации и пространства имён указано, что следует включить и какие сведения не следует публиковать в общедоступных запросах.
Перед публикацией плагина
- Выберите владельца, соответствующего области пакета.
- Добавьте
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 package publish <source> --dry-run. - Будьте готовы к тому, что новые выпуски не появятся в общедоступных интерфейсах установки до завершения автоматических проверок безопасности и верификации.
Доверенная публикация пакетов
Настройка доверенной публикации пакета выполняется в два этапа:
- Один раз опубликуйте пакет обычным способом вручную или через
аутентифицированный токен
clawhub package publish. Это создаёт запись пакета и определяет менеджеров пакета, которые могут изменять конфигурацию его доверенного издателя. - Менеджер пакета задаёт конфигурацию доверенного издателя GitHub Actions:
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 доступным
для выпусков по тегам, первых публикаций, недоверенных пакетов и экстренных
публикаций.
Просмотреть или удалить конфигурацию можно следующими командами:
clawhub package trusted-publisher get @owner/package-nameclawhub package trusted-publisher delete @owner/package-nameУдаление конфигурации доверенного издателя служит способом отката. Оно отключает выпуск токенов для будущих доверенных публикаций, пока менеджер пакета снова не задаст конфигурацию.
Часто задаваемые вопросы
Область пакета должна соответствовать выбранному владельцу
Если область пакета не соответствует выбранному владельцу, ClawHub отклоняет публикацию:
Область пакета "@openclaw" должна соответствовать выбранному владельцу "@vintageayu".Публикуйте от имени "@openclaw" или переименуйте этот пакет в "@vintageayu/dronzer".Чтобы исправить ошибку, выберите владельца, указанного в области пакета, либо переименуйте пакет так, чтобы область соответствовала владельцу, от имени которого вы можете публиковать.
Если имя пакета уже содержит правильную область, но пакет принадлежит не тому издателю, вместо переименования передайте права владения:
clawhub package transfer @opik/opik-openclaw --to opikПередавайте пакет или навык только при наличии административного доступа как к текущему владельцу, так и к целевому издателю. Передача пакета не позволяет публиковать в области, которой вы не можете управлять.
Если у вас нет доступа к текущему владельцу, но вы считаете свою организацию, проект или бренд законным владельцем пространства имён, создайте запрос на подтверждение организации или пространства имён, приложив публичные неконфиденциальные доказательства для проверки сотрудниками. Перед отправкой ознакомьтесь с разделом Подтверждение прав на организации и пространства имён.
Это защищает пространства имён организаций. Пакет с именем
@openclaw/dronzer занимает пространство имён @openclaw, поэтому
опубликовать его могут только издатели с доступом к владельцу
@openclaw.