Just follow instruction
.env file example:
ENVIRONMENT=production
TOKEN=your_bot_token
PROXY_URL=socks5://socks5_proxy_url:socks5_proxy_port
PROXY_USERNAME=socks5_proxy_username
PROXY_PASSWORD=socks5_proxy_url
SECRET_TOKEN=you_secret_token
If you don't need proxy just ignore proxy settings.
If you set ENVIRONMENT value not eqal to "production" bot will ignore security settings.
You can generate strong token with terminal command:
openssl rand -hex 32
docker run --env-file .env -p 80:80 --name release-bot feofanov/github-release-bot
Create your bot url:
bot_url = https://where_you_bot.live/release/ + ?chat_id=you_chat_id&release_only=true
Set query param release_only in true if you don't want getting
unpublished, created, edited, deleted, or prereleased events.
First you should invite your bot in chat and then you can find your
chat id in your bot api:
https://api.telegram.org/bot<you_bot_token>>/getUpdates
- Open you github project settings and find Webhook section
- Add new webhook with params:
- Payload URL = your bot url
- Content type = application/json
- Secret = you_secret_token
- Choose Let me select individual events
- Unselect Pushes and select Releases
- Press Add webhook
Congratulations, you're perfect!
Since telegram can understand only
part of markdown tags,
bot tries to convert standard markdown into tg-markdowned message.
Right now bot can correctly format next tags:
- header (
###
) (only three octothorps) - list (
*
) - link(
[link name](http://link.address)
) Correct description example:
### Release part subtitle
* [first point title](https://link-tod-escriot.ion/)
* [second point title](https://link-tod-escriot.ion/)
You also can send any custom messages via bot using POST-endpoint '/message/' This endpoint accepts next params:
{
"text": "any string you wanna send to bot",
"chat_id": "your chat id",
"parse_mode": "markdown|html"
}
#!/bin/bash
PROJECT_NAME="my-project-name"
GIT_TAG=$(git describe --tags --abbrev=0)
HOST="http://example.com"
PORT="80"
CHAT_ID="my_chat_id"
KEY="my_secret_key"
PAYLOAD=\
"{
\"text\":\"Project *$PROJECT_NAME* was succefully deployed with tag *$GIT_TAG*\",
\"chat_id\": \"$CHAT_ID\",
\"parse_mode\": \"markdown\"
}"
SIGN="sha1="$(echo -n "$PAYLOAD" | openssl sha1 -hmac $KEY | sed -e 's/^.* //')
ADDRESS="${HOST}:${PORT}/message/"
curl -X POST $ADDRESS -H "X-Hub-Signature: $SIGN" -d "$PAYLOAD"