Pereiti prie pagrindinio turinio
Programuotojams Žinučių kortelės

Kurk žinučių korteles

Viskas, ką paskelbia botas, ar tai būtų webhook, atsakymas į komandą, ar atnaujinimas paspaudus mygtuką, yra kortelė. Gera kortelė iš pirmo žvilgsnio pasako, kas nutiko: spalvotas kraštas, pavadinimas, būsena, o po jais detalės.

Ką gali padaryti

  • Parodyk būsenąSpalvotas ženkliukas, pavyzdžiui, Open, Merged ar Passing, su pridėtų ir pašalintų eilučių skaičiumi.
  • Išvardyk detalesEtiketės ir reikšmės eilutės, kurias nariai nukopijuoja vienu paspaudimu.
  • Rašyk markdownParyškinimas, kodas eilutėje, kodo blokai, citatos ir žymimieji langeliai.
  • Parodyk, kad dirbiSukutis, kol tavo botas galvoja, o vėliau jo samprotavimai, paslėpti po jungikliu.

Programėlėje

Keturios kortelės taip, kaip jas mato nariai. Kiekviena yra vos kelios JSON eilutės.

Kortelės sandara

Kortelės dalys iš viršaus į apačią. Praleisk tai, ko nereikia: kortelė vien su pavadinimu irgi tinka.

  1. Antraštė„Message from“ ir pavadinimas: webhook’o pavadinimas arba, atsakant į komandą, tavo bendruomenės pavadinimas. Atsakymas gali pridėti badge, pavyzdžiui, saugyklą.
  2. Pavadinimas ir būsenatitle, kuris tampa nuoroda, kai nustatai title_url, su status ženkliuku šalia.
  3. PaantraštėAntra paryškinta eilutė, sub_title.
  4. AprašymasTurinys, markdown formatu.
  5. LaukaiEtiketės ir reikšmės eilutės su kopijavimo mygtuku.
  6. PoraštėLaikas, taip pat pridėtos ir pašalintos eilutės, jei jas siunti.
json
{
  "message_container": {
    "type": "embed_message",
    "badge": "acme/web",
    "color": "purple",
    "title": "Pull request #212 opened",
    "title_url": "https://github.com/acme/web/pull/212",
    "status": { "label": "Open", "color": "green", "icon": "pull_request" },
    "sub_title": "Faster search in the channel list",
    "description": "Search now runs **per keystroke** with a 120 ms debounce.",
    "fields": [
      { "field": "Author", "value": "maya" },
      { "field": "Reviewers", "value": "dani, sam" }
    ],
    "additions": 86,
    "deletions": 12,
    "files_changed": 3
  }
}

Visi laukai

Šie laukai dedami į message_container. Kortelei reikia aprašymo arba loader. Laukai, pažymėti „Atsakymai į komandas“, praleidžiami, kai skelbi per webhook.

