Skip to content
Sending line notifications using a binary, docker or Drone CI.
Branch: master
Clone or download
Latest commit 4ad640a Nov 11, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example Update Dockerfile Sep 10, 2018
images refactor: move image to folder. Dec 18, 2017
screenshots support prometheus metrics (#64) Apr 13, 2017
vendor support prometheus metrics (#64) Apr 13, 2017
.appveyor.yml feat(docker): update images tag Nov 11, 2018
.dockerignore refactor(drone): update static build. Dec 18, 2017
.drone.yml feat(docker): update images tag Nov 11, 2018
.editorconfig initial drone line plugin. Sep 14, 2016
.gitignore replace glide with dep (#49) Mar 29, 2017
DOCS.md update Apr 17, 2018
Dockerfile refactor(drone): update static build. Dec 18, 2017
Dockerfile.alpine feat(docker): support arm arm64 i386 alpine image. Dec 18, 2017
Dockerfile.arm fix(docker): arm path Nov 11, 2018
Dockerfile.arm64 feat(docker): support arm arm64 i386 alpine image. Dec 18, 2017
Dockerfile.i386 feat(docker): support arm arm64 i386 alpine image. Dec 18, 2017
Dockerfile.windows update exe path Mar 12, 2018
LICENSE Initial commit Sep 13, 2016
Makefile feat(Makefile): support specfic go version Nov 11, 2018
README.md
doc.go add doc Dec 29, 2016
go.mod feat: support go module in go 1.11 Nov 11, 2018
go.sum feat: support go module in go 1.11 Nov 11, 2018
main.go feat: add deployTo flag May 19, 2018
metrics.go support prometheus metrics (#64) Apr 13, 2017
plugin.go feat: add deployTo flag May 19, 2018
plugin_test.go Support send message to room or group (#76) Dec 18, 2017

README.md

drone-line

GoDoc Build Status codecov Go Report Card Docker Pulls 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

Please note incorrectly building the image for the correct x64 linux and with CGO disabled will result in an error when running the Docker image:

docker: Error response from daemon: Container command
'/bin/drone-line' not found or does not exist..

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

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

Send Notification

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 DRONE_COMMIT_AUTHOR_EMAIL=appleboy@gmail.com \
  -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
You can’t perform that action at this time.