Scripting the process for tracking incompatible apps in major releases as a forum topic

definitely a good idea to automate (parts) of this task.

  • Maybe best starting point would be to parse application metadata from the app store… This would provide a current state at some time… I’m not sure if there is a way to collect the data “from outside” but the data must be available for Nextcloud employees.
  • Next step would be to link Github issues… sounds little harder as issues are not standardized so could be hard to automatically collect the issues… may remain manual step forever…

I tried a little around Store REST API — nextcloudappstore 2.0.0 documentation and it looks promising… but for some reason I only see few apps, maybe anonymous requests are limited… maybe I miss something:

# windows powershell
$x = curl https://apps.nextcloud.com/api/v1/platform/9.0.0/apps.json -useb
$x.Content|ConvertFrom-Json|%{$_|select id,website,issueTracker}

result:

id            website                                                             issueTracker
--            -------                                                             ------------
ojsxc         https://www.jsxc.org                                                http://github.com/jsxc/jsxc/issues
workin2gether                                                                     https://github.com/Patt92/Workin2Gether/issues
files_opds                                                                        https://github.com/Yetangitu/owncloud-apps/issues/
bookmarks     https://github.com/nextcloud/bookmarks                              https://github.com/nextcloud/bookmarks/issues
audioplayer   https://rello.github.io/audioplayer                                 https://github.com/rello/audioplayer/issues
zenodo        https://github.com/nextcloud/zenodo                                 https://github.com/nextcloud/zenodo/issues
spreedme                                                                          https://github.com/strukturag/nextcloud-spreedme/issues
music         https://github.com/owncloud/music                                   https://github.com/owncloud/music/issues
piwik         http://sualko.github.io/cloud_piwik/                                https://github.com/sualko/cloud_piwik/issues
zimbradrive   https://github.com/ZeXtras/zimbra-drive.git                         https://github.com/ZeXtras/zimbra-drive/issues
metadata      https://github.com/gino0631/nextcloud-metadata                      https://github.com/gino0631/nextcloud-metadata/issues
files_reader  https://github.com/Yetangitu/owncloud-apps/tree/master/files_reader https://github.com/Yetangitu/owncloud-apps/issues
contacts      https://github.com/nextcloud/contacts#readme                        https://github.com/nextcloud/contacts/issues
flowupload    https://github.com/e-alfred/flowupload                              https://github.com/e-alfred/flowupload/issues
weather       https://github.com/nextcloud/weather                                https://github.com/nextcloud/weather/issues
orcid         https://github.com/nextcloud/orcid                                  https://github.com/nextcloud/orcid/issues
keeweb        https://github.com/jhass/nextcloud-keeweb                           https://github.com/jhass/nextcloud-keeweb/issues
apporder                                                                          https://github.com/juliushaertl/apporder/issues
w2g2          https://github.com/newroco/W2G2                                     https://github.com/newroco/W2G2/issues
gpxmotion     https://gitlab.com/eneiluj/gpxmotion-oc                             https://gitlab.com/eneiluj/gpxmotion-oc/issues
calendar      https://github.com/nextcloud/calendar/                              https://github.com/nextcloud/calendar/issues
quicknotes    https://github.com/matiasdelellis/quicknotes                        https://github.com/matiasdelellis/quicknotes/issues
ownpad                                                                            https://github.com/otetard/ownpad/issues
ocsms         https://github.com/nextcloud/ocsms                                  https://github.com/nextcloud/ocsms/issues
richdocuments https://collaboraoffice.com/                                        https://github.com/nextcloud/richdocuments/issues
gpxedit       https://gitlab.com/eneiluj/gpxedit-oc                               https://gitlab.com/eneiluj/gpxedit-oc/issues
notes         https://github.com/nextcloud/notes                                  https://github.com/nextcloud/notes/issues
checksum      https://github.com/westberliner/checksum/                           https://github.com/westberliner/checksum/issues
nextant       https://github.com/nextcloud/nextant/wiki                           https://github.com/nextcloud/nextant/issues
phonetrack    https://gitlab.com/eneiluj/phonetrack-oc                            https://gitlab.com/eneiluj/phonetrack-oc/issues
gpxpod        https://github.com/julien-nc/gpxpod                                 https://github.com/julien-nc/gpxpod/issues

from here I can extend with supported versions

$x.Content|ConvertFrom-Json|%{$_|select id,website,issueTracker,@{n='version';e={$_.releases[-1].version}},@{n='compatible';e={$_.releases[-1].platformVersionSpec}} }

(which is little surprising in regards of compatible"platformVersions" )… it looks this API is incomplete and/or outdated…

id           : richdocuments
website      : https://collaboraoffice.com/
issueTracker : https://github.com/nextcloud/richdocuments/issues
version      : 1.1.14
compatible   : >=9.0.0 <12.0.0

id           : gpxedit
website      : https://gitlab.com/eneiluj/gpxedit-oc
issueTracker : https://gitlab.com/eneiluj/gpxedit-oc/issues
version      : 0.0.2
compatible   : >=9.0.0 <12.0.0

id           : notes
website      : https://github.com/nextcloud/notes
issueTracker : https://github.com/nextcloud/notes/issues
version      : 2.3.2
compatible   : >=9.0.0 <14.0.0

UPDATE: in fact I missed somethng… you need to use right “platform/{version}”

# windows powershell
$x = curl https://apps.nextcloud.com/api/v1/platform/26.0.0/apps.json -useb
$x.Content|ConvertFrom-Json|%{$_|select id,website,issueTracker,@{n='version';e={$_.releases[-1].version}},@{n='compatible';e={$_.releases[-1].platformVersionSpec}} }

this gives much more apps and expected results…

id           : google_synchronization
website      : https://github.com/MarcelRobitaille/nextcloud_google_synchronization
issueTracker : https://github.com/MarcelRobitaille/nextcloud_google_synchronization/issues
version      : 1.0.9
compatible   : >=22.0.0 <27.0.0

id           : richdocuments
website      : https://collaboraoffice.com/
issueTracker : https://github.com/nextcloud/richdocuments/issues
version      : 8.0.0
compatible   : >=26.0.0 <27.0.0

id           : libresign
website      : https://github.com/LibreSign/libresign
issueTracker : https://github.com/LibreSign/libresign/issues
version      : 7.0.0
compatible   : >=26.0.0 <27.0.0

id           : recognize
website      : https://github.com/marcelklehr/recognize
issueTracker : https://github.com/marcelklehr/recognize/issues
version      : 3.0.1
compatible   : >=25.0.0 <27.0.0