Using ClawHub
การเผยแพร่
การเผยแพร่
การเผยแพร่จะส่งโฟลเดอร์ Skills หรือแพ็กเกจ Plugin ไปยัง ClawHub ภายใต้เจ้าของที่คุณเลือก ClawHub จะตรวจสอบว่าโทเค็นของคุณมีสิทธิ์เผยแพร่ให้เจ้าของรายนั้น ตรวจสอบความถูกต้องของข้อมูลเมตา ชื่อ เวอร์ชัน ไฟล์ และข้อมูลแหล่งที่มา จากนั้นจัดเก็บรุ่นเผยแพร่และเริ่มการตรวจสอบความปลอดภัยอัตโนมัติ
หากการตรวจสอบความถูกต้องล้มเหลว จะไม่มีการเผยแพร่ใดเกิดขึ้น รุ่นเผยแพร่ใหม่อาจยังไม่ปรากฏในช่องทางติดตั้งและดาวน์โหลดตามปกติจนกว่าการตรวจสอบจะเสร็จสิ้น
Skills
วิธีเผยแพร่ที่ง่ายที่สุดคือใช้ CLI ลงชื่อเข้าใช้ แล้วเผยแพร่โฟลเดอร์ Skills ในเครื่อง:
clawhub loginclawhub skill publish ./my-skill \ --slug my-skill \ --name "My Skill" \ --owner <owner>ใช้ --owner <handle> เมื่อเผยแพร่ภายใต้เจ้าของที่เป็นองค์กร หากไม่ระบุ ระบบจะเผยแพร่ในนามผู้ใช้ที่ผ่านการยืนยันตัวตนแล้ว การเผยแพร่จะข้ามเนื้อหาที่ไม่มีการเปลี่ยนแปลง Skills ใหม่จะเริ่มต้นที่ 1.0.0 และการเปลี่ยนแปลงครั้งต่อ ๆ ไปจะเผยแพร่เป็นเวอร์ชันแพตช์ถัดไปโดยอัตโนมัติ ระบุ --version เฉพาะเมื่อต้องการกำหนดเวอร์ชันอย่างชัดเจนเท่านั้น
สำหรับรีโพซิทอรีแค็ตตาล็อก ให้ใช้
เวิร์กโฟลว์ skill-publish.yml ที่นำกลับมาใช้ซ้ำได้ของ ClawHub
เวิร์กโฟลว์นี้จะเรียก skill publish สำหรับโฟลเดอร์ Skills แต่ละโฟลเดอร์ที่อยู่ใต้ 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 เพื่อดูตัวอย่าง Skills ใหม่และ Skills ที่เปลี่ยนแปลงโดยไม่เผยแพร่
Plugin
Plugin ใช้ชื่อแพ็กเกจในรูปแบบ npm ชื่อแพ็กเกจแบบมีขอบเขตจะมีเจ้าของอยู่ในส่วนแรกของชื่อ:
@owner/package-nameขอบเขตต้องตรงกับเจ้าของที่เลือกสำหรับการเผยแพร่ หากแพ็กเกจของคุณชื่อ
@openclaw/dronzer จะเผยแพร่ได้เฉพาะในนาม @openclaw เท่านั้น หากคุณเผยแพร่ในนาม
@vintageayu ให้เปลี่ยนชื่อแพ็กเกจเป็น @vintageayu/dronzer
ข้อกำหนดนี้ป้องกันไม่ให้แพ็กเกจอ้างสิทธิ์เนมสเปซขององค์กรที่ผู้เผยแพร่ไม่ได้ควบคุม
หากคุณเป็นเจ้าของโดยชอบธรรมขององค์กร แบรนด์ ขอบเขตแพ็กเกจ แฮนเดิลเจ้าของ หรือเนมสเปซที่ถูกอ้างสิทธิ์หรือสงวนไว้แล้วบน ClawHub ให้เปิด ปัญหาการอ้างสิทธิ์องค์กร / เนมสเปซ พร้อมหลักฐานสาธารณะที่ไม่มีข้อมูลละเอียดอ่อน ดู การอ้างสิทธิ์องค์กรและเนมสเปซ สำหรับรายละเอียดว่าควรใส่อะไรและไม่ควรใส่อะไรในปัญหาสาธารณะ
ก่อนเผยแพร่ Plugin
- เลือกเจ้าของที่ตรงกับขอบเขตแพ็กเกจ
- ใส่
openclaw.plugin.jsonPlugin ที่มีโค้ดต้องมีpackage.jsonพร้อมopenclaw.compat.pluginApiและopenclaw.build.openclawVersionด้วย - หากต้องการแสดงไอคอนแบบกำหนดเองบนการ์ด Plugin ให้เพิ่ม
iconในopenclaw.plugin.jsonโดยใช้ URL รูปภาพ HTTPS ใดก็ได้ - ใส่รีโพซิทอรีต้นทางและข้อมูลเมตาของคอมมิตที่แน่นอน หรือใช้ CLI จากเช็กเอาต์ที่เชื่อมกับ GitHub เพื่อให้ระบบตรวจหาได้
- เรียกใช้
clawhub package validate <source>ก่อนเผยแพร่ สำหรับข้อค้นพบเกี่ยวกับแพ็กเกจ แมนิเฟสต์ การนำเข้า SDK หรืออาร์ติแฟกต์ โปรดดู การแก้ไขข้อผิดพลาดในการตรวจสอบ Plugin - เรียกใช้
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 App ในอนาคตหรือการผสานการทำงานกับ 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 จะปฏิเสธการเผยแพร่:
Package scope "@openclaw" must match selected owner "@vintageayu".Publish as "@openclaw" or rename this package to "@vintageayu/dronzer".หากต้องการแก้ไข ให้เลือกเจ้าของตามที่ระบุไว้ในขอบเขตแพ็กเกจ หรือเปลี่ยนชื่อแพ็กเกจเพื่อให้ขอบเขตตรงกับเจ้าของที่คุณมีสิทธิ์เผยแพร่ในนามนั้น
หากชื่อแพ็กเกจมีขอบเขตที่ถูกต้องอยู่แล้ว แต่แพ็กเกจเป็นของผู้เผยแพร่ที่ไม่ถูกต้อง ให้โอนความเป็นเจ้าของแทน:
clawhub package transfer @opik/opik-openclaw --to opikใช้การโอนแพ็กเกจหรือ Skills เฉพาะเมื่อคุณมีสิทธิ์ผู้ดูแลระบบทั้งกับเจ้าของปัจจุบันและผู้เผยแพร่ปลายทาง การโอนแพ็กเกจไม่ได้ทำให้คุณเผยแพร่ไปยังขอบเขตที่คุณไม่มีสิทธิ์จัดการได้
หากคุณไม่มีสิทธิ์เข้าถึงเจ้าของปัจจุบัน แต่เชื่อว่าองค์กร โครงการ หรือแบรนด์ของคุณเป็นเจ้าของเนมสเปซโดยชอบธรรม ให้เปิด ปัญหาการอ้างสิทธิ์องค์กร / เนมสเปซ พร้อมหลักฐานสาธารณะที่ไม่มีข้อมูลละเอียดอ่อนเพื่อให้เจ้าหน้าที่ตรวจสอบ ดู การอ้างสิทธิ์องค์กรและเนมสเปซ ก่อนยื่นเรื่อง
ข้อกำหนดนี้ช่วยปกป้องเนมสเปซขององค์กร แพ็กเกจชื่อ @openclaw/dronzer อ้างสิทธิ์เนมสเปซ
@openclaw ดังนั้นเฉพาะผู้เผยแพร่ที่มีสิทธิ์เข้าถึงเจ้าของ @openclaw เท่านั้นจึงจะเผยแพร่แพ็กเกจนี้ได้