Categorygithub.com/appleboy/drone-line
modulepackage
1.5.1
Repository: https://github.com/appleboy/drone-line.git
Documentation: pkg.go.dev

# README

drone-line

drone-line

GoDoc Build Status codecov Go Report Card Docker Pulls microbadger Release Build status

Sending line notifications using a binary, docker or Drone CI.

Register Line BOT API Trial

Please refer to LINE Business Center.

Feature

  • Send multiple Message.
  • Send Text Message.
  • Send Video Message.
  • Send Audio Message.
  • Send Sticker Message.
  • Send Location Message.
  • Support prometheus metrics API.
  • Automatically install TLS certificates from Let's Encrypt.
  • Support Localtunnel for webhook tunnel.
  • Support Line Notify.

Localtunnel allows you to easily share a web service on your local development machine without messing with DNS and firewall settings.

Memory Usage:

Memory Usage

Notification Count Usage:

Notification Count Usage

Build or Download a binary

The pre-compiled binaries can be downloaded from release page. Support the following OS type.

  • Windows amd64/386
  • Linux amd64/386
  • Darwin amd64/386

With Go installed

go get -u -v github.com/appleboy/drone-line

or build the binary with the following command:

make build

Docker

Build the docker image with the following commands:

make docker

Usage

There are three ways to send notification.

Usage from binary

Setup Webhook service

Setup Webhook service as default port 8088.

drone-line \
  --secret xxxx \
  --token xxxx \
  webhook

Change default webhook port to 8089.

drone-line \
  --port 8089 \
  --secret xxxx \
  --token xxxx \
  webhook

Use localtunnel to tunnel your locally running bot so that Line can reach the webhook.

drone-line \
  -s secret \
  -t token \
  --tunnel \
  --port 2002 \
  webhook

Use Let's Encrypt. Please make sure you have permission to listen on 443 port.

drone-line \
  -s secret \
  -t token \
  -autotls \
  -host example.com \
  -cache /var/www/.cache \
  --port 443 \
  webhook

Tips: Another way to use ngrok to tunnel your locally running bot so that Line can reach the webhook.

Send Notification

Setup the --to flag after fetch user id from webhook service.

drone-line \
  --secret xxxx \
  --token xxxx \
  --to xxxx \
  --message "Test Message"

Send LINE Notify

If you connect your service with LINE Notify, LINE users can easily receive notifications from it. See the documentation.

drone-line \
  --token xxxx \
  --message "Test Message" \
  notify

Usage from docker

Setup Webhook service as default port 8088.

docker run --rm \
  -e LINE_CHANNEL_SECRET=xxxxxxx \
  -e LINE_CHANNEL_TOKEN=xxxxxxx \
  appleboy/drone-line webhook

Change default webhook port to 8089.

docker run --rm \
  -e LINE_CHANNEL_SECRET=xxxxxxx \
  -e LINE_CHANNEL_TOKEN=xxxxxxx \
  -e LINE_PORT=8089 \
  appleboy/drone-line webhook

Tips: Use ngrok to tunnel your locally running bot so that Line can reach the webhook.

Send Notification

docker run --rm \
  -e LINE_CHANNEL_SECRET=xxxxxxx \
  -e LINE_CHANNEL_TOKEN=xxxxxxx \
  -e LINE_TO=xxxxxxx \
  -e LINE_MESSAGE=test \
  -e LINE_IMAGES=https://example.com/1.png \
  -e LINE_VIDEOS=https://example.com/1.mp4 \
  -e LINE_AUDIOS=https://example.com/1.mp3::1000 \
  -e LINE_STICKERS=1::1 \
  -e LINE_LOCATIONS=title::address::latitude::longitude \
  -e LINE_DELIMITER=:: \
  appleboy/drone-line

Usage from drone ci

Execute from the working directory:

docker run --rm \
  -e PLUGIN_CHANNEL_SECRET=xxxxxxx \
  -e PLUGIN_CHANNEL_TOKEN=xxxxxxx \
  -e PLUGIN_TO=xxxxxxx \
  -e PLUGIN_MESSAGE=test \
  -e PLUGIN_IMAGES=https://example.com/1.png \
  -e PLUGIN_VIDEOS=https://example.com/1.mp4 \
  -e PLUGIN_AUDIOS=https://example.com/1.mp3::1000 \
  -e PLUGIN_STICKERS=1::1 \
  -e PLUGIN_LOCATIONS=title::address::latitude::longitude \
  -e PLUGIN_DELIMITER=:: \
  -e PLUGIN_ONLY_MATCH_EMAIL=false \
  -e DRONE_REPO_OWNER=appleboy \
  -e DRONE_REPO_NAME=go-hello \
  -e DRONE_COMMIT_SHA=e5e82b5eb3737205c25955dcc3dcacc839b7be52 \
  -e DRONE_COMMIT_BRANCH=master \
  -e DRONE_COMMIT_AUTHOR=appleboy \
  -e [email protected] \
  -e DRONE_COMMIT_MESSAGE=Test_Your_Commit \
  -e DRONE_BUILD_NUMBER=1 \
  -e DRONE_BUILD_STATUS=success \
  -e DRONE_BUILD_LINK=http://github.com/appleboy/go-hello \
  -e DRONE_JOB_STARTED=1477550550 \
  -e DRONE_JOB_FINISHED=1477550750 \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-line

You can get more information about how to use scp plugin in drone.

Testing

Test the package with the following command:

make test

# Packages

No description provided by the author

# Functions

NewMetrics returns a new Metrics with all prometheus.Desc initialized.

# Variables

ReceiveCount is receive notification count.
SendCount is send notification count.

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Metrics implements the prometheus.Metrics interface and exposes gitea metrics for prometheus.
No description provided by the author
No description provided by the author