Plaginni nashr qilish
Plagin SDK bilan plagin qurdingizmi? Uni ikki rejimda nashr qilishingiz mumkin:
- Maxfiy (o‘zingiz uchun) — o‘z oʻrnatmangizga side-load. Artefakt undan hech qachon chiqmaydi.
- Ommaviy (hamma uchun) — PR orqali kuratsiya qilingan rasmiy AiHummer katalogiga yuboring.
O‘xshatish: .vsix’ni qo‘lda oʻrnatish (maxfiy) vs VS Code Marketplace’ga nashr
qilish (ommaviy); maxfiy npm registri vs ommaviy registr.
Maxfiy rejim — oʻrnatmangizga side-load
Plagin faqat sizga kerak bo‘lganda buni ishlating: ichki konnektor, maxsus integratsiya, test build.
Qadamlar
- To‘plamni paketlang va imzolang:
aihummer plugin package ./my-plugin aihummer plugin sign --key author.key --manifest ./my-plugin/manifest.json my-plugin-1.0.0.tar.gz - Uni oʻrnatmaga ikki usuldan biri bilan yuklang:
- Admin UI → Plugins → “Upload plugin” — to‘plamni sudrab tashlang; yoki
- CLI:
aihummer plugin publish --private --instance https://your-instance \ --token <admin-token> my-plugin-1.0.0.tar.gz
- Ichki tomondan bu
POST /v1/admin/modules/upload(multipart,integrations:write): artefakt oʻrnatma blob omborida (AIHUMMER_BLOB_DIR)blob:havolasi ostida joylashadi va katalog qatoriorigin = local-private,visibility = privatebilan ro‘yxatdan o‘tkaziladi. - Plagin marketplace’da Private (Maxfiy) yorlig‘i bilan paydo bo‘ladi va oddiy yo‘l orqali oʻrnatiladi — sandbox’langan systemd birligi + salomatlik darvozasi.
Ishonch: qotirilgan kalit va ishonch xotirasi
Maxfiy artefaktlar imzolanishi shart. Noma’lum kalit bilan imzolangan plaginni yuklaganingizda, Admin UI sizga muallifning kalitini oʻrnatma ishonch xotirasiga tasdiqlashni so‘raydi (bir bosish). Tasdiqlangach, imzo har bir oʻrnatish va yangilanishda tekshiriladi.
- Rasmiy manbadan kelgan artefaktlar core’da qotirilgan registr kalitiga nisbatan tekshiriladi — sukut bo‘yicha ishonchli, qo‘shimcha qadamsiz.
- Maxfiy artefaktlar oʻrnatma ishonch xotirasidagi kalitlarga nisbatan tekshiriladi.
- Imzosiz to‘plamlar rad etiladi — lokal iteratsiya uchun dev rejimidan
tashqari:
AIHUMMER_PLUGIN_DEV_UNSIGNED=1.
[!WARNING]
AIHUMMER_PLUGIN_DEV_UNSIGNED=1imzo tekshiruvini o‘chiradi va faqat lokal ishlab chiqish uchun mo‘ljallangan. Uni tashqaridan murojaat qilinadigan oʻrnatmada hech qachon yoqmang.
Ommaviy rejim — ommaviy registr
Plaginni har bir oʻrnatma uchun mavjud qilish maqsadida, uni ommaviy
registrga
AiHummer/marketplace-catalog
PR orqali yuboring: avtomatik tekshiruvlar + ko‘rik va tasdiqlanganda AiHummer
release’ni qarama-qarshi imzolaydi.
Qadamlar
- Bir martalik — nashriyotchini ro‘yxatdan o‘tkazing. Kalit yarating va
nom maydonini band qiling:
Buaihummer plugin keygen # prints the public key (base64) and key id@younom maydonini band qiladi. Maxfiy kalitni o‘zingizda saqlang — u har bir topshiriqni imzolaydi. - Artefaktni barqaror HTTPS URL’da joylashtiring (artefakt muallif tomonidan joylashtiriladi, AiHummer tomonidan emas).
- Katalogga PR oching:
aihummer plugin publish --public --dir ./my-plugin --key author.key \ --artifact-url https://you.example.com/my-plugin-1.0.0.tar.gz \ --publisher you --description "What the plugin does" --icon https://you.example.com/icon.svg \ [--screenshot https://you.example.com/1.png ...] [--channel stable|beta] \ [--register-key author.pub]--register-keypublishers/<you>.json’ni qo‘shadi (faqat birinchi topshirig‘ingizda kerak). - CI darvozalari topshiriqni tekshiradi (pastga qarang), AI ko‘rik xavf xulosasini joylaydi va AiHummer maintainer’i qo‘lda ko‘rib chiqadi va birlashtiradi.
- Birlashtirilganda release qotirilgan registr kaliti bilan qarama-qarshi
imzolanadi va CDN’dagi alohida
community-catalog.json’ga nashr etiladi. Bu manbani qo‘shgan har bir oʻrnatma plaginni ko‘radi; core unga qotirilgan kalit orqali ishonadi — har bir operator uchun ishonch qadami kerak emas.
Topshiriq shartnomasi
PR ikkita fayl qo‘shadi (forma publish --public tomonidan yaratiladi va
barqaror):
publishers/<publisher>.json — bir martalik ro‘yxatdan o‘tish:
{
"publisher": "acme",
"public_key": "<base64 std ed25519 public key>",
"key_id": "<sha256(public_key)[:16] in hex>",
"contact": "you@example.com"
}
catalog/<publisher>/<slug>/plugin.json — topshiriq (har bir versiya qatori
uchun bittadan):
{
"publisher": "acme",
"slug": "hello-tool",
"namespaced_slug": "@acme/hello-tool",
"version": "1.0.0",
"channel": "stable",
"artifact_url": "https://acme.example.com/hello-tool-1.0.0.tar.gz",
"license": "MIT",
"publisher_key_id": "bd68f2deedad25b1",
"signature": "<base64 ed25519 over the release identity>",
"manifest": { "...the full Manifest object..." }
}
namespaced_slug@<publisher>/<slug>’ga teng bo‘lishi kerak.channel∈stable | beta.artifact_url— muallif tomonidan joylashtirilgan.tar.gz.publisher_key_idro‘yxatdan o‘tgan nashriyotchiningkey_id’siga mos kelishi kerak.- Imzolangan release identifikatori =
slug \x00 version \x00 artifact_urlbaytlari. - Ommaviy topshiriq uchun ichki o‘rnatilgan
manifestdescription,icon(va ixtiyoriy ravishdascreenshots) ni olib yurishi kerak — qarang store sahifasi maydonlari.
[!TIP]
aihummer plugin publish --publicbu fayllarni to‘g‘ri shaklda yig‘adi va PR’ni siz uchun ochadi — JSON’ni qo‘lda tahrirlash shart emas.
Moderatsiya
Har bir topshiriq avtomatik tekshiruvdan (topshiriq shartnomasi, imzo va xavfsizlik skani), keyin maslahat beruvchi AI xavf ko‘rigidan va nihoyat AiHummer jamoasi tomonidan majburiy inson ko‘rigidan o‘tadi. Na avtomatlash, na AI hech qachon o‘zicha birlashtirmaydi — qaror har doim maintainer’niki bo‘ladi va ularning tasdig‘isiz hech narsa katalogga yetib bormaydi. Keyinchalik zararli yoki buzilgan deb topilgan nashr etilgan plagin bekor qilinishi va keyingi sinxronizatsiyada katalogdan o‘chirilishi mumkin.
Community katalogi qo‘shimcha manba sifatida
Ommaviy plaginlar kuratsiya qilingan birinchi tomon katalogini qayta
yozmaydigan alohida community-catalog.json’ga nashr etiladi. Oʻrnatma uni
Plugins → Sources bo‘limida (yoki
POST /v1/admin/modules/catalog/sources) qo‘shimcha manba sifatida qo‘shadi.
Qarang Oʻrnatish va yangilanishlar
va Umumiy ko‘rinish va darajalar.
Keyin qayerga
- Plagin SDK — manifest maydonlari va
aihummer pluginbuyruqlari. - Oʻrnatish va yangilanishlar — ko‘p manba, ishonch modeli, imzolangan yangilanishlar, reyting.
- Marketplace: umumiy ko‘rinish va darajalar — rasmiy vs community registr.