From 91f2fd839b91aea70d83770ec7cb20bd6471fdb2 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sat, 21 Nov 2020 20:03:50 +0100 Subject: [PATCH] bundles/sshmon: add check_github_for_new_release --- .../sshmon/files/check_github_for_new_release | 31 +++++++++++++++++++ bundles/sshmon/items.py | 1 + 2 files changed, 32 insertions(+) create mode 100644 bundles/sshmon/files/check_github_for_new_release diff --git a/bundles/sshmon/files/check_github_for_new_release b/bundles/sshmon/files/check_github_for_new_release new file mode 100644 index 0000000..8a7085c --- /dev/null +++ b/bundles/sshmon/files/check_github_for_new_release @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 + +from requests import get +from sys import argv, exit + +assert len(argv) == 3, 'Usage: check_github_for_new_release ' + +repo = argv[1] +current_version = argv[2] + +try: + r = get('https://api.github.com/repos/{}/releases/latest'.format(repo), headers={'Accept': 'application/json'}).json() +except Exception as e: + print(repr(e)) + exit(3) + +newest_release = r['name'] + +if newest_release != current_version: + print('There is a newer version available: {} (currently installed: {})'.format(newest_release, current_version)) + + if r['prerelease'] or r['draft']: + print('Please note this is only a prerelease/draft.') + + # Don't alert people for prereleases. + exit(0) + else: + exit(2) +else: + print('Currently installed version matches newest release on github') + exit(0) diff --git a/bundles/sshmon/items.py b/bundles/sshmon/items.py index 978f9b9..ed2b582 100644 --- a/bundles/sshmon/items.py +++ b/bundles/sshmon/items.py @@ -47,6 +47,7 @@ for check in { 'cpu_stats', 'mounts', 'ram', + 'github_for_new_release', 'http_url_for_string', 'https_certificate_at_url', 'http_wget',