You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pingme/docs/services.md

24 KiB

Configuration

All the flags have corresponding environment variables associated with them. You can either provide the value with flags or export to a variable. You can view the corresponding variable with --help flag.

Flags take precedence over variables

Default value for message title is current time

Telegram

Telegram uses bot token to authenticate & send messages to defined channels. Multiple channel IDs can be used separated by comma ','.

pingme  telegram \
--token "0125:AAFHvnYf_ABC" \
--msg "This is a new message ✈" \
--channel="-1001001001,-1002002001"
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }}
          TELEGRAM_CHANNELS: ${{ secrets.TELEGRAM_CHANNELS }}
          TELEGRAM_TITLE: 'Reference: ${{ github.ref }}'
          TELEGRAM_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams / pushover / discord / email
          service: telegram
  • Variables
Variables Default Value
TELEGRAM_TITLE ""
TELEGRAM_TOKEN ""
TELEGRAM_CHANNELS ""
TELEGRAM_MESSAGE ""

Gotify

With gotify you can send push messages to any instance of Gotify server.

pingme gotify \
--url 'https://example.com' \
--token 'tokenabc' \
--title 'some title' \
--msg 'some message' \
--priority 5
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          GOTIFY_TOKEN: ${{ secrets.GOTIFY_TOKEN }}
          GOTIFY_URL: "example.com"
          GOTIFY_TITLE: 'Reference: ${{ github.ref }}'
          GOTIFY_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams / pushover / discord / email
          service: gotify
  • Variables
Variables Default Value
GOTIFY_URL ""
GOTIFY_TOKEN ""
GOTIFY_PRIORITY "5"
GOTIFY_MESSAGE ""
GOTIFY_TITLE "Server Time"

RocketChat

RocketChat uses token & userID to authenticate and send messages to defined channels. Multiple channel IDs can be used separated by comma ','.

pingme rocketchat \
  --channel "general,Pingme" \
  --msg ":wave: rocketchat from cli" \
  --userid "123" \
  --token "abcxyz" \
  --url 'localhost:3000' \
  --scheme "http"
  • Github Action
on:
  release:
    types: [published]
jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      
      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          ROCKETCHAT_USERID: ${{ secrets.ROCKETCHAT_USERID }}
          ROCKETCHAT_TOKEN: ${{ secrets.ROCKETCHAT_TOKEN }}
          ROCKETCHAT_SERVER_URL: ${{ secrets.ROCKETCHAT_SERVER_URL }}
          ROCKETCHAT_CHANNELS: ${{ secrets.ROCKETCHAT_CHANNELS }}
          ROCKETCHAT_URL_SCHEME: "https"
          ROCKETCHAT_TITLE: 'Reference: ${{ github.ref }}'
          ROCKETCHAT_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams / 
          # pushover / discord / email / mattermost
          service: rocketchat
  • Variables
Variables Default Value
ROCKETCHAT_USERID ""
ROCKETCHAT_TOKEN ""
ROCKETCHAT_SERVER_URL ""
ROCKETCHAT_URL_SCHEME "https"
RTOCKETCHAT_MESSAGE ""
ROCKETCHAT_TITLE ""
ROCKETCHAT_CHANNELS ""

Pushover

pingme pushover \
  --token '123' \
  --user '12345567' \
  --title 'some title' \
  --msg 'some message'
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          PUSHOVER_TOKEN: ${{ secrets.PUSHOVER_TOKEN }}
          PUSHOVER_USER: ${{ secrets.PUSHOVER_USER }}
          PUSHOVER_TITLE: 'Reference: ${{ github.ref }}'
          PUSHOVER_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams / 
          # pushover / discord / email
          service: pushover
  • Variables
Variables Default Value
PUSHOVER_TOKEN ""
PUSHOVER_USER ""
PUSHOVER_MESSAGE ""
PUSHOVER_TITLE ""

Mattermost

Mattermost uses token to authenticate and channel IDs for targets. Destination server can be specified as 'example.com' by default the 'https' is used, you can change this with --scheme flag and set it to 'http'. Latest api version 4 is used for interacting with server, this can also be changed with --api flag. You can specify multiple channels by separating the value with ','.

pingme mattermost \
  --token '123' \
  --channel '12345,567' \
  --url 'localhost' \
  --scheme 'http' \
  --msg 'some message'
  • GitHub Action
on:
  release:
    types: [published]
jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      
      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          MATTERMOST_TOKEN: ${{ secrets.MATTERMOST_TOKEN }}
          MATTERMOST_SERVER_URL: ${{ secrets.MATTERMOST_SERVER_URL }}
          MATTERMOST_CHANNELS: ${{ secrets.MATTERMOST_CHANNELS }}
          MATTERMOST_TITLE: 'Reference: ${{ github.ref }}'
          MATTERMOST_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams / 
          # pushover / discord / email / mattermost
          service: mattermost
  • Variables
Variables Default Value
MATTERMOST_API_URL "/api/v4/posts"
MATTERMOST_TOKEN ""
MATTERMOST_SERVER_URL ""
MATTERMOST_SCHEME "https"
MATTERMOST_MESSAGE ""
MATTERMOST_TITLE ""
MATTERMOST_CHANNELS ""

Slack

Slack uses token to authenticate and send messages to defined channels. Multiple channel IDs can be used separated by comma ','.

pingme slack \
  --token '123' \
  --channel '1234567890' \
  --msg 'some message'
  • Github Action
on:
  release:
    types: [published]
jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      
      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }}
          SLACK_CHANNELS: ${{ secrets.SLACK_CHANNELS }}
          SLACK_MSG_TITLE: 'Reference: ${{ github.ref }}'
          SLACK_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams / 
          # pushover / discord / email
          service: slack
  • Variables
Variables Default Value
SLACK_TOKEN ""
SLACK_CHANNELS ""
SLACK_MESSAGE ""

Discord

Discord uses bot token to authenticate & send messages to defined channels. Multiple channel IDs can be used separated by comma ','.

 pingme discord \
 --token '123' \
 --channel '1234567890' \
 --msg 'some message'
  • GitHub Action
on:
  release:
    types: [published]
jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      
      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          DISCORD_CHANNELS: ${{ secrets.DISCORD_CHANNELS }}
          DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }}
          DISCORD_TITLE: 'Reference: ${{ github.ref }}'
          DISCORD_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams / 
          # pushover / discord / email / mattermost
          service: discord
  • Variables
Variables Default Value
DISCORD_TOKEN ""
DISCORD_CHANNELS ""
DISCORD_MESSAGE ""
DISCORD_MSG_TITLE ""

Microsoft Teams

Teams uses webhooks to send messages, you can add multiple webhooks separated by comma ',' or you can add permissions for multiple channels to single webhook.

pingme teams \
--webhook 'https://example.webhook.office.com/xx' \
--msg 'some message'
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          TEAMS_WEBHOOK: ${{ secrets.TEAMS_WEBHOOK }}
          TEAMS_MSG_TITLE: 'Reference: ${{ github.ref }}'
          TEAMS_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams /
          # pushover / discord / email / mattermost
          service: teams
  • Variables
Variables Default Value
TEAMS_WEBHOOK ""
TEAMS_MESSAGE ""
TEAMS_MSG_TITLE ""

Pushbullet

  • SMS
pingme pushbullet \
  --sms true \
  --token "abcdefg" \
  -d "android" \
  --msg "some message" \
  --number "00123456789"
  • Push notification
pingme pushbullet --token "abcdefg" -d "android" --msg "some message"
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          PUSHBULLET_TOKEN: ${{ secrets.PUSHBULLET_TOKEN }}
          PUSHBULLET_DEVICE: ${{ secrets.PUSHBULLET_DEVICE }}
          PUSHBULLET_TITLE: 'Reference: ${{ github.ref }}'
          PUSHBULLET_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams /
          # pushover / discord / email
          service: pushbullet
  • Variables
Variables Default Value
PUSHBULLET_TOKEN ""
PUSHBULLET_DEVICE ""
PUSHBULLET_NUMBER ""
PUSHBULLET_MESSAGE ""
PUSHBULLET_SMS "false"
PUSHBULLET_TITLE ""

Twillio SMS

SMS can be sent via twillio to multiple numbers, you can add multiple receivers separated by a comma.

 pingme twillio \
   --token 'tokenabc' \
   --account 'sid123' \
   --sender '+140001442' \
   --receiver '+140001442' \
   --msg 'some message'
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          TWILLIO_TOKEN: ${{ secrets.TWILLIO_TOKEN }}
          TWILLIO_ACCOUNT_SID: ${{ secrets.TWILLIO_ACCOUNT_SID }}
          TWILLIO_SENDER: ${{ secrets.TWILLIO_SENDER }}
          TWILLIO_RECEIVER: ${{ secrets.TWILLIO_RECEIVER }}
          TWILLIO_TITLE: 'Reference: ${{ github.ref }}'
          TWILLIO_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams /
          # pushover / discord / email / mattermost / twillio
          service: twillio
  • Variables
