Giter Club home page Giter Club logo

drone's Introduction

drone-line

GoDoc Build Status codecov Go Report Card Docker Pulls Release

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.

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"

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 [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

drone's People

Contributors

appleboy avatar bobwei avatar up9cloud avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.