AiHummer
Қазақша
Кіру
v1.0.x
{ }Swagger

Плагинді жариялау

v1.0.x · жаңартылды 2026-06-27

Плагин SDK арқылы плагин құрдыңыз ба? Оны екі режимде жариялай аласыз:

  • Жеке (өзіңіз үшін)өз данаңызға бүйірден жүктеу. Артефакт одан ешқашан шықпайды.
  • Қоғамдық (барлығы үшін) — PR арқылы курацияланған ресми AiHummer каталогына жіберу.

Ұқсастық: .vsix-ті қолмен орнату (жеке) мен VS Code Marketplace-ке жариялау (қоғамдық); жеке npm тіркеуі мен қоғамдық тіркеу.

Жеке режим — данаңызға бүйірден жүктеу

Бұны плагин тек өзіңізге қажет болғанда пайдаланыңыз: ішкі коннектор, теңшелетін интеграция, сынақ құрылымы.

Қадамдар

  1. Буманы буып-түйіп, оған қол қойыңыз:
    aihummer plugin package ./my-plugin
    aihummer plugin sign --key author.key --manifest ./my-plugin/manifest.json my-plugin-1.0.0.tar.gz
  2. Оны данаға екі жолдың бірімен жүктеңіз:
    • Admin UI → Plugins → “Upload plugin” — буманы сүйреп апарыңыз; немесе
    • CLI:
      aihummer plugin publish --private --instance https://your-instance \
        --token <admin-token> my-plugin-1.0.0.tar.gz
  3. Іштей бұл POST /v1/admin/modules/upload (multipart, integrations:write): артефакт дана blob қоймасына (AIHUMMER_BLOB_DIR) blob: сілтемесі астында түседі, және каталог жолы origin = local-private, visibility = private мәндерімен тіркеледі.
  4. Плагин маркетплейсте Private деп таңбаланып пайда болады және қалыпты жол арқылы орнатылады — оқшауланған systemd бірлігі + денсаулық қақпасы.

Сенім: бекітілген кілт және сенім қоймасы

Жеке артефактілерге қол қойылуы тиіс. Белгісіз кілтпен қол қойылған плагинді жүктегенде, әкімші интерфейсі сізге автордың кілтін дана сенім қоймасына бекітуді ұсынады (бір рет басу). Бекітілгеннен кейін қолтаңба әр орнату мен жаңартуда тексеріледі.

  • Ресми көзден алынған артефактілер ядрода бекітілген тіркеу кілтіне қарсы тексеріледі — әдепкі бойынша сенімді, қосымша қадамсыз.
  • Жеке артефактілер дана сенім қоймасындағы кілттерге қарсы тексеріледі.
  • Қол қойылмаған бумалар қабылданбайды — жергілікті итерация үшін dev режимінен басқа: AIHUMMER_PLUGIN_DEV_UNSIGNED=1.

[!WARNING] AIHUMMER_PLUGIN_DEV_UNSIGNED=1 қолтаңба тексеруін өшіреді және тек жергілікті әзірлеуге арналған. Оны сырттан қол жететін данада ешқашан қоспаңыз.

Қоғамдық режим — қоғамдық тіркеу

Плагинді әрбір данаға қолжетімді ету үшін оны қоғамдық тіркеуге AiHummer/marketplace-catalog PR арқылы жіберіңіз: автоматтандырылған тексерулер + шолу, және бекіту кезінде AiHummer релизге қарсы қол қояды.

Қадамдар

  1. Бір реттік — жариялаушыны тіркеу. Кілт жасап, кеңістік атауын резервтеңіз:
    aihummer plugin keygen                # prints the public key (base64) and key id
    Бұл @you кеңістік атауын резервтейді. Жеке кілтті өзіңізде сақтаңыз — ол әр жіберілімге қол қояды.
  2. Артефактіні тұрақты HTTPS URL-де орналастырыңыз (артефактіні AiHummer емес, автор орналастырады).
  3. Каталогқа PR ашыңыз:
    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 қосады (тек алғашқы жіберіліміңізде қажет).
  4. CI қақпалары жіберілімді тексереді (төменде қараңыз), AI шолуы тәуекел үкімін жариялайды, және AiHummer қызметкері қолмен шолып, біріктіреді.
  5. Біріктіру кезінде релизге бекітілген тіркеу кілтімен қарсы қол қойылады және ол CDN-дегі бөлек community-catalog.json-ға жарияланады. Бұл көзді қосқан әрбір дана плагинді көреді; ядро оған бекітілген кілт арқылы сенеді — әр операторға арналған сенім қадамы қажет емес.

Жіберілім келісімшарты

PR екі файл қосады (форма publish --public арқылы жасалады және тұрақты):

publishers/<publisher>.json — бір реттік тіркеу:

{
  "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 — жіберілім (әр нұсқа желісіне біреу):

{
  "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>-ке тең болуы тиіс.
  • channelstable | beta.
  • artifact_urlавтор орналастыратын .tar.gz.
  • publisher_key_id тіркелген жариялаушының key_id-іне сәйкес келуі тиіс.
  • Қол қойылған релиз сәйкестігі = slug \x00 version \x00 artifact_url байттары.
  • Қоғамдық жіберілім үшін ендірілген manifest description, icon (және қалауыңызша screenshots) тасуы тиіс — дүкен-беті өрістерін қараңыз.

[!TIP] aihummer plugin publish --public бұл файлдарды дұрыс пішінде құрастырады және сіз үшін PR ашады — JSON-ды қолмен өңдеудің қажеті жоқ.

Модерация

Әр жіберілім автоматтандырылған тексеруден (жіберілім келісімшарты, қолтаңба және қауіпсіздік сканерлеуі), кейін кеңесші AI тәуекел шолуынан, және ақыр соңында AiHummer тобының міндетті адами шолуынан өтеді. Не автоматтандыру, не AI ешқашан өз бетінше біріктірмейді — шешім әрқашан қызметкердікі, және олардың бекітуінсіз ештеңе каталогқа жетпейді. Кейін зиянды немесе бұзылған деп табылған жарияланған плагин кері қайтарылып, келесі синхрондауда каталогтан түсірілуі мүмкін.

Қауымдастық каталогы қосымша көз ретінде

Қоғамдық плагиндер курацияланған бірінші тарап каталогын қайта жазбайтын бөлек community-catalog.json-ға жарияланады. Дана оны Plugins → Sources ішінде қосымша көз ретінде қосады (немесе POST /v1/admin/modules/catalog/sources). Мынаны қараңыз: Орнату және жаңартулар және Шолу және дәрежелер.

Әрі қарай қайда