Variables Default Value
TWILLIO_TOKEN ""
TWILLIO_ACCOUNT_SID ""
TWILLIO_SENDER ""
TWILLIO_RECEIVER ""
TWILLIO_TITLE ""
TWILLIO_MESSAGE ""

Mastodon

Mastodon uses application token to authorize and set status.

mastodon --url "mastodon.social" --msg "some message" --title "PingMe CLI" --token "123"
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          MASTODON_TOKEN: ${{ secrets.MASTODON_TOKEN }}
          MASTODON_SERVER: 'mastodon.social'
          MASTODON_TITLE: 'Reference: ${{ github.ref }}'
          MASTODON_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        
        with:
          service: mastodon
  • Variables
Variables Default Value
MASTODON_TOKEN ""
MASTODON_SERVER ""
MASTODON_TITLE ""
MASTODON_MESSAGE ""

Zulip

Zulip uses bot email and token for authentication, and sends messages to particular topic.

pingme zulip 
 --email 'john.doe@email.com' \ 
 --api-key '12345567' \ 
 --to 'london' \
 --type 'stream' \
 --topic 'some topic' \
 --msg 'content of message'
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          ZULIP_DOMAIN: ${{ secrets.ZULIP_DOMAIN }}
          ZULIP_BOT_EMAIL_ADDRESS: ${{ secrets.ZULIP_BOT_EMAIL_ADDRESS }}
          ZULIP_BOT_API_KEY: ${{ secrets.ZULIP_BOT_API_KEY }}
          ZULIP_MSG_TYPE: 'stream'
          ZULIP_STREAM_NAME: 'general'
          ZULIP_TOPIC: 'Reference: ${{ github.ref }}'
          ZULIP_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        
        with:
          service: zulip
  • Variables
Variables Default Value
ZULIP_DOMAIN ""
ZULIP_BOT_EMAIL_ADDRESS ""
ZULIP_BOT_API_KEY ""
ZULIP_MSG_TYPE ""
ZULIP_STREAM_NAME ""
ZULIP_TOPIC ""
ZULIP_MESSAGE ""

Line

Line uses channel secret and token for authentication, and sends messages.

pingme line 
 --secret 'secretxxx' \ 
 --token '12345567' \ 
 --receivers 'ab1234545xx' \
 --msg 'content of message'
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          LINE_SECRET: ${{ secrets.LINE_SECRET }}
          LINE_TOKEN: ${{ secrets.LINE_TOKEN }}
          LINE_RECEIVER_IDS: 'ab1235xxx8'
          LINE_MSG_TITLE: 'Reference: ${{ github.ref }}'
          LINE_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        
        with:
          service: line
  • Variables
Variables Default Value
LINE_SECRET ""
LINE_TOKEN ""
LINE_RECEIVER_IDS ""
LINE_MSG_TITLE ""
LINE_MESSAGE ""

Email

Email uses username & password to authenticate for sending emails. SMTP hostname i.e smtp.gmail.com and port i.e (587) should be provided as well for the server. Multiple email IDs can be used separated by comma ',' as receiver email address. All configuration options are also available via environment variables. Check configuration section.

pingme email \
  --rec "example@gmail.com,example@outlook.com" \
  --msg "This is an email from PingMe CLI" \
  --sub "Email from PingMe CLI" \
  --sender "sender@gmail.com" \
  --host "smtp.gmail.com" \
  --port "587" \
  --pass "secretPassword"
  • Variables
Variables Default Value
EMAIL_SENDER ""
EMAIL_PASSWORD ""
EMAIL_RECEIVER ""
EMAIL_IDENTITY ""
EMAIL_HOST "smtp.gmail.com"
EMAIL_PORT "587"
EMAIL_MESSAGE ""
EMAIL_SUBJECT ""

Wechat Official Account

Wechat uses appid, appsecret, chatbot server token and encoding AES key for authentication, and sends messages.

