AiHummer
Türkmençe
Gir
v1.0.x
{ }Swagger

Plugin çap etmek

v1.0.x · täzelendi 2026-06-27

Plugin SDK bilen plugin gurduňyzmy? Ony iki rejede çap edip bilersiňiz:

  • Hususy (özüňiz üçin)öz gurnamaňyza side-load. Artefakt ony hiç haçan terk etmeýär.
  • Jemgyýetçilik (hemmeler üçin) — PR arkaly seçilen resmi AiHummer kataloguna iberiň.

Analogiýa: .vsix-i el bilen gurnamak (hususy) garşy VS Code Marketplace-e çap etmek (jemgyýetçilik); hususy npm registri garşy jemgyýetçilik biri.

Hususy reje — gurnamaňyza side-load

Bu plugin diňe size gerek bolanda ulanyň: içerki birikdiriji, ýörite integrasiýa, synag gurluşy.

Ädimler

  1. Bukjany gaplaň we gol çekiň:
    aihummer plugin package ./my-plugin
    aihummer plugin sign --key author.key --manifest ./my-plugin/manifest.json my-plugin-1.0.0.tar.gz
  2. Ony gurnama iki ýoluň biri bilen ýükläň:
    • Admin UI → Plugins → “Upload plugin” — bukjany süýräň; ýa-da
    • CLI:
      aihummer plugin publish --private --instance https://your-instance \
        --token <admin-token> my-plugin-1.0.0.tar.gz
  3. Içki tarapda bu POST /v1/admin/modules/upload (multipart, integrations:write): artefakt gurama blob dükanyna (AIHUMMER_BLOB_DIR) blob: ref bilen düşýär we katalog setiri origin = local-private, visibility = private bilen hasaba alynýar.
  4. Plugin marketplace-de Private belgisi bilen peýda bolýar we adaty ýol arkaly gurnalýar — izolirlenen systemd birligi + saglyk derwezesi.

Ynam: berkidilen açar we ynam dükany

Hususy artefaktlar gol çekilen bolmaly. Näbelli açar bilen gol çekilen plugini ýüklaniňizde, Admin UI sizi gurama ynam dükanyna awtoryň açaryny tassyklamaga ündeýär (bir basyş). Tassyklanandan soň, gol her gurnamada we täzelenmede barlanýar.

  • Resmi çeşmeden artefaktlar özekde berkidilen registr açary garşysynda barlanýar — deslapky ýagdaýda ynamly, goşmaça ädim ýok.
  • Hususy artefaktlar gurama ynam dükanyndaky açarlar garşysynda barlanýar.
  • Gol çekilmedik bukjalar ret edilýär — ýerli iterasiýa üçin dev rejesinden başga: AIHUMMER_PLUGIN_DEV_UNSIGNED=1.

[!WARNING] AIHUMMER_PLUGIN_DEV_UNSIGNED=1 gol barlagyny öçürýär we diňe ýerli işläp düzme üçin niýetlenendir. Ony daşardan elýeterli gurnamada hiç haçan işjeňleşdirmäň.

Jemgyýetçilik rejesi — jemgyýetçilik registri

Plugini her gurnama elýeterli etmek üçin, ony jemgyýetçilik registrine AiHummer/marketplace-catalog PR arkaly iberiň: awtomatiki barlaglar + syn, we tassyklamada AiHummer relizi garşy-gol çekýär.

Ädimler

  1. Bir gezeklik — çap edijini hasaba alyň. Açar dörediň we ady ätiýaçlandyryň:
    aihummer plugin keygen                # prints the public key (base64) and key id
    Bu @you adyny ätiýaçlandyrýar. Hususy açary özüňize saklaň — ol her iberişe gol çekýär.
  2. Artefakty durnukly HTTPS URL-de ýerleşdiriň (artefakt awtor tarapyndan ýerleşdirilýär, AiHummer tarapyndan däl).
  3. Kataloga PR açyň:
    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 goşýar (diňe ilkinji iberişiňizde gerek).
  4. CI derwezeleri iberişi barlaýar (aşaga serediň), AI syny töwekgelçilik höküm çykarýar we AiHummer maintainer el bilen synlap, birleşdirýär.
  5. Birleşdirmekde reliz berkidilen registr açary bilen garşy-gol çekilýär we CDN-de aýratyn community-catalog.json-a çap edilýär. Bu çeşmäni goşan her gurnama plugini görýär; özek oňa berkidilen açar arkaly ynanýar — her operator üçin ynam ädimi gerek däl.

Iberiş şertnamasy

PR iki faýl goşýar (görnüş publish --public tarapyndan döredilýär we durnukly):

publishers/<publisher>.json — bir gezeklik hasaba alyş:

{
  "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 — iberiş (her wersiýa setiri üçin biri):

{
  "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>-a deň bolmaly.
  • channelstable | beta.
  • artifact_url awtor tarapyndan ýerleşdirilen .tar.gz-dyr.
  • publisher_key_id hasaba alnan çap edijiniň key_id-i bilen gabat gelmeli.
  • Gol çekilen reliz şahsyýeti = slug \x00 version \x00 artifact_url baýtlary.
  • Jemgyýetçilik iberişi üçin gömülen manifest description, icon (we islege görä screenshots) götermeli — serediň dükan-sahypa meýdanlary.

[!TIP] aihummer plugin publish --public bu faýllary dogry görnüşde ýygnaýar we siziň üçin PR açýar — JSON-y el bilen üýtgetmegiň zerurlygy ýok.

Moderasiýa

Her iberiş awtomatiki barlagdan (iberiş şertnamasy, gol we howpsuzlyk skany), soňra maslahat beriji AI töwekgelçilik synyndan we ahyrynda AiHummer topary tarapyndan hökmany adam synyndan geçýär. Ne awtomatiýa, ne-de AI hiç haçan özbaşdak birleşdirmeýär — karar elmydama maintainer-iňki, we olaryň tassyklamasy bolmazdan hiç zat kataloga ýetmeýär. Soňra zyýanly ýa-da döwük diýlip tapylan çap edilen plugin ýatyrylyp we indiki sinhronda katalogdan aýrylyp bilner.

Goşmaça çeşme hökmünde jemgyýet katalogy

Jemgyýetçilik pluginleri seçilen birinji tarap katalogyny üýtgetmeýän aýratyn community-catalog.json-a çap edilýär. Gurnama ony Plugins → Sources bölüminde goşmaça çeşme hökmünde goşýar (ýa-da POST /v1/admin/modules/catalog/sources). Serediň Gurnamak we täzelenmeler we Umumy syn we derejeler.

Indiki ädim