From a951a1b11559f5e7b9fa8d9efcecdaf72628efe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= <1005065+DeepDiver1975@users.noreply.github.com> Date: Fri, 19 Jun 2026 12:18:59 +0200 Subject: [PATCH] feat: land third-party oc10 apps from the merged legacy import batches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PRs #68 (batch 4) and #69 (batch 5) were merged into the import stack's own tip (feat/import-legacy-batch3-oc) rather than into main, and the PRs that connect that stack to main (#65–#67) are still open. As a result none of the third-party apps those batches added ever reached main, so they never appeared on the live catalog. This adds the 28 third-party apps from those two merged batches directly on top of main, together with their 23 publisher profiles and their entries in data/created.json and data/downloads-baseline.json. ownCloud-owned apps and the still-open stack PRs are intentionally out of scope. It also carries over the validate-screenshots change those batches introduced: the info.xml URL fallback is now best-effort (a rotted/unsupported source URL is warned and skipped, not failed), since those URLs are only an ingestion source and are never served. This lets legacy apps whose only screenshot source has rotted — checksum (gif), e2eeshare (404), rds (dead host) — still import. Co-Authored-By: Claude Opus 4.8 Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com> --- apps/afterlogic/releases/1.2.3/package.tar.gz | 3 + .../releases/1.2.3/screenshots/01.png | 3 + apps/bookmarks/releases/0.10.6/package.tar.gz | 3 + .../releases/0.10.6/screenshots/01.png | 3 + apps/bplog/releases/0.3.1/package.tar.gz | 3 + apps/bplog/releases/0.3.1/screenshots/01.png | 3 + apps/carnet/releases/0.19.1/package.tar.gz | 3 + .../carnet/releases/0.19.1/screenshots/01.png | 3 + apps/checksum/releases/0.3.6/package.tar.gz | 3 + apps/cms_pico/releases/0.9.8/package.tar.gz | 3 + .../releases/0.9.8/screenshots/01.png | 3 + apps/duo/releases/3.0.2/package.tar.gz | 3 + apps/duo/releases/3.0.2/screenshots/01.jpg | 3 + apps/e2eeshare/releases/2.0.6/package.tar.gz | 3 + apps/extract/releases/1.3.7/package.tar.gz | 3 + .../extract/releases/1.3.7/screenshots/01.png | 3 + .../releases/0.1.2/package.tar.gz | 3 + .../releases/0.1.2/screenshots/01.png | 3 + .../releases/0.0.1/package.tar.gz | 3 + .../releases/0.0.1/screenshots/01.png | 3 + .../releases/0.0.1/screenshots/02.png | 3 + .../releases/1.0.3/package.tar.gz | 3 + .../releases/1.0.3/screenshots/01.png | 3 + apps/groupalert/releases/1.1.5/package.tar.gz | 3 + .../releases/1.1.5/screenshots/01.png | 3 + apps/metadata/releases/0.10.0/package.tar.gz | 3 + .../releases/0.10.0/screenshots/01.png | 3 + .../nextbackup/releases/21.1.1/package.tar.gz | 3 + .../releases/21.1.1/screenshots/01.jpg | 3 + apps/notes/releases/2.0.7/package.tar.gz | 3 + apps/notes/releases/2.0.7/screenshots/01.png | 3 + .../releases/0.1.2/package.tar.gz | 3 + .../releases/0.1.2/screenshots/01.png | 3 + .../releases/1.2.3/package.tar.gz | 3 + .../releases/1.2.3/screenshots/01.png | 3 + .../releases/1.2.3/screenshots/02.png | 3 + .../releases/1.2.3/screenshots/03.png | 3 + .../releases/21.3.0/package.tar.gz | 3 + .../releases/21.3.0/screenshots/01.png | 3 + apps/rds/releases/2.2/package.tar.gz | 3 + apps/sccuot_ng/releases/1.1.6/package.tar.gz | 3 + .../releases/1.1.6/screenshots/01.png | 3 + .../sciencemesh/releases/0.6.0/package.tar.gz | 3 + .../releases/0.6.0/screenshots/01.png | 3 + .../releases/0.1.1/package.tar.gz | 3 + .../releases/0.1.1/screenshots/01.png | 3 + .../releases/0.1.1/screenshots/02.png | 3 + .../releases/0.1.1/screenshots/03.png | 3 + .../releases/0.1.1/screenshots/04.png | 3 + .../releases/0.1.1/screenshots/05.png | 3 + .../releases/0.1.1/screenshots/06.png | 3 + apps/syncblue/releases/1.2.2/package.tar.gz | 3 + .../releases/1.2.2/screenshots/01.png | 3 + apps/tasks/releases/0.9.7/package.tar.gz | 3 + apps/tasks/releases/0.9.7/screenshots/01.png | 3 + .../releases/0.1.0/package.tar.gz | 3 + .../releases/0.1.0/screenshots/01.jpg | 3 + .../releases/0.1.0/screenshots/02.png | 3 + .../releases/3.2.0/package.tar.gz | 3 + .../releases/3.2.0/screenshots/01.png | 3 + apps/wallpaper/releases/0.2.2/package.tar.gz | 3 + .../releases/0.2.2/screenshots/01.png | 3 + data/created.json | 30 ++++++- data/downloads-baseline.json | 88 ++++++++++++++++++- publishers/afterlogic/publisher.json | 10 +++ publishers/alexander-stocker/publisher.json | 11 +++ publishers/alfred-buehler/publisher.json | 11 +++ publishers/dan-landon/publisher.json | 10 +++ publishers/el-ad-blech/publisher.json | 10 +++ publishers/epikshare/publisher.json | 10 +++ publishers/francois-boubee/publisher.json | 10 +++ publishers/gino0631/publisher.json | 10 +++ publishers/netknights/publisher.json | 10 +++ publishers/patrizio-bekerle/publisher.json | 11 +++ publishers/paul-rosenberg/publisher.json | 10 +++ publishers/phie/publisher.json | 10 +++ publishers/ponder-source/publisher.json | 12 +++ publishers/rcdevs/publisher.json | 10 +++ publishers/robert-chapin/publisher.json | 10 +++ .../semih-serhat-karakaya/publisher.json | 10 +++ publishers/sync-blue/publisher.json | 10 +++ publishers/thomas-mueller/publisher.json | 10 +++ publishers/tom-needham/publisher.json | 10 +++ publishers/uni-muenster/publisher.json | 10 +++ publishers/vicdeo/publisher.json | 10 +++ publishers/westberliner/publisher.json | 10 +++ publishers/wwu-it/publisher.json | 10 +++ tools/src/cli/validate-screenshots.ts | 29 ++++-- tools/test/validate-screenshots.test.ts | 8 +- 89 files changed, 564 insertions(+), 12 deletions(-) create mode 100644 apps/afterlogic/releases/1.2.3/package.tar.gz create mode 100644 apps/afterlogic/releases/1.2.3/screenshots/01.png create mode 100644 apps/bookmarks/releases/0.10.6/package.tar.gz create mode 100644 apps/bookmarks/releases/0.10.6/screenshots/01.png create mode 100644 apps/bplog/releases/0.3.1/package.tar.gz create mode 100644 apps/bplog/releases/0.3.1/screenshots/01.png create mode 100644 apps/carnet/releases/0.19.1/package.tar.gz create mode 100644 apps/carnet/releases/0.19.1/screenshots/01.png create mode 100644 apps/checksum/releases/0.3.6/package.tar.gz create mode 100644 apps/cms_pico/releases/0.9.8/package.tar.gz create mode 100644 apps/cms_pico/releases/0.9.8/screenshots/01.png create mode 100644 apps/duo/releases/3.0.2/package.tar.gz create mode 100644 apps/duo/releases/3.0.2/screenshots/01.jpg create mode 100644 apps/e2eeshare/releases/2.0.6/package.tar.gz create mode 100644 apps/extract/releases/1.3.7/package.tar.gz create mode 100644 apps/extract/releases/1.3.7/screenshots/01.png create mode 100644 apps/federatedgroups/releases/0.1.2/package.tar.gz create mode 100644 apps/federatedgroups/releases/0.1.2/screenshots/01.png create mode 100644 apps/files_3dviewer/releases/0.0.1/package.tar.gz create mode 100644 apps/files_3dviewer/releases/0.0.1/screenshots/01.png create mode 100644 apps/files_3dviewer/releases/0.0.1/screenshots/02.png create mode 100644 apps/files_textviewer/releases/1.0.3/package.tar.gz create mode 100644 apps/files_textviewer/releases/1.0.3/screenshots/01.png create mode 100644 apps/groupalert/releases/1.1.5/package.tar.gz create mode 100644 apps/groupalert/releases/1.1.5/screenshots/01.png create mode 100644 apps/metadata/releases/0.10.0/package.tar.gz create mode 100644 apps/metadata/releases/0.10.0/screenshots/01.png create mode 100644 apps/nextbackup/releases/21.1.1/package.tar.gz create mode 100644 apps/nextbackup/releases/21.1.1/screenshots/01.jpg create mode 100644 apps/notes/releases/2.0.7/package.tar.gz create mode 100644 apps/notes/releases/2.0.7/screenshots/01.png create mode 100644 apps/opencloudmesh/releases/0.1.2/package.tar.gz create mode 100644 apps/opencloudmesh/releases/0.1.2/screenshots/01.png create mode 100644 apps/openotp_auth/releases/1.2.3/package.tar.gz create mode 100644 apps/openotp_auth/releases/1.2.3/screenshots/01.png create mode 100644 apps/openotp_auth/releases/1.2.3/screenshots/02.png create mode 100644 apps/openotp_auth/releases/1.2.3/screenshots/03.png create mode 100644 apps/qownnotesapi/releases/21.3.0/package.tar.gz create mode 100644 apps/qownnotesapi/releases/21.3.0/screenshots/01.png create mode 100644 apps/rds/releases/2.2/package.tar.gz create mode 100644 apps/sccuot_ng/releases/1.1.6/package.tar.gz create mode 100644 apps/sccuot_ng/releases/1.1.6/screenshots/01.png create mode 100644 apps/sciencemesh/releases/0.6.0/package.tar.gz create mode 100644 apps/sciencemesh/releases/0.6.0/screenshots/01.png create mode 100644 apps/sensorlogger/releases/0.1.1/package.tar.gz create mode 100644 apps/sensorlogger/releases/0.1.1/screenshots/01.png create mode 100644 apps/sensorlogger/releases/0.1.1/screenshots/02.png create mode 100644 apps/sensorlogger/releases/0.1.1/screenshots/03.png create mode 100644 apps/sensorlogger/releases/0.1.1/screenshots/04.png create mode 100644 apps/sensorlogger/releases/0.1.1/screenshots/05.png create mode 100644 apps/sensorlogger/releases/0.1.1/screenshots/06.png create mode 100644 apps/syncblue/releases/1.2.2/package.tar.gz create mode 100644 apps/syncblue/releases/1.2.2/screenshots/01.png create mode 100644 apps/tasks/releases/0.9.7/package.tar.gz create mode 100644 apps/tasks/releases/0.9.7/screenshots/01.png create mode 100644 apps/twofactor_backup_codes/releases/0.1.0/package.tar.gz create mode 100644 apps/twofactor_backup_codes/releases/0.1.0/screenshots/01.jpg create mode 100644 apps/twofactor_backup_codes/releases/0.1.0/screenshots/02.png create mode 100644 apps/twofactor_privacyidea/releases/3.2.0/package.tar.gz create mode 100644 apps/twofactor_privacyidea/releases/3.2.0/screenshots/01.png create mode 100644 apps/wallpaper/releases/0.2.2/package.tar.gz create mode 100644 apps/wallpaper/releases/0.2.2/screenshots/01.png create mode 100644 publishers/afterlogic/publisher.json create mode 100644 publishers/alexander-stocker/publisher.json create mode 100644 publishers/alfred-buehler/publisher.json create mode 100644 publishers/dan-landon/publisher.json create mode 100644 publishers/el-ad-blech/publisher.json create mode 100644 publishers/epikshare/publisher.json create mode 100644 publishers/francois-boubee/publisher.json create mode 100644 publishers/gino0631/publisher.json create mode 100644 publishers/netknights/publisher.json create mode 100644 publishers/patrizio-bekerle/publisher.json create mode 100644 publishers/paul-rosenberg/publisher.json create mode 100644 publishers/phie/publisher.json create mode 100644 publishers/ponder-source/publisher.json create mode 100644 publishers/rcdevs/publisher.json create mode 100644 publishers/robert-chapin/publisher.json create mode 100644 publishers/semih-serhat-karakaya/publisher.json create mode 100644 publishers/sync-blue/publisher.json create mode 100644 publishers/thomas-mueller/publisher.json create mode 100644 publishers/tom-needham/publisher.json create mode 100644 publishers/uni-muenster/publisher.json create mode 100644 publishers/vicdeo/publisher.json create mode 100644 publishers/westberliner/publisher.json create mode 100644 publishers/wwu-it/publisher.json diff --git a/apps/afterlogic/releases/1.2.3/package.tar.gz b/apps/afterlogic/releases/1.2.3/package.tar.gz new file mode 100644 index 0000000..dde2c13 --- /dev/null +++ b/apps/afterlogic/releases/1.2.3/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0552c2a3fc27c6e18cc9d58e13c120d06e44f09e018478cef3ceb24e7a170d35 +size 9745 diff --git a/apps/afterlogic/releases/1.2.3/screenshots/01.png b/apps/afterlogic/releases/1.2.3/screenshots/01.png new file mode 100644 index 0000000..0fd5691 --- /dev/null +++ b/apps/afterlogic/releases/1.2.3/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62aa9a6c885cfb77e437c03a2592aaa7bf3be5f9e43157be1424be10fff98dda +size 640951 diff --git a/apps/bookmarks/releases/0.10.6/package.tar.gz b/apps/bookmarks/releases/0.10.6/package.tar.gz new file mode 100644 index 0000000..a8f0153 --- /dev/null +++ b/apps/bookmarks/releases/0.10.6/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b0d040125a71dbf8b20c137dda92089de0907a8b1b1eb7f31c2757c7918a767 +size 152880 diff --git a/apps/bookmarks/releases/0.10.6/screenshots/01.png b/apps/bookmarks/releases/0.10.6/screenshots/01.png new file mode 100644 index 0000000..8ef602a --- /dev/null +++ b/apps/bookmarks/releases/0.10.6/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c84853eea6bf11cae07de35da521cedcc47b4082cd0a45036f1628565cb8551 +size 79591 diff --git a/apps/bplog/releases/0.3.1/package.tar.gz b/apps/bplog/releases/0.3.1/package.tar.gz new file mode 100644 index 0000000..05ce10f --- /dev/null +++ b/apps/bplog/releases/0.3.1/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e93343f17846b23cdc6c5318928e94eada42441303140151893a3bc7abb9e181 +size 28030 diff --git a/apps/bplog/releases/0.3.1/screenshots/01.png b/apps/bplog/releases/0.3.1/screenshots/01.png new file mode 100644 index 0000000..b7bb41d --- /dev/null +++ b/apps/bplog/releases/0.3.1/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33b2d4855cec12e3ef9a2576efadad8af0617a1604a039cdedacc6f9331f137c +size 37927 diff --git a/apps/carnet/releases/0.19.1/package.tar.gz b/apps/carnet/releases/0.19.1/package.tar.gz new file mode 100644 index 0000000..bf7e66a --- /dev/null +++ b/apps/carnet/releases/0.19.1/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b83487f4a032d5670bf989d57be17636f92c1a12a231a4fe74cd9d8046fa50e +size 4894136 diff --git a/apps/carnet/releases/0.19.1/screenshots/01.png b/apps/carnet/releases/0.19.1/screenshots/01.png new file mode 100644 index 0000000..ab010b3 --- /dev/null +++ b/apps/carnet/releases/0.19.1/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ca9083d4778e4f195474dbaee3af06bba7bbb2ae552097b0c293dd6f6330a66 +size 193323 diff --git a/apps/checksum/releases/0.3.6/package.tar.gz b/apps/checksum/releases/0.3.6/package.tar.gz new file mode 100644 index 0000000..b42f6f5 --- /dev/null +++ b/apps/checksum/releases/0.3.6/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5130d7808baac0c504707d32538dcc5f0bdf8de09036ae9f8c5f401c55ee1a82 +size 286340 diff --git a/apps/cms_pico/releases/0.9.8/package.tar.gz b/apps/cms_pico/releases/0.9.8/package.tar.gz new file mode 100644 index 0000000..d500eda --- /dev/null +++ b/apps/cms_pico/releases/0.9.8/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6013d2695f761192ef64e25cd8f49ad0f97bf3c1ae63eb073fb02d1d8b72793d +size 1169939 diff --git a/apps/cms_pico/releases/0.9.8/screenshots/01.png b/apps/cms_pico/releases/0.9.8/screenshots/01.png new file mode 100644 index 0000000..4c4ecf7 --- /dev/null +++ b/apps/cms_pico/releases/0.9.8/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa8841934ba5eca97445dca73973f7e7ee9358823a12d62d1efaa6786efba383 +size 28940 diff --git a/apps/duo/releases/3.0.2/package.tar.gz b/apps/duo/releases/3.0.2/package.tar.gz new file mode 100644 index 0000000..f30c38b --- /dev/null +++ b/apps/duo/releases/3.0.2/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64c9f8bb4e115296186f0bdbed08411030ab38ecda4085ae4ac9e5b5058a72de +size 1014025 diff --git a/apps/duo/releases/3.0.2/screenshots/01.jpg b/apps/duo/releases/3.0.2/screenshots/01.jpg new file mode 100644 index 0000000..9a79160 --- /dev/null +++ b/apps/duo/releases/3.0.2/screenshots/01.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d8231d4348d6dae473c3d1c03a071a8c70e2dee660ef5ac26a0b56f16b958a5 +size 141550 diff --git a/apps/e2eeshare/releases/2.0.6/package.tar.gz b/apps/e2eeshare/releases/2.0.6/package.tar.gz new file mode 100644 index 0000000..d6e7f2c --- /dev/null +++ b/apps/e2eeshare/releases/2.0.6/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9c5bfde417575ac63ce827996802151e87cc87cec1be4ad0e6deb7efa42727f +size 543112 diff --git a/apps/extract/releases/1.3.7/package.tar.gz b/apps/extract/releases/1.3.7/package.tar.gz new file mode 100644 index 0000000..f0ac07c --- /dev/null +++ b/apps/extract/releases/1.3.7/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0061aa30d39dbbe67132cda9b283ac1cd30c3f97ef5ee6f0ede14f37e3755ff4 +size 140002 diff --git a/apps/extract/releases/1.3.7/screenshots/01.png b/apps/extract/releases/1.3.7/screenshots/01.png new file mode 100644 index 0000000..060c60f --- /dev/null +++ b/apps/extract/releases/1.3.7/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b084eeffad9a1e29ec673f33c3bda659a0ce40cb54c8e3389905b05561de42f +size 108030 diff --git a/apps/federatedgroups/releases/0.1.2/package.tar.gz b/apps/federatedgroups/releases/0.1.2/package.tar.gz new file mode 100644 index 0000000..98b7b91 --- /dev/null +++ b/apps/federatedgroups/releases/0.1.2/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdb3a5786c8313b794fb762263321ba0db6763c276d7dcae16b43b58ed0b0598 +size 21772 diff --git a/apps/federatedgroups/releases/0.1.2/screenshots/01.png b/apps/federatedgroups/releases/0.1.2/screenshots/01.png new file mode 100644 index 0000000..b80f7b5 --- /dev/null +++ b/apps/federatedgroups/releases/0.1.2/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbf39036856042605410e3d6de9d9351a07caf24f8d16ae7fe93f789e8cfd961 +size 20975 diff --git a/apps/files_3dviewer/releases/0.0.1/package.tar.gz b/apps/files_3dviewer/releases/0.0.1/package.tar.gz new file mode 100644 index 0000000..c8a93e1 --- /dev/null +++ b/apps/files_3dviewer/releases/0.0.1/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:088578f3bf202a4a7276cf14b8b2b682455a80702951039ed7957d10b977117a +size 327662 diff --git a/apps/files_3dviewer/releases/0.0.1/screenshots/01.png b/apps/files_3dviewer/releases/0.0.1/screenshots/01.png new file mode 100644 index 0000000..173215c --- /dev/null +++ b/apps/files_3dviewer/releases/0.0.1/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d95a45cec4c75fda8297142a70601a139f8f5293295f38d59c2c60a45dfd17eb +size 78338 diff --git a/apps/files_3dviewer/releases/0.0.1/screenshots/02.png b/apps/files_3dviewer/releases/0.0.1/screenshots/02.png new file mode 100644 index 0000000..c48d9f2 --- /dev/null +++ b/apps/files_3dviewer/releases/0.0.1/screenshots/02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:566fd08320bbd5013320362c22f2d6985deac883bd2c2ac2632cab68d06a4b70 +size 69487 diff --git a/apps/files_textviewer/releases/1.0.3/package.tar.gz b/apps/files_textviewer/releases/1.0.3/package.tar.gz new file mode 100644 index 0000000..8925aa7 --- /dev/null +++ b/apps/files_textviewer/releases/1.0.3/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1369154be149c9f2e0c8b986e48885ee476ab73cc6f3bea818ee5b7e77eea3bb +size 21155 diff --git a/apps/files_textviewer/releases/1.0.3/screenshots/01.png b/apps/files_textviewer/releases/1.0.3/screenshots/01.png new file mode 100644 index 0000000..3447c40 --- /dev/null +++ b/apps/files_textviewer/releases/1.0.3/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a695fc90065dfff562628ed38a29451df4800816e66b9ef450cb03a8e0a6b010 +size 48519 diff --git a/apps/groupalert/releases/1.1.5/package.tar.gz b/apps/groupalert/releases/1.1.5/package.tar.gz new file mode 100644 index 0000000..57ac25c --- /dev/null +++ b/apps/groupalert/releases/1.1.5/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d30d5662a111dfd87fe899eba19533d4d759ce0596062b6d086fc12b79c408a1 +size 138673 diff --git a/apps/groupalert/releases/1.1.5/screenshots/01.png b/apps/groupalert/releases/1.1.5/screenshots/01.png new file mode 100644 index 0000000..c2fd4ce --- /dev/null +++ b/apps/groupalert/releases/1.1.5/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f456df822b8839f717fad790247e5c0f30181620aef1edf2bfd4cd97cb057e1 +size 44423 diff --git a/apps/metadata/releases/0.10.0/package.tar.gz b/apps/metadata/releases/0.10.0/package.tar.gz new file mode 100644 index 0000000..968a9f6 --- /dev/null +++ b/apps/metadata/releases/0.10.0/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05ae1d5085b8acd1b3e77ad6124d6a0774c3e4b8af9c2249131d5f3a63b16c1f +size 385428 diff --git a/apps/metadata/releases/0.10.0/screenshots/01.png b/apps/metadata/releases/0.10.0/screenshots/01.png new file mode 100644 index 0000000..6666856 --- /dev/null +++ b/apps/metadata/releases/0.10.0/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27ceabdf8b57127f9196580af2fe0c369f66c3ca3eb002c3e3777266fe9fa708 +size 15487 diff --git a/apps/nextbackup/releases/21.1.1/package.tar.gz b/apps/nextbackup/releases/21.1.1/package.tar.gz new file mode 100644 index 0000000..e30057c --- /dev/null +++ b/apps/nextbackup/releases/21.1.1/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b731a3f5d44e2bf66d05008d4e67f7330504ccab1434dd7610ddefb4a58da07c +size 42939 diff --git a/apps/nextbackup/releases/21.1.1/screenshots/01.jpg b/apps/nextbackup/releases/21.1.1/screenshots/01.jpg new file mode 100644 index 0000000..aff97f8 --- /dev/null +++ b/apps/nextbackup/releases/21.1.1/screenshots/01.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f1c6fc2d754c3be55b77e87ede8245e08109837e199ee6a70cbc77f87f886d2 +size 43440 diff --git a/apps/notes/releases/2.0.7/package.tar.gz b/apps/notes/releases/2.0.7/package.tar.gz new file mode 100644 index 0000000..56351ac --- /dev/null +++ b/apps/notes/releases/2.0.7/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b5e51004f048cdc2900b1281f83ee185e605ad2608b9ed2c1f52daabc6a0e0a +size 1339853 diff --git a/apps/notes/releases/2.0.7/screenshots/01.png b/apps/notes/releases/2.0.7/screenshots/01.png new file mode 100644 index 0000000..26a01d0 --- /dev/null +++ b/apps/notes/releases/2.0.7/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7729b59f8a15320f9fc6244b4aa068f7eacb5e708b421d8903e1fa76ded4f29 +size 51126 diff --git a/apps/opencloudmesh/releases/0.1.2/package.tar.gz b/apps/opencloudmesh/releases/0.1.2/package.tar.gz new file mode 100644 index 0000000..f50a3c8 --- /dev/null +++ b/apps/opencloudmesh/releases/0.1.2/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d76757037ea454aab3bc6d6340f34f2389e9efb94d3cdf3cb2ac915bc4c7fe72 +size 38262 diff --git a/apps/opencloudmesh/releases/0.1.2/screenshots/01.png b/apps/opencloudmesh/releases/0.1.2/screenshots/01.png new file mode 100644 index 0000000..b80f7b5 --- /dev/null +++ b/apps/opencloudmesh/releases/0.1.2/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbf39036856042605410e3d6de9d9351a07caf24f8d16ae7fe93f789e8cfd961 +size 20975 diff --git a/apps/openotp_auth/releases/1.2.3/package.tar.gz b/apps/openotp_auth/releases/1.2.3/package.tar.gz new file mode 100644 index 0000000..2152265 --- /dev/null +++ b/apps/openotp_auth/releases/1.2.3/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35413e85036867fdfab8912616703c5968e64471804ed0f5f98725ad20a547bf +size 2633524 diff --git a/apps/openotp_auth/releases/1.2.3/screenshots/01.png b/apps/openotp_auth/releases/1.2.3/screenshots/01.png new file mode 100644 index 0000000..979df0c --- /dev/null +++ b/apps/openotp_auth/releases/1.2.3/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bd0802e6e3c2c51f8e096f9f8d8ebd0014ae072f0266894892be1b304ebbb55 +size 1177603 diff --git a/apps/openotp_auth/releases/1.2.3/screenshots/02.png b/apps/openotp_auth/releases/1.2.3/screenshots/02.png new file mode 100644 index 0000000..ff03d75 --- /dev/null +++ b/apps/openotp_auth/releases/1.2.3/screenshots/02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc8d23e6eee8e34abfe61204bce2fc6bfde06be47a3ad02ca86e85448f336c33 +size 1189133 diff --git a/apps/openotp_auth/releases/1.2.3/screenshots/03.png b/apps/openotp_auth/releases/1.2.3/screenshots/03.png new file mode 100644 index 0000000..e134d2a --- /dev/null +++ b/apps/openotp_auth/releases/1.2.3/screenshots/03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7480c8c9fbfa038a15b45c1c584b18e00edd8d27c0474e5c6e6799ac3e4ba35c +size 192585 diff --git a/apps/qownnotesapi/releases/21.3.0/package.tar.gz b/apps/qownnotesapi/releases/21.3.0/package.tar.gz new file mode 100644 index 0000000..e6fd926 --- /dev/null +++ b/apps/qownnotesapi/releases/21.3.0/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4167fb4f0c6117cbdc34a50cf476166a2b97595e5bb3b25c27574da90f844684 +size 29360 diff --git a/apps/qownnotesapi/releases/21.3.0/screenshots/01.png b/apps/qownnotesapi/releases/21.3.0/screenshots/01.png new file mode 100644 index 0000000..a4ae568 --- /dev/null +++ b/apps/qownnotesapi/releases/21.3.0/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71eab613a165eda8fb59947d4bc7d97ae2df7900d147a8524f7266a19bc43ed9 +size 400592 diff --git a/apps/rds/releases/2.2/package.tar.gz b/apps/rds/releases/2.2/package.tar.gz new file mode 100644 index 0000000..d734c03 --- /dev/null +++ b/apps/rds/releases/2.2/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b9bfa0b10e13d3cef816a4dbbd89da602953d18eee9a6cae8e06410dbb6a9b2 +size 494197 diff --git a/apps/sccuot_ng/releases/1.1.6/package.tar.gz b/apps/sccuot_ng/releases/1.1.6/package.tar.gz new file mode 100644 index 0000000..379923b --- /dev/null +++ b/apps/sccuot_ng/releases/1.1.6/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8805c475c73d3a80751b5324efd31e6400891b43d942e83fc12868181ae487b9 +size 571657 diff --git a/apps/sccuot_ng/releases/1.1.6/screenshots/01.png b/apps/sccuot_ng/releases/1.1.6/screenshots/01.png new file mode 100644 index 0000000..dae3e96 --- /dev/null +++ b/apps/sccuot_ng/releases/1.1.6/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad28049a839ec4ae9184a3f8bd80682ef4c4b94cc51aee5d322f47b597a19c7b +size 67309 diff --git a/apps/sciencemesh/releases/0.6.0/package.tar.gz b/apps/sciencemesh/releases/0.6.0/package.tar.gz new file mode 100644 index 0000000..c55c424 --- /dev/null +++ b/apps/sciencemesh/releases/0.6.0/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01979e309e4c3e0fbd7ec07a654d7f23c442fd7777995d1feff4ba244806f123 +size 2132303 diff --git a/apps/sciencemesh/releases/0.6.0/screenshots/01.png b/apps/sciencemesh/releases/0.6.0/screenshots/01.png new file mode 100644 index 0000000..24d2779 --- /dev/null +++ b/apps/sciencemesh/releases/0.6.0/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aeba3832ed3d0ce13b4a3798b8a2217281d05820bfeb4ceb889b7e6fd4c0bb0 +size 80801 diff --git a/apps/sensorlogger/releases/0.1.1/package.tar.gz b/apps/sensorlogger/releases/0.1.1/package.tar.gz new file mode 100644 index 0000000..b7618a7 --- /dev/null +++ b/apps/sensorlogger/releases/0.1.1/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a3f2b2d253e3fb2711b0ef0f1c2a43f2580c23004059d0bbecb767e34cd90fe +size 192703 diff --git a/apps/sensorlogger/releases/0.1.1/screenshots/01.png b/apps/sensorlogger/releases/0.1.1/screenshots/01.png new file mode 100644 index 0000000..5275aab --- /dev/null +++ b/apps/sensorlogger/releases/0.1.1/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:754b672e13a3f933ab62d45587e1a447a6e4feb46536d624f211d278f7ed465f +size 202565 diff --git a/apps/sensorlogger/releases/0.1.1/screenshots/02.png b/apps/sensorlogger/releases/0.1.1/screenshots/02.png new file mode 100644 index 0000000..76303dc --- /dev/null +++ b/apps/sensorlogger/releases/0.1.1/screenshots/02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b867bead5a299cc4a45f372748ad9c5180250073c0836c65ea32be3592f8092 +size 154482 diff --git a/apps/sensorlogger/releases/0.1.1/screenshots/03.png b/apps/sensorlogger/releases/0.1.1/screenshots/03.png new file mode 100644 index 0000000..2bfe2e0 --- /dev/null +++ b/apps/sensorlogger/releases/0.1.1/screenshots/03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86967da7bdf0fc0975dccff13795a884652fcb63b06939abf35b3e16e750f00b +size 40927 diff --git a/apps/sensorlogger/releases/0.1.1/screenshots/04.png b/apps/sensorlogger/releases/0.1.1/screenshots/04.png new file mode 100644 index 0000000..1f2e296 --- /dev/null +++ b/apps/sensorlogger/releases/0.1.1/screenshots/04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:254c1d145dd7147ebb84dc4275b95de068078612345afbcbc5418e33a314c1b1 +size 68697 diff --git a/apps/sensorlogger/releases/0.1.1/screenshots/05.png b/apps/sensorlogger/releases/0.1.1/screenshots/05.png new file mode 100644 index 0000000..d4f1c8a --- /dev/null +++ b/apps/sensorlogger/releases/0.1.1/screenshots/05.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d59bfc7fa5d5d4b6db112ead6e011d3bc5d2a49956ac01ec56f6d81d4beedabd +size 33781 diff --git a/apps/sensorlogger/releases/0.1.1/screenshots/06.png b/apps/sensorlogger/releases/0.1.1/screenshots/06.png new file mode 100644 index 0000000..db2d326 --- /dev/null +++ b/apps/sensorlogger/releases/0.1.1/screenshots/06.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63c111807182be14afc2b983278f27ebcd2d67aaf58ebe243ec2929952c1dd34 +size 37013 diff --git a/apps/syncblue/releases/1.2.2/package.tar.gz b/apps/syncblue/releases/1.2.2/package.tar.gz new file mode 100644 index 0000000..7ec3494 --- /dev/null +++ b/apps/syncblue/releases/1.2.2/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12815ce02dd13522736bd2b5e919cc214735bedba19792a285e15fb5337fb51a +size 98789 diff --git a/apps/syncblue/releases/1.2.2/screenshots/01.png b/apps/syncblue/releases/1.2.2/screenshots/01.png new file mode 100644 index 0000000..1ce98c7 --- /dev/null +++ b/apps/syncblue/releases/1.2.2/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc26b6f31e2bebba162c3d5a4461621886ce8f5a3915fc792e7b4254463230df +size 152565 diff --git a/apps/tasks/releases/0.9.7/package.tar.gz b/apps/tasks/releases/0.9.7/package.tar.gz new file mode 100644 index 0000000..af601c6 --- /dev/null +++ b/apps/tasks/releases/0.9.7/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:287738cb0897d759cf787706459e223713100ed07a2f2ba684a90c433ceb87f7 +size 491004 diff --git a/apps/tasks/releases/0.9.7/screenshots/01.png b/apps/tasks/releases/0.9.7/screenshots/01.png new file mode 100644 index 0000000..e597125 --- /dev/null +++ b/apps/tasks/releases/0.9.7/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a4a956219d4d18063952e3272f5dc7b634e7b6b21887ed3e36c3516423ef733 +size 62030 diff --git a/apps/twofactor_backup_codes/releases/0.1.0/package.tar.gz b/apps/twofactor_backup_codes/releases/0.1.0/package.tar.gz new file mode 100644 index 0000000..1ba3c94 --- /dev/null +++ b/apps/twofactor_backup_codes/releases/0.1.0/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3944dc02ec49494d54081ac576cdcfb5579d5aa73f3cdc0f65d3ee5748ff53d3 +size 44652 diff --git a/apps/twofactor_backup_codes/releases/0.1.0/screenshots/01.jpg b/apps/twofactor_backup_codes/releases/0.1.0/screenshots/01.jpg new file mode 100644 index 0000000..7eeaaed --- /dev/null +++ b/apps/twofactor_backup_codes/releases/0.1.0/screenshots/01.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91de087f48898d1d342c757fddfca931134489c9e710918a61b1e8785f20fa49 +size 139084 diff --git a/apps/twofactor_backup_codes/releases/0.1.0/screenshots/02.png b/apps/twofactor_backup_codes/releases/0.1.0/screenshots/02.png new file mode 100644 index 0000000..c861a62 --- /dev/null +++ b/apps/twofactor_backup_codes/releases/0.1.0/screenshots/02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82487876f988f18f6c4d14327af86531125ce1453573b0078cb385b0529abb70 +size 1747172 diff --git a/apps/twofactor_privacyidea/releases/3.2.0/package.tar.gz b/apps/twofactor_privacyidea/releases/3.2.0/package.tar.gz new file mode 100644 index 0000000..d001d4d --- /dev/null +++ b/apps/twofactor_privacyidea/releases/3.2.0/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02afb904a0d397fd9e5af6364e2e32289c2a00ed3f64edf3e7a0b21664505320 +size 67987 diff --git a/apps/twofactor_privacyidea/releases/3.2.0/screenshots/01.png b/apps/twofactor_privacyidea/releases/3.2.0/screenshots/01.png new file mode 100644 index 0000000..eac540e --- /dev/null +++ b/apps/twofactor_privacyidea/releases/3.2.0/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d1aaa84156693abef85ec638e8e0cf982e27ce4b485f92723b915be661219ac +size 47410 diff --git a/apps/wallpaper/releases/0.2.2/package.tar.gz b/apps/wallpaper/releases/0.2.2/package.tar.gz new file mode 100644 index 0000000..e7c3d7d --- /dev/null +++ b/apps/wallpaper/releases/0.2.2/package.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b94015f3beae281db1067e973c2c8ab153d2ec37a5e3c715c7f0c0faa7fa45a0 +size 15852 diff --git a/apps/wallpaper/releases/0.2.2/screenshots/01.png b/apps/wallpaper/releases/0.2.2/screenshots/01.png new file mode 100644 index 0000000..aed3ac3 --- /dev/null +++ b/apps/wallpaper/releases/0.2.2/screenshots/01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e410f0be2b6aa0b912959580fb14b2a568a8a249c9cf3586484421e1b41764ff +size 1984482 diff --git a/data/created.json b/data/created.json index 70c3df6..40cdc89 100644 --- a/data/created.json +++ b/data/created.json @@ -1,5 +1,33 @@ { + "afterlogic@1.2.3": "2020-08-11T00:00:00+00:00", + "bookmarks@0.10.6": "2019-08-04T00:00:00+00:00", + "bplog@0.3.1": "2019-08-18T00:00:00+00:00", + "carnet@0.19.1": "2019-12-21T00:00:00+00:00", + "checksum@0.3.6": "2022-10-22T00:00:00+00:00", + "cms_pico@0.9.8": "2019-07-26T00:00:00+00:00", + "duo@3.0.2": "2026-04-22T00:00:00+00:00", + "e2eeshare@2.0.6": "2025-11-03T00:00:00+00:00", + "extract@1.3.7": "2024-03-10T00:00:00+00:00", + "federatedgroups@0.1.2": "2023-11-01T00:00:00+00:00", + "files_3dviewer@0.0.1": "2024-01-25T00:00:00+00:00", + "files_textviewer@1.0.3": "2019-07-31T00:00:00+00:00", + "groupalert@1.1.5": "2021-01-02T00:00:00+00:00", + "metadata@0.10.0": "2019-10-19T00:00:00+00:00", + "music@2.5.2": "2026-05-10T00:00:00+00:00", + "nextbackup@21.1.1": "2021-03-04T00:00:00+00:00", + "notes@2.0.7": "2024-09-25T00:00:00+00:00", "onlyoffice@9.12.1": "2025-12-23T00:00:00+00:00", + "opencloudmesh@0.1.2": "2023-10-31T00:00:00+00:00", + "openotp_auth@1.2.3": "2022-01-07T00:00:00+00:00", + "qownnotesapi@21.3.0": "2021-03-12T00:00:00+00:00", + "rds@2.2": "2022-04-11T00:00:00+00:00", "richdocuments@4.2.3": "2026-06-02T00:00:00+00:00", - "music@2.5.2": "2026-05-10T00:00:00+00:00" + "sccuot_ng@1.1.6": "2023-09-21T00:00:00+00:00", + "sciencemesh@0.6.0": "2024-02-29T00:00:00+00:00", + "sensorlogger@0.1.1": "2021-12-16T00:00:00+00:00", + "syncblue@1.2.2": "2022-11-24T00:00:00+00:00", + "tasks@0.9.7": "2018-12-25T00:00:00+00:00", + "twofactor_backup_codes@0.1.0": "2020-12-14T00:00:00+00:00", + "twofactor_privacyidea@3.2.0": "2024-02-19T00:00:00+00:00", + "wallpaper@0.2.2": "2020-10-24T00:00:00+00:00" } diff --git a/data/downloads-baseline.json b/data/downloads-baseline.json index 882ab06..de57eea 100644 --- a/data/downloads-baseline.json +++ b/data/downloads-baseline.json @@ -1,13 +1,97 @@ { "apps": { + "afterlogic": { + "1.2.3": 14628 + }, + "bookmarks": { + "0.10.6": 36443 + }, + "bplog": { + "0.3.1": 2187 + }, + "carnet": { + "0.19.1": 8304 + }, + "checksum": { + "0.3.6": 14978 + }, + "cms_pico": { + "0.9.8": 5841 + }, + "duo": { + "3.0.2": 18870 + }, + "e2eeshare": { + "2.0.6": 6588 + }, + "extract": { + "1.3.7": 28274 + }, + "federatedgroups": { + "0.1.2": 714 + }, + "files_3dviewer": { + "0.0.1": 2487 + }, + "files_textviewer": { + "1.0.3": 26404 + }, + "groupalert": { + "1.1.5": 6696 + }, + "metadata": { + "0.10.0": 13935 + }, + "music": { + "2.5.2": 102780 + }, + "nextbackup": { + "21.1.1": 9057 + }, + "notes": { + "2.0.7": 519189 + }, "onlyoffice": { "9.12.1": 231701 }, + "opencloudmesh": { + "0.1.2": 427 + }, + "openotp_auth": { + "1.2.3": 2528 + }, + "qownnotesapi": { + "21.3.0": 18626 + }, + "rds": { + "2.2": 1103 + }, "richdocuments": { "4.2.3": 194030 }, - "music": { - "2.5.2": 102780 + "sccuot_ng": { + "1.1.6": 2969 + }, + "sciencemesh": { + "0.6.0": 271 + }, + "sensorlogger": { + "0.1.1": 10747 + }, + "syncblue": { + "1.2.2": 632 + }, + "tasks": { + "0.9.7": 756968 + }, + "twofactor_backup_codes": { + "0.1.0": 8781 + }, + "twofactor_privacyidea": { + "3.2.0": 7988 + }, + "wallpaper": { + "0.2.2": 51261 } } } diff --git a/publishers/afterlogic/publisher.json b/publishers/afterlogic/publisher.json new file mode 100644 index 0000000..ef7a7b7 --- /dev/null +++ b/publishers/afterlogic/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "afterlogic", + "name": "AfterLogic", + "enabled": true, + "website": "https://afterlogic.org/webmail-lite", + "description": "The team behind AfterLogic WebMail, integrated with ownCloud.", + "apps": [ + "afterlogic" + ] +} diff --git a/publishers/alexander-stocker/publisher.json b/publishers/alexander-stocker/publisher.json new file mode 100644 index 0000000..fed03d3 --- /dev/null +++ b/publishers/alexander-stocker/publisher.json @@ -0,0 +1,11 @@ +{ + "slug": "alexander-stocker", + "name": "Alexander Stocker", + "enabled": true, + "website": "https://www.html5live.at", + "description": "Author of the Sensorlogger and 3D File Viewer apps for ownCloud.", + "apps": [ + "files_3dviewer", + "sensorlogger" + ] +} diff --git a/publishers/alfred-buehler/publisher.json b/publishers/alfred-buehler/publisher.json new file mode 100644 index 0000000..fa91d65 --- /dev/null +++ b/publishers/alfred-buehler/publisher.json @@ -0,0 +1,11 @@ +{ + "slug": "alfred-buehler", + "name": "Alfred Bühler", + "enabled": true, + "website": "https://github.com/alfredbuehler", + "description": "Maintainer of the Bookmarks and Blood Pressure Log apps for ownCloud.", + "apps": [ + "bookmarks", + "bplog" + ] +} diff --git a/publishers/dan-landon/publisher.json b/publishers/dan-landon/publisher.json new file mode 100644 index 0000000..cddf3cd --- /dev/null +++ b/publishers/dan-landon/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "dan-landon", + "name": "Dan Landon", + "enabled": true, + "website": "https://github.com/owncloud/tasks", + "description": "Author of the Tasks app — a to-do and task manager for ownCloud.", + "apps": [ + "tasks" + ] +} diff --git a/publishers/el-ad-blech/publisher.json b/publishers/el-ad-blech/publisher.json new file mode 100644 index 0000000..f548c68 --- /dev/null +++ b/publishers/el-ad-blech/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "el-ad-blech", + "name": "El-ad Blech", + "enabled": true, + "website": "https://github.com/elie195/duo_provider", + "description": "Author of the Duo two-factor authentication provider for ownCloud.", + "apps": [ + "duo" + ] +} diff --git a/publishers/epikshare/publisher.json b/publishers/epikshare/publisher.json new file mode 100644 index 0000000..caf2491 --- /dev/null +++ b/publishers/epikshare/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "epikshare", + "name": "epiKshare GmbH", + "enabled": true, + "website": "https://epikshare.com", + "description": "The company behind the E2EE File Sharing app for ownCloud.", + "apps": [ + "e2eeshare" + ] +} diff --git a/publishers/francois-boubee/publisher.json b/publishers/francois-boubee/publisher.json new file mode 100644 index 0000000..b5b3d72 --- /dev/null +++ b/publishers/francois-boubee/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "francois-boubee", + "name": "François Boubée", + "enabled": true, + "website": "https://bitbucket.org/zb2oby/groupalert", + "description": "Author of the Group Alert app for ownCloud.", + "apps": [ + "groupalert" + ] +} diff --git a/publishers/gino0631/publisher.json b/publishers/gino0631/publisher.json new file mode 100644 index 0000000..5ea421e --- /dev/null +++ b/publishers/gino0631/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "gino0631", + "name": "gino0631", + "enabled": true, + "website": "https://github.com/gino0631/nextcloud-metadata", + "description": "Author of the Metadata app for ownCloud.", + "apps": [ + "metadata" + ] +} diff --git a/publishers/netknights/publisher.json b/publishers/netknights/publisher.json new file mode 100644 index 0000000..39d1416 --- /dev/null +++ b/publishers/netknights/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "netknights", + "name": "NetKnights GmbH", + "enabled": true, + "website": "https://privacyidea.org", + "description": "The company behind privacyIDEA, providing two-factor authentication for ownCloud.", + "apps": [ + "twofactor_privacyidea" + ] +} diff --git a/publishers/patrizio-bekerle/publisher.json b/publishers/patrizio-bekerle/publisher.json new file mode 100644 index 0000000..b6fa37f --- /dev/null +++ b/publishers/patrizio-bekerle/publisher.json @@ -0,0 +1,11 @@ +{ + "slug": "patrizio-bekerle", + "name": "Patrizio Bekerle", + "enabled": true, + "website": "https://www.bekerle.com", + "description": "Author of QOwnNotes and the QOwnNotesAPI and NextBackup apps for ownCloud.", + "apps": [ + "nextbackup", + "qownnotesapi" + ] +} diff --git a/publishers/paul-rosenberg/publisher.json b/publishers/paul-rosenberg/publisher.json new file mode 100644 index 0000000..c428d4f --- /dev/null +++ b/publishers/paul-rosenberg/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "paul-rosenberg", + "name": "Paul Rosenberg", + "enabled": true, + "website": "https://github.com/prsnbrg/NextcloudExtract", + "description": "Author of the Extract app for unpacking archives in ownCloud.", + "apps": [ + "extract" + ] +} diff --git a/publishers/phie/publisher.json b/publishers/phie/publisher.json new file mode 100644 index 0000000..e9ba9f5 --- /dev/null +++ b/publishers/phie/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "phie", + "name": "Phie", + "enabled": true, + "website": "https://github.com/PhieF/CarnetNextcloud", + "description": "Author of the Carnet note-taking app for ownCloud.", + "apps": [ + "carnet" + ] +} diff --git a/publishers/ponder-source/publisher.json b/publishers/ponder-source/publisher.json new file mode 100644 index 0000000..20d5c3a --- /dev/null +++ b/publishers/ponder-source/publisher.json @@ -0,0 +1,12 @@ +{ + "slug": "ponder-source", + "name": "Ponder Source", + "enabled": true, + "website": "https://pondersource.com", + "description": "Developers of federated sharing apps — ScienceMesh, Open Cloud Mesh and Federated Groups for ownCloud.", + "apps": [ + "federatedgroups", + "opencloudmesh", + "sciencemesh" + ] +} diff --git a/publishers/rcdevs/publisher.json b/publishers/rcdevs/publisher.json new file mode 100644 index 0000000..5652d68 --- /dev/null +++ b/publishers/rcdevs/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "rcdevs", + "name": "RCDevs", + "enabled": true, + "website": "https://www.rcdevs.com", + "description": "Security software company behind OpenOTP two-factor authentication for ownCloud.", + "apps": [ + "openotp_auth" + ] +} diff --git a/publishers/robert-chapin/publisher.json b/publishers/robert-chapin/publisher.json new file mode 100644 index 0000000..3adbd91 --- /dev/null +++ b/publishers/robert-chapin/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "robert-chapin", + "name": "Robert Chapin", + "enabled": true, + "website": "https://www.miqrogroove.com", + "description": "Author of the Text File Viewer app for ownCloud.", + "apps": [ + "files_textviewer" + ] +} diff --git a/publishers/semih-serhat-karakaya/publisher.json b/publishers/semih-serhat-karakaya/publisher.json new file mode 100644 index 0000000..60fb443 --- /dev/null +++ b/publishers/semih-serhat-karakaya/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "semih-serhat-karakaya", + "name": "Semih Serhat Karakaya", + "enabled": true, + "website": "https://github.com/owncloud/twofactor_backup_codes", + "description": "Author of the Two-Factor Backup Codes app for ownCloud.", + "apps": [ + "twofactor_backup_codes" + ] +} diff --git a/publishers/sync-blue/publisher.json b/publishers/sync-blue/publisher.json new file mode 100644 index 0000000..22e259b --- /dev/null +++ b/publishers/sync-blue/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "sync-blue", + "name": "sync.blue®", + "enabled": true, + "website": "https://www.sync.blue", + "description": "The company behind the sync.blue contact synchronisation app for ownCloud.", + "apps": [ + "syncblue" + ] +} diff --git a/publishers/thomas-mueller/publisher.json b/publishers/thomas-mueller/publisher.json new file mode 100644 index 0000000..5b89774 --- /dev/null +++ b/publishers/thomas-mueller/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "thomas-mueller", + "name": "Thomas Müller", + "enabled": true, + "website": "https://github.com/owncloud/notes", + "description": "ownCloud co-founder and author of the Notes app.", + "apps": [ + "notes" + ] +} diff --git a/publishers/tom-needham/publisher.json b/publishers/tom-needham/publisher.json new file mode 100644 index 0000000..63b704a --- /dev/null +++ b/publishers/tom-needham/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "tom-needham", + "name": "Tom Needham", + "enabled": true, + "website": "https://github.com/tomneedham/oc-wallpaper", + "description": "Developer of the Wallpaper app for ownCloud.", + "apps": [ + "wallpaper" + ] +} diff --git a/publishers/uni-muenster/publisher.json b/publishers/uni-muenster/publisher.json new file mode 100644 index 0000000..9fe4c9c --- /dev/null +++ b/publishers/uni-muenster/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "uni-muenster", + "name": "University of Münster", + "enabled": true, + "website": "https://www.research-data-services.org", + "description": "Author of the Research Data Services app for ownCloud.", + "apps": [ + "rds" + ] +} diff --git a/publishers/vicdeo/publisher.json b/publishers/vicdeo/publisher.json new file mode 100644 index 0000000..35f0f17 --- /dev/null +++ b/publishers/vicdeo/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "vicdeo", + "name": "vicdeo", + "enabled": true, + "website": "https://github.com/VicDeo/cms_pico", + "description": "Author of the Pico CMS app for ownCloud.", + "apps": [ + "cms_pico" + ] +} diff --git a/publishers/westberliner/publisher.json b/publishers/westberliner/publisher.json new file mode 100644 index 0000000..7ac4c43 --- /dev/null +++ b/publishers/westberliner/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "westberliner", + "name": "Patrick (westberliner)", + "enabled": true, + "website": "https://github.com/westberliner/owncloud-checksum", + "description": "Author of the Checksum app for ownCloud.", + "apps": [ + "checksum" + ] +} diff --git a/publishers/wwu-it/publisher.json b/publishers/wwu-it/publisher.json new file mode 100644 index 0000000..7364269 --- /dev/null +++ b/publishers/wwu-it/publisher.json @@ -0,0 +1,10 @@ +{ + "slug": "wwu-it", + "name": "University of Münster IT", + "enabled": true, + "website": "https://www.uni-muenster.de", + "description": "IT department of the University of Münster, author of the Sccuot NG app.", + "apps": [ + "sccuot_ng" + ] +} diff --git a/tools/src/cli/validate-screenshots.ts b/tools/src/cli/validate-screenshots.ts index 63089f3..2bf4e1d 100644 --- a/tools/src/cli/validate-screenshots.ts +++ b/tools/src/cli/validate-screenshots.ts @@ -16,11 +16,19 @@ const exec = promisify(execFile); * within the supported formats and size/dimension limits (see image-validate). * A release that ships committed screenshots (screenshots/NN.ext beside its * package) is validated from those local files — the bytes the catalog actually - * serves — without any network access. Only a release that ships no local files - * falls back to fetching its info.xml URLs. This keeps the gate off - * external hosts that block CI (e.g. a WAF returning 415 to datacenter IPs) - * while still validating exactly what is published. Strict — the first bad - * screenshot throws. Already-published releases are not re-checked. + * serves — without any network access. This local validation is **strict**: a + * committed file that is not a valid, in-bounds image fails the gate. + * + * A release that ships no local files falls back to fetching its info.xml + * URLs. Those URLs are only an *ingestion source* — the catalog + * never serves them (it serves committed files), and post-merge ingestion is + * itself best-effort (cli/ingest-screenshots skips a dead/invalid URL and + * ingests the rest). So this fallback is **best-effort too**: an unreachable or + * unsupported source URL is warned and skipped rather than failing the gate. + * That keeps the gate off external hosts that block CI (e.g. a WAF returning 415 + * to datacenter IPs) and lets a legacy app whose only screenshot source has + * rotted (wrong format, 404, dead host) still be imported with no screenshots — + * a valid catalog state. Already-published releases are not re-checked. */ export async function validateAddedScreenshots(baseRef: string, repoRoot: string): Promise { const added = await addedPackagePaths(baseRef, repoRoot); @@ -38,8 +46,15 @@ export async function validateAddedScreenshots(baseRef: string, repoRoot: string } const info = parseInfoXml(await readInfoXmlFromTarball(join(repoRoot, path))); for (const url of info.screenshots) { - await fetchAndValidateImage(url); - count++; + try { + await fetchAndValidateImage(url); + count++; + } catch (err) { + // Best-effort: a bad source URL is never served (only committed files + // are), so warn and continue rather than blocking the release. + const reason = err instanceof Error ? err.message : String(err); + console.warn(`WARN ${path}: skipped screenshot ${url} — ${reason}`); + } } } return count; diff --git a/tools/test/validate-screenshots.test.ts b/tools/test/validate-screenshots.test.ts index 98ae49b..48dab0a 100644 --- a/tools/test/validate-screenshots.test.ts +++ b/tools/test/validate-screenshots.test.ts @@ -101,7 +101,10 @@ describe("validateAddedScreenshots", () => { await expect(validateAddedScreenshots(base, repo)).resolves.toBe(1); }); - it("rejects a newly-added release whose screenshot is not an image", async () => { + it("skips (does not reject) a release whose only info.xml screenshot source is not an image", async () => { + // info.xml URLs are only an ingestion source — never served — so a bad one + // is warned and skipped (best-effort), matching ingest-screenshots. The + // release imports with no screenshots, a valid catalog state. const repo = await newRepo(); await writeFile(join(repo, "README.md"), "base\n"); await gitC(repo, ["add", "."]); @@ -113,7 +116,8 @@ describe("validateAddedScreenshots", () => { await gitC(repo, ["add", "."]); await gitC(repo, ["commit", "-q", "-m", "add release"]); - await expect(validateAddedScreenshots(base, repo)).rejects.toThrow(/image/i); + // The bad source URL is skipped, so nothing is counted and the gate passes. + await expect(validateAddedScreenshots(base, repo)).resolves.toBe(0); }); it("validates committed local screenshots in place without fetching info.xml URLs", async () => {