AiHummer
Oʻzbekcha
Kirish
v1.0.x
{ }Swagger

Plaginni nashr qilish

v1.0.x · yangilandi 2026-06-27

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

  1. 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
  2. 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
  3. 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 qatori origin = local-private, visibility = private bilan ro‘yxatdan o‘tkaziladi.
  4. 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=1 imzo 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

  1. Bir martalik — nashriyotchini ro‘yxatdan o‘tkazing. Kalit yarating va nom maydonini band qiling:
    aihummer plugin keygen                # prints the public key (base64) and key id
    Bu @you nom maydonini band qiladi. Maxfiy kalitni o‘zingizda saqlang — u har bir topshiriqni imzolaydi.
  2. Artefaktni barqaror HTTPS URL’da joylashtiring (artefakt muallif tomonidan joylashtiriladi, AiHummer tomonidan emas).
  3. 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-key publishers/<you>.json’ni qo‘shadi (faqat birinchi topshirig‘ingizda kerak).
  4. CI darvozalari topshiriqni tekshiradi (pastga qarang), AI ko‘rik xavf xulosasini joylaydi va AiHummer maintainer’i qo‘lda ko‘rib chiqadi va birlashtiradi.
  5. 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.
  • channelstable | beta.
  • artifact_urlmuallif tomonidan joylashtirilgan .tar.gz.
  • publisher_key_id ro‘yxatdan o‘tgan nashriyotchining key_id’siga mos kelishi kerak.
  • Imzolangan release identifikatori = slug \x00 version \x00 artifact_url baytlari.
  • Ommaviy topshiriq uchun ichki o‘rnatilgan manifest description, icon (va ixtiyoriy ravishda screenshots) ni olib yurishi kerak — qarang store sahifasi maydonlari.

[!TIP] aihummer plugin publish --public bu 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