---
read_when:
    - การเผยแพร่ Skills หรือ Plugin
    - การดีบักข้อผิดพลาดเกี่ยวกับเจ้าของหรือขอบเขตแพ็กเกจ
    - การเพิ่มลักษณะการทำงานสำหรับการเผยแพร่ใน UI, CLI หรือแบ็กเอนด์
summary: การเผยแพร่บน ClawHub ทำงานอย่างไรสำหรับ Skills, Plugin, เจ้าของ, ขอบเขต, รุ่นเผยแพร่ และการรีวิว
x-i18n:
    generated_at: "2026-07-19T07:03:45Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 582dffaf4429e9f24d7c38f2809cc7dc05f8471e4ae2f9c6be60153cc8604e3f
    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`](https://github.com/openclaw/clawhub/blob/main/.github/workflows/skill-publish.yml)
ที่ใช้ซ้ำได้ของ ClawHub เวิร์กโฟลว์นี้จะเรียก `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 ใหม่และที่เปลี่ยนแปลงโดยไม่เผยแพร่

## 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 แบบกำหนดเองบนหน้าแรกและหน้ารายการ Plugin
  ให้เพิ่ม `icon` ลงใน `openclaw.plugin.json` โดยใช้ URL รูปภาพ HTTPS ใดก็ได้
- ระบุรีโพซิทอรีซอร์สและข้อมูลเมตาของคอมมิตที่แน่นอน หรือใช้ CLI จาก
  เช็กเอาต์ที่รองรับโดย GitHub เพื่อให้ CLI ตรวจหาได้
- เรียกใช้ `clawhub package validate <source>` ก่อนเผยแพร่ สำหรับข้อค้นพบเกี่ยวกับแพ็กเกจ
  แมนิเฟสต์ การนำเข้า SDK หรืออาร์ติแฟกต์ โปรดดู
  [การแก้ไขการตรวจสอบความถูกต้องของ Plugin](/clawhub/plugin-validation-fixes)
- เรียกใช้ `clawhub package publish <source> --dry-run` ก่อนสร้างรีลีส
- คาดว่ารีลีสใหม่จะยังไม่ปรากฏบนช่องทางการติดตั้งสาธารณะจนกว่าการตรวจสอบ
  ความปลอดภัยอัตโนมัติและการยืนยันจะเสร็จสิ้น

### การเผยแพร่ที่เชื่อถือได้สำหรับแพ็กเกจ

การเผยแพร่แพ็กเกจที่เชื่อถือได้มีการตั้งค่า 2 ขั้นตอน:

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 สำหรับรีโพซิทอรีนั้น
เช่น ผ่านการติดตั้ง GitHub App ของ ClawHub ในอนาคตหรือการผสานรวม
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
สโคปแพ็กเกจ "@openclaw" ต้องตรงกับเจ้าของที่เลือก "@vintageayu"
เผยแพร่ในนาม "@openclaw" หรือเปลี่ยนชื่อแพ็กเกจนี้เป็น "@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`
เท่านั้นที่สามารถเผยแพร่ได้
