Skip to main content

Publicação

A publicação envia uma pasta de skill ou pacote de Plugin para o ClawHub sob o proprietário que você escolher. O ClawHub verifica se seu token pode publicar para esse proprietário, valida as informações de metadados, nome, versão, arquivos e origem, depois armazena a versão e inicia verificações de segurança automatizadas. Se a validação falhar, nada será publicado. Novas versões também podem ficar fora das superfícies normais de instalação e download até que a revisão termine.

Skills

O caminho de publicação mais simples é a CLI. Entre e depois publique uma pasta de skill local:
clawhub login
clawhub skill publish ./my-skill \
  --slug my-skill \
  --name "My Skill" \
  --owner <owner>
Use --owner <handle> ao publicar para um proprietário de organização. Omita para publicar como o usuário autenticado. A publicação ignora conteúdo inalterado. Uma nova skill começa em 1.0.0, e alterações posteriores publicam automaticamente a próxima versão de patch. Passe --version somente quando precisar de uma versão explícita. Para repositórios de catálogo, use o workflow reutilizável skill-publish.yml do ClawHub. Ele chama skill publish para cada pasta de skill imediata em root (padrão: skills), ou somente a pasta fornecida como 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 }}
Use dry_run: true para pré-visualizar Skills novas e alteradas sem publicar.

Plugins

Plugins usam nomes de pacote no estilo npm. Nomes de pacote com escopo incluem o proprietário na primeira parte do nome:
@owner/package-name
O escopo deve corresponder ao proprietário de publicação selecionado. Se seu pacote se chama @openclaw/dronzer, ele só pode ser publicado como @openclaw. Se você publicar como @vintageayu, renomeie o pacote para @vintageayu/dronzer. Isso impede que um pacote reivindique um namespace de organização que o publicador não controla. Se você for o proprietário legítimo de uma organização, marca, escopo de pacote, identificador de proprietário ou namespace que já está reivindicado ou reservado no ClawHub, abra uma issue de Reivindicação de Organização / Namespace com prova pública e não sensível. Veja Reivindicações de Organização e Namespace para saber o que incluir e o que manter fora de issues públicas.

Antes de Publicar um Plugin

  • Escolha um proprietário que corresponda ao escopo do pacote.
  • Inclua openclaw.plugin.json. Plugins de código também precisam de package.json com openclaw.compat.pluginApi e openclaw.build.openclawVersion.
  • Para exibir um ícone personalizado no cartão do Plugin, adicione icon ao openclaw.plugin.json com qualquer URL de imagem HTTPS.
  • Inclua o repositório de origem e os metadados exatos de commit, ou use a CLI a partir de um checkout baseado no GitHub para que ela possa detectá-los.
  • Execute clawhub package validate <source> antes de publicar. Para achados de pacote, manifesto, importação de SDK ou artefato, veja Correções de validação de Plugin.
  • Execute clawhub package publish <source> --dry-run antes de criar uma versão.
  • Espere que novas versões fiquem fora das superfícies públicas de instalação até que as verificações de segurança automatizadas e a verificação terminem.

Publicação Confiável para Pacotes

A publicação confiável de pacotes é uma configuração em duas etapas:
  1. Publique o pacote uma vez por meio de clawhub package publish normal manual ou autenticado por token. Isso cria o registro do pacote e estabelece os gerentes do pacote que podem alterar sua configuração de publicador confiável.
  2. Um gerente do pacote define a configuração de publicador confiável do GitHub Actions:
clawhub package trusted-publisher set @owner/package-name \
  --repository owner/repo \
  --workflow-filename package-publish.yml
Depois que a configuração é definida, publicações futuras compatíveis pelo GitHub Actions podem usar OIDC/publicação confiável sem armazenar um token ClawHub de longa duração no repositório. O repositório configurado e o nome do arquivo de workflow devem corresponder à declaração OIDC do GitHub Actions. Se você também passar --environment <name>, a declaração de ambiente do GitHub Actions deve corresponder exatamente a esse nome. O ClawHub verifica o repositório GitHub configurado quando a configuração de publicador confiável é definida. Repositórios públicos podem ser verificados por meio de metadados públicos do GitHub. Repositórios privados exigem que o ClawHub tenha acesso do GitHub a esse repositório, por exemplo, por meio de uma futura instalação do GitHub App do ClawHub ou outra integração GitHub autorizada. O workflow reutilizável atual de publicação de pacotes oferece suporte a publicação confiável sem segredo para publicações workflow_dispatch quando id-token: write está disponível. Publicações reais por push de tag ainda precisam de clawhub_token, então mantenha CLAWHUB_TOKEN disponível para versões por tag, primeiras publicações, pacotes não confiáveis ou publicações emergenciais. Inspecione ou remova a configuração com:
clawhub package trusted-publisher get @owner/package-name
clawhub package trusted-publisher delete @owner/package-name
Excluir a configuração de publicador confiável é o caminho de reversão. Isso desativa a emissão futura de tokens de publicação confiável até que um gerente do pacote defina a configuração novamente.

Perguntas Frequentes

O escopo do pacote deve corresponder ao proprietário selecionado

Se o escopo do pacote e o proprietário selecionado não corresponderem, o ClawHub rejeita a publicação:
Package scope "@openclaw" must match selected owner "@vintageayu".
Publish as "@openclaw" or rename this package to "@vintageayu/dronzer".
Para corrigir isso, escolha o proprietário nomeado pelo escopo do pacote ou renomeie o pacote para que o escopo corresponda ao proprietário pelo qual você pode publicar. Se o nome do pacote já tiver o escopo correto, mas o pacote pertencer ao publicador errado, transfira a propriedade em vez disso:
clawhub package transfer @opik/opik-openclaw --to opik
Use transferência de pacote ou skill somente quando tiver acesso de administrador tanto ao proprietário atual quanto ao publicador de destino. A transferência de pacote não permite publicar em um escopo que você não pode gerenciar. Se você não tiver acesso ao proprietário atual, mas acreditar que sua organização, projeto ou marca é o proprietário legítimo do namespace, abra uma issue de Reivindicação de Organização / Namespace com prova pública e não sensível para revisão da equipe. Veja Reivindicações de Organização e Namespace antes de registrar. Isso protege namespaces de organizações. Um pacote chamado @openclaw/dronzer reivindica o namespace @openclaw, então somente publicadores com acesso ao proprietário @openclaw podem publicá-lo.