---
read_when:
    - การเผยแพร่ Skills หรือ Plugin
    - การแก้ไขข้อผิดพลาดเกี่ยวกับเจ้าของหรือขอบเขตของแพ็กเกจ
    - การเพิ่มลักษณะการทำงานสำหรับการเผยแพร่ใน UI, CLI หรือแบ็กเอนด์
summary: วิธีการเผยแพร่บน ClawHub สำหรับ Skills, Plugin, เจ้าของ, ขอบเขต, รุ่นเผยแพร่ และการตรวจสอบ
x-i18n:
    generated_at: "2026-07-12T15:56:54Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 5c0270c0bc3316d970feddfc689c1125e1c90a62beeb40d8098dc6a6752cfa70
    source_path: clawhub/publishing.md
    workflow: 16
---

# การเผยแพร่

การเผยแพร่จะส่งโฟลเดอร์ Skills หรือแพ็กเกจ Plugin ไปยัง ClawHub ภายใต้เจ้าของที่คุณเลือก ClawHub จะตรวจสอบว่าโทเค็นของคุณมีสิทธิ์เผยแพร่ให้เจ้าของรายนั้น ตรวจสอบความถูกต้องของข้อมูลเมตา ชื่อ เวอร์ชัน ไฟล์ และข้อมูลแหล่งที่มา จากนั้นจัดเก็บรุ่นเผยแพร่และเริ่มการตรวจสอบความปลอดภัยอัตโนมัติ

หากการตรวจสอบความถูกต้องล้มเหลว จะไม่มีการเผยแพร่ใดเกิดขึ้น รุ่นเผยแพร่ใหม่อาจยังไม่ปรากฏในช่องทางติดตั้งและดาวน์โหลดตามปกติจนกว่าการตรวจสอบจะเสร็จสิ้น

## Skills

วิธีเผยแพร่ที่ง่ายที่สุดคือใช้ CLI ลงชื่อเข้าใช้ แล้วเผยแพร่โฟลเดอร์ Skills ในเครื่อง:

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

ใช้ `--owner <handle>` เมื่อเผยแพร่ภายใต้เจ้าของที่เป็นองค์กร หากไม่ระบุ ระบบจะเผยแพร่ในนามผู้ใช้ที่ผ่านการยืนยันตัวตนแล้ว การเผยแพร่จะข้ามเนื้อหาที่ไม่มีการเปลี่ยนแปลง Skills ใหม่จะเริ่มต้นที่ `1.0.0` และการเปลี่ยนแปลงครั้งต่อ ๆ ไปจะเผยแพร่เป็นเวอร์ชันแพตช์ถัดไปโดยอัตโนมัติ ระบุ `--version` เฉพาะเมื่อต้องการกำหนดเวอร์ชันอย่างชัดเจนเท่านั้น

สำหรับรีโพซิทอรีแค็ตตาล็อก ให้ใช้
[เวิร์กโฟลว์ `skill-publish.yml` ที่นำกลับมาใช้ซ้ำได้ของ ClawHub](https://github.com/openclaw/clawhub/blob/main/.github/workflows/skill-publish.yml)
เวิร์กโฟลว์นี้จะเรียก `skill publish` สำหรับโฟลเดอร์ Skills แต่ละโฟลเดอร์ที่อยู่ใต้ `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` เพื่อดูตัวอย่าง Skills ใหม่และ Skills ที่เปลี่ยนแปลงโดยไม่เผยแพร่

## Plugin

Plugin ใช้ชื่อแพ็กเกจในรูปแบบ 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) สำหรับรายละเอียดว่าควรใส่อะไรและไม่ควรใส่อะไรในปัญหาสาธารณะ

### ก่อนเผยแพร่ Plugin

- เลือกเจ้าของที่ตรงกับขอบเขตแพ็กเกจ
- ใส่ `openclaw.plugin.json` Plugin ที่มีโค้ดต้องมี `package.json` พร้อม
  `openclaw.compat.pluginApi` และ `openclaw.build.openclawVersion` ด้วย
- หากต้องการแสดงไอคอนแบบกำหนดเองบนการ์ด Plugin ให้เพิ่ม `icon` ใน `openclaw.plugin.json` โดยใช้ URL รูปภาพ HTTPS ใดก็ได้
- ใส่รีโพซิทอรีต้นทางและข้อมูลเมตาของคอมมิตที่แน่นอน หรือใช้ CLI จากเช็กเอาต์ที่เชื่อมกับ GitHub เพื่อให้ระบบตรวจหาได้
- เรียกใช้ `clawhub package validate <source>` ก่อนเผยแพร่ สำหรับข้อค้นพบเกี่ยวกับแพ็กเกจ แมนิเฟสต์ การนำเข้า SDK หรืออาร์ติแฟกต์ โปรดดู
  [การแก้ไขข้อผิดพลาดในการตรวจสอบ Plugin](/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 App ในอนาคตหรือการผสานการทำงานกับ 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
Package scope "@openclaw" must match selected owner "@vintageayu".
Publish as "@openclaw" or rename this package to "@vintageayu/dronzer".
```

หากต้องการแก้ไข ให้เลือกเจ้าของตามที่ระบุไว้ในขอบเขตแพ็กเกจ หรือเปลี่ยนชื่อแพ็กเกจเพื่อให้ขอบเขตตรงกับเจ้าของที่คุณมีสิทธิ์เผยแพร่ในนามนั้น

หากชื่อแพ็กเกจมีขอบเขตที่ถูกต้องอยู่แล้ว แต่แพ็กเกจเป็นของผู้เผยแพร่ที่ไม่ถูกต้อง ให้โอนความเป็นเจ้าของแทน:

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

ใช้การโอนแพ็กเกจหรือ Skills เฉพาะเมื่อคุณมีสิทธิ์ผู้ดูแลระบบทั้งกับเจ้าของปัจจุบันและผู้เผยแพร่ปลายทาง การโอนแพ็กเกจไม่ได้ทำให้คุณเผยแพร่ไปยังขอบเขตที่คุณไม่มีสิทธิ์จัดการได้

หากคุณไม่มีสิทธิ์เข้าถึงเจ้าของปัจจุบัน แต่เชื่อว่าองค์กร โครงการ หรือแบรนด์ของคุณเป็นเจ้าของเนมสเปซโดยชอบธรรม ให้เปิด
[ปัญหาการอ้างสิทธิ์องค์กร / เนมสเปซ](https://github.com/openclaw/clawhub/issues/new?template=org-namespace-claim.yml)
พร้อมหลักฐานสาธารณะที่ไม่มีข้อมูลละเอียดอ่อนเพื่อให้เจ้าหน้าที่ตรวจสอบ ดู
[การอ้างสิทธิ์องค์กรและเนมสเปซ](/clawhub/namespace-claims) ก่อนยื่นเรื่อง

ข้อกำหนดนี้ช่วยปกป้องเนมสเปซขององค์กร แพ็กเกจชื่อ `@openclaw/dronzer` อ้างสิทธิ์เนมสเปซ
`@openclaw` ดังนั้นเฉพาะผู้เผยแพร่ที่มีสิทธิ์เข้าถึงเจ้าของ `@openclaw` เท่านั้นจึงจะเผยแพร่แพ็กเกจนี้ได้
