Compare commits

...

10 Commits

Author SHA1 Message Date
Кобелев Андрей Андреевич
5e132e9350 change api methods 2023-05-26 11:38:52 +03:00
Кобелев Андрей Андреевич
b545186f68 change tgbotapi 2023-05-26 11:38:36 +03:00
Bo-Yi Wu
ab44454733
chore: remove trim \n from message (#105) 2021-07-12 15:17:02 +08:00
Bo-Yi Wu
2dfbc98fdd chore: remove badge
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2021-07-03 12:46:47 +08:00
Bo-Yi Wu
24f5558e9e chore: update go module
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2021-07-03 12:46:31 +08:00
Bo-Yi Wu
ca270b33c8
Fix can't call duration helper func (#104)
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2021-07-03 12:39:54 +08:00
Bo-Yi Wu
882afee629
chore: upgrade drone template (#103) 2021-07-03 11:56:16 +08:00
Bo-Yi Wu
d5d27734b0 chore: revert to go1.15 2021-04-03 07:08:13 +08:00
Bo-Yi Wu
e0f4e9a9e4 chore: upgrade go module 2021-04-03 06:54:55 +08:00
Bo-Yi Wu
d6c3514a66 chore: upgrade to go1.16 2021-04-03 06:39:46 +08:00
11 changed files with 171 additions and 80 deletions

View File

@ -73,7 +73,7 @@ steps:
pull: always pull: always
image: golang:1.15 image: golang:1.15
commands: commands:
- "go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-telegram" - go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-telegram
environment: environment:
CGO_ENABLED: 0 CGO_ENABLED: 0
when: when:
@ -85,7 +85,7 @@ steps:
pull: always pull: always
image: golang:1.15 image: golang:1.15
commands: commands:
- "go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-telegram" - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-telegram
environment: environment:
CGO_ENABLED: 0 CGO_ENABLED: 0
when: when:
@ -133,8 +133,8 @@ steps:
trigger: trigger:
ref: ref:
- refs/heads/master - refs/heads/master
- "refs/pull/**" - refs/pull/**
- "refs/tags/**" - refs/tags/**
depends_on: depends_on:
- testing - testing
@ -152,7 +152,7 @@ steps:
pull: always pull: always
image: golang:1.15 image: golang:1.15
commands: commands:
- "go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-telegram" - go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-telegram
environment: environment:
CGO_ENABLED: 0 CGO_ENABLED: 0
when: when:
@ -164,7 +164,7 @@ steps:
pull: always pull: always
image: golang:1.15 image: golang:1.15
commands: commands:
- "go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-telegram" - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-telegram
environment: environment:
CGO_ENABLED: 0 CGO_ENABLED: 0
when: when:
@ -212,8 +212,8 @@ steps:
trigger: trigger:
ref: ref:
- refs/heads/master - refs/heads/master
- "refs/pull/**" - refs/pull/**
- "refs/tags/**" - refs/tags/**
depends_on: depends_on:
- testing - testing
@ -231,7 +231,7 @@ steps:
pull: always pull: always
image: golang:1.15 image: golang:1.15
commands: commands:
- "go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-telegram" - go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-telegram
environment: environment:
CGO_ENABLED: 0 CGO_ENABLED: 0
when: when:
@ -243,7 +243,7 @@ steps:
pull: always pull: always
image: golang:1.15 image: golang:1.15
commands: commands:
- "go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-telegram" - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-telegram
environment: environment:
CGO_ENABLED: 0 CGO_ENABLED: 0
when: when:
@ -291,8 +291,8 @@ steps:
trigger: trigger:
ref: ref:
- refs/heads/master - refs/heads/master
- "refs/pull/**" - refs/pull/**
- "refs/tags/**" - refs/tags/**
depends_on: depends_on:
- testing - testing
@ -322,14 +322,14 @@ steps:
api_key: api_key:
from_secret: github_release_api_key from_secret: github_release_api_key
files: files:
- "dist/release/*" - dist/release/*
when: when:
event: event:
- tag - tag
trigger: trigger:
ref: ref:
- "refs/tags/**" - refs/tags/**
depends_on: depends_on:
- testing - testing
@ -367,7 +367,7 @@ steps:
trigger: trigger:
ref: ref:
- refs/heads/master - refs/heads/master
- "refs/tags/**" - refs/tags/**
depends_on: depends_on:
- linux-amd64 - linux-amd64

View File

@ -122,7 +122,7 @@ Example configuration with video message:
+ - tests/video2.mp4 + - tests/video2.mp4
``` ```
Example configuration with message format: Example configuration with message format (`Markdown` or `HTML`), default as `Markdown`:
```diff ```diff
- name: send telegram notification - name: send telegram notification
@ -130,7 +130,7 @@ Example configuration with message format:
settings: settings:
token: xxxxxxxxxx token: xxxxxxxxxx
to: telegram_user_id to: telegram_user_id
+ format: markdown + format: Markdown
``` ```
Example configuration with a custom message template: Example configuration with a custom message template:

View File

@ -8,7 +8,6 @@
[![codecov](https://codecov.io/gh/appleboy/drone-telegram/branch/master/graph/badge.svg)](https://codecov.io/gh/appleboy/drone-telegram) [![codecov](https://codecov.io/gh/appleboy/drone-telegram/branch/master/graph/badge.svg)](https://codecov.io/gh/appleboy/drone-telegram)
[![Go Report Card](https://goreportcard.com/badge/github.com/appleboy/drone-telegram)](https://goreportcard.com/report/github.com/appleboy/drone-telegram) [![Go Report Card](https://goreportcard.com/badge/github.com/appleboy/drone-telegram)](https://goreportcard.com/report/github.com/appleboy/drone-telegram)
[![Docker Pulls](https://img.shields.io/docker/pulls/appleboy/drone-telegram.svg)](https://hub.docker.com/r/appleboy/drone-telegram/) [![Docker Pulls](https://img.shields.io/docker/pulls/appleboy/drone-telegram.svg)](https://hub.docker.com/r/appleboy/drone-telegram/)
[![microbadger](https://images.microbadger.com/badges/image/appleboy/drone-telegram.svg)](https://microbadger.com/images/appleboy/drone-telegram "Get your own image badge on microbadger.com")
[Drone](https://github.com/drone/drone) plugin for sending telegram notifications. For the usage [Drone](https://github.com/drone/drone) plugin for sending telegram notifications. For the usage
information and a listing of the available options please take a look at [the docs](http://plugins.drone.io/appleboy/drone-telegram/). information and a listing of the available options please take a look at [the docs](http://plugins.drone.io/appleboy/drone-telegram/).

35
go.mod
View File

@ -1,13 +1,32 @@
module github.com/appleboy/drone-telegram module github.com/appleboy/drone-telegram
go 1.15 go 1.20
require ( require (
github.com/drone/drone-template-lib v1.0.0 git.belvedersky.ru/common/tgbotapi v0.6.0
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible github.com/appleboy/drone-template-lib v1.0.1-0.20210703043441-92442f23f605
github.com/joho/godotenv v1.3.0 github.com/joho/godotenv v1.5.1
github.com/stretchr/testify v1.7.0 github.com/stretchr/testify v1.8.3
github.com/technoweenie/multipartstreamer v1.0.1 // indirect github.com/urfave/cli v1.22.13
github.com/urfave/cli v1.20.0 )
gopkg.in/yaml.v2 v2.4.0 // indirect
require (
github.com/Masterminds/goutils v1.1.0 // indirect
github.com/Masterminds/semver/v3 v3.1.0 // indirect
github.com/Masterminds/sprig/v3 v3.1.0 // indirect
github.com/aymerick/raymond v2.0.2+incompatible // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/google/uuid v1.1.1 // indirect
github.com/huandu/xstrings v1.3.1 // indirect
github.com/imdario/mergo v0.3.8 // indirect
github.com/mitchellh/copystructure v1.0.0 // indirect
github.com/mitchellh/reflectwalk v1.0.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/spf13/cast v1.3.1 // indirect
github.com/stretchr/objx v0.5.0 // indirect
github.com/technoweenie/multipartstreamer v1.0.1 // indirect
golang.org/x/crypto v0.0.0-20200414173820-0848c9571904 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
) )

83
go.sum
View File

@ -1,45 +1,62 @@
git.belvedersky.ru/common/tgbotapi v0.6.0 h1:meq8GNNKG8XADYXO1legSs4vLpBxzXXy2BHk5VSDB1U=
git.belvedersky.ru/common/tgbotapi v0.6.0/go.mod h1:UeXhGrHhZUA9PEwMgOkdCBDRW5e7EJkmUte/xMELiVI=
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg=
github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc= github.com/Masterminds/semver/v3 v3.1.0 h1:Y2lUDsFKVRSYGojLJ1yLxSXdMmMYTYls0rCvoqmMUQk=
github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver/v3 v3.1.0/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
github.com/Masterminds/sprig v2.18.0+incompatible h1:QoGhlbC6pter1jxKnjMFxT8EqsLuDE6FEcNbWEpw+lI= github.com/Masterminds/sprig/v3 v3.1.0 h1:j7GpgZ7PdFqNsmncycTHsLmVPf5/3wJtlgW9TNDYD9Y=
github.com/Masterminds/sprig v2.18.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Masterminds/sprig/v3 v3.1.0/go.mod h1:ONGMf7UfYGAbMXCZmQLy8x3lCDIPrEZE/rU8pmrbihA=
github.com/appleboy/drone-template-lib v1.0.1-0.20210703043441-92442f23f605 h1:13DCA0YYotNdiFodfoWpMVBi4bBTv3OxO2o/IU60kuw=
github.com/appleboy/drone-template-lib v1.0.1-0.20210703043441-92442f23f605/go.mod h1:Mdr1SPt42qahB+Gfb/QBsQID+tkBkzrR+j+Gwq9XMBs=
github.com/aymerick/raymond v2.0.2+incompatible h1:VEp3GpgdAnv9B2GFyTvqgcKvY+mfKMjPOA3SbKLtnU0= github.com/aymerick/raymond v2.0.2+incompatible h1:VEp3GpgdAnv9B2GFyTvqgcKvY+mfKMjPOA3SbKLtnU0=
github.com/aymerick/raymond v2.0.2+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/aymerick/raymond v2.0.2+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g=
github.com/bouk/monkey v1.0.0 h1:k6z8fLlPhETfn5l9rlWVE7Q6B23DoaqosTdArvNQRdc= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
github.com/bouk/monkey v1.0.0/go.mod h1:PG/63f4XEUlVyW1ttIeOJmJhhe1+t9EC/je3eTjvFhE= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/drone/drone-template-lib v1.0.0 h1:PNBBfUhifRnrPCoWBlTitk3jipXdv8u8WLbIf7h7j00= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/drone/drone-template-lib v1.0.0/go.mod h1:Hqy1tgqPH5mtbFOZmow19l4jOkZvp+WZ00cB4W3MJhg= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible h1:2cauKuaELYAEARXRkq2LrJ0yDDv1rW7+wrTEdVL3uaU= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.0 h1:Jf4mxPC/ziBnoPIdpQdPJ9OeiomAUHLvxmPRSPH9m4s= github.com/huandu/xstrings v1.3.1 h1:4jgBlKK6tLKFvO8u5pmYjG91cqytmDCDvGh7ECVFfFs=
github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0= github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ=
github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/technoweenie/multipartstreamer v1.0.1 h1:XRztA5MXiR1TIRHxH2uNxXxaIkKQDeX7m2XsSOlQEnM= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY=
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog=
github.com/tkuchiki/faketime v0.0.0-20170607100027-a4500a4f4643 h1:ii/sHfgFMByozryLeiDmn1ClZ/Pena4NgpJ4P7UuX9o= github.com/urfave/cli v1.22.13 h1:wsLILXG8qCJNse/qAgLNf23737Cx05GflHg/PJGe1Ok=
github.com/tkuchiki/faketime v0.0.0-20170607100027-a4500a4f4643/go.mod h1:RXY/TXAwGGL36IKDjrHFMcjpUrEiyWSEtLhFPw3UWF0= github.com/urfave/cli v1.22.13/go.mod h1:VufqObjsMTF2BBwKawpx9R8eAneNEWhoO0yx8Vd+FkE=
github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904 h1:bXoxMPcSLOq08zI3/c5dEBT6lE4eh+jOh886GHrn6V8=
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

View File

@ -122,7 +122,7 @@ func main() {
cli.StringFlag{ cli.StringFlag{
Name: "format", Name: "format",
Value: formatMarkdown, Value: formatMarkdown,
Usage: "telegram message format", Usage: "telegram message format (Markdown or HTML)",
EnvVar: "PLUGIN_FORMAT,FORMAT,INPUT_FORMAT", EnvVar: "PLUGIN_FORMAT,FORMAT,INPUT_FORMAT",
}, },
cli.StringFlag{ cli.StringFlag{

View File

@ -15,12 +15,13 @@ import (
"strconv" "strconv"
"strings" "strings"
"github.com/drone/drone-template-lib/template" tgbotapi "git.belvedersky.ru/common/tgbotapi"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api" "github.com/appleboy/drone-template-lib/template"
) )
const ( const (
formatMarkdown = "markdown" formatMarkdown = "Markdown"
formatHTML = "HTML"
) )
type ( type (
@ -259,6 +260,10 @@ func parseTo(to []string, authorEmail string, matchEmail bool) []int64 {
return ids return ids
} }
func templateMessage(t string, plugin Plugin) (string, error) {
return template.RenderTrim(t, plugin)
}
// Exec executes the plugin. // Exec executes the plugin.
func (p Plugin) Exec() (err error) { func (p Plugin) Exec() (err error) {
if len(p.Config.Token) == 0 || len(p.Config.To) == 0 { if len(p.Config.Token) == 0 || len(p.Config.To) == 0 {
@ -313,7 +318,7 @@ func (p Plugin) Exec() (err error) {
var bot *tgbotapi.BotAPI var bot *tgbotapi.BotAPI
if len(p.Config.Socks5) > 0 { if len(p.Config.Socks5) > 0 {
proxyClient := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)}} proxyClient := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)}}
bot, err = tgbotapi.NewBotAPIWithClient(p.Config.Token, proxyClient) bot, err = tgbotapi.NewBotAPIWithClient(p.Config.Token, "", proxyClient) // ANCHOR ENDPOINT
} else { } else {
bot, err = tgbotapi.NewBotAPI(p.Config.Token) bot, err = tgbotapi.NewBotAPI(p.Config.Token)
} }
@ -356,7 +361,7 @@ func (p Plugin) Exec() (err error) {
// send message. // send message.
for _, user := range ids { for _, user := range ids {
for _, value := range message { for _, value := range message {
txt, err := template.RenderTrim(value, p) txt, err := templateMessage(value, p)
if err != nil { if err != nil {
return err return err
} }
@ -367,34 +372,35 @@ func (p Plugin) Exec() (err error) {
msg.ParseMode = p.Config.Format msg.ParseMode = p.Config.Format
msg.DisableWebPagePreview = p.Config.DisableWebPagePreview msg.DisableWebPagePreview = p.Config.DisableWebPagePreview
msg.DisableNotification = p.Config.DisableNotification msg.DisableNotification = p.Config.DisableNotification
if err := p.Send(bot, msg); err != nil { if err := p.Send(bot, msg); err != nil {
return err return err
} }
} }
for _, value := range photos { for _, value := range photos {
msg := tgbotapi.NewPhotoUpload(user, value) msg := tgbotapi.NewPhoto(user, tgbotapi.FilePath(value))
if err := p.Send(bot, msg); err != nil { if err := p.Send(bot, msg); err != nil {
return err return err
} }
} }
for _, value := range documents { for _, value := range documents {
msg := tgbotapi.NewDocumentUpload(user, value) msg := tgbotapi.NewDocument(user, tgbotapi.FilePath(value))
if err := p.Send(bot, msg); err != nil { if err := p.Send(bot, msg); err != nil {
return err return err
} }
} }
for _, value := range stickers { for _, value := range stickers {
msg := tgbotapi.NewStickerUpload(user, value) msg := tgbotapi.NewSticker(user, tgbotapi.FilePath(value))
if err := p.Send(bot, msg); err != nil { if err := p.Send(bot, msg); err != nil {
return err return err
} }
} }
for _, value := range audios { for _, value := range audios {
msg := tgbotapi.NewAudioUpload(user, value) msg := tgbotapi.NewAudio(user, tgbotapi.FilePath(value))
msg.Title = "Audio Message." msg.Title = "Audio Message."
if err := p.Send(bot, msg); err != nil { if err := p.Send(bot, msg); err != nil {
return err return err
@ -402,14 +408,14 @@ func (p Plugin) Exec() (err error) {
} }
for _, value := range voices { for _, value := range voices {
msg := tgbotapi.NewVoiceUpload(user, value) msg := tgbotapi.NewVoice(user, tgbotapi.FilePath(value))
if err := p.Send(bot, msg); err != nil { if err := p.Send(bot, msg); err != nil {
return err return err
} }
} }
for _, value := range videos { for _, value := range videos {
msg := tgbotapi.NewVideoUpload(user, value) msg := tgbotapi.NewVideo(user, tgbotapi.FilePath(value))
msg.Caption = "Video Message" msg.Caption = "Video Message"
if err := p.Send(bot, msg); err != nil { if err := p.Send(bot, msg); err != nil {
return err return err

View File

@ -3,7 +3,9 @@ package main
import ( import (
"os" "os"
"testing" "testing"
"time"
"github.com/appleboy/drone-template-lib/template"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
@ -351,7 +353,7 @@ func TestHTMLMessage(t *testing.T) {
Sha: "e7c4f0a63ceeb42a39ac7806f7b51f3f0d204fd2", Sha: "e7c4f0a63ceeb42a39ac7806f7b51f3f0d204fd2",
Author: "Bo-Yi Wu", Author: "Bo-Yi Wu",
Branch: "master", Branch: "master",
Message: "Freakin' macOS isn't fully case-sensitive..", Message: "test",
}, },
Build: Build{ Build: Build{
Number: 101, Number: 101,
@ -362,11 +364,20 @@ func TestHTMLMessage(t *testing.T) {
Config: Config{ Config: Config{
Token: os.Getenv("TELEGRAM_TOKEN"), Token: os.Getenv("TELEGRAM_TOKEN"),
To: []string{os.Getenv("TELEGRAM_TO")}, To: []string{os.Getenv("TELEGRAM_TO")},
Message: `
Test HTML Format
<a href='https://google.com'>Google .com 1</a>
<a href='https://google.com'>Google .com 2</a>
<a href='https://google.com'>Google .com 3</a>
`,
Format: formatHTML,
}, },
} }
err := plugin.Exec() assert.Nil(t, plugin.Exec())
assert.Nil(t, err)
plugin.Config.MessageFile = "tests/message_html.txt"
assert.Nil(t, plugin.Exec())
} }
func TestMessageFile(t *testing.T) { func TestMessageFile(t *testing.T) {
@ -382,9 +393,11 @@ func TestMessageFile(t *testing.T) {
Message: "Freakin' macOS isn't fully case-sensitive..", Message: "Freakin' macOS isn't fully case-sensitive..",
}, },
Build: Build{ Build: Build{
Number: 101, Number: 101,
Status: "success", Status: "success",
Link: "https://github.com/appleboy/go-hello", Link: "https://github.com/appleboy/go-hello",
Started: time.Now().Unix(),
Finished: time.Now().Add(time.Duration(180 * time.Second)).Unix(),
}, },
Config: Config{ Config: Config{
@ -411,9 +424,11 @@ func TestTemplateVars(t *testing.T) {
Message: "This is a test commit msg", Message: "This is a test commit msg",
}, },
Build: Build{ Build: Build{
Number: 101, Number: 101,
Status: "success", Status: "success",
Link: "https://github.com/appleboy/go-hello", Link: "https://github.com/appleboy/go-hello",
Started: time.Now().Unix(),
Finished: time.Now().Add(time.Duration(180 * time.Second)).Unix(),
}, },
Config: Config{ Config: Config{
@ -492,3 +507,31 @@ func TestProxySendMessage(t *testing.T) {
err := plugin.Exec() err := plugin.Exec()
assert.Nil(t, err) assert.Nil(t, err)
} }
func TestBuildTemplate(t *testing.T) {
plugin := Plugin{
Commit: Commit{
Sha: "e7c4f0a63ceeb42a39ac7806f7b51f3f0d204fd2",
Author: "Bo-Yi Wu",
Branch: "master",
Message: "This is a test commit msg",
},
Build: Build{
Number: 101,
Status: "success",
Link: "https://github.com/appleboy/go-hello",
Started: time.Now().Unix(),
Finished: time.Now().Add(time.Duration(180 * time.Second)).Unix(),
},
}
_, err := template.RenderTrim(
`
Sample message loaded from file.
Commit msg: {{uppercasefirst commit.message}}
duration: {{duration build.started build.finished}}
`, plugin)
assert.Nil(t, err)
}

View File

@ -2,3 +2,4 @@ Sample message loaded from file.
Commit msg: {{commit.message}} Commit msg: {{commit.message}}
duration: {{duration build.started build.finished}}

5
tests/message_html.txt Normal file
View File

@ -0,0 +1,5 @@
Test HTML Format from file
<a href='https://google.com'>Google .com 1</a>
<a href='https://google.com'>Google .com 2</a>
<a href='https://google.com'>Google .com 3</a>
<a href='https://google.com'>Google .com 4</a>

View File

@ -5,3 +5,4 @@ Sample message template loaded from file.
Commit msg: {{commit.message}} Commit msg: {{commit.message}}
duration: {{duration build.started build.finished}}