Перейти к содержимому

notiflow

Сообщить в Telegram, что что-то закончилось. Из workflow или из шелла.

notiflow — Telegram-нотификатор для CI и терминала: GitHub Action и CLI в одном бинаре на Rust

Один бинарь, два лица

GitHub Action и CLI notiflow — это один и тот же бинарь на Rust. Шаблон, который рендерится в workflow, точно так же рендерится у тебя в терминале.

Никакого рантайма

Один статический исполняемый файл. Ни bash, ни curl, ни jq, ни Python. Linux, macOS и Windows-раннеры одинаково.

Безопасно по построению

Значения плейсхолдеров экранируются под parse mode, обрезка идёт по границам разметки, а токен вычищается из всего, что notiflow печатает.

Честно про сбои

Ретраи с джиттером, учёт Retry-After, 4xx не ретраится, и документированный exit-код на каждый способ упасть.

- uses: jtprogru/notiflow@v2
if: always()
with:
bot_token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
chat_id: ${{ secrets.TELEGRAM_CHAT_ID }}
status: ${{ job.status }}
Окно терминала
brew install jtprogru/tap/notiflow
export NOTIFLOW_BOT_TOKEN=123456:AA...
notiflow send --chat-id -1001234567890 --message "деплой закончился"
./long-build.sh | notiflow send -c -1001234567890 --stdin

Переезжаешь с v1? Входы не изменились, кроме одного удаления — см. гайд по миграции.