LaukasTipasKą daro
typestringembed_message (numatytasis) arba system_message.
badgestringMaža žymė po pavadinimo antraštėje, pavyzdžiui, acme/web. Atsakymai į komandas
avatar_urlstringPaveikslėlis ant kortelės piktogramos.
colorstringKrašto spalva. Žr. spalvas toliau.
titlestringParyškinta pirma eilutė.
title_urlstringPaverčia pavadinimą nuoroda.
sub_titlestringAntra paryškinta eilutė po pavadinimu.
descriptionstringTurinys, markdown formatu.
fieldsarray[{ "field": "…", "value": "…" }]: etiketės ir reikšmės eilutės.
image_url, image_base64stringPaveikslėlis kortelėje.
imagesarray[{ "image_url": "…" }]: kelių paveikslėlių galerija.
statusobject arba stringSpalvotas ženkliukas šalia pavadinimo. Žr. toliau. Atsakymai į komandas
additions, deletions, files_changednumberDiff statistika poraštėje. Atsakymai į komandas
loader, loader_text, loader_sub_textboolean, stringSukutis vietoj turinio.
thinkingstringSamprotavimai, paslėpti po jungikliu Show thinking. Atsakymai į komandas
Aprašymas ir thinking supranta markdown: **bold**, _italic_, ~~strike~~, `inline code`, kodo blokus tarp ```, > quotes, žymimuosius langelius - [x], @paminėjimus ir :emoji:.

Būsena ir diff statistika

Būsenos ženkliukas papasakoja istoriją dar prieš tai, kai kas nors perskaito tekstą. Jis stovi šalia pavadinimo arba, jei pavadinimo nėra, poraštėje; diff statistika rodoma šalia laiko. Abu veikia atsakymuose į komandas, juos naudoja ir įdiegta GitHub integracija. Webhook juos praleidžia.

json
{
  "message_container": {
    "color": "red",
    "title": "Build failed on main",
    "status": { "label": "Failing", "color": "red" },
    "description": "`search.test.js`: 2 of 212 tests failed."
  }
}
LaukasTipasKą daro
statusobject arba stringVien string reikšmė yra etiketė: "status": "Open".
status.labelstringŽenkliuko tekstas. Be jo ženkliuko nėra.
status.colorstringgreen, purple, red, orange, yellow, blue arba gray.
status.iconstringPasirenkama piktograma iš toliau pateikto sąrašo.
additionsnumberPridėtos eilutės, rodomos žaliai kaip +86.
deletionsnumberPašalintos eilutės, rodomos raudonai kaip -12.
files_changednumberPakeisti failai, rodomi kaip 3 files.

Piktogramos

ReikšmėPiktogramaĮprastas naudojimas
pull_requestgit-pull-requestAtidarytas pull request
pull_request_closedgit-pull-request-closedUždarytas nesuliejus
merge, mergedgit-mergeSulieta
commitgit-commitIšstumtas commit
issuecircle-dotAtidarytas issue
issue_closedcircle-checkUždarytas issue
checkcircle-checkTestai praėjo, užduotis pavyko

GitHub tinkantis atitikmenų rinkinys

Įdiegta GitHub integracija naudoja šias reikšmes; nusikopijuok jas savo įrankiams.

ĮvykisEtiketėSpalvaPiktograma
Atidarytas pull requestOpengreenpull_request
JuodraštisDraftgraypull_request
SulietasMergedpurplemerged
Uždarytas nesuliejusClosedredpull_request_closed
Atidarytas issueOpengreenissue
Uždarytas issueClosedpurpleissue_closed
Išstumtas commitCommitgraycommit
Testai praėjoPassinggreencheck
Testai nepavykoFailingrednėra

Loader ir samprotavimai

Kai kas nors užtrunka, pavyzdžiui, DI atsakymas ar ilga užduotis, pirmiausia paskelbk kortelę su sukučiu, o paskui pakeisk ją rezultatu. Loader veikia ir per webhook’us, ir atsakymuose į komandas. Atsakyme į komandą modelio samprotavimus taip pat gali įdėti į thinking: nariai vietoj teksto sienos matys jungiklį Show thinking.

assistant
System
Message from Assistant
Galvoju…Skaitau paskutines 50 žinučių

Pirmiausia: loader

assistant
System
Message from Assistant

maya: kada standup?

Standup 09:30, kanale #daily.
Patikrintos prisegtos žinutės ir pasikartojantis įvykis kanale #daily.

Paskui: atsakymas, samprotavimai suskleisti

json
{
  "message_container": {
    "type": "embed_message",
    "color": "blue",
    "loader": true,
    "loader_text": "Thinking…",
    "loader_sub_text": "Reading the last 50 messages"
  }
}
json
{
  "message_container": {
    "type": "embed_message",
    "color": "blue",
    "sub_title": "maya: when is the standup?",
    "description": "Standup is at **09:30**, in #daily.",
    "thinking": "Checked the pinned messages and the recurring event in #daily…"
  }
}
LaukasTipasKą daro
loaderbooleantrue rodo sukutį vietoj turinio.
loader_textstringEilutė šalia sukučio, pavyzdžiui, „Galvoju…“.
loader_sub_textstringMažesnė eilutė po ja.
thinkingstringSuskleisti samprotavimai po aprašymu, markdown formatu.

Norėdamas pakeisti loader atsakymu, atnaujink žinutę nauja kortele be loader. Kaip tai padaryti, rasi puslapyje atnaujinimai realiuoju laiku.

Ilgi aprašymai

Aprašymas gali būti iki 50 000 baitų. Po pirmųjų 1 000 nariai mato pradžią ir mygtuką Show more, kuris įkelia likusią dalį, todėl ilga ataskaita neužtvindo kanalo.

Sisteminės žinutės

Nustatyk "type": "system_message", kai reikia pranešimo, o ne boto įrašo: techninės priežiūros langų, taisyklių pakeitimų, visko, kas kalba pačios bendruomenės vardu. Ji priima tuos pačius laukus ir mygtukus.

json
{
  "message_container": {
    "type": "system_message",
    "color": "orange",
    "title": "Maintenance tonight",
    "description": "The build servers are down from 22:00 to 23:00."
  }
}

Spalvos

Krašto spalva yra greičiausias kortelės signalas. Tos pačios rūšies naujienoms visada naudok tą pačią spalvą.

SpalvaKam naudoti
greenSėkmė: praėjo, įdiegta, atlikta
redNesėkmė: nepavyko, neveikia, atmesta
orangeĮspėjimas, į kurį verta pažiūrėti
yellowLaukia kieno nors: patvirtinimai, klausimai
blueInformacija, numatytoji
purpleKodo įvykiai arba kas nors ypatinga

Sukurk savo embed

Redaguok laukus arba JSON payload. Abu visada sutampa. Peržiūroje žinutė atrodo lygiai taip, kaip pasirodys kanale. Tai tikrasis webhook užklausos turinys; nukopijuok jį, kai viskas atrodo gerai.

Šablonai
Mygtukai
Peržiūra
Webhook užklausos turinys

Kurk toliau