Skriptet
Dalja JSON, rrjedhat, kodet e daljes, variablat e mjedisit, dhe ekzekutimi pa mbikëqyrje ose në CI.
Dalja JSON
Me --json, stdout mban vetëm JSON, të dhëmbëzuar me dy hapësira, ndërsa shënimet dhe ecuria mbeten në stderr, dhe asgjë nuk pyet. Një listë shtyp { items, hasMore, nextCursor }, një objekt i API-t shtypet siç e ktheu API, dhe një komandë e shkruar me dorë shtyp objektin që përshkruan ndihma e saj.
openemail whoami --json | jq -r .workspaceIdopenemail emails list --status failed --json | jq -r ".items[].id"Një gabim shkon në stderr si një rresht JSON, dhe kodi i daljes është ai që do të merrte një person:
{"error":{"type":"permission_error","code":"insufficient_scope","message":"This API key does not have the domains:write scope.","hint":"The credential is missing a scope this call needs. Use a key that has it, or sign in again with openemail login.","next":null,"status":403,"requestId":"req_7Hc2kQ","param":null,"docUrl":"https://openemail.uk/docs/api/errors#insufficient_scope","exitCode":4}}| Fusha | Çfarë mban |
|---|---|
| type | Lloji i gabimit të API-t, ose cli_error, network_error ose internal_error për një dështim brenda CLI-së |
| code | Një kod i qëndrueshëm si insufficient_scope, not_signed_in ose unknown_flag |
| message | Çfarë shkoi keq, në një fjali |
| hint, next | Çfarë të provoni, dhe komanda që duhet ekzekutuar më pas, ose null |
| status, requestId, param, docUrl | Nga API kur gabimi erdhi prej saj, përndryshe null |
| exitCode | Kodi i daljes me të cilin mbaron procesi |
Rrjedhat
Disa dalje janë një rrjedhë objektesh JSON, një për rresht, që një pipeline të trajtojë çdo element sapo mbërrin:
- Një listë burimesh me
--allkur stdout nuk është terminal, ose me--ndjson.--max <n>ndalet pas aq elementeve. openemail temp watch --json, një rresht për çdo mesazh të ri.openemail mcp serve, një mesazh JSON-RPC për rresht në secilin drejtim.
openemail contacts list --all > contacts.ndjsonopenemail emails list --status failed --all --max 500 | jq -r .idKodet e daljes
| Kodi | Kuptimi |
|---|---|
| 0 | U krye |
| 1 | Një dështim i papritur, një gabim serveri, ose një dërgim që dështoi |
| 2 | Një gabim përdorimi: një argument i gabuar, një komandë ose flamur i panjohur, një vlerë a konfirmim që nuk mund të kërkohej, ose një origjinë a shteg ku CLI nuk dërgon kredencial |
| 3 | Nuk keni hyrë, ose hyrja u refuzua, ka skaduar ose u mbyll ndërsa komanda po ekzekutohej |
| 4 | Nuk lejohet: mungon një fushëveprim ose leje, një kod verifikimi që nuk mund të kërkohej ose që është ndalur, ose një çelës API ku duhet hyrje me shfletues |
| 5 | Nuk u gjet |
| 6 | Një përplasje me gjendjen aktuale |
| 7 | Hyrja ishte e pavlefshme |
| 8 | Kufiri i shpejtësisë, ose kuota AI është shteruar |
| 9 | Rrjeti dështoi ose skadoi koha |
| 10 | U anulua: refuzuat një konfirmim ose një kërkesë |
| 130, 143 | U ndal me Ctrl+C, ose nga SIGTERM |
Variablat e mjedisit
| Variabli | Çfarë bën |
|---|---|
| OPENEMAIL_API_KEY | Një çelës API që përdoret në vend të çdo profili të ruajtur |
| OPENEMAIL_PROFILE | Profili i ruajtur që përdoret |
| OPENEMAIL_BASE_URL | Origjina e API-t për OPENEMAIL_API_KEY, --api-key dhe komandat që nuk dërgojnë kredencial. Një hyrje e ruajtur shkon vetëm te API-ja në të cilën hyri |
| OPENEMAIL_APP_URL | Origjina e aplikacionit web, për hyrjen, open dhe lidhjet e dokumentacionit |
| OPENEMAIL_CONFIG_DIR | Ku mbahen profilet dhe tokenat e kutive, ~/.openemail nëse nuk caktohet |
| OPENEMAIL_NO_UPDATE_CHECK | Mos kontrollo kurrë npm për një publikim më të ri. OPENEMAIL_DISABLE_UPDATE_NOTICE bën të njëjtën gjë |
| NO_COLOR, FORCE_COLOR=0 | Pa ngjyra |
| CI | Mos pyet kurrë, mos hap kurrë shfletues, mos kontrollo kurrë për përditësime. Shumica e shërbimeve CI njihen edhe pa të |
| VISUAL, EDITOR | Redaktori që hapin send dhe reply për një trup |
Ekzekutimet pa mbikëqyrje
CLI pyet vetëm kur stdin dhe stdout janë të dyja terminale, dhe nuk vlen asnjë nga --json, --no-input ose CI. Përndryshe:
- Një vlerë e detyrueshme që mungon ndalet me kodin e daljes
2dhe emërton flamurin që duhet dhënë. - Një komandë shkatërruese ndalet me
Refusing to run unattended. Pass --yes to confirm.dhe kodin e daljes2, përveç nëse jepni--yes. - Një ndryshim që kërkon kod verifikimi ndalet me kodin e daljes
4, sepse askush nuk mund ta shkruajë. Përdorni një çelës API, ose ekzekutoni së pariopenemail verify.
Në CI
Jepini punës një çelës API vetëm me fushëveprimet që i duhen, mbajeni në një sekret dhe lëreni OPENEMAIL_API_KEY ta bartë. Asgjë nuk ruhet, asgjë nuk pyet, dhe asnjë kontroll përditësimi nuk ekzekutohet.
- name: Tell the team env: OPENEMAIL_API_KEY: ${{ secrets.OPENEMAIL_API_KEY }} run: | npx -y @openemail/[email protected] send \ --from [email protected] \ --to [email protected] \ --subject "Deployed ${{ github.sha }}" \ --text "Build ${{ github.run_number }} is live." \ --idempotency-key "deploy-${{ github.run_id }}"ADDRESS=$(npx -y @openemail/[email protected] temp new --ttl 15)./signup-test.sh "$ADDRESS"npx -y @openemail/[email protected] temp watch --first --json | jq -r .snippetnpx -y @openemail/[email protected] temp delete --yesfailed=$(openemail emails list --status failed --json | jq ".items | length")test "$failed" -eq 0Jepni --idempotency-key në një dërgim që një pipeline mund ta riprovojë, dhe nxirreni nga ajo që e bëri dërgimin të nevojshëm, si një ID ekzekutimi. Ekzekutimi sërish i hapit kthen atëherë dërgimin e parë në vend që të dërgojë dy herë.