Go to file
2023-05-27 12:07:18 +03:00
docker fix image 2023-03-07 04:39:27 +03:00
helm update deps, bump version to 0.1.5 and make new image with helm chart 2023-05-27 12:07:18 +03:00
src update to use clap 4 2023-03-05 10:59:48 +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 update deps, bump version to 0.1.5 and make new image with helm chart 2023-05-27 12:07:18 +03:00
Cargo.toml update deps, bump version to 0.1.5 and make new image with helm chart 2023-05-27 12:07:18 +03:00
Makefile update deps, bump version to 0.1.5 and make new image with helm chart 2023-05-27 12:07:18 +03:00
README.md fix readme 2023-03-05 11:41:10 +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://registry.geekhome.org/chartrepo/ghp
helm upgrade --install -f values.yaml github-release-bot ghp/github-release-bot