#!/bin/bash # GNU AGPLv3+ # Nagios plugin to check Gitea version function usage() { echo "Usage : $0" } function getCurrentVersion { local result local json=$(curl -s -X GET "https://forge.chalec.org/api/v1/version" -H "accept: application/json") #echo "[$json]" # {"version":"1.11.1"} local regexp='\{"version":"(.*)"}' if [[ $json =~ $regexp ]]; then result=${BASH_REMATCH[1]} else result= fi echo "$result" } function getLastVersionFromGithub { local result local owner="$1" local repo="$2" local json=$(curl -s -X GET https://api.github.com/repos/$owner/$repo/releases/latest |grep tag_name) #echo "[$json]" # [ "tag_name": "v1.11.1",] local regexp='.*"tag_name": "v(.+)".*' if [[ $json =~ $regexp ]]; then result=${BASH_REMATCH[1]} else result= fi echo "$result" } # if [ "$#" -ne 0 ]; then usage else currentVersion=$(getCurrentVersion) #echo "Current version = $currentVersion" lastVersion=$(getLastVersionFromGithub "go-gitea" "gitea") #echo "Last version = $lastVersion" if [ $currentVersion = $lastVersion ]; then echo "OK" result=0 else echo "WARNING : new version available, current is $currentVersion, last is $lastVersion." result=1 fi fi exit $result # # LAST_VERSION=$(curl --silent https://gitlab.com/api/v4/projects/21505091/repository/tags | jq -r '.[0].name') # lastVersion=$(curl -s https://framagit.org/api/v4/projects/20125/releases | jshon -a -e name 2>/dev/null | sed -e "/rc/d" | cut -d '"' -f2 | grep -v '[\^\(alpha\)]'|head -n 1) # lastVersion=$(curl -s https://framagit.org/api/v4/projects/16/releases | jshon -a -e name|cut -d '"' -f2|grep -v '[\^\(alpha\)]'|sort -rV|head -n 1)