Go to file
2021-08-02 02:00:56 +03:00
docker first commit 2021-07-31 23:04:12 +03:00
src cleanup 2021-08-02 02:00:56 +03:00
.dockerignore first commit 2021-07-31 23:04:12 +03:00
.gitignore first commit 2021-07-31 23:04:12 +03:00
Cargo.lock first commit 2021-07-31 23:04:12 +03:00
Cargo.toml cleanup 2021-07-31 23:14:44 +03:00
Makefile first commit 2021-07-31 23:04:12 +03:00
README.md update README 2021-08-01 15:05:34 +03:00

GitHub release bot

Telegram bot for GitHub releases notification. Bot simply fetches latest release and send notification.

Warning: GitHub will ban you with small interval and spread time. Use adequate interval and spread time or use TOR.

Interval - set how often check GitHub for new releases in seconds. Default - 28800 seconds (8 hours).

Spread - time in seconds for random offset calculation per repo within interval.
Default 600 seconds (10 minutes). Offset calculated as RANDOM(u64) % SPREAD.

With default values bot will launch main loop check every 8 hours and get latest release within (RANDOM(u64) % 600) seconds per repo.

Example config.yaml

- owner: go-gitea
  repo: gitea
- owner: kubernetes-sigs
  repo: kubespray 

Binary

Build binary

cargo build --release

Run binary

github-release-bot \
  --token ${TOKEN} --chatid ${CHATID} \
  --config ${CONFIG} --datadir ${DATADIR} \
  --interval ${INTERVAL} --spread ${SPREAD}

Binary params

  • token - required, Telegram token
  • chatid - required, Telegram chat id
  • config - file required, default config file name "config.yaml"
  • interval - optional, default 28800 seconds (8 hours)
  • spread - optional, default 600 seconds (10 minutes)
  • datadir - optional, dir for storing files with latest releases, default "data"

Docker

Docker run

docker run -d -v ./config.yaml:/opt/config.yaml -v ./data:/opt/data registry.geekhome.org/ghp/github-release-bot:latest \
  -e TOKEN=${TOKEN} -e CHATID=${CHATID} \
  -e CONFIG=${CONFIG} -e DATADIR=${DATADIR} \
  -e INTERVAL=${INTERVAL} -e SPREAD=${SPREAD}

Docker build

make build

Docker params

OS ENV used to pass arguments:

  • TOKEN - required, Telegram token
  • CHATID - required, Telegram chat id
  • CONFIG - file required, default config file name "config.yaml"
  • INTERVAL - optional, default 28800 seconds (8 hours)
  • SPREAD - optional, default 600 seconds (10 minutes)
  • DATADIR - optional, dir for storing files with latest releases, default "data"