Get started
Publikowanie
Publikowanie
Publikowanie wysyła folder Skills lub pakiet pluginu do ClawHub pod wybranym właścicielem. ClawHub sprawdza, czy Twój token może publikować dla tego właściciela, weryfikuje metadane, nazwę, wersję, pliki i informacje o źródle, a następnie zapisuje wydanie i uruchamia automatyczne kontrole bezpieczeństwa.
Jeśli walidacja się nie powiedzie, nic nie zostanie opublikowane. Nowe wydania mogą też pozostać niedostępne w standardowych miejscach instalacji i pobierania, dopóki przegląd się nie zakończy.
Skills
Najprostszą ścieżką publikowania jest CLI. Zaloguj się, a następnie opublikuj lokalny folder Skills:
clawhub loginclawhub skill publish ./my-skill \ --slug my-skill \ --name "My Skill" \ --owner <owner>Użyj --owner <handle> podczas publikowania jako właściciel organizacji. Pomiń
ten argument, aby publikować jako uwierzytelniony użytkownik. Publikowanie
pomija niezmienioną zawartość. Nowe Skills zaczyna od wersji 1.0.0, a późniejsze
zmiany automatycznie publikują kolejną wersję poprawkową. Przekaż --version
tylko wtedy, gdy potrzebujesz jawnej wersji.
W przypadku repozytoriów katalogu użyj wielokrotnego użytku workflow
skill-publish.yml ClawHub.
Wywołuje on skill publish dla każdego bezpośredniego folderu Skills pod
root (domyślnie: skills) albo tylko dla folderu podanego jako 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 }}Użyj dry_run: true, aby podejrzeć nowe i zmienione Skills bez publikowania.
Pluginy
Pluginy używają nazw pakietów w stylu npm. Nazwy pakietów z zakresem zawierają właściciela w pierwszej części nazwy:
@owner/package-nameZakres musi pasować do wybranego właściciela publikacji. Jeśli Twój pakiet nosi
nazwę @openclaw/dronzer, może zostać opublikowany tylko jako @openclaw.
Jeśli publikujesz jako @vintageayu, zmień nazwę pakietu na
@vintageayu/dronzer.
Zapobiega to sytuacji, w której pakiet rości sobie prawo do przestrzeni nazw organizacji, której publikujący nie kontroluje.
Jeśli jesteś prawowitym właścicielem organizacji, marki, zakresu pakietu, uchwytu właściciela lub przestrzeni nazw, która jest już zajęta albo zarezerwowana w ClawHub, otwórz zgłoszenie roszczenia organizacji / przestrzeni nazw z publicznym, niewrażliwym dowodem. Zobacz Roszczenia organizacji i przestrzeni nazw, aby sprawdzić, co dołączyć, a czego nie umieszczać w publicznych zgłoszeniach.
Przed opublikowaniem pluginu
- Wybierz właściciela pasującego do zakresu pakietu.
- Dołącz
openclaw.plugin.json. Pluginy kodowe potrzebują teżpackage.jsonzopenclaw.compat.pluginApiiopenclaw.build.openclawVersion. - Aby pokazać niestandardową ikonę karty pluginu, dodaj
icondoopenclaw.plugin.jsonz dowolnym adresem URL obrazu HTTPS. - Dołącz repozytorium źródłowe i metadane dokładnego commita albo użyj CLI z checkoutu opartego na GitHub, aby mogło je wykryć.
- Uruchom
clawhub package validate <source>przed publikacją. W przypadku ustaleń dotyczących pakietu, manifestu, importu SDK lub artefaktu zobacz Poprawki walidacji pluginów. - Uruchom
clawhub package publish <source> --dry-runprzed utworzeniem wydania. - Spodziewaj się, że nowe wydania pozostaną poza publicznymi miejscami instalacji, dopóki nie zakończą się automatyczne kontrole bezpieczeństwa i weryfikacja.
Zaufane publikowanie pakietów
Zaufane publikowanie pakietu wymaga dwuetapowej konfiguracji:
- Opublikuj pakiet raz przez standardowe ręczne lub uwierzytelnione tokenem
clawhub package publish. Tworzy to wiersz pakietu i ustanawia menedżerów pakietu, którzy mogą zmieniać jego konfigurację zaufanego publikującego. - Menedżer pakietu ustawia konfigurację zaufanego publikującego GitHub Actions:
clawhub package trusted-publisher set @owner/package-name \ --repository owner/repo \ --workflow-filename package-publish.ymlPo ustawieniu konfiguracji przyszłe obsługiwane publikacje GitHub Actions mogą
używać OIDC/zaufanego publikowania bez przechowywania długotrwałego tokena
ClawHub w repozytorium. Skonfigurowane repozytorium i nazwa pliku workflow muszą
pasować do roszczenia OIDC GitHub Actions. Jeśli przekażesz też
--environment <name>, roszczenie środowiska GitHub Actions musi dokładnie
pasować do tej nazwy.
ClawHub weryfikuje skonfigurowane repozytorium GitHub podczas ustawiania konfiguracji zaufanego publikującego. Repozytoria publiczne można zweryfikować przez publiczne metadane GitHub. Repozytoria prywatne wymagają, aby ClawHub miał dostęp GitHub do tego repozytorium, na przykład przez przyszłą instalację ClawHub GitHub App lub inną autoryzowaną integrację GitHub.
Obecny workflow publikowania pakietów wielokrotnego użytku obsługuje zaufane
publikowanie bez sekretów dla publikacji workflow_dispatch, gdy dostępne jest
id-token: write. Rzeczywiste publikacje z wypchnięcia tagu nadal potrzebują
clawhub_token, więc zachowaj CLAWHUB_TOKEN dla wydań tagów, pierwszych
publikacji, niezaufanych pakietów lub publikacji awaryjnych.
Sprawdź lub usuń konfigurację za pomocą:
clawhub package trusted-publisher get @owner/package-nameclawhub package trusted-publisher delete @owner/package-nameUsunięcie konfiguracji zaufanego publikującego jest ścieżką wycofania. Wyłącza przyszłe wystawianie tokenów zaufanego publikowania, dopóki menedżer pakietu nie ustawi konfiguracji ponownie.
Najczęstsze pytania
Zakres pakietu musi pasować do wybranego właściciela
Jeśli zakres pakietu i wybrany właściciel nie pasują do siebie, ClawHub odrzuca publikację:
Package scope "@openclaw" must match selected owner "@vintageayu".Publish as "@openclaw" or rename this package to "@vintageayu/dronzer".Aby to naprawić, wybierz właściciela wskazanego przez zakres pakietu albo zmień nazwę pakietu tak, aby zakres pasował do właściciela, jako którego możesz publikować.
Jeśli nazwa pakietu ma już właściwy zakres, ale pakiet należy do niewłaściwego publikującego, zamiast tego przenieś własność:
clawhub package transfer @opik/opik-openclaw --to opikUżywaj przenoszenia pakietu lub Skills tylko wtedy, gdy masz dostęp administracyjny zarówno do bieżącego właściciela, jak i do docelowego publikującego. Przeniesienie pakietu nie pozwala publikować w zakresie, którym nie możesz zarządzać.
Jeśli nie masz dostępu do bieżącego właściciela, ale uważasz, że Twoja organizacja, projekt lub marka jest prawowitym właścicielem przestrzeni nazw, otwórz zgłoszenie roszczenia organizacji / przestrzeni nazw z publicznym, niewrażliwym dowodem do przeglądu przez zespół. Przed zgłoszeniem zobacz Roszczenia organizacji i przestrzeni nazw.
Chroni to przestrzenie nazw organizacji. Pakiet o nazwie @openclaw/dronzer
rości sobie prawo do przestrzeni nazw @openclaw, więc tylko publikujący z
dostępem do właściciela @openclaw mogą go opublikować.