# 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 ```yaml - owner: kubernetes-sigs repo: kubespray check: release - owner: nextcloud repo: server check: tag ``` ## Binary ### Build binary ```ShellSession cargo build --release ``` ### Run binary ```ShellSession 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 ```ShellSession 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 ```ShellSession 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"