Обложка к записи Отправляем сообщения в Telegram из GitHub

Отправляем сообщения в Telegram из GitHub

Представляю вашему вниманию GitHub Action для отправки уведомлений в Telegram из вашего репозитория.

Как использовать

Отправляем произвольное сообщение со своей переменной {{ commit.sha }}:

action "Send Custom Message" {
  uses = "appleboy/telegram-action@master"
  secrets = [
    "TELEGRAM_TOKEN",
    "TELEGRAM_TO",
  ]
  args = "A new commit has been pushed. commit sha: {{ commit.sha }}"
}

Если удалить аргумент args, то отправится сообщение по умолчанию:

action "Send Default Message" {
  uses = "appleboy/telegram-action@master"
  secrets = [
    "TELEGRAM_TOKEN",
    "TELEGRAM_TO",
  ]
}

Переменные окружения

  • PHOTO — необязательная, фото
  • DOCUMENT — необязательная, документ
  • STICKER — необязательная, стикер
  • AUDIO — необязательная, аудио
  • VOICE — необязательная, голос
  • LOCATION — необязательная, положение
  • VENUE — необязательная, место
  • VIDEO — необязательная, видео
  • DEBUG — необязательная, отладка
  • FORMAT — необязательная. markdown или html

Пример

action "Send photo message" {
  uses = "appleboy/telegram-action@master"
  secrets = [
    "TELEGRAM_TOKEN",
    "TELEGRAM_TO",
  ]
  env = {
    PHOTO = "tests/github.png"
  }
  args = "A new commit has been pushed."
}

Секреты

Начало работы с Telegram Bot API.

  • TELEGRAM_TOKEN — токен авторизации Telegram
  • TELEGRAM_TO: уникальный идентификтор для чата.

Получаем уникальный идентификатор из API Telegram:

$ curl https://api.telegram.org/bot<token>/getUpdates

Смотрим результат: (вы получите идентификатор вида 65382999):

{
  "ok": true,
  "result": [
    {
      "update_id": 664568113,
      "message": {
        "message_id": 8423,
        "from": {
          "id": 65382999,
          "is_bot": false,
          "first_name": "Bo-Yi",
          "last_name": "Wu (appleboy)",
          "username": "appleboy46",
          "language_code": "en"
        },
        "chat": {
          "id": 65382999,
          "first_name": "Bo-Yi",
          "last_name": "Wu (appleboy)",
          "username": "appleboy46",
          "type": "private"
        },
        "date": 1550333434,
        "text": "?"
      }
    }
  ]
}

Переменные шаблона

Переменная GitHub Переменная Telegram
GITHUB_REPOSITORY repo
GITHUB_ACTOR repo.namespace
GITHUB_SHA commit.sha
GITHUB_REF commit.ref
GITHUB_WORKFLOW github.workflow
GITHUB_ACTION github.action
GITHUB_EVENT_NAME github.event.name
GITHUB_EVENT_PATH github.event.path
GITHUB_WORKSPACE github.workspace

Ссылки

action GitHub Telegram

Источник: https://www.kobzarev.com/programming/github-action-for-telegram/