Go to file
2023-06-23 22:44:00 +03:00
docker update deps, bump version to 0.1.6 and move to new registries 2023-06-15 20:36:14 +03:00
helm move to frankenstein for telegram bot api, bump to v0.1.7 2023-06-23 22:44:00 +03:00
src move to frankenstein for telegram bot api, bump to v0.1.7 2023-06-23 22:44:00 +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 move to frankenstein for telegram bot api, bump to v0.1.7 2023-06-23 22:44:00 +03:00
Cargo.toml move to frankenstein for telegram bot api, bump to v0.1.7 2023-06-23 22:44:00 +03:00
Makefile move to frankenstein for telegram bot api, bump to v0.1.7 2023-06-23 22:44:00 +03:00
README.md update deps, bump version to 0.1.6 and move to new registries 2023-06-15 20:36:14 +03:00

GitHub release bot

Telegram bot for GitHub releases notification. Bot simply fetches latest release or tag 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: kubernetes-sigs
  repo: kubespray 
  check: release
- owner: nextcloud
  repo: server
  check: tag

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"

Helm

helm repo add ghp https://gitea.geekhome.org/api/packages/ghp/helm
helm upgrade --install -f values.yaml github-release-bot ghp/github-release-bot