Resource for Concourse CI to send messages to Telegram. You can pass your message from tasks with text file, or send a static message.
It allows you to send (put) a messages to Telegram from your pipeline.
Before using this resource, you should create a bot for yourself. Please, follow the instruction to create a bot and to get its token. Pass this value to the bot_token parameter.
Then, find out the chat ID you want to send notifications to. Now you are ready to use it.
It is a good idea to create a private channel for your team where bot will print all the messages from Concourse. In this case you need to follow this steps:
- create a public channel, give it a name, say, @MyChannel
- add your bot as an administrator
- then, send some testing message to this channel, use this command:
curl -X POST "https://api.telegram.org/bot<botApi>/sendMessage?chat_id=@MyChannel&text=123"
. You should see a new message from your bot in your channel. Check the JSON output from this command, you will find anchat_id
. The output could look like this:{ "ok" : true, "result" : { "chat" : { "id" : -1001005582487, "title" : "Test Private Channel", "type" : "channel" }, "date" : 1448245538, "message_id" : 7, "text" : "123" } }
, wherechat_id
is-1001005582487
- optionally, now you can make your channel private, generate link and send it to your collegues
The simplest example:
---
# declare custom resource type:
resource_types:
- name: telegram-notification
type: docker-image
source:
repository: w32blaster/concourse-telegram-notifier
tag: latest
# declare resource
resources:
- name: telegram-notification
type: telegram-notification
source:
bot_token: "<bot token>"
# use it in your job
jobs:
- name: "Job Send Message To Telegram"
public: true
plan:
- put: telegram-notification
params:
chat_id: "<your chat ID>"
# you need to specify one of text or text_file properties, with text_file you can generate message text in your previous task
text: "Build ok. [Build $BUILD_NAME](http://localhost:8080/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)"
text_file: './task_output/file_with_message'
# optional parameter, Telegram API parse mode, may be HTML or Markdown, Markdown is default value
parse_mode: HTML
Have fun.