pingme wechat
--appid "xxxxxxxx" \
--appsecret 'xxxxxxxxxx' \
--token 'xxxxxxxxxx' \
--aes 'IGNORED-IN-SANDBOX' \
--msg 'content of message' \
--receivers 'some receivers'
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          WECHAT_APPID: ${{ secrets.WECHAT_APPID }}
          WECHAT_APPSECRET: ${{ secrets.WECHAT_APPSECRET }}
          WECHAT_TOKEN: ${{ secrets.WECHAT_TOKEN }}
          WECHAT_ENCODINGAESKEY: ${{ secrets.WECHAT_ENCODINGAESKEY }}
          WECHAT_RECEIVER_IDS: ${{ secrets.WECHAT_RECEIVER_IDS }}
          WECHAT_MSG_TITLE: 'Reference: ${{ github.ref }}'
          WECHAT_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
        
        with:
          service: wechat
  • Variables
Variables Default Value
WECHAT_APPID ""
WECHAT_APPSECRET ""
WECHAT_TOKEN ""
WECHAT_ENCODINGAESKEY ""
WECHAT_RECEIVER_IDS ""
WECHAT_MSG_TITLE ""
WECHAT_MESSAGE ""

TextMagic

TextMagic allows you to send SMS to multiple receivers provided by comma separated string.

 pingme textmagic \
   --token 'tokenabc' \
   --user 'sid123' \
   --title 'message title' \
   --receiver '+140001442' \
   --msg 'some message'
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          TEXTMAGIC_USER: ${{ secrets.TEXTMAGIC_USER }}
          TEXTMAGIC_TOKEN: ${{ secrets.TEXTMAGIC_TOKEN }}
          TEXTMAGIC_TITLE: 'Reference: ${{ github.ref }}'
          TEXTMAGIC_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
          TEXTMAGIC_RECEIVER:  ${{ secrets.TEXTMAGIC_RECEIVER }}
        
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams /
          # pushover / discord / email / mattermost / textmagic
          service: textmagic
  • Variables
Variables Default Value
TEXTMAGIC_USER ""
TEXTMAGIC_TOKEN ""
TEXTMAGIC_TITLE ""
TEXTMAGIC_MESSAGE ""
TEXTMAGIC_RECEIVER ""

Matrix

Matrix uses either username and password, or an access token for authentication. Tokens will be used first, if not present, username and password will be used. Similarly for --room, if not present, room will be determined using roomId and domain.

 pingme matrix \
   --username 'matrix username' \
   --password 'password' \
   --token 'access token' \
   --url 'https://matrix-client.matrix.org' \
   --serverName 'server1.matrix.org' \
   --room 'LRovrjPJaRChcTKgoK:matrix.org' \
   --roomId 'LRovrjPJaRChcTKgoK' \
   --domain 'matrix.org' \
   --msg 'some message' \
   --autoJoin
  • GitHub Action
on: [push]

jobs:
  pingme-job:
    runs-on: ubuntu-latest
    name: PingMe
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Ping me On
        uses: kha7iq/pingme-action@v1
        env:
          MATRIX_USERNAME: ${{ secrets.MATRIX_USERNAME }}
          MATRIX_PASSWORD: ${{ secrets.MATRIX_PASSWORD }}
          MATRIX_ACCESS_TOKEN: ${{ secrets.MATRIX_ACCESS_TOKEN }}
          MATRIX_SERVER_URL: ${{ secrets.MATRIX_SERVER_URL }}
          MATRIX_SERVER_NAME: ${{ secrets.MATRIX_SERVER_NAME }}
          MATRIX_ROOM: ${{ secrets.MATRIX_ROOM }}
          MATRIX_ROOM_ID: ${{ secrets.MATRIX_ROOM_ID }}
          MATRIX_DOMAIN: ${{ secrets.MATRIX_DOMAIN }}
          MATRIX_MESSAGE: 'Event is triggered by ${{ github.event_name }}'
          MATRIX_AUTO_JOIN: ${{ secrets.MATRIX_AUTO_JOIN }}
        
        with:
          # Chose the messaging platform. 
          # slack / telegram / rocketchat / teams /
          # pushover / discord / email / mattermost / textmagic / matrix
          service: matrix
  • Variables
Variables Default Value
MATRIX_USERNAME ""
MATRIX_PASSWORD ""
MATRIX_ACCESS_TOKEN ""
MATRIX_SERVER_URL ""
MATRIX_SERVER_NAME ""
MATRIX_ROOM ""
MATRIX_ROOM_ID ""
MATRIX_DOMAIN ""
MATRIX_MESSAGE ""
MATRIX_AUTO_JOIN ""