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.
- Antraštė„Message from“ ir pavadinimas: webhook’o pavadinimas arba, atsakant į komandą, tavo bendruomenės pavadinimas. Atsakymas gali pridėti
badge, pavyzdžiui, saugyklą. - Pavadinimas ir būsena
title, kuris tampa nuoroda, kai nustataititle_url, sustatusženkliuku šalia. - PaantraštėAntra paryškinta eilutė,
sub_title. - AprašymasTurinys, markdown formatu.
- LaukaiEtiketės ir reikšmės eilutės su kopijavimo mygtuku.
- PoraštėLaikas, taip pat pridėtos ir pašalintos eilutės, jei jas siunti.
{
"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.
| Laukas | Tipas | Ką daro |
|---|---|---|
type | string | embed_message (numatytasis) arba system_message. |
badge | string | Maža žymė po pavadinimo antraštėje, pavyzdžiui, acme/web. Atsakymai į komandas |
avatar_url | string | Paveikslėlis ant kortelės piktogramos. |
color | string | Krašto spalva. Žr. spalvas toliau. |
title | string | Paryškinta pirma eilutė. |
title_url | string | Paverčia pavadinimą nuoroda. |
sub_title | string | Antra paryškinta eilutė po pavadinimu. |
description | string | Turinys, markdown formatu. |
fields | array | [{ "field": "…", "value": "…" }]: etiketės ir reikšmės eilutės. |
image_url, image_base64 | string | Paveikslėlis kortelėje. |
images | array | [{ "image_url": "…" }]: kelių paveikslėlių galerija. |
status | object arba string | Spalvotas ženkliukas šalia pavadinimo. Žr. toliau. Atsakymai į komandas |
additions, deletions, files_changed | number | Diff statistika poraštėje. Atsakymai į komandas |
loader, loader_text, loader_sub_text | boolean, string | Sukutis vietoj turinio. |
thinking | string | Samprotavimai, paslėpti po jungikliu Show thinking. Atsakymai į komandas |
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.
{
"message_container": {
"color": "red",
"title": "Build failed on main",
"status": { "label": "Failing", "color": "red" },
"description": "`search.test.js`: 2 of 212 tests failed."
}
}| Laukas | Tipas | Ką daro |
|---|---|---|
status | object arba string | Vien string reikšmė yra etiketė: "status": "Open". |
status.label | string | Ženkliuko tekstas. Be jo ženkliuko nėra. |
status.color | string | green, purple, red, orange, yellow, blue arba gray. |
status.icon | string | Pasirenkama piktograma iš toliau pateikto sąrašo. |
additions | number | Pridėtos eilutės, rodomos žaliai kaip +86. |
deletions | number | Pašalintos eilutės, rodomos raudonai kaip -12. |
files_changed | number | Pakeisti failai, rodomi kaip 3 files. |
Piktogramos
| Reikšmė | Piktograma | Įprastas naudojimas |
|---|---|---|
pull_request | git-pull-request | Atidarytas pull request |
pull_request_closed | git-pull-request-closed | Uždarytas nesuliejus |
merge, merged | git-merge | Sulieta |
commit | git-commit | Išstumtas commit |
issue | circle-dot | Atidarytas issue |
issue_closed | circle-check | Uždarytas issue |
check | circle-check | Testai praėjo, užduotis pavyko |
GitHub tinkantis atitikmenų rinkinys
Įdiegta GitHub integracija naudoja šias reikšmes; nusikopijuok jas savo įrankiams.
| Įvykis | Etiketė | Spalva | Piktograma |
|---|---|---|---|
| Atidarytas pull request | Open | green | pull_request |
| Juodraštis | Draft | gray | pull_request |
| Sulietas | Merged | purple | merged |
| Uždarytas nesuliejus | Closed | red | pull_request_closed |
| Atidarytas issue | Open | green | issue |
| Uždarytas issue | Closed | purple | issue_closed |
| Išstumtas commit | Commit | gray | commit |
| Testai praėjo | Passing | green | check |
| Testai nepavyko | Failing | red | nė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.
Pirmiausia: loader
Paskui: atsakymas, samprotavimai suskleisti
{
"message_container": {
"type": "embed_message",
"color": "blue",
"loader": true,
"loader_text": "Thinking…",
"loader_sub_text": "Reading the last 50 messages"
}
}{
"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…"
}
}| Laukas | Tipas | Ką daro |
|---|---|---|
loader | boolean | true rodo sukutį vietoj turinio. |
loader_text | string | Eilutė šalia sukučio, pavyzdžiui, „Galvoju…“. |
loader_sub_text | string | Mažesnė eilutė po ja. |
thinking | string | Suskleisti 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.
{
"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ą.
| Spalva | Kam naudoti |
|---|---|
green | Sėkmė: praėjo, įdiegta, atlikta |
red | Nesėkmė: nepavyko, neveikia, atmesta |
orange | Įspėjimas, į kurį verta pažiūrėti |
yellow | Laukia kieno nors: patvirtinimai, klausimai |
blue | Informacija, numatytoji |
purple | Kodo į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.