Check App compatibility before upgrade

I didn’t craft a solution tonight… but maybe you can use my ideas so far…

# on the server
# collect list of enabled apps
#docker exec --user www-data dev-nextcloud-app php occ app:list --output json|jq .enabled
occ app:list --output json|jq .enabled

# back on local windows client, convert json string from above to an object
$enabledapps = '{
>>   "activity": "2.18.0",
>>   "admin_audit": "1.16.0",
...
}'

# get only app names (ignore versions)
$appnames = $enabledapps|convertfrom-json|gm -MemberType NoteProperty |select name

# get app list from app store
# for NC 25
$storeapps = curl https://apps.nextcloud.com/api/v1/platform/25.0.0/apps.json -useb
# for NC 26
$storeapps = curl https://apps.nextcloud.com/api/v1/platform/26.0.0/apps.json -useb
$allapps = $storeapps.Content|ConvertFrom-Json|%{$_|select id,@{n='compatible_min';e={($_.releases[-1].platformVersionSpec -split '\s+')[0]}},@{n='compatible_max';e={($_.releases[-1].platformVersionSpec -split '\s+')[-1]}} }

# show apps form the list - but the list is incomplete!!
foreach ($app in $appnames.name){$app;$allapps|? id -eq $app}

reference: Scripting the process for tracking incompatible apps in major releases as a forum topic - #2 by wwe

1 Like