Compare commits

...

1281 Commits

Author SHA1 Message Date
Robin Appelman 4bdc0751c0 fix: use array_key_exists instead of isset in di container
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:06 +02:00
Robin Appelman bb632f0cfa chore: rebuild autoloader
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:06 +02:00
Robin Appelman 38673662d8 fix: handle aliases in SimpleContainer::has
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:05 +02:00
Robin Appelman e6931e11e5 fix: don't delegate to app container if the server container has it
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:05 +02:00
Robin Appelman f9dc997403 fix: allow setting appName in container
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:04 +02:00
Robin Appelman 4e56211a6c DIContainer: don't go trough server getter in query
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:04 +02:00
Robin Appelman 5dcdafc616 fix SimpleConainer::isset with aliases
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:03 +02:00
Robin Appelman 03c90f66ae fix phpdoc template
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:02 +02:00
Robin Appelman 274313f8ca optimize delegation from app to server container a bit
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:01 +02:00
Robin Appelman b8ff2ffe8a cache di container namespace
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:12:00 +02:00
Robin Appelman b70a3e6f34 going nuclear: ripping out pimple
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 16:11:56 +02:00
Robin Appelman c3a96b9790 re-setup aliases when an alias'd service is overwritten
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 14:13:31 +02:00
Robin Appelman 3f487633d5 remove duplicate OCA query handling and add earlier short cirtcuit for when instances are already created
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 14:13:09 +02:00
Robin Appelman 8f4a19ccab minor optimization for SimpleContainer::sanitizeName
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 14:12:11 +02:00
Robin Appelman 83d74782df dont register aliases as factories as that block some optimizations
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 14:12:10 +02:00
Robin Appelman d9351b8fd0 remove unneeded isset when registering a service
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 14:12:07 +02:00
Robin Appelman 1b6be5f081 register resolved class as raw instead of closure
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-24 14:11:06 +02:00
Côme Chilliet 8ee06edffc Merge pull request #53420 from nextcloud/fix/convert-rotate-to-timedjob
fix: make Rotate a TimedJob and run every hour
2025-06-24 10:27:56 +02:00
Salvatore Martire 5fef6f1c90 fix: make rotate logs a TimedJob and run every hour
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-06-24 09:55:23 +02:00
Kate 6bdde907ff Merge pull request #53650 from nextcloud/version-test-new-file 2025-06-24 09:14:38 +02:00
Nextcloud bot 606951afb7 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-24 00:23:02 +00:00
Robin Appelman 981a65f080 fix: create new file with content when creating test files for versioning tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-23 19:07:36 +02:00
Kate 968ed2caae Merge pull request #53644 from nextcloud/bug/noid/fix-wrong-table-name-reminders 2025-06-23 16:54:19 +02:00
Richard Steinmetz 1492ed8439 Merge pull request #53564 from nextcloud/fix/two-factor-request-token
Fix CSRF token not being refreshed while a two-factor challenge is ongoing
2025-06-23 15:57:14 +02:00
Daniel Kesselberg 0c978a1528 fix(reminders): use tablename without prefix
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-23 15:19:12 +02:00
Côme Chilliet f980d94fad Merge pull request #53548 from nextcloud/fixFilesRemindersJoins
fix(files_reminders): Join the reminders with the file system metadata
2025-06-23 12:24:56 +02:00
Richard Steinmetz c690c6fbd2 fix: update request token on two-factor pages
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-23 11:20:09 +02:00
Richard Steinmetz fa15cb8b87 fix: generate csrf tokens if two factor challenge is ongoing
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-23 11:20:09 +02:00
Nextcloud bot f2ee6e2826 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-23 00:22:07 +00:00
Nextcloud bot 1806405dda fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-22 00:22:38 +00:00
Nextcloud bot ec73f4a925 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-21 00:22:50 +00:00
Joas Schilling e31c94d194 Merge pull request #53620 from nextcloud/bugfix/noid/use-query-parameters
fix(caldav): Use parameter for query to neutralize it in query diffs
2025-06-20 22:22:10 +02:00
Joas Schilling 5f784d8695 fix(caldav): Use parameter for query to neutralize it in query diffs
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-20 16:24:24 +02:00
Ferdinand Thiessen 4bdb2b1dff Merge pull request #53616 from nextcloud/fix/core/password-from-env-nc-pass
fix(core): Make --password-from-env work with NC_PASS everywhere
2025-06-20 12:37:56 +02:00
provokateurin ed3868932f fix(core): Make --password-from-env work with NC_PASS everywhere
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-06-20 11:21:27 +02:00
provokateurin b95701d4c6 fix(core): Make OC_PASS actually work for occ user:auth-tokens:add --password-from-env
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-06-20 11:20:37 +02:00
Nextcloud bot 2606f7b7dd fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-20 00:22:31 +00:00
Richard Steinmetz 27cf6ac1a3 Merge pull request #53568 from nextcloud/refactor/dav/example-contact-service
refactor(dav): move shared logic to a dedicated example contact service
2025-06-20 00:04:07 +02:00
Richard Steinmetz 960b3ec0eb refactor(dav): move shared logic to a dedicated example contact service
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-19 23:46:00 +02:00
Andy Scherzinger 07bf0099a1 Merge pull request #53426 from nextcloud/smb-open-failure-log
feat: improve logging of fopen failures for smb
2025-06-19 23:17:29 +02:00
Sebastian Krupinski 4593b4f514 Merge pull request #53607 from nextcloud/fix/noid-reset-password
fix: reload login page after password reset
2025-06-19 18:50:59 +01:00
nextcloud-command b372e5bfac chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-19 17:37:18 +00:00
SebastianKrupinski 9b5608f629 fix: reload login page after password reset
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-06-19 13:27:27 -04:00
Ferdinand Thiessen 5d81e74a4d Merge pull request #53590 from nextcloud/fix/files-sharing-label
fix(files_sharing): do not double escape the share title
2025-06-19 13:01:22 +02:00
nextcloud-command 192a1236ab chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-19 12:42:34 +02:00
Côme Chilliet f314d930be Merge pull request #52916 from nextcloud/fix/cache-ldap-configuration-prefixes
fix(user_ldap): Store the list of used configuration prefixed in appconfig
2025-06-19 11:57:15 +02:00
Ferdinand Thiessen 87428bfeff fix(files_sharing): do not double escape the share title
The title is already escaped by vue so special characters would result
in incorrect strings.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-19 11:44:21 +02:00
Ferdinand Thiessen d156bb2c06 Merge pull request #53574 from nextcloud/chore/files-title
refactor(files): remove custom page title handling
2025-06-19 10:50:48 +02:00
Côme Chilliet 12524d93f4 Merge pull request #53417 from nextcloud/fix/fix-32bits-phpunit
fix(tests): Fix 32bits PHPUnit tests
2025-06-19 10:38:32 +02:00
Nextcloud bot 1559092c22 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-19 00:22:42 +00:00
nextcloud-command d856bf7ddf chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-18 21:54:19 +00:00
Ferdinand Thiessen 905788e2b2 refactor(files): remove custom page title handling
This conflicts with what `NcAppContent` is already doing.
So we should just remove it.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-18 23:50:13 +02:00
Andy Scherzinger 419e0a5527 Merge pull request #53462 from nextcloud/objectstore-touch-double-cache
fix: remove double cache write in ObjectStoreStorage::touch
2025-06-18 22:53:54 +02:00
Robin Appelman 2e1c316582 fix: remove double cache write in ObjectStoreStorage::touch
the file_put_contents already puts all of those values into the cache

Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-18 22:22:51 +02:00
Kate f05f79ae92 Merge pull request #53569 from nextcloud/feat/add-user-enabled-apps-ocs 2025-06-18 20:49:31 +02:00
Ferdinand Thiessen da7a9024ed Merge pull request #53567 from nextcloud/fix/files-plural
fix(files): add plural form for selected nodes
2025-06-18 19:58:11 +02:00
nextcloud-command f5fd649003 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-18 18:16:16 +02:00
Ferdinand Thiessen 3796c96e47 fix(files): add plural form for selected nodes
Reported at Transifex:
> This string needs pluralization feature, because in some languages translation of "selected" differs between singular and plural.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-18 18:16:16 +02:00
Jana Peper 6f1e441e9a fix: unit tests
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-06-18 17:31:33 +02:00
Jana Peper c890051587 fix: update OpenAPI specs
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-06-18 17:31:33 +02:00
Jana Peper 50c9852e24 feat: add ocs route to get apps enabled for current user
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-06-18 17:31:20 +02:00
Ferdinand Thiessen 98871fe474 Merge pull request #53339 from nextcloud/fix/product-name-capability
fix: Pass over product name as capability
2025-06-18 17:10:44 +02:00
Kent Delante ea98e4b3f5 Merge pull request #53419 from nextcloud/leftybournes/fix/object_storage_large_uploads
fix(s3): retry failed multipart uploads with decreased concurrency
2025-06-18 21:07:06 +08:00
Thomas Citharel 367a5859a8 Merge pull request #53512 from nextcloud/fix/noid/files-version-sidebar-item-style
[files_versions] Fix sidebar version item style
2025-06-18 13:32:16 +02:00
Ferdinand Thiessen 1d0915b3dd chore: update theming openAPI exports
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-18 12:57:49 +02:00
Julius Knorr 9f12d68523 fix: Pass over product name as capability
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-06-18 12:54:43 +02:00
nextcloud-command 239d264cb9 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-18 09:52:03 +00:00
Julien Veyssier 422e3d9ab5 fix(files_versions): give the version label a min width so it does not get invisible if the author name is long
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-06-18 11:47:32 +02:00
Kate b95f96a85a Merge pull request #53539 from nextcloud/fix/validation-defaults 2025-06-18 11:40:20 +02:00
Ferdinand Thiessen 35a27b5fd5 fix(FilenameValidator): use _ as default replacement for invalid chars
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-18 09:44:57 +02:00
Ferdinand Thiessen 3bc4e0ff28 Merge pull request #53550 from nextcloud/fix/docs
docs: fix config sample to work with RST documentation
2025-06-18 08:57:03 +02:00
Nextcloud bot beefeb008c fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-18 00:22:25 +00:00
F. E Noel Nfebe 768898e28f Merge pull request #53466 from nextcloud/feature/hide-external-shares-excluded-groups
feat(files_sharing): Hide link shares for users in excluded groups
2025-06-17 19:45:37 +01:00
nextcloud-command 9583a674d4 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-17 19:30:02 +01:00
Ferdinand Thiessen d9325c6762 docs: fix config sample to work with RST documentation
The docs are extracted to the admin docs so it must be valid RST syntax.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-17 19:31:07 +02:00
Git'Fellow 4eb357e91a fix(files_reminders): Join the reminders with the file system metadata table
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-06-17 16:34:45 +02:00
F. E Noel Nfebe 137ec926b4 Merge pull request #53322 from nextcloud/fix/public-upload-notification-default
fix: Set public link upload email notification to opt-in
2025-06-17 15:25:56 +01:00
Richard Steinmetz a1cf92ceed Merge pull request #53540 from nextcloud/feature/add-profile-to-occ
Feature/add profile to occ
2025-06-17 16:12:43 +02:00
Elizabeth Danzberger 63b9ea73f4 Merge pull request #53477 from nextcloud/fix/unnecessary-template-fields-request
fix: do not extract fields for blank template
2025-06-17 13:46:58 +00:00
nfebe c50a33812f feat(files_sharing): Hide external shares for users in excluded groups
- Added frontend check to hide link shares if, public sharing is disabled.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-06-17 14:32:46 +01:00
nfebe 1f8a2307bd fix: Set public link upload email notification to opt-in
This now sets `isDefaultEnabled` to false. This makes email notifications for file uploads
to public links disabled by default (opt-in) for users.

This addresses concerns about new notifications being enabled by
default for existing users, leading to unexpected emails.

Related: https://github.com/nextcloud/server/pull/46945

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-06-17 13:57:13 +01:00
Daniel 7231883ab0 Merge pull request #53369 from nextcloud/bug/noid/principal-guest_app-not-found
fix: hide guests group when searching for principals
2025-06-17 14:02:51 +02:00
Ferdinand Thiessen b40acb34a3 Merge pull request #53538 from nextcloud/fix/share-expiry-translation
fix(file_sharing): Remove string concatenated translation
2025-06-17 13:30:15 +02:00
John Molakvoæ 4d8e7233ae Merge pull request #53140 from nextcloud/fix/auto-reload-tags 2025-06-17 13:09:58 +02:00
Ferdinand Thiessen 7ebf775acb Merge pull request #53534 from nextcloud/fix/requesttoken
fix(core): getRequestToken import typo
2025-06-17 13:04:48 +02:00
nextcloud-command 8b37aab2b0 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-17 10:35:33 +00:00
Salvatore Martire 7265f10307 chore: update autoloader
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-06-17 12:33:03 +02:00
Salvatore Martire 2465e034b8 style(occ): clean up SettingTest class
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-06-17 12:33:03 +02:00
Salvatore Martire e5b34e5392 feat: allow reading profile properties from occ
This change adds support for reading profile information through the occ
command, and updates the corresponding test.

Signed-off-by: Salvatore Martire <4652631+klarkent@users.noreply.github.com>
2025-06-17 12:33:03 +02:00
nextcloud-command 77da39c9ea chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-17 10:00:27 +00:00
Elizabeth Danzberger eb39df39e2 fix: do not extract fields for blank template
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
2025-06-17 09:58:18 +00:00
nfebe 2131b16ced fix(file_sharing): Remove string concatenated translation
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-06-17 11:50:59 +02:00
Ferdinand Thiessen e11ecaa53f Merge pull request #53516 from nextcloud/fix/fix-encryption-manager-injection
fix(encryption): Fix DI for encryption Manager class
2025-06-17 11:45:15 +02:00
nextcloud-command 2bb7fe4733 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-17 09:30:48 +00:00
nextcloud-command 94d20a4618 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-17 09:23:29 +00:00
skjnldsv 7c39f5fd1a fix(files): auto reload sidebar tags on update
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-17 11:21:19 +02:00
Daniel Kesselberg 6254354f27 test(dav): add integration test for principal property search
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-17 11:19:24 +02:00
Daniel Kesselberg 8b66f3518e fix: hide guests group when searching for principals
Follow-up for https://github.com/nextcloud/server/pull/52914

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-17 11:19:23 +02:00
skjnldsv a2039684ce fix(core): getRequestToken import typo
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-17 11:14:46 +02:00
Nextcloud bot 452b672b7b fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-17 08:00:26 +00:00
Andy Scherzinger 6f2fbef490 Merge pull request #51657 from SBizienFilippiPEReN/cookie-domain
cookie_domain config option for setting cookie on a wider domain
2025-06-17 07:00:40 +02:00
Daniel Calviño Sánchez b69f04177b Merge pull request #53498 from nextcloud/fix/noid/make-s3-connect-timeout-option-configurable
fix(ObjectStore): Make S3 "connect_timeout" option configurable
2025-06-17 05:30:37 +02:00
Nextcloud bot 044a816788 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-17 00:22:34 +00:00
Richard Steinmetz 40e536bf8b Merge pull request #53525 from nextcloud/chore/typo
chore(core): fix typo in session heartbeat service
2025-06-17 00:56:08 +02:00
nextcloud-command 9b9b537c75 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-16 22:36:59 +00:00
Ferdinand Thiessen ab5f642604 chore(core): fix typo in session heartbeat service
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-16 20:43:50 +02:00
Daniel Calviño Sánchez d7ae952dc8 fix(ObjectStore): Make S3 "connect_timeout" option configurable
The hardcoded connection timeout of 5 seconds may not be enough in some
cases, so now it is got from the ObjectStore arguments in Nextcloud
configuration, falling back to 5 if not set.

The connection timeout is set in seconds, but decimal precision can be
used for subsecond accuracy (for example, 4.2 for 4200 milliseconds).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-06-16 20:17:50 +02:00
Côme Chilliet 64208b6d22 Merge pull request #53507 from nextcloud/fix/fix-warning-lazy-ghost-application
fix: Correctly ignore lazy ghost initialization in debug warning about direct constructor call
2025-06-16 19:16:26 +02:00
Ferdinand Thiessen 5c80563e15 Merge pull request #53514 from nextcloud/fix/do-not-update-userkey-when-masterkey-is-used
fix(encryption): Do not register user key related event listeners
2025-06-16 17:55:17 +02:00
Ferdinand Thiessen eb15061bd0 Merge pull request #53326 from nextcloud/fix/requesttoken
fix: refactor request token handling and do not update with invalid result
2025-06-16 17:55:11 +02:00
Côme Chilliet a9acaaa45f fix(encryption): Fix DI for encryption Manager class
Only IManager was registered but the class name is used as well for DI
 in the encryption application. This was causing a crash of encryption
 command when using PHP 8.4 and lazy ghosts.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-16 16:35:27 +02:00
nextcloud-command 0835c98334 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-16 14:22:11 +00:00
Ferdinand Thiessen 5d0d490388 fix: the core config is not loaded on error pages
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-16 15:56:22 +02:00
Ferdinand Thiessen ad838b21a1 test: adjust karma global state mock
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-16 15:55:12 +02:00
Ferdinand Thiessen a388e2b55b test(core): migrate session heartbeat tests
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-16 15:55:11 +02:00
Ferdinand Thiessen da5828ef42 refactor(OC): restructure session heartbeat code - use types and human reading order
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-16 15:55:11 +02:00
Ferdinand Thiessen f4966b2bf4 refactor(OC): migrate session heart beat to Typescript
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-16 15:55:11 +02:00
Ferdinand Thiessen 8fe3a4195d fix(OC): validate request token and move logic to one place
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-16 15:55:11 +02:00
Ferdinand Thiessen 84ab0dc97e refactor(OC): migrate request token handling to Typescript
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-16 15:54:47 +02:00
Côme Chilliet f6365e76a1 fix(encryption): Do not register user key related event listeners
when master key is enabled.
Also added a safeguard in PassphraseService.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-16 15:52:41 +02:00
Richard Steinmetz 0450ce9ed4 Merge pull request #53311 from nextcloud/feat/example-event
feat: create example event when a user logs in for the first time
2025-06-16 15:50:07 +02:00
Samuel Bizien Filippi a14cade3ac feat(core): add cookie_domain config option
Signed-off-by: Samuel Bizien Filippi <samuel.bizien-filippi@finances.gouv.fr>
2025-06-16 15:33:48 +02:00
Ferdinand Thiessen c2bf3480e4 Merge pull request #53435 from nextcloud/chore/no-moment
refactor(files): migrate away from moment.js
2025-06-16 14:11:42 +02:00
nextcloud-command 2315dd4df5 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-16 10:59:00 +00:00
Ferdinand Thiessen 62e8d011f9 refactor(files): migrate away from moment.js
Use browser provided API and our shared functions.
This also fixes tests when local language is not English.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-16 12:50:17 +02:00
Ferdinand Thiessen 27629fd332 Merge pull request #53508 from nextcloud/fix/properly-depcreate-iocmprovider
fix: properly deprecate IOCMProvider
2025-06-16 12:47:50 +02:00
Richard Steinmetz 967b634a82 fix: properly deprecate IOCMProvider
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-16 12:20:40 +02:00
Côme Chilliet 4a1eb3dc2a fix: Correctly ignore lazy ghost initialization in debug warning about direct constructor call
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-16 12:01:16 +02:00
Richard Steinmetz 7e7e5f5390 chore: recompile assets
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-16 11:59:34 +02:00
Richard Steinmetz 84c2e2a5ce fix: enable example contact feature by default
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-16 11:59:34 +02:00
Richard Steinmetz b640c161ae fix: harmonize design of default content settings section
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-16 11:59:34 +02:00
Richard Steinmetz 4a6909ffef feat: create example event when a user logs in for the first time
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-16 11:49:20 +02:00
Joas Schilling 10852e01be Merge pull request #53465 from mickenordin/master
fix(OCMProvider): fix dependency injection for OCMProvider
2025-06-16 11:32:41 +02:00
Micke Nordin e770859008 Update lib/private/Server.php
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Signed-off-by: Micke Nordin <mickenordin@users.noreply.github.com>
2025-06-16 10:33:21 +02:00
Micke Nordin 7bee91a834 fix(OCMProvider): fix dependency injection for OCMProvider
Signed-off-by: Micke Nordin <kano@sunet.se>
2025-06-16 10:33:21 +02:00
Côme Chilliet b3ffe4bf66 Merge pull request #53468 from nextcloud/confWordingReview
refactor(config.php): Global wording review
2025-06-16 10:09:07 +02:00
Git'Fellow 2c950d4e05 refactor(config.php): Global wording review
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-06-16 09:15:03 +02:00
Kate 9b29df2dd5 Merge pull request #53502 from nextcloud/bugfix/53457/red-ci 2025-06-16 08:09:02 +02:00
Joas Schilling 004eb61716 test: Adjust tests to match code again
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-16 07:46:46 +02:00
Nextcloud bot dd91b8e3db fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-16 00:23:03 +00:00
Nextcloud bot ced1c5bf6c fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-15 00:22:15 +00:00
Marcel Müller cf1eed2769 Merge pull request #52909 from nextcloud/feat/noid/check-integrity-all-apps
feat(integrity): Allow to run check for all apps
2025-06-14 19:24:54 +02:00
dependabot[bot] b0d78bb697 Merge pull request #53481 from nextcloud/dependabot/npm_and_yarn/cypress-13.17.0 2025-06-14 12:05:24 +00:00
nextcloud-command c7cf301318 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-14 11:50:36 +00:00
dependabot[bot] 43c9d80e62 build(deps-dev): bump cypress from 13.15.0 to 13.17.0
Bumps [cypress](https://github.com/cypress-io/cypress) from 13.15.0 to 13.17.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v13.15.0...v13.17.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-version: 13.17.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 08:46:46 +00:00
dependabot[bot] ed66e71433 Merge pull request #53480 from nextcloud/dependabot/npm_and_yarn/cypress-split-1.24.18 2025-06-14 08:43:54 +00:00
dependabot[bot] c326e1aae7 Merge pull request #53479 from nextcloud/dependabot/npm_and_yarn/vitest/coverage-v8-3.2.3 2025-06-14 08:42:23 +00:00
dependabot[bot] 8af15fd07b build(deps-dev): bump cypress-split from 1.24.17 to 1.24.18
Bumps [cypress-split](https://github.com/bahmutov/cypress-split) from 1.24.17 to 1.24.18.
- [Release notes](https://github.com/bahmutov/cypress-split/releases)
- [Commits](https://github.com/bahmutov/cypress-split/compare/v1.24.17...v1.24.18)

---
updated-dependencies:
- dependency-name: cypress-split
  dependency-version: 1.24.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 01:39:04 +00:00
dependabot[bot] 503a4cfa1e build(deps-dev): bump @vitest/coverage-v8 from 3.2.2 to 3.2.3
Bumps [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) from 3.2.2 to 3.2.3.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.3/packages/coverage-v8)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 01:38:24 +00:00
Nextcloud bot 16b31fcfce fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-14 00:22:18 +00:00
Kate 7be047a5c0 Merge pull request #53459 from nextcloud/rector-tests 2025-06-13 09:10:09 +02:00
Nextcloud bot 1f0086ff6b fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-13 00:22:17 +00:00
Andy Scherzinger e6209d9135 Merge pull request #53457 from mickenordin/master
fix(OCM-invites): Use the correct way of getting the email
2025-06-12 19:17:44 +02:00
Robin Appelman 3561937816 chore: run rector on tests with new rule
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-12 18:38:29 +02:00
Robin Appelman 3cc34ac29d chore: add UseSpecificWillMethodRector to rector configuration
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-12 18:33:43 +02:00
Robin Appelman 29e39c0a2e chore: run rector on tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-12 18:31:58 +02:00
Robin Appelman de74745ab6 chore: add tests to rector configuration
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-12 18:31:40 +02:00
John Molakvoæ 763873e152 Merge pull request #53453 from nextcloud/fix/do-not-cache-routes-on-debug-mode
fix(router): In debug mode, cache routes only for 3 seconds
2025-06-12 17:45:57 +02:00
Micke Nordin 4d4b886607 fix(OCM-invites): Use the correct way of getting the email
It seems primary email can sometimes be empty, even if the user has an email set.

Signed-off-by: Micke Nordin <kano@sunet.se>
2025-06-12 17:00:13 +02:00
Côme Chilliet b188fad8e8 fix(router): In debug mode, cache routes only for 3 seconds
This allows testing a newly added or changed route in your application
 without having to wait 1 hour or bump the application version.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-12 16:12:22 +02:00
dependabot[bot] b49065fc9d Merge pull request #53445 from nextcloud/dependabot/npm_and_yarn/brace-expansion-1.1.12 2025-06-12 13:08:53 +00:00
nextcloud-command 7930150545 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-12 11:05:58 +00:00
dependabot[bot] 7fe63c636f build(deps-dev): bump brace-expansion from 1.1.11 to 1.1.12
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-12 12:58:30 +02:00
Andy Scherzinger fc2aa7f5b5 Merge pull request #51113 from mickenordin/master
feat(OCM-invites): Implementation of invitation flow for OCM 1.1.0
2025-06-12 12:13:50 +02:00
Maxence Lange f8c64a17b1 Merge pull request #53427 from nextcloud/shard-key-hint-partition
fix: allow hinting the shard keys for joined tables
2025-06-12 09:09:50 -01:00
Micke Nordin 623f2f0240 feat(OCM-invites): Implementation of invitation flow
This patchset:
* implements the /invite-accepted endpoint
* adds capabilities and inviteAceptDialog to the discovery
* adds a FederatedInviteAcceptedEvent

https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1invite-accepted/post

Co-authored-by: Anna <anna@nextcloud.com>
Co-authored-by: Côme Chilliet <come.chilliet@nextcloud.com>
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Co-authored-by: Navid Shokri <navid.pdp11@gmail.com>
Signed-off-by: Micke Nordin <kano@sunet.se>
2025-06-12 11:20:26 +02:00
Nextcloud bot acc2311a0d fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-12 00:22:49 +00:00
John Molakvoæ 66e5ea1291 Merge pull request #52537 from nextcloud/fix/loading-account-menu
feat(files_sharing): show Account menu on public pages
2025-06-11 18:44:21 +02:00
nextcloud-command 20e4984bf6 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-11 16:22:55 +00:00
John Molakvoæ b4b60ed574 Merge branch 'master' into fix/loading-account-menu
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-06-11 18:17:35 +02:00
Maksim Sukharev ebaccf6335 Merge pull request #53436 from nextcloud/fix/53363/available-groups 2025-06-11 16:54:56 +02:00
nextcloud-command 1132489583 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-11 14:51:40 +00:00
skjnldsv a6fc4aa9fd fix(files_sharing): public user menu semantic
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-11 16:43:53 +02:00
skjnldsv df88920680 fix(files_sharing): l10n typo
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-11 16:43:53 +02:00
skjnldsv bf3ce79abd feat(files_sharing): show Account menu on public pages
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-11 16:43:53 +02:00
skjnldsv 506afad862 fix(core): bring back Account menu loading indicator
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-11 16:43:53 +02:00
nextcloud-command 96a57a1665 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-11 13:03:56 +00:00
Maksim Sukharev f55e1947d5 fix(UserRow): fallback to group name in case of undefined availableGroup
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-06-11 14:39:37 +02:00
Nextcloud bot c4f071a577 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-11 00:23:30 +00:00
Daniel e1fcd6ccfb Merge pull request #53000 from nextcloud/fix/noid/stuck-ffmpeg
fix: unblock ffmpeg on some broken videos
2025-06-10 22:22:04 +02:00
Robin Appelman 26903926a2 fix: allow hinting the shard keys for joined tables
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-10 16:15:05 +02:00
Côme Chilliet b9949b2381 chore: update psalm baseline
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-10 16:08:52 +02:00
Côme Chilliet f48e5aa1f3 fix(user_ldap): Switch to OCP\IAppConfig and fix Helper constructor calls
Using OCP\AppFramework\Services\IAppConfig is not possible because the
 Helper is queried from places outside of the application DI container
(ajax pages, tests, other applications through ILDAPProviderFactory…)

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-10 16:08:52 +02:00
Côme Chilliet bc7309ca1c fix(user_ldap): Store the list of used configuration prefixed in appconfig
This avoids getting all keys from appconfig, which was triggering
 loading of lazy configuration on all requests.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-10 16:08:45 +02:00
Côme Chilliet b1f6283f6e fix(tests): Fix files_sharing tests conflicting with other tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-10 15:38:43 +02:00
Robin Appelman 4242520d64 feat: improve logging of fopen failures for smb
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-10 15:14:04 +02:00
Daniel eb9a6214a1 Merge pull request #53254 from nextcloud/chore/noid/disable-codecove-locally
Codecov: disable telemetry
2025-06-10 15:11:59 +02:00
Ferdinand Thiessen 6d8b2634f2 Merge pull request #53378 from nextcloud/fix/files-external-workflow
test: run all files_external tests for S3
2025-06-10 14:59:17 +02:00
Kate 1474fa3407 Merge pull request #52743 from nextcloud/bug/noid/expires-date-format 2025-06-10 14:25:05 +02:00
Ferdinand Thiessen 5f200c7765 test: reenable localstack tests (bug fixed) but disable MinIO versioned copy test
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-10 14:23:07 +02:00
Ferdinand Thiessen 22b9d912b1 test: only skip tests failing on localstack for localstack
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-10 14:23:07 +02:00
Ferdinand Thiessen de338d9d9f test: fix s3 external storage tests to run all storages on ci
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-10 14:23:07 +02:00
Kate 9faf386303 Merge pull request #52913 from nextcloud/debt/noid/use-logical-operator 2025-06-10 14:17:46 +02:00
Kate 3943f08fe9 Merge pull request #53212 from nextcloud/feat/core/install-without-admin-user
feat(core): Add option to disable creating an admin user when installing
2025-06-10 13:58:57 +02:00
Daniel Kesselberg df9a275c89 test: addd test for hideFromCollaboration
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-10 13:55:53 +02:00
Daniel Kesselberg 55bca1e5db fix: use logical operator instead of bitwise
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-10 13:55:53 +02:00
Daniel Kesselberg 1ac85a3298 fix: use correct format for getlastmodified webdav property
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-10 13:15:31 +02:00
Daniel Kesselberg be587def0e fix: use correct format for expires, last-modified, and if-modified-since headers
Before: Sat, 10 May 2025 18:17:41 +0000
After: Sat, 10 May 2025 18:17:41 GMT

RFC: https://httpwg.org/specs/rfc9110.html#http.date

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-10 13:15:31 +02:00
Côme Chilliet aa906391f6 fix(tests): Simplify error handling in tests/enable_all.php
Simply let the Exception bubble up instead of caching it and using grep
 to then detect it.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-10 12:05:12 +02:00
Côme Chilliet 143bcf95ef fix(tests): Enable more PHP modules in phpunit-32bits
Also add output when enabling applications, and watch phpunit
 configuration file for changes.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-10 11:49:07 +02:00
Kent Delante 06b5ce5859 fix(s3): retry failed multipart uploads with decreased concurrency
Signed-off-by: Kent Delante <kent.delante@proton.me>
2025-06-10 17:39:59 +08:00
provokateurin d11d5b765f feat(core): Add option to disable creating an admin user when installing
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-06-10 11:16:28 +02:00
provokateurin 9a121269f3 refactor(Setup): When creating a DB user don't use the admin username
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-06-10 11:16:28 +02:00
Côme Chilliet bed6737b90 fix(tests): Fix 32bits PHPUnit tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-10 11:02:54 +02:00
John Molakvoæ ebdb12f929 Merge pull request #53075 from IONOS-Productivity/tests/file_sharing-load_additional_listener 2025-06-10 10:49:41 +02:00
Côme Chilliet 231916d403 Merge pull request #52538 from nextcloud/feat/use-php84-lazy-objects
Use PHP 8.4 lazy ghosts for Dependency injection
2025-06-10 10:45:12 +02:00
John Molakvoæ 86b027debe Merge pull request #53363 from nextcloud/fix/users-gid 2025-06-10 10:28:41 +02:00
Misha M.-Kupriyanov 4f3de46c08 test: files_sharing add test for LoadAdditionalListener
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2025-06-10 10:01:18 +02:00
nextcloud-command 5d69596edb chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-10 08:00:31 +00:00
John Molakvoæ f0858bae79 fix(settings): adjust group return code styling
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-06-10 07:58:27 +00:00
skjnldsv 725c381260 fix(settings): show group label instead of gid in accounts management
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-10 07:58:27 +00:00
Andy Scherzinger fadda8cba2 Merge pull request #53402 from nextcloud/jtr-fix-403-design
fix(403): Make design consistent with 404 + add default hint
2025-06-10 09:52:20 +02:00
Nextcloud bot 9cc2b01d5f fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-10 00:22:39 +00:00
Kate d8a5d31b22 Merge pull request #53393 from nextcloud/dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.8.0 2025-06-09 20:04:49 +02:00
Ferdinand Thiessen 96d423c8d3 chore: update openAPI files
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-09 19:24:26 +02:00
Ferdinand Thiessen 495c364268 chore: use consistent casing for header names (required by openAPI)
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-09 19:24:26 +02:00
dependabot[bot] e2f6b4ab83 build(deps): bump nextcloud/openapi-extractor
Bumps [nextcloud/openapi-extractor](https://github.com/nextcloud-releases/openapi-extractor) from 1.7.0 to 1.8.0.
- [Changelog](https://github.com/nextcloud-releases/openapi-extractor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-releases/openapi-extractor/compare/v1.7.0...v1.8.0)

---
updated-dependencies:
- dependency-name: nextcloud/openapi-extractor
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 19:24:26 +02:00
dependabot[bot] 0678095cd6 Merge pull request #53387 from nextcloud/dependabot/npm_and_yarn/nextcloud/l10n-3.3.0 2025-06-09 15:29:51 +00:00
Ferdinand Thiessen 7d2a929a12 test: remove legacy tests covered by library unit tests
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-09 16:52:26 +02:00
John Molakvoæ 180549da7b Merge pull request #53398 from nextcloud/skjnldsv-patch-1 2025-06-09 16:37:23 +02:00
dependabot[bot] 4ced265c0d build(deps): bump @nextcloud/l10n from 3.2.0 to 3.3.0
Bumps [@nextcloud/l10n](https://github.com/nextcloud-libraries/nextcloud-l10n) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-l10n/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-l10n/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-l10n/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/l10n"
  dependency-version: 3.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-09 16:00:28 +02:00
Nextcloud bot 1f298806be fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-09 00:22:20 +00:00
Josh c49b3b27ff fix(403): Make design consistent with 404 + add default hint
Fixes #39584

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-06-08 14:25:32 -04:00
dependabot[bot] d76a940ff8 Merge pull request #53382 from nextcloud/dependabot/npm_and_yarn/libphonenumber-js-1.12.9 2025-06-08 09:51:21 +00:00
nextcloud-command b93451dfab chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-08 08:41:13 +00:00
dependabot[bot] cab8d78b40 build(deps): bump libphonenumber-js from 1.12.8 to 1.12.9
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.8 to 1.12.9.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/commits/master)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-version: 1.12.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-08 08:23:19 +00:00
dependabot[bot] 7d78e8d5c8 Merge pull request #53384 from nextcloud/dependabot/npm_and_yarn/marked-15.0.12 2025-06-08 08:20:36 +00:00
nextcloud-command d6d2b2fff5 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-08 07:30:30 +00:00
dependabot[bot] 369404b3c5 build(deps): bump marked from 15.0.11 to 15.0.12
Bumps [marked](https://github.com/markedjs/marked) from 15.0.11 to 15.0.12.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v15.0.11...v15.0.12)

---
updated-dependencies:
- dependency-name: marked
  dependency-version: 15.0.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-08 09:26:12 +02:00
Nextcloud bot b7d5ea71ab fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-08 00:22:29 +00:00
dependabot[bot] fc3738f864 Merge pull request #53383 from nextcloud/dependabot/npm_and_yarn/vitest/coverage-v8-3.2.2 2025-06-07 16:03:20 +00:00
dependabot[bot] a1952c79b9 build(deps-dev): bump @vitest/coverage-v8 from 3.1.4 to 3.2.2
Bumps [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) from 3.1.4 to 3.2.2.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.2/packages/coverage-v8)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.2.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 15:50:30 +00:00
dependabot[bot] 15035dc91a Merge pull request #53386 from nextcloud/dependabot/npm_and_yarn/zip.js/zip.js-2.7.62 2025-06-07 15:48:48 +00:00
dependabot[bot] 06b7a96a45 Merge pull request #53388 from nextcloud/dependabot/npm_and_yarn/puppeteer-24.10.0 2025-06-07 15:38:12 +00:00
dependabot[bot] 7df0738d1e Merge pull request #53385 from nextcloud/dependabot/npm_and_yarn/codecov/webpack-plugin-1.9.1 2025-06-07 13:46:56 +00:00
John Molakvoæ 377eebaece chore(workflows): add auto stable PR title update
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-06-07 09:05:03 +02:00
dependabot[bot] bc5dfa8947 build(deps-dev): bump puppeteer from 24.9.0 to 24.10.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.9.0 to 24.10.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.9.0...puppeteer-v24.10.0)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 01:22:04 +00:00
dependabot[bot] 0b1d0200cc build(deps-dev): bump @zip.js/zip.js from 2.7.61 to 2.7.62
Bumps [@zip.js/zip.js](https://github.com/gildas-lormeau/zip.js) from 2.7.61 to 2.7.62.
- [Release notes](https://github.com/gildas-lormeau/zip.js/releases)
- [Commits](https://github.com/gildas-lormeau/zip.js/compare/v2.7.61...v2.7.62)

---
updated-dependencies:
- dependency-name: "@zip.js/zip.js"
  dependency-version: 2.7.62
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 01:21:05 +00:00
dependabot[bot] 0be29a81f5 build(deps-dev): bump @codecov/webpack-plugin from 1.9.0 to 1.9.1
Bumps @codecov/webpack-plugin from 1.9.0 to 1.9.1.

---
updated-dependencies:
- dependency-name: "@codecov/webpack-plugin"
  dependency-version: 1.9.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 01:20:35 +00:00
Nextcloud bot a921fcb05e fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-07 00:22:04 +00:00
Joas Schilling 4b9fe8ca7f Merge pull request #48210 from nextcloud/ci/phpunit-10
ci: Install PHPUnit 10
2025-06-06 15:28:17 +02:00
Joas Schilling f6931d79bb ci: Skip second S3 test temporarily
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 15:02:58 +02:00
Joas Schilling e192357e56 ci: Always be colorful :)
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:35 +02:00
Joas Schilling 1d6da9ab01 test: Fix namespace casing
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:35 +02:00
Joas Schilling f230abeef8 fix: Run cleanByMoundId query on all shards
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:34 +02:00
Joas Schilling a425a1affc test: Add a hint message on boolean comparison
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:33 +02:00
Joas Schilling b95a1653e6 test: Don't test order of applicable mount points when we don't sort
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:32 +02:00
Joas Schilling ebee539902 ci: Migrate PHPUnit configs
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:31 +02:00
Joas Schilling 86857f2c12 test: Load all apps locally as well
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:30 +02:00
Joas Schilling be0fbacfdf test: Enable all default apps
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:29 +02:00
Joas Schilling b9984cb3ef test: Remove tests/apps.php which is no longer supported
PHPUnit 10 says:
> Class apps cannot be found in …/server/tests/apps.php

Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:29 +02:00
Joas Schilling 6157bf9276 test: Remove suffix to reduce warnings about not extending TestCase
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:28 +02:00
Joas Schilling 20e1ff78ad ci: Remove no longer supported --verbose
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:28 +02:00
Joas Schilling 07a0ed0848 ci: Install PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-06 14:36:27 +02:00
Stephan Orbaugh 04118afdab Merge pull request #53287 from nextcloud/feat/test-app-routes
feat(tests): Test application enabling/disabling and routes
2025-06-06 13:00:02 +02:00
John Molakvoæ ed342544cd Merge pull request #53327 from leManu/patch-1 2025-06-06 09:22:55 +02:00
Nextcloud bot 24d3864475 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-06 00:23:45 +00:00
Côme Chilliet 78ff8e233f fix: Switch lazy object to enabled by default on PHP 8.4
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 20:51:24 +02:00
Côme Chilliet 2eed6d3a89 feat: Add a configuration toggle for lazy objects in DI
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 20:51:24 +02:00
Côme Chilliet a10182f6fb fix(tests): Force lazy ghost initialisation in container tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 20:51:23 +02:00
Côme Chilliet a42ef7d633 fix: Fix psalm issue and update baseline
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 20:51:18 +02:00
Côme Chilliet 98b2cfc416 fix: Fix several side effects of lazy ghosts
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 20:50:42 +02:00
Côme Chilliet 86ff5810d7 fix: Only use Lazy objects if PHP is 8.4 or higher
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 20:49:58 +02:00
Côme Chilliet 1bf41550d0 chore: Suppress psalm error
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 20:49:58 +02:00
Côme Chilliet 06c062bebd feat: Use Lazy ghosts for Dependency injection
This will only work with PHP 8.4, so we’ll need to put it behind a version check later.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 20:49:38 +02:00
John Molakvoæ b8b229c133 Merge pull request #52793 from nextcloud/feat/cache-routes 2025-06-05 20:05:05 +02:00
Côme Chilliet ba53147e10 chore: update psalm baseline
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 18:20:05 +02:00
Côme Chilliet d0a5eef0b4 Merge pull request #53250 from nextcloud/fix/harmonize-ldap-function-logging
fix(user_ldap): Harmonize parameter obfuscation and serialization accross logging methods
2025-06-05 18:12:08 +02:00
Côme Chilliet bb485fb733 fix: Load all partially enabled apps routes
This avoids cache issues if some apps are only enabled for some groups,
 by loading the routes from all apps enabled for anyone, not only the
 current user.
If the queried application is disabled for the current user based on
 groups, the middleware will cancel the query.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 18:06:08 +02:00
Côme Chilliet 12e7f46b30 fix: Use application ids as well as versions in the cache prefix
Avoids a corner case issue if one application was disabled and another
 one enabled with the same version, just to be safe.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 18:03:56 +02:00
Côme Chilliet 89f51a8f4e chore(tests): Add test for AppConfig::getAppInstalledVersions
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:55 +02:00
Côme Chilliet c6f2eff7f7 fix: Fix log display for integration tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:54 +02:00
Côme Chilliet a2fdeccc31 chore(tests): Adapt AppManager test to the use of searchValues
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:54 +02:00
Côme Chilliet e8370bf73a fix: Use only enabled applications versions in the cache prefix
This makes sure the cached routes are updated after enabling a
 previously disabled application

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:54 +02:00
Côme Chilliet 0d78c60759 fix: Fix psalm issue by adding missing parameter for profiler
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:54 +02:00
Côme Chilliet 446b22ac3c feat(router): Add fallback for legacy action and file routes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:54 +02:00
Côme Chilliet 216da3a81c fix: Deprecate action and actionInclude from routes and fix actionInclude
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:53 +02:00
Côme Chilliet 5c9092bc5b fix: Use a more fitting cache key
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:53 +02:00
Côme Chilliet 01575b7d95 feat(router): Use Symfony CompiledUrlMatcherDumper to cache routes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:53 +02:00
Côme Chilliet ee3abdd81b feat(router): Cache routes in local cache if possible
This is not ideal because serializing the routecollection is not easy.
It seems Symfony has its own way of doing things by dumping routes to a
 PHP file, maybe that would be better, but it would mean pulling a new
 symfony dependency and maybe refactor our Router.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:58:46 +02:00
Côme Chilliet 5488f7e8b1 Merge pull request #53352 from nextcloud/fix/install-app-before-enable
fix: Do not enable applications which are not installed yet
2025-06-05 17:55:08 +02:00
Joas Schilling 4b50105fb4 Merge pull request #53315 from nextcloud/refactor/migration-override-attribute
refactor: generate migrations with override attributes
2025-06-05 17:28:01 +02:00
Côme Chilliet c85f7eacb8 fix: Throw AppNotFoundException from installer when application is not found
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 17:03:16 +02:00
Côme Chilliet 580911dc89 chore: Disable appstore from integration tests
This avoids spamming the appstore server and getting banned from CI runs

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 16:23:07 +02:00
Côme Chilliet bf340a576f fix: Do not enable applications which are not installed yet
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 15:39:25 +02:00
Côme Chilliet a15c473ae2 feat(tests): Test application enabling/disabling and routes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-05 15:12:28 +02:00
Hamza d6a53ceab0 Merge pull request #51131 from nextcloud/fix/reply-message
fix(imip): dont compare events for the reply message
2025-06-05 14:14:46 +02:00
Ferdinand Thiessen a7f91799d9 Merge pull request #53291 from nextcloud/fix/legacy-oc-filepicker
fix(core): correctly show displayname when picking a file
2025-06-05 14:04:20 +02:00
dependabot[bot] 89b20c1c94 Merge pull request #53345 from nextcloud/dependabot/npm_and_yarn/webpack-dev-server-5.2.2 2025-06-05 11:44:00 +00:00
dependabot[bot] 8ed234fca6 build(deps-dev): bump webpack-dev-server from 5.1.0 to 5.2.2
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 5.1.0 to 5.2.2.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v5.1.0...v5.2.2)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-version: 5.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-05 11:23:22 +00:00
John Molakvoæ 0ad08c9249 Merge pull request #53341 from nextcloud/fix/release-gen-changelog 2025-06-05 13:19:56 +02:00
skjnldsv 9fd6090194 fix(workflows): releases changelog generator tags handling
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-05 12:39:14 +02:00
Hamza Mahjoubi ed1bfe709e fix(imip): dont compare events for the reply message
Signed-off-by: Hamza Mahjoubi <hamzamahjoubi221@gmail.com>
2025-06-05 12:31:13 +02:00
nextcloud-command d067032d2c chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-05 09:24:01 +00:00
Ferdinand Thiessen 3dea8f7fec fix(core): correctly show displayname when picking a file
Ensure that the display name is shown instead of the filename (important for public shares).
Fixed in the library but the legacy wrapper still uses it.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-05 11:13:24 +02:00
Julius Knorr 609c25acfc Merge pull request #53321 from nextcloud/fix/noid/files-page-heading-theming-name
[FilesList] Use the correct theming instance name from capabilities
2025-06-05 11:12:51 +02:00
Julien Veyssier 91ed3b2c25 chore: compile assets
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-06-05 10:21:09 +02:00
Julien Veyssier 01de909a61 fix(files): use the correct theming instance name from capabilities to set the page title
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-06-05 10:17:05 +02:00
Joas Schilling 4f41856073 Merge pull request #53328 from nextcloud/automated/noid/master-update-code-signing-crl
[master] fix(security): Update code signing revocation list
2025-06-05 09:54:09 +02:00
John Molakvoæ f321e0de7b Merge pull request #53280 from nextcloud/fix/dav-nickname-master 2025-06-05 09:53:06 +02:00
nextcloud-command d763b4a6a9 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-05 09:09:17 +02:00
skjnldsv e41e8de0e2 fix(dav): file drop nickname
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-05 09:09:17 +02:00
skjnldsv 67e2151ee6 fix(files_sharing): show message when nickname is not valid
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-05 06:48:32 +00:00
nextcloud-command 65d9d564da fix(security): Update code signing revocation list
Signed-off-by: GitHub <noreply@github.com>
2025-06-05 02:39:42 +00:00
Nextcloud bot 0359b7c34a fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-05 00:22:37 +00:00
leManu ab69f37276 fix Unix socket syntax
Signed-off-by: leManu <emmanuel.lestrelin@centrale-marseille.fr>
2025-06-04 22:04:55 +02:00
Richard Steinmetz 48f906249e Merge pull request #53323 from nextcloud/docs/caldav/getCalendarsForUserCount
docs(caldav): improve documentation of CalDavBackend::getCalendarsForUserCount
2025-06-04 16:58:24 +02:00
Richard Steinmetz 3b1947086c docs(caldav): improve documentation of CalDavBackend::getCalendarsForUserCount
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-04 15:08:45 +02:00
Joas Schilling 54555209ac Merge pull request #53314 from nextcloud/bugfix/53157/fix-hasNotifier-check
fix(notifications): Fix check for hasNotifiers when all apps use Regi…
2025-06-04 09:00:02 +02:00
Christoph Wurst 3a7c094f3b refactor: generate migrations with override attributes
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2025-06-04 07:38:06 +02:00
Joas Schilling 656dc478e5 fix(notifications): Fix check for hasNotifiers when all apps use RegistrationContext
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-04 06:32:26 +02:00
Nextcloud bot aef905a13b fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-04 00:22:46 +00:00
John Molakvoæ 97a9a68da2 Merge pull request #53285 from nextcloud/fix/files-position-navigation 2025-06-03 18:36:30 +02:00
nextcloud-command 9a30a8f9e0 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-03 15:40:17 +00:00
skjnldsv 5974649724 fix(files): highlight previous folder on history up
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-03 15:38:25 +00:00
Sebastian Krupinski 604389cf7d Merge pull request #53273 from nextcloud/fix/noid-fix-user-create-quota
fix(accounts): new account quota value
2025-06-03 15:52:56 +01:00
F. E Noel Nfebe 5d62ca6309 Merge pull request #53275 from nextcloud/fix/52617/fix-group-admin-delegation
fix(provisioning_api): Allow group details access for users with admin delegation
2025-06-03 16:41:48 +02:00
Kate cfeec72fff Merge pull request #53292 from nextcloud/fix/loginflow 2025-06-03 15:15:44 +02:00
Robin Appelman 8d8d1914e3 Merge pull request #53264 from nextcloud/files_external-scan-unscanned
feat: add --unscanned option to files_external:scan
2025-06-03 15:13:35 +02:00
Ferdinand Thiessen fa7310add9 fix: handle IDLE timeout
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-03 14:24:51 +02:00
Alexander Piskun d44eade0a7 Merge pull request #53277 from nextcloud/fix/noid/task-processing-file-content-stream
fix(TaskProcessingApiController): use StreamResponse to return file content
2025-06-03 15:20:59 +03:00
Maksim Sukharev 6bfdcc9402 Merge pull request #53274 from nextcloud/feat/noid/link-to-calendar-event 2025-06-03 14:05:42 +02:00
dependabot[bot] 76065a6fa1 Merge pull request #53284 from nextcloud/dependabot/npm_and_yarn/tar-fs-2.1.3 2025-06-03 12:03:14 +00:00
Kate f54592bf29 Merge pull request #53283 from nextcloud/feat/requestheader/indirect-parameter 2025-06-03 14:00:12 +02:00
Oleksander Piskun 90e8fa25a6 fix(TaskProcessingApiController): use StreamResponse to return the task file content
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
2025-06-03 13:09:07 +03:00
dependabot[bot] e8f0ffb03d build(deps): bump tar-fs from 2.1.2 to 2.1.3
Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.2 to 2.1.3.
- [Commits](https://github.com/mafintosh/tar-fs/commits)

---
updated-dependencies:
- dependency-name: tar-fs
  dependency-version: 2.1.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-03 09:17:44 +00:00
provokateurin c3aa5316be feat(RequestHeader): Add indirect parameter
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-06-03 11:09:12 +02:00
provokateurin 727b0c853c refactor(RequestHeader): Make parameter types stricter
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-06-03 11:07:09 +02:00
provokateurin 18e04e1c5a chore(RequestHeader): Remove unnecessary getters
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-06-03 11:06:53 +02:00
nfebe b647ca6c26 fix(provisioning_api): Allow group details access for users with admin delegation
This fixes an issue where users with "Administration privileges → Users" could not access
the groups details endpoint in the provisioning API, resulting in a 403 Forbidden error.

There is a problem with adding the  `AuthorizedAdminSetting` attribute (middleware)
that only allows access to users with Sharing admin privileges.

Users with "`Users` admin" privileges should also be able to access group details.

Resolves: https://github.com/nextcloud/server/issues/52617

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-06-03 09:05:31 +01:00
Maksim Sukharev e2265ff245 feat: link upcoming event to calendar app modal
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-06-03 09:25:11 +02:00
John Molakvoæ f25d66008b Merge pull request #53268 from nextcloud/cleanup/karma
test: cleanup karma (jsunit) tests and move files_external to Cypress
2025-06-03 08:38:35 +02:00
Nextcloud bot b54803b476 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-03 00:22:25 +00:00
Joas Schilling 3f8f1b3701 Merge pull request #53269 from nextcloud/ci/noid/make-run-names-distinct
ci: Add storage name to run name for easier identification
2025-06-02 23:11:51 +02:00
nextcloud-command cefcb880c2 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-02 20:03:51 +00:00
SebastianKrupinski fe4592c90e fix: new account quota value
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-06-02 15:53:50 -04:00
Julien Veyssier c4e936c6e8 Merge pull request #53205 from nextcloud/fix/noid/get-preview-force-mimetype
fix(PreviewManager): use the forced mimetype in throwIfPreviewsDisabled
2025-06-02 20:27:19 +02:00
Joas Schilling d72110cd35 ci: Add storage name to run name for easier identification
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-02 19:07:18 +02:00
Louis d7c073cc28 Merge pull request #53267 from nextcloud/artonge/fix/do_not_pass_parent_for_activity_tab_comments_plugin 2025-06-02 18:54:22 +02:00
Ferdinand Thiessen db7b0ae154 test: cleanup karma (jsunit) tests and move files_external to Cypress
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-02 18:09:31 +02:00
Louis Chemineau 40244bac56 fix(comments): Do not set parent when instantiating activity tab plugin
This is necessary as the `context` variable is a vue3 instance, and vue 2 do not know how to handle it properly.

Also, as far as I understand it, it is not needed.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-06-02 18:00:45 +02:00
Ferdinand Thiessen 4cd026ad43 Merge pull request #53157 from nextcloud/chore/refactor-core
refactor(core): migrate core application to `IBootstrap`
2025-06-02 16:51:49 +02:00
Robin Appelman 6113278d4c feat: add --unscanned option to files_external:scan
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-02 16:48:40 +02:00
Ferdinand Thiessen bbfd281ac5 Merge pull request #52949 from nextcloud/fix/delete-legacy-autoloader
fix: Remove useless legacy autoloader
2025-06-02 16:14:25 +02:00
Ferdinand Thiessen c21e189850 fix: make core application bootstrapable by coordinator
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-02 15:58:54 +02:00
Ferdinand Thiessen 0a982374ec refactor(core): migrate core application to IBootstrap
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-02 15:58:25 +02:00
Julien Veyssier c7e9f2c03d fix(PreviewManager): use the forced mimetype in throwIfPreviewsDisabled
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-06-02 15:50:53 +02:00
Kate d2356d9d76 Merge pull request #53261 from nextcloud/ci/noid/fail-fast-false 2025-06-02 15:06:01 +02:00
Kate 6b68caf251 Merge pull request #53255 from nextcloud/test/files-sharing-phpunit 2025-06-02 14:52:46 +02:00
Joas Schilling 893c0b4db5 ci(github): No longer fail-fast
On average this is costing us more CI time due to flaky tests,
then we save by actually skipping them.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-02 14:09:07 +02:00
Ferdinand Thiessen 9d8c2cd096 test(files_sharing): split testCanAccessShare into separate tests and fix for PHPUnit 10
- split the test into individual test cases
- fix invalid call to `onConsecutiveCalls` (it was called more than
  defined values and is deprecated in v10 anyways).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-02 13:20:53 +02:00
Daniel Kesselberg 1609d350a7 build: disable codecov telemetry
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-02 13:14:54 +02:00
Louis f4cb78b905 Merge pull request #52242 from nextcloud/artonge/fix/copy_subfolders_s3 2025-06-02 11:55:54 +02:00
Côme Chilliet 6da579fb1d fix(user_ldap): Harmonize parameter obfuscation and serialization accross logging methods
Debug log, profiler and ldap debug log had a different logic for
 sanitizing of parameters, aligning them.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-02 11:47:56 +02:00
Maksim Sukharev cc3fdf89b2 Merge pull request #52776 from nextcloud/fix/52590/available-account-groups 2025-06-02 09:19:31 +02:00
nextcloud-command 97c7d93377 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-02 07:04:42 +00:00
Maksim Sukharev b52aae019a fix(AppNavigationGroupList): restore navigation panel and search/filter functionality for sub-admin groups
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-06-02 08:53:10 +02:00
Maksim Sukharev 875b8cf031 fix(UserRow): retrieve available groups from the store
- rename 'available*Groups' to 'selected*Groups'
- populate store and 'availableGroups' from search requests

Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-06-02 08:53:10 +02:00
Maksim Sukharev b43bcae61f fix(NewUserDialog): retrieve available groups from the store
- fix 'this.isAdmin' to be 'this.settings.isAdmin'
- compute 'availableGroups' instead of setting it once mounted
- populate store and 'availableGroups' from search requests

Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-06-02 08:53:10 +02:00
Nextcloud bot 080473ccdf fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-02 00:47:33 +00:00
Andy Scherzinger 6d0d83b4c8 Merge pull request #53070 from nextcloud/remove-unused-method
refactor(dav): remove unused CalDAVBackend method
2025-06-01 23:02:48 +02:00
Thomas Citharel 9252e2689b refactor(dav): remove unused CalDAVBackend method
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-06-01 22:41:33 +02:00
Andy Scherzinger f59db4c86a Merge pull request #53244 from nextcloud/bug/53243/wrong-app-id-for-systemtags-settings
fix(systemtags): fix translations for systemtags view
2025-06-01 22:41:18 +02:00
Daniel Kesselberg ffe5caa91b fix(systemtags): fix translations for systemtags view
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-01 22:00:51 +02:00
Daniel daa9852722 Merge pull request #52215 from nextcloud/perf/carddav/dont-query-circles
perf(carddav): don't query circle memberships
2025-06-01 19:57:13 +02:00
Andy Scherzinger b1f009d50e Merge pull request #52727 from nextcloud/dependabot/npm_and_yarn/nextcloud/vue-8.26.1
build(deps): bump @nextcloud/vue from 8.25.1 to 8.27.0
2025-06-01 18:53:58 +02:00
nextcloud-command 06f89c23c9 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-01 16:39:23 +00:00
Ferdinand Thiessen d6bd0870cf test: adjust unit tests for updated library
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-01 18:35:05 +02:00
Ferdinand Thiessen 7536b7ef63 test: adjust cypress tests to be less flaky
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-01 18:07:23 +02:00
dependabot[bot] 267354e70d build(deps): bump @nextcloud/vue from 8.25.1 to 8.26.1
Dependabot couldn't find the original pull request head commit, d9e4508833897fb0ae1a3e07b44b3e2d16ac3d8a.
2025-06-01 13:45:56 +00:00
Richard Steinmetz 899b2023da Merge pull request #52410 from nextcloud/fix/caldav/use-direct-route-event-activity
fix(caldav): use direct.edit route in event activities
2025-06-01 15:32:22 +02:00
Kate 14f739d8f7 Merge pull request #52923 from nextcloud/dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.7.0 2025-06-01 14:52:05 +02:00
John Molakvoæ 6a9ae8beea Merge pull request #53178 from nextcloud/fix/reset-property 2025-06-01 14:25:15 +02:00
Richard Steinmetz 696d76f976 fix(caldav): use direct.edit route in event activities
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-01 14:05:36 +02:00
Ferdinand Thiessen 7793799ef3 docs: update openAPI extracted files
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-01 13:39:11 +02:00
dependabot[bot] 477c990b5b chore(deps): Bump nextcloud/openapi-extractor
Bumps [nextcloud/openapi-extractor](https://github.com/nextcloud-releases/openapi-extractor) from 1.5.3 to 1.7.0.
- [Changelog](https://github.com/nextcloud-releases/openapi-extractor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-releases/openapi-extractor/compare/v1.5.3...v1.7.0)

---
updated-dependencies:
- dependency-name: nextcloud/openapi-extractor
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-01 13:37:58 +02:00
nextcloud-command 1f214806fd chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-06-01 10:31:38 +00:00
John Molakvoæ 16c7f25bdb fix(profile): keep error status persistent until valid
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-06-01 12:27:57 +02:00
skjnldsv f696682dc6 fix(profile): do not restore previous value on invalid request
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-01 12:27:56 +02:00
John Molakvoæ d53776913e Merge pull request #53210 from nextcloud/bug/52977/opcache-reset-after-app-extract 2025-06-01 12:10:54 +02:00
dependabot[bot] f530a6c7d5 Merge pull request #53236 from nextcloud/dependabot/github_actions/github-actions-1204f2af31 2025-06-01 08:24:20 +00:00
Andy Scherzinger 275812d3c9 Merge pull request #53233 from nextcloud/chore/codeowners
chore: adjust codeowners for stylesheets
2025-06-01 09:40:18 +02:00
dependabot[bot] 6b20851438 build(deps): bump LizardByte/setup-python-action
Bumps the github-actions group with 1 update: [LizardByte/setup-python-action](https://github.com/lizardbyte/setup-python-action).


Updates `LizardByte/setup-python-action` from 2025.426.160528 to 2025.530.174035
- [Release notes](https://github.com/lizardbyte/setup-python-action/releases)
- [Commits](https://github.com/lizardbyte/setup-python-action/compare/f4367d0377eceec7e5e26da8f3863dd365b95a94...6fe61189717d4cb073a3219e234749125f53b5c2)

---
updated-dependencies:
- dependency-name: LizardByte/setup-python-action
  dependency-version: 2025.530.174035
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-01 09:38:26 +02:00
Kate 1eab80f901 Merge pull request #53235 from nextcloud/test/fix-files-sharing 2025-06-01 08:26:03 +02:00
Nextcloud bot b36223c943 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-06-01 00:21:58 +00:00
dependabot[bot] 651b6d85ba Merge pull request #53085 from nextcloud/dependabot/npm_and_yarn/query-string-9.2.0 2025-05-31 23:35:51 +00:00
dependabot[bot] c969f2dc13 chore(deps): Bump query-string from 9.1.0 to 9.2.0
Bumps [query-string](https://github.com/sindresorhus/query-string) from 9.1.0 to 9.2.0.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v9.1.0...v9.2.0)

---
updated-dependencies:
- dependency-name: query-string
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-31 23:23:08 +00:00
dependabot[bot] 211671ce0f Merge pull request #52722 from nextcloud/dependabot/npm_and_yarn/query-string-9.1.2 2025-05-31 23:11:33 +00:00
dependabot[bot] dfb852b146 build(deps): bump query-string from 9.1.0 to 9.1.2
Bumps [query-string](https://github.com/sindresorhus/query-string) from 9.1.0 to 9.1.2.
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v9.1.0...v9.1.2)

---
updated-dependencies:
- dependency-name: query-string
  dependency-version: 9.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-31 22:38:56 +00:00
dependabot[bot] 3765e53547 Merge pull request #52596 from nextcloud/dependabot/npm_and_yarn/nextcloud/dialogs-6.2.0 2025-05-31 21:19:31 +00:00
Ferdinand Thiessen 3a99b88917 test(files_sharing): adjust mocks of Talk classes
Classes need to exist to be mocked (reflection), thus unknown classes
only can be mocked as `stdClass`.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-31 22:39:37 +02:00
dependabot[bot] 4c90f843ae build(deps): bump @nextcloud/dialogs from 6.1.1 to 6.2.0
Bumps [@nextcloud/dialogs](https://github.com/nextcloud-libraries/nextcloud-dialogs) from 6.1.1 to 6.2.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-dialogs/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-dialogs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-dialogs/compare/v6.1.1...v6.2.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/dialogs"
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 22:26:34 +02:00
Ferdinand Thiessen 7115658327 test(files_sharing): adjust tests for PHPUnit v10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-31 22:22:52 +02:00
dependabot[bot] a23fa8fd8d Merge pull request #53223 from nextcloud/dependabot/npm_and_yarn/sass-1.89.1 2025-05-31 18:13:17 +00:00
dependabot[bot] cd665fffb5 Merge pull request #53224 from nextcloud/dependabot/npm_and_yarn/dompurify-3.2.6 2025-05-31 17:20:46 +00:00
Ferdinand Thiessen 17336d35c6 Merge pull request #53227 from nextcloud/dependabot/npm_and_yarn/moment-timezone-0.6.0
build(deps): bump moment-timezone from 0.5.48 to 0.6.0
2025-05-31 19:06:03 +02:00
dependabot[bot] 127754e027 build(deps): bump dompurify from 3.2.5 to 3.2.6
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.2.5 to 3.2.6.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.2.5...3.2.6)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-31 17:05:47 +00:00
dependabot[bot] 212ab71cc9 build(deps): bump moment-timezone from 0.5.48 to 0.6.0
Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.48 to 0.6.0.
- [Release notes](https://github.com/moment/moment-timezone/releases)
- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)
- [Commits](https://github.com/moment/moment-timezone/compare/0.5.48...0.6.0)

---
updated-dependencies:
- dependency-name: moment-timezone
  dependency-version: 0.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-31 16:43:14 +00:00
Ferdinand Thiessen 5957579445 Merge pull request #53221 from nextcloud/dependabot/npm_and_yarn/focus-trap-7.6.5
build(deps): bump focus-trap from 7.6.4 to 7.6.5
2025-05-31 17:19:55 +02:00
dependabot[bot] 9e5bee7c12 build(deps): bump focus-trap from 7.6.4 to 7.6.5
Bumps [focus-trap](https://github.com/focus-trap/focus-trap) from 7.6.4 to 7.6.5.
- [Release notes](https://github.com/focus-trap/focus-trap/releases)
- [Changelog](https://github.com/focus-trap/focus-trap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/focus-trap/focus-trap/compare/v7.6.4...v7.6.5)

---
updated-dependencies:
- dependency-name: focus-trap
  dependency-version: 7.6.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-31 14:44:01 +00:00
dependabot[bot] 78d6d5be75 Merge pull request #53220 from nextcloud/dependabot/composer/vendor-bin/rector/rector/rector-2.0.17 2025-05-31 14:40:47 +00:00
Kate a0dea9b37a Merge pull request #53222 from nextcloud/dependabot/npm_and_yarn/nextcloud/stylelint-config-3.1.0 2025-05-31 16:39:04 +02:00
Ferdinand Thiessen cd99745a07 chore: adjust codeowners for stylesheets
1. Fix code owners to assign frontend to CSS / SCSS changes instead of
   backend.
2. Fix mixed usage of tabs and spaces in the file.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-31 16:08:25 +02:00
nextcloud-command 255e8c894e chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-31 14:06:32 +00:00
Ferdinand Thiessen 0beef939e1 chore: adjust stylesheets to new codestyle
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-31 16:02:40 +02:00
dependabot[bot] a9c97c9931 build(deps-dev): bump @nextcloud/stylelint-config from 3.0.1 to 3.1.0
Bumps [@nextcloud/stylelint-config](https://github.com/nextcloud-libraries/stylelint-config) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/nextcloud-libraries/stylelint-config/releases)
- [Changelog](https://github.com/nextcloud-libraries/stylelint-config/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/stylelint-config/compare/v3.0.1...v3.1.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/stylelint-config"
  dependency-version: 3.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 16:02:40 +02:00
dependabot[bot] e028710220 Merge pull request #53225 from nextcloud/dependabot/npm_and_yarn/vitest/coverage-v8-3.1.4 2025-05-31 02:33:26 +00:00
dependabot[bot] 74f8030634 build(deps-dev): bump @vitest/coverage-v8 from 3.1.3 to 3.1.4
Bumps [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.4/packages/coverage-v8)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 02:04:21 +00:00
dependabot[bot] d96f59e56d build(deps-dev): bump sass from 1.89.0 to 1.89.1
Bumps [sass](https://github.com/sass/dart-sass) from 1.89.0 to 1.89.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.89.0...1.89.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.89.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 02:03:22 +00:00
dependabot[bot] b87bee31a4 build(deps-dev): bump rector/rector in /vendor-bin/rector
Bumps [rector/rector](https://github.com/rectorphp/rector) from 2.0.16 to 2.0.17.
- [Release notes](https://github.com/rectorphp/rector/releases)
- [Commits](https://github.com/rectorphp/rector/compare/2.0.16...2.0.17)

---
updated-dependencies:
- dependency-name: rector/rector
  dependency-version: 2.0.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 01:47:53 +00:00
Nextcloud bot b2c3c610e7 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-31 00:22:39 +00:00
Daniel Kesselberg c7b69931f3 fix: clear opcache after app extraction
clear opcache post app update extraction to prevent outdated files issues.

opcache.validate_timestamps=0 disables automated file modification checks.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-30 18:12:15 +02:00
Robin Appelman 35930a4331 Merge pull request #53145 from nextcloud/dav-file-write-log
fix: log error when writing stream to dav file
2025-05-30 14:46:16 +02:00
Joas Schilling 9106871ebf Merge pull request #53161 from nextcloud/docs/53002/calendar-search-impl
docs(caldav): update documentation for calendar search
2025-05-30 13:29:22 +02:00
Robin Appelman b9b8db6176 fix: log error when writing stream to dav file
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-30 13:16:46 +02:00
Joas Schilling 14cc8d3e13 Merge pull request #53198 from nextcloud/bugfix/noid/user_status-unique-constraint
fix(user_status): Avoid unique constraint violations from parallel he…
2025-05-30 10:00:05 +02:00
Andy Scherzinger ef4298912e Merge pull request #53200 from nextcloud/ci/noid/use-standard-feedback-action
ci(feedback): Use default action template
2025-05-30 09:26:46 +02:00
Andy Scherzinger 7e101aa638 ci(feedback): Use default action template
...since modifications have been up-streamed

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-05-30 09:25:51 +02:00
Andy Scherzinger 9e1a806a1e Merge pull request #53197 from nextcloud/ci/noid/crl31
ci(crl): Add stable31 branch
2025-05-30 09:04:23 +02:00
Andy Scherzinger beac4e1adf Merge pull request #53187 from nextcloud/automated/noid/master-update-code-signing-crl
[master] fix(security): Update code signing revocation list
2025-05-30 09:03:56 +02:00
Andy Scherzinger 028ed380ce ci(crl): Add srtable31 branch
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-05-30 08:56:42 +02:00
Joas Schilling f3a26c5f89 fix(user_status): Avoid unique constraint violations from parallel heartbeats and GET requests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-30 08:53:18 +02:00
nextcloud-command 79b3886b67 fix(security): Update code signing revocation list
Signed-off-by: GitHub <noreply@github.com>
2025-05-30 02:38:46 +00:00
Nextcloud bot 52299ba9f6 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-30 00:22:35 +00:00
dependabot[bot] 8b2f8b8c35 Merge pull request #52597 from nextcloud/dependabot/npm_and_yarn/babel/plugin-transform-private-methods-7.27.1 2025-05-29 16:37:05 +00:00
dependabot[bot] e341c32e79 build(deps-dev): bump @babel/plugin-transform-private-methods
Bumps [@babel/plugin-transform-private-methods](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-private-methods) from 7.25.9 to 7.27.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.1/packages/babel-plugin-transform-private-methods)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-private-methods"
  dependency-version: 7.27.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 16:04:07 +00:00
dependabot[bot] 2e9f06c95b Merge pull request #52593 from nextcloud/dependabot/npm_and_yarn/babel/preset-typescript-7.27.1 2025-05-29 15:43:27 +00:00
nextcloud-command 54cef45e88 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-29 15:30:34 +00:00
dependabot[bot] 136d78eaa9 build(deps-dev): bump @babel/preset-typescript from 7.27.0 to 7.27.1
Bumps [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript) from 7.27.0 to 7.27.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.1/packages/babel-preset-typescript)

---
updated-dependencies:
- dependency-name: "@babel/preset-typescript"
  dependency-version: 7.27.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 15:14:32 +00:00
dependabot[bot] ec242fb50a Merge pull request #52726 from nextcloud/dependabot/npm_and_yarn/babel/node-7.27.1 2025-05-29 15:12:56 +00:00
dependabot[bot] 24a2f5faab build(deps-dev): bump @babel/node from 7.26.0 to 7.27.1
Bumps [@babel/node](https://github.com/babel/babel/tree/HEAD/packages/babel-node) from 7.26.0 to 7.27.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.1/packages/babel-node)

---
updated-dependencies:
- dependency-name: "@babel/node"
  dependency-version: 7.27.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 16:48:46 +02:00
Joas Schilling 14533b67b7 Merge pull request #53179 from nextcloud/tests/noid/federated-file-sharing
test: Migrate federated file sharing to PHPUnit 10
2025-05-29 15:21:53 +02:00
Andy Scherzinger e7e4cd0b70 Merge pull request #52592 from nextcloud/dependabot/npm_and_yarn/is-svg-6.0.0
build(deps): bump is-svg from 5.1.0 to 6.0.0
2025-05-29 14:48:17 +02:00
dependabot[bot] ead3bfbc79 Merge pull request #52723 from nextcloud/dependabot/npm_and_yarn/nextcloud/moment-1.3.4 2025-05-29 12:39:43 +00:00
nextcloud-command d238f37c14 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-29 14:34:50 +02:00
dependabot[bot] 23baa88eb7 build(deps): bump is-svg from 5.1.0 to 6.0.0
Bumps [is-svg](https://github.com/sindresorhus/is-svg) from 5.1.0 to 6.0.0.
- [Release notes](https://github.com/sindresorhus/is-svg/releases)
- [Commits](https://github.com/sindresorhus/is-svg/compare/v5.1.0...v6.0.0)

---
updated-dependencies:
- dependency-name: is-svg
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 14:34:50 +02:00
dependabot[bot] c8746b3d33 build(deps): bump @nextcloud/moment from 1.3.2 to 1.3.4
Bumps [@nextcloud/moment](https://github.com/nextcloud-libraries/nextcloud-moment) from 1.3.2 to 1.3.4.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-moment/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-moment/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-moment/compare/v1.3.2...v1.3.4)

---
updated-dependencies:
- dependency-name: "@nextcloud/moment"
  dependency-version: 1.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 14:24:21 +02:00
John Molakvoæ cdcfefc4ed Merge pull request #53147 from xlejo/fix/files_versions/undefined_restored 2025-05-29 14:13:18 +02:00
dependabot[bot] bd38a33c38 Merge pull request #52845 from nextcloud/dependabot/npm_and_yarn/cypress-split-1.24.17 2025-05-29 10:23:47 +00:00
Joas Schilling e1e6235b64 test: Migrate files app
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-29 12:20:21 +02:00
Joas Schilling 89a7778f87 test: Mock ITaskManager to remove test interactions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-29 12:20:20 +02:00
Joas Schilling fa645663a8 test: Migrate federated file sharing to PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-29 12:20:20 +02:00
skjnldsv bf7511f568 chore: compile assets
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-05-29 12:12:44 +02:00
Alejo ab11868bb6 fix(files_versions): "undefined restored" on restore
Signed-off-by: Alejo <xlejo@protonmail.com>
2025-05-29 12:10:39 +02:00
dependabot[bot] 171aee4a0d build(deps-dev): bump cypress-split from 1.24.14 to 1.24.17
Bumps [cypress-split](https://github.com/bahmutov/cypress-split) from 1.24.14 to 1.24.17.
- [Release notes](https://github.com/bahmutov/cypress-split/releases)
- [Commits](https://github.com/bahmutov/cypress-split/compare/v1.24.14...v1.24.17)

---
updated-dependencies:
- dependency-name: cypress-split
  dependency-version: 1.24.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 11:29:11 +02:00
Joas Schilling 3bdb89c3b2 Merge pull request #53175 from nextcloud/tests/noid/migrate-federation-and-files_trashbin
test: Migrate Federation and Files_Trashbin to PHPUnit 10
2025-05-29 11:02:48 +02:00
Grigorii K. Shartsev 42bfbc6954 Merge pull request #41065 from nextcloud/fix/dashboard--performance-and-refactoring
fix(dashboard): performance and refactoring
2025-05-29 09:34:56 +02:00
Grigorii K. Shartsev a68cd1ec02 chore(assets): Recompile assets
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2025-05-29 09:20:48 +02:00
Grigorii K. Shartsev 8ba8c26053 perf(dashboard): lags on dashboard items drag
- `aria-labelledby` is not needed here, it is a hidden icon
- `visually-hidden` has transformations that have huge performance
impact in combination with other transformations, for example, on
draggable

Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2025-05-29 09:18:57 +02:00
Joas Schilling 8b70f59015 chore(cs): Apply autofixes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-29 09:18:12 +02:00
Joas Schilling 746145f7f0 test: Migrate Federation and Files_Trashbin to PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-29 09:17:49 +02:00
Nextcloud bot b7215c932c fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-29 00:33:26 +00:00
Andy Scherzinger f24231281d Merge pull request #53171 from nextcloud/fix/view-local-close
fix(files): do nothing if `view local` dialog was just closed
2025-05-29 02:05:50 +02:00
nextcloud-command 096868073b chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-28 23:51:09 +00:00
Ferdinand Thiessen 88a11a5bd4 fix(files): do nothing if view local dialog was just closed
We try to open a file in the Nextcloud client.
If this fails a dialog is shown with 3 options:

1. Retry: If it fails no further dialog is shown.
2. Open online: The viewer is used to open the file.
3. Close the dialog and nothing happens (abort).

This correctly implements 3 and also adds some comments + order file in
reading order (using `function` instead of arrow functions allows this
easily).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-29 01:23:59 +02:00
Andy Scherzinger 86d50335dc Merge pull request #52748 from nextcloud/rakekniven-patch-1
chore(i18n): Use username instead of User ID
2025-05-29 01:11:12 +02:00
rakekniven 78bd9ad29f chore(i18n): Improved wording
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-05-29 01:09:55 +02:00
rakekniven c8da8628c3 chore(i18n): Add hint for translators
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-05-29 01:09:55 +02:00
Andy Scherzinger fb38ecc7fb Merge pull request #52729 from nextcloud/dependabot/npm_and_yarn/core-js-3.42.0
build(deps): bump core-js from 3.41.0 to 3.42.0
2025-05-29 01:05:24 +02:00
nextcloud-command c049995f78 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-28 18:42:39 +00:00
dependabot[bot] 23ae77424b build(deps): bump core-js from 3.41.0 to 3.42.0
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.41.0 to 3.42.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.42.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.42.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 20:38:24 +02:00
Andy Scherzinger 0f5db1b53b Merge pull request #53121 from nextcloud/feat/sensitive-declarative-settings
feat(declarativeSettings): support encryption of sensitive values
2025-05-28 20:21:30 +02:00
nextcloud-command 17518f9d0a chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-28 17:49:28 +00:00
Andrey Borysenko 7994332338 feat: add support for sensitive Declarative settings values encryption
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2025-05-28 20:43:04 +03:00
Andy Scherzinger 1d4b899244 Merge pull request #52483 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2025-05-28 19:25:08 +02:00
Andy Scherzinger 74863c646a Merge pull request #53172 from nextcloud/dependabot/github_actions/github-actions-5765af399d
build(deps): bump the github-actions group across 1 directory with 2 updates
2025-05-28 18:16:55 +02:00
dependabot[bot] db637f3a8c build(deps): bump the github-actions group across 1 directory with 2 updates
Bumps the github-actions group with 2 updates in the / directory: [cypress-io/github-action](https://github.com/cypress-io/github-action) and [codecov/test-results-action](https://github.com/codecov/test-results-action).


Updates `cypress-io/github-action` from 6.7.16 to 6.9.2
- [Release notes](https://github.com/cypress-io/github-action/releases)
- [Changelog](https://github.com/cypress-io/github-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/github-action/compare/108b8684ae52e735ff7891524cbffbcd4be5b19f...be1bab96b388bbd9ce3887e397d373c8557e15af)

Updates `codecov/test-results-action` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/codecov/test-results-action/releases)
- [Commits](https://github.com/codecov/test-results-action/compare/f2dba722c67b86c6caa034178c6e4d35335f6706...47f89e9acb64b76debcd5ea40642d25a4adced9f)

---
updated-dependencies:
- dependency-name: cypress-io/github-action
  dependency-version: 6.9.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: codecov/test-results-action
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 17:57:27 +02:00
Robin Appelman be3cfefc75 Merge pull request #52816 from nextcloud/primary-object-store-settings
feat: move primary object store configuration to a single place
2025-05-28 17:40:53 +02:00
nextcloud-command 335f875121 fix(deps): Fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2025-05-28 14:45:57 +00:00
Kate 3b6ea81ea2 Merge pull request #53153 from nextcloud/chore/encryption-php10 2025-05-28 15:56:54 +02:00
Robin Appelman e21ce793a5 test: add test that object store folder copy preserves folder size
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-28 15:52:00 +02:00
Robin Appelman 5b3f4cd8fe perf: set the folder size in the same query as we create it
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-28 15:52:00 +02:00
Louis Chemineau 1f8b823992 fix(S3): Use original folder size during copy
This prevent having copied folders with a wrongly set size of 0KB.

- Fix https://github.com/nextcloud/server/issues/51916

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-05-28 15:52:00 +02:00
Robin Appelman 7599162c7b feat: move primary object store configuration to a single place
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-28 15:32:31 +02:00
Daniel Kesselberg 27d042a1bb docs(caldav): update documentation for calendar search
Remove the documentation from the implementaitons.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-28 15:23:52 +02:00
Ferdinand Thiessen 9530277f20 Merge pull request #53047 from nextcloud/fix/recommended-apps
fix: recommended apps button test
2025-05-28 15:03:23 +02:00
Ferdinand Thiessen 74deaf4879 test: adjust for cypress
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-28 14:21:31 +02:00
nextcloud-command bd9a052692 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-28 12:02:05 +00:00
Ferdinand Thiessen d535c377cf fix: recommended apps button test
Regression of https://github.com/nextcloud/server/pull/52703 where the
`>` was added by accident and thus the button has a wrong label
including the rest of the button HTML.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-28 13:54:10 +02:00
Jonas f833e2d219 Merge pull request #52996 from nextcloud/fix/emit_hooks_on_copy
fix(node): emit hooks on `Node::copy()`
2025-05-28 13:49:49 +02:00
Ferdinand Thiessen d0758fe6ac test(encryption): adjust test code for PHPUnit 10 deprecations
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-28 11:20:15 +02:00
Ferdinand Thiessen 9422b6d6d0 test: adjust library tests for PHPunit deprecations
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-28 11:20:15 +02:00
Kate 85c141e107 Merge pull request #53150 from nextcloud/tests/noid/ldap 2025-05-28 11:10:13 +02:00
Joas Schilling 6c7f8ea55b test: Migrate User LDAP to phpunit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-28 10:10:45 +02:00
dependabot[bot] d21bf9c6e0 Merge pull request #52724 from nextcloud/dependabot/npm_and_yarn/nextcloud/cypress-1.0.0-beta.15 2025-05-28 08:08:04 +00:00
Joas Schilling 56f3d1989e Merge pull request #53146 from nextcloud/tests/noid/finish-dav
test: Migrate remaining DAV tests to PHPUnit 10
2025-05-28 09:51:34 +02:00
dependabot[bot] 42144b5331 build(deps-dev): bump @nextcloud/cypress
Bumps [@nextcloud/cypress](https://github.com/nextcloud/nextcloud-cypress) from 1.0.0-beta.14 to 1.0.0-beta.15.
- [Release notes](https://github.com/nextcloud/nextcloud-cypress/releases)
- [Commits](https://github.com/nextcloud/nextcloud-cypress/compare/v1.0.0-beta.14...v1.0.0-beta.15)

---
updated-dependencies:
- dependency-name: "@nextcloud/cypress"
  dependency-version: 1.0.0-beta.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 09:43:55 +02:00
Ferdinand Thiessen 9f8f7759a9 test(dav): adjust test cases for PHPUnit 10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-28 09:30:21 +02:00
Joas Schilling 9978dcfd61 fix(DAV): Check if the header is actually the expected format
Not sure how the test ever passed as it can only
throw with strict types which are not yet enabled

Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-28 09:25:47 +02:00
Joas Schilling 76e6ab1dff test: Migrate remaining DAV tests to PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-28 09:25:47 +02:00
Nextcloud bot d03f6d804f fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-28 00:22:38 +00:00
dependabot[bot] 6bc90a2fdf Merge pull request #52728 from nextcloud/dependabot/npm_and_yarn/libphonenumber-js-1.12.8 2025-05-27 23:01:47 +00:00
nextcloud-command 4ab71d9dd0 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-27 22:47:04 +00:00
dependabot[bot] 62121ff4ee build(deps): bump libphonenumber-js from 1.12.7 to 1.12.8
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.7 to 1.12.8.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.7...v1.12.8)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-version: 1.12.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 00:42:51 +02:00
Joas Schilling 5bade98f69 Merge pull request #53122 from nextcloud/tests/noid/dav-systemtag
test: Migrate DAV Systemtags tests to PHPUnit 10
2025-05-27 19:24:01 +02:00
Joas Schilling 96a1dd322b test: Migrate DAV Systemtags tests to PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-27 18:27:25 +02:00
Côme Chilliet 7c251e4f96 fix: Remove useless legacy autoloader
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-27 18:06:28 +02:00
John Molakvoæ c3f16a554e Merge pull request #52945 from nextcloud/fix/cleanup-test-legacy-autoloader 2025-05-27 17:57:03 +02:00
Côme Chilliet 9560e00cf3 chore: Remove useless legacy autoloader for tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-27 16:15:58 +02:00
Anna 39c63df1ea Merge pull request #53119 from nextcloud/fix/noid/broken-password-reset-form
fix: broken password reset form
2025-05-27 14:57:35 +02:00
Benjamin Gaussorgues b7c46f1277 Merge pull request #53130 from nextcloud/artonge/fix/skip_blurhash_if_previews_are_disabled 2025-05-27 14:56:00 +02:00
Louis Chemineau 72bdb93b66 fix(blurhash): Skip generation the if previews are disabled.
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-05-27 12:26:42 +02:00
Jonas c879bab3c9 Merge pull request #53131 from nextcloud/fix/file_reference_invalidate_rename
fix(FileReferenceEventListener): Invalidate cache after node was renamed
2025-05-27 12:20:11 +02:00
Jonas e5b4ae4ebe fix(SyncLivePhotosListener): Don't handle copy event emitted from us
Running $peerFile->copy() causes a second BeforeNodeCopiedEvent now,
which we don't want to handle.

Signed-off-by: Jonas <jonas@freesources.org>
2025-05-27 12:14:14 +02:00
Jonas c952570e67 fix(node): emit hooks on Node::copy()
When calling `Files\Node\Node::copy()`, `Files\View::copy()` gets called,
but `Files\View::fakeRoot` is empty so the hooks are not emitted if no
path is given to `Files\View::shouldEmitHooks()`.

This results in node-related events like `NodeCopiedEvent` not being
fired when copying files via `Files\Node\Node::copy()`.

`Files\View::shouldEmitHooks()` is given a path as parameter in almost
all places except when called from the `copy()` function. This commit
changes it and passes the copy target path.

Fixes: nextcloud/collectives#1756

Signed-off-by: Jonas <jonas@freesources.org>
2025-05-27 12:14:14 +02:00
Jonas 2299ac8507 fix(FileReferenceEventListener): Invalidate cache after node was renamed
Fixes: nextcloud/collectives#1527

Signed-off-by: Jonas <jonas@freesources.org>
2025-05-27 11:27:38 +02:00
Kate bb795239b5 Merge pull request #52752 from nextcloud/leftybournes/fix/files_trashbin_dont_restore_full 2025-05-27 10:12:37 +02:00
Benjamin Gaussorgues ba86ee8c80 Merge pull request #53120 from nextcloud/background-scan-eq 2025-05-27 09:03:05 +02:00
Kate a10a52f1f7 Merge pull request #53124 from nextcloud/fix/log/map-all-warning-notice 2025-05-27 08:22:33 +02:00
Christoph Wurst e736823fc7 fix(log): map all warnings to warn log level, notice to info
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2025-05-27 08:01:19 +02:00
Nextcloud bot b2de24e805 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-27 00:22:15 +00:00
Anna Larch 08f869dda9 fix: broken password reset form
Signed-off-by: Anna Larch <anna@nextcloud.com>
2025-05-26 19:22:07 +02:00
Robin Appelman 2ea2111176 perf: improve query to determine which users need a background scan
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-26 18:08:36 +02:00
Ferdinand Thiessen 5734ffdc81 Merge pull request #53118 from nextcloud/backport/53055/master
fix(files_sharing): show note, label and list of uploaded files on file drop
2025-05-26 16:22:20 +02:00
nextcloud-command 9ff11340dc chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-26 13:21:19 +00:00
Ferdinand Thiessen 60ccc85e76 fix(files_sharing): show note, label and list of uploaded files on file drop
This was missing from the Vue migration of the public share view:
- Show the note as the description of the file drop
- Show the label as the heading of the file drop if available
- Show list of uploaded files for verification

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-26 15:11:36 +02:00
Kate 27149b7f24 Merge pull request #53115 from nextcloud/ci/noid/more-action-hardening 2025-05-26 10:45:38 +02:00
Kate 74d164e770 Merge pull request #53111 from nextcloud/tests/noid/carddav-tests 2025-05-26 10:07:20 +02:00
Joas Schilling a4bbdefcdf ci: Update comments and correctly skip the "pull 3rdparty" command
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-26 09:37:18 +02:00
Joas Schilling 2d649357a1 ci: Ignore template-injection on nextcloud-releases workflow
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-26 09:30:04 +02:00
Andy Scherzinger 595b97527b Merge pull request #53074 from nextcloud/docs/53002/calendar-search
docs(caldav): update documentation for calendar search
2025-05-26 08:24:22 +02:00
Nextcloud bot 9e874aadad fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-26 00:22:22 +00:00
Joas Schilling 6cccdf98f4 test: Migrate CardDAV tests to PHPUnit10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-25 22:22:57 +02:00
dependabot[bot] a4d42269f5 Merge pull request #53083 from nextcloud/dependabot/npm_and_yarn/puppeteer-24.9.0 2025-05-25 20:20:33 +00:00
dependabot[bot] dcb8c37ed2 chore(deps-dev): Bump puppeteer from 24.7.2 to 24.9.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.7.2 to 24.9.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.7.2...puppeteer-v24.9.0)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-25 22:06:08 +02:00
Andy Scherzinger 21f36fc332 Merge pull request #53108 from nextcloud/rakekniven-patch-2
chore(18n): More natural english - fix plural typo
2025-05-25 20:07:51 +02:00
Joas Schilling 0ca6f7f9c5 Merge pull request #53106 from nextcloud/tests/noid/caldav-tests
test: Migrate CalDAV tests to PHPUnit10
2025-05-25 19:32:47 +02:00
Andy Scherzinger ca481913cf Merge pull request #53084 from nextcloud/dependabot/npm_and_yarn/webpack-5.99.9
chore(deps-dev): Bump webpack from 5.99.7 to 5.99.9
2025-05-25 18:12:58 +02:00
nextcloud-command 7e5b73d74b chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-25 17:47:06 +02:00
dependabot[bot] 11d42af05f chore(deps-dev): Bump webpack from 5.99.7 to 5.99.9
Bumps [webpack](https://github.com/webpack/webpack) from 5.99.7 to 5.99.9.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.99.7...v5.99.9)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.99.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-25 17:47:06 +02:00
Andy Scherzinger 923b4477cc Merge pull request #53076 from nextcloud/gw-codeowners-public-api
chore(codeowners): add codeowners for calendar and contacts api
2025-05-25 16:40:09 +02:00
Joas Schilling 154d390c02 test: Migrate CalDAV tests to PHPUnit10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-25 14:11:17 +02:00
rakekniven 4261c9d4fa chore(18n): More natural english - fix plural typo
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-05-25 12:56:15 +02:00
Nextcloud bot b367ab2a6b fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-25 00:22:17 +00:00
John Molakvoæ 8864e9b078 Merge pull request #52897 from nextcloud/Jerome-Herbinet-replace-remove-wording-with-delete 2025-05-24 09:59:16 +02:00
Nextcloud bot 1b911e1d1e fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-24 00:22:30 +00:00
Andy Scherzinger 7c45c147dc Merge pull request #53069 from nextcloud/ci/noid/syncActions
ci(gh): Sync actions
2025-05-23 23:00:29 +02:00
John Molakvoæ 0795408e6a Merge pull request #53054 from nextcloud/feat/workflow-generator
feat: auto-generate changelog on release
2025-05-23 21:19:03 +02:00
Joas Schilling 94e071e30f ci: Harden some and ignore others that are blocked from forks
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-23 21:13:44 +02:00
Joas Schilling 519d77db33 ci: Pin more actions, images and permissions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-23 21:03:04 +02:00
Joas Schilling d22a4cab90 ci: Try to pin images
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-23 20:29:53 +02:00
Andy Scherzinger 505d63363c ci(gh): Pin action to a hash
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-05-23 19:53:18 +02:00
Andy Scherzinger 8b92f695b7 ci(gh): Sync actions
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-05-23 19:51:49 +02:00
Daniel 8cf03bd145 Merge pull request #52914 from nextcloud/bug/noid/hide-guests-groups
fix: hide guests group from principal backend
2025-05-23 18:19:57 +02:00
Daniel Kesselberg 4da8edc941 chore(codeowners): add codeowners for calendar and contacts api
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-23 18:07:15 +02:00
Daniel Kesselberg 5876653677 fix: hide guests group from principal backend
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-23 15:24:32 +02:00
Daniel Kesselberg 3d8da21129 docs(caldav): update documentation for calendar search
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-23 14:37:20 +02:00
Marcel Klehr 166f98445a Merge pull request #53068 from nextcloud/rakekniven-patch-2
chore(18n): More natural english
2025-05-23 14:06:36 +02:00
Joas Schilling 7da9f9ec7f Merge pull request #53071 from nextcloud/bugfix/noid/fix-psr4-class
fix(autoloader): Fix location of class to be autoloadable
2025-05-23 13:32:53 +02:00
Joas Schilling 05a9ee1014 fix(autoloader): Fix location of class to be autoloadable
> Class FeedBackHandler located in ./core/ajax/update.php does not comply with psr-4 autoloading standard (rule: OC\Core\ => ./core). Skipping.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-23 10:23:03 +02:00
Joas Schilling e064af3149 fix(l10n): Fix one more plural
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-23 09:56:15 +02:00
Jérôme Herbinet 54a58c0dda ci(cypress): replace "remove group" with "delete group"
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2025-05-23 09:45:37 +02:00
Jérôme Herbinet 8f6bb92df8 chore: recompile assets
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2025-05-23 09:45:28 +02:00
Jérôme Herbinet 41dc76c450 refactor(settings): replace "remove" wording with "delete"
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2025-05-23 09:42:30 +02:00
Marcel Klehr 1afc1805c4 fix: Correct translation method use
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-05-23 09:38:30 +02:00
rakekniven 8be6518e0c fix(SetupChecks): Update TaskProcessingPickupSpeed
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-05-23 09:38:09 +02:00
rakekniven cca0a757fe chore(18n): More natural english
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-05-23 09:36:58 +02:00
Joas Schilling 256b54858e Merge pull request #53058 from nextcloud/automated/noid/master-update-code-signing-crl
[master] fix(security): Update code signing revocation list
2025-05-23 09:23:54 +02:00
nextcloud-command 0d9613a60c fix(security): Update code signing revocation list
Signed-off-by: GitHub <noreply@github.com>
2025-05-23 02:38:49 +00:00
Nextcloud bot 0a2367c879 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-23 00:22:08 +00:00
Kate fb4a06fef8 Merge pull request #53045 from nextcloud/feat/user-get-quota-bytes 2025-05-22 17:29:22 +02:00
F. E Noel Nfebe dc8799fcb9 Merge pull request #53053 from nextcloud/patch/52833
fix: Use logger correctly in UserRow.vue
2025-05-22 17:04:01 +02:00
skjnldsv a4a3d15d82 feat: auto-generate changelog on release
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-05-22 16:58:06 +02:00
nextcloud-command 6cad5254b8 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-22 14:14:14 +00:00
nfebe 56301a1e72 fix: Use logger correctly in UserRow.vue
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-22 15:02:31 +01:00
F. E Noel Nfebe 461f1357df Merge pull request #52833 from nextcloud/fix/44492/settings-remove-user-manager
fix(settings): Send update request when clearing user manager
2025-05-22 15:49:42 +02:00
nextcloud-command 3495fb7228 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-22 12:41:04 +00:00
nfebe 3e0368e142 test(settings): Test user manager can be set and unset
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-22 13:36:32 +01:00
nfebe 1301cf5a94 fix(settings): Prevent double request on manager change
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-22 13:33:24 +01:00
Ferdinand Thiessen fad35370e1 fix: correctly unset account manager
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-22 13:33:23 +01:00
nfebe 03232422b4 fix(settings): Send update request when clearing user manager
- Update setUserData to send PUT request for empty manager values
- Remove clear button from manager select in UserRow
- Simplify manager update logic in UserRow
- Ensure consistent API behavior for empty values in allowedEmpty fields

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-22 13:33:23 +01:00
Marcel Klehr 1015b7c75d Merge pull request #53001 from nextcloud/feat/setupcheck-task-pickup-speed
feat(SetupChecks): Add check for TaskProcessing pickup speed
2025-05-22 13:28:28 +02:00
Ferdinand Thiessen e143921896 feat(IUser): add getQuotaBytes method to get machine readable quota
Proper replacement for deprecated `OC_Util::getUserQuota`.
Also we still use this in some cases we can now replace, moreover it
just makes sense to have a machine readable format in the API instead of
only the human readable format which is less precise.
Alings also with `getQuota` of the quota storage, which already returned
the machine readable format.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-22 12:50:38 +02:00
Marcel Klehr f8f26952d1 feat(SetupChecks): Add check for TaskProcessing pickup speed
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-05-22 12:50:00 +02:00
Louis a48bc55e2a Merge pull request #52810 from nextcloud/artonge/feat/do_not_require_samesite_strict_cookie_on_public.php 2025-05-22 10:30:16 +02:00
Nextcloud bot f71791bb25 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-22 00:22:42 +00:00
Daniel 5b554fe962 Merge pull request #53029 from nextcloud/fix/caldav/no-invitations-to-circles
fix(caldav): don't send invitations to circles
2025-05-21 16:15:46 +02:00
Louis Chemineau ec1db0c32a fix: Replace the deprecated direct download link with the public DAV endpoint
Follow-up of #48098

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-05-21 16:01:54 +02:00
Louis Chemineau 009d0c550c fix: Move CSRF check from base to PublicAuth for public.php
This currently prevent directly accessing a ressource when clicking on a link on a third party site. Example, clicking on `https://example.com/public.php/dav/files/pqLWcA269zfzXez/?accept=zip` in a GitHub comment.

Skipping the check is an issue with password protected shares, as it allows third party sites to request the ressource when the user already entered the password, aka CSRF.  So after removing the check from `base.php`, we need to add the it again in the `PublicAuth` plugin.

We also add a redirect to be helpful to the user.

**Warning**: this adds the limitation that clicking on a direct download link for password protected shares will redirect you to the password form, and then to the main share view.

Fix #52482

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-05-21 16:01:36 +02:00
John Molakvoæ 64ba0feef2 Merge pull request #53032 from nextcloud/fix/search-tags-lowercase 2025-05-21 15:28:38 +02:00
nextcloud-command 48bd8f8073 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-21 12:46:36 +00:00
skjnldsv 3268899d3d fix(systemtags): case-insensitive search
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-05-21 12:44:43 +00:00
Richard Steinmetz 9a74d9a1a5 fix(caldav): don't send invitations to circles
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-05-21 13:28:57 +02:00
Joas Schilling c02e5608ff Merge pull request #53007 from nextcloud/tests/noid/more-phpunit10-apps
test: Migrate theming and sharebymail to PHPUnit10
2025-05-21 08:34:15 +02:00
Joas Schilling ba6c370101 Merge pull request #52932 from nextcloud/tests/noid/speed-up-comments-test
test: Speed up comments test
2025-05-21 08:26:30 +02:00
Joas Schilling ad7a050f96 fix: Revert "fix(db): Store last insert id before reconnect"
This reverts commit df94cceb7b.
There were records of some old IDs being read which is much worse

Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-21 07:55:42 +02:00
Joas Schilling 0d79156bb2 test: Speed up comments test
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-21 07:53:23 +02:00
Joas Schilling c45170d787 Merge pull request #53012 from nextcloud/automated/noid/master-update-ca-cert-bundle
[master] fix(security): Update CA certificate bundle
2025-05-21 07:47:35 +02:00
nextcloud-command 3f36d868ac fix(security): Update CA certificate bundle
Signed-off-by: GitHub <noreply@github.com>
2025-05-21 02:37:29 +00:00
Nextcloud bot 21d79e2308 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-21 00:24:39 +00:00
Joas Schilling bcf46ab575 test: Migrate theming and sharebymail to PHPUnit10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-20 23:39:19 +02:00
Joas Schilling 913026047c Merge pull request #53005 from nextcloud/bugfix/noid/fix-icon-builder-warning
fix(theming): Instead of expecting a warning handle it properly
2025-05-20 23:38:42 +02:00
Joas Schilling b8fde8b7cb fix(theming): Instead of expecting a warning handle it properly
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-20 23:06:27 +02:00
Kate 33412e492d Merge pull request #52927 from nextcloud/tests/noid/migrate-files-external-to-phpunit10 2025-05-20 22:43:40 +02:00
Kate 621b67987c Merge pull request #52933 from nextcloud/tests/noid/migrate-files_versions 2025-05-20 22:24:15 +02:00
Arthur Schiwon bdc68989d5 fix: unbloc ffmpeg on some broken videos
Co-authored-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-05-20 22:12:13 +02:00
Joas Schilling 2e0eef00ab test: Prepare files_external for PHPUnit10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-20 21:43:43 +02:00
Joas Schilling 6bb2fc675b test: Migrate files_versions to PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-20 21:42:56 +02:00
Kent Delante 705aee5aa0 fix(files_trashbin): check if there is enough space before restoring
Signed-off-by: Kent Delante <kent.delante@proton.me>
2025-05-20 20:53:02 +08:00
Kate 68b2a6261d Merge pull request #52943 from nextcloud/feat/http/request-header-attribute 2025-05-20 14:41:34 +02:00
Kate 08b9ecafe5 Merge pull request #52972 from nextcloud/fix/setupmanager/home-root-providers-register-mounts 2025-05-20 14:17:16 +02:00
Kate 95b961c6ad Merge pull request #52982 from nextcloud/chore/user-mount-events-since 2025-05-20 14:13:43 +02:00
Stephan Orbaugh edf21d9242 Merge pull request #52859 from Murena-SAS/dev/external-storage-previews
fix: Throw exception in PreviewManager when preview is not available
2025-05-20 13:32:45 +02:00
provokateurin 40973ddde0 chore: Set correct version for new UserMount events
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-20 13:13:49 +02:00
provokateurin ad031188bc feat(Http): Add RequestHeader attribute
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-20 13:10:34 +02:00
Kate 565d524cd4 Merge pull request #52971 from nextcloud/perf/noid/query-performance 2025-05-20 09:54:52 +02:00
Akhil e537500c8e fix: Throw exception in PreviewManager when preview is not available
Signed-off-by: Akhil <akhil@e.email>
2025-05-20 13:17:40 +05:30
provokateurin ecfa58d3d7 fix(SetupManager): Include home and root providers when registering mounts
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-20 09:46:53 +02:00
Joas Schilling 1d8556ecc3 fix(throttler): Don't query bruteforce attempts twice
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-20 08:37:23 +02:00
Nextcloud bot cc22d74887 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-20 00:22:25 +00:00
Elizabeth Danzberger 99148e9683 Merge pull request #52514 from nextcloud/feat/template-field-extraction-improvements
feat: only get template fields once selected
2025-05-19 19:23:19 -04:00
nextcloud-command 9a349edf78 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-19 23:04:30 +00:00
Elizabeth Danzberger a908d67570 chore: update open api spec again
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
2025-05-19 18:26:27 -04:00
Elizabeth Danzberger 1f7bd449fb chore: update open api spec
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
2025-05-19 18:19:55 -04:00
Elizabeth Danzberger 5c7216f3fd feat: only load template fields when requested
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
2025-05-19 17:51:25 -04:00
Joas Schilling 5129a79720 Merge pull request #52962 from nextcloud/revert-52503-fix/files_sharing/filter-own-reshared-shares
Revert "fix(files_sharing): Filter own shares that are reshares"
2025-05-19 19:35:40 +02:00
Christoph Wurst 80b21cdc6e Merge pull request #52879 from nextcloud/bug/noid/clear-dav-photo-cache
Add command to clear dav's photo cache
2025-05-19 18:10:07 +02:00
Kate 06ce2ccebe Merge pull request #50157 from nextcloud/feat/mountmanager/emit-events 2025-05-19 17:47:31 +02:00
Côme Chilliet 0b2cf0bffc Merge pull request #52951 from nextcloud/fix/add-autoload.php-for-tests
chore: Add an autoload.php file for tests relying on core class
2025-05-19 17:43:46 +02:00
Joas Schilling 9637fe6474 Revert "fix(files_sharing): Filter own shares that are reshares" 2025-05-19 17:16:39 +02:00
Kate 5ba9bc2dd6 Merge pull request #52930 from nextcloud/chore/depreate-oc-helper-ro 2025-05-19 16:36:31 +02:00
provokateurin 6818aa9b12 feat(UserMountCache): Emit events for added, removed and updated mounts
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-19 13:54:51 +02:00
Kate 13f23061e8 Merge pull request #52891 from nextcloud/chore/nix-flake 2025-05-19 11:51:22 +02:00
Côme Chilliet 4574710c11 chore: Add an autoload.php file for tests relying on core class
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-19 11:30:37 +02:00
Kate 9fa0477ab2 Merge pull request #52503 from nextcloud/fix/files_sharing/filter-own-reshared-shares 2025-05-19 10:20:17 +02:00
Marcel Müller d63803d477 Merge pull request #52942 from nextcloud/fix/noid/encrypted-propagation-test
fix(tests): Register mount in loginHelper as well
2025-05-19 09:47:31 +02:00
Marcel Müller 612a1560b1 fix(tests): Register mount in loginHelper as well
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-05-19 08:56:13 +02:00
provokateurin 7c6602cd8d fix(files_sharing): Filter own shares that are reshares
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-19 08:18:16 +02:00
Kate 249e33fcd6 Merge pull request #52901 from nextcloud/chore/remove-dead-code-files 2025-05-19 07:02:41 +02:00
Kate 6b4f5c567c Merge pull request #52848 from nextcloud/fix/cleanup-servercontainer 2025-05-19 07:02:11 +02:00
Nextcloud bot e8d4c76ca5 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-19 00:22:46 +00:00
Ferdinand Thiessen 0e20d9e736 Merge pull request #52937 from nextcloud/fix/s3-versions³
fix(files_versions): only close stream if still open, fixing S3
2025-05-18 19:53:17 +02:00
Ferdinand Thiessen 2dcadd2603 fix(files_versions): only close stream if still open, fixing S3
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-18 16:48:56 +02:00
provokateurin 0c2cc0e9e1 chore: Add nix flake with development shell
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-18 13:59:32 +02:00
Nextcloud bot b9983cbd42 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-18 00:22:42 +00:00
Ferdinand Thiessen 22889d4f1d chore: deprecate OC_Helper::isReadOnlyConfigEnabled
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-17 13:18:49 +02:00
Ferdinand Thiessen e2a331f53d Merge pull request #52890 from nextcloud/chore/move-stream-copy-implementation
chore: move streamCopy implementation from `OC_Helper` to `OCP\Files`
2025-05-17 12:01:44 +02:00
dependabot[bot] 0c2934e885 Merge pull request #52921 from nextcloud/dependabot/npm_and_yarn/zip.js/zip.js-2.7.61 2025-05-17 09:01:35 +00:00
dependabot[bot] fa7a81baa4 Merge pull request #52922 from nextcloud/dependabot/npm_and_yarn/sass-1.89.0 2025-05-17 08:59:42 +00:00
Ferdinand Thiessen f47c15f61e Merge pull request #52912 from nextcloud/chore/remove-deprecated-oc-helper
chore!: remove legacy functions from `OC_Helper` deprecated before v10
2025-05-17 10:55:09 +02:00
dependabot[bot] 8f30d21a4a chore(deps-dev): Bump sass from 1.87.0 to 1.89.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.87.0 to 1.89.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.87.0...1.89.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.89.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-17 01:53:30 +00:00
dependabot[bot] d4984b8c13 chore(deps-dev): Bump @zip.js/zip.js from 2.7.60 to 2.7.61
Bumps [@zip.js/zip.js](https://github.com/gildas-lormeau/zip.js) from 2.7.60 to 2.7.61.
- [Release notes](https://github.com/gildas-lormeau/zip.js/releases)
- [Commits](https://github.com/gildas-lormeau/zip.js/compare/v2.7.60...v2.7.61)

---
updated-dependencies:
- dependency-name: "@zip.js/zip.js"
  dependency-version: 2.7.61
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-17 01:52:48 +00:00
Nextcloud bot e4e71c073d fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-17 00:23:16 +00:00
Ferdinand Thiessen 217be4e765 Merge pull request #52918 from nextcloud/tests/noid/migrate-more-apps-to-phpunit10
test: Migrate settings and provisioning_api to PHPUnit10
2025-05-17 01:01:39 +02:00
Joas Schilling 460d3e8ba9 test: Migrate settings and provisioning_api to PHPUnit10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-16 23:10:14 +02:00
Ferdinand Thiessen 494a079321 test: replace OC_Helper:rmdirr with OCP\Files::rmdirr
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 23:09:37 +02:00
Ferdinand Thiessen 3868d62a8f test: move legacy tests to non-depecated class tests
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 23:09:14 +02:00
Ferdinand Thiessen 3d33091d2c chore!: remove legacy functions from OC_Helper deprecated before v10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 22:57:50 +02:00
Ferdinand Thiessen 6694cf4be5 Merge pull request #52911 from nextcloud/chore/deprecate-ochelper-copyr
chore: deprecate OC_Helper::copyr
2025-05-16 22:57:16 +02:00
Marcel Müller f9aa4e2e04 feat(integrity): Allow to run check for all apps
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-05-16 18:21:37 +02:00
Ferdinand Thiessen bd91db8e20 chore: deprecate OC_Helper::copyr
Inline it into Installer as needed.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 17:32:45 +02:00
Ferdinand Thiessen 0f69648d0a fix(files_version): use Storage::writeStream instead of deprecated streamCopy if possible
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 17:28:24 +02:00
Ferdinand Thiessen 970e11bba5 Merge pull request #52905 from nextcloud/test/autotest-git
test: restore .htaccess file after running unit tests
2025-05-16 16:09:56 +02:00
dependabot[bot] 8ef8945389 Merge pull request #52887 from nextcloud/dependabot/npm_and_yarn/undici-5.29.0 2025-05-16 13:39:09 +00:00
Ferdinand Thiessen 14023ccc13 Merge pull request #52821 from nextcloud/fix/file-drop
fix(dav): handle uploading folders with names of existing file for file drop plugin
2025-05-16 15:38:36 +02:00
Ferdinand Thiessen e693a5d4a5 fix(dav): correctly handle uploading folders with same name as a file
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 14:38:41 +02:00
Ferdinand Thiessen 3d113ab6cc refactor(dav): use Node API instead of private files view for filedrop plugin
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 14:37:30 +02:00
Ferdinand Thiessen 3ab905dbfa Merge pull request #52893 from nextcloud/chore/remove-files-templates
chore: remove files file templates deprecated since v18 and provided by richdocuments
2025-05-16 14:36:06 +02:00
Ferdinand Thiessen 44c7cbcee5 test: restore .htaccess file after running unit tests
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 13:10:07 +02:00
Ferdinand Thiessen 4a9dc6c64d refactor: move tag handling from files handler to files_sharing
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 13:09:03 +02:00
Ferdinand Thiessen c8138002ab chore(files): remove dead code from files helper
Its not used anywhere and uses deprecated / legacy API.
Lets remove 🧹

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 13:09:03 +02:00
Ferdinand Thiessen 01db539d0a chore: move streamCopy implementation from OC_Helper to OCP\Files
The function was already there but called the legacy version.
So moved the implementation and migrated all usages of it.
Sadly the interface was slightly different so adjusted it to be
compatible with both legacy and the OCP one.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 13:03:05 +02:00
Ferdinand Thiessen 1b7e04d317 chore: remove files file templates deprecated since v18 and provided by richdocuments
- leftover from https://github.com/nextcloud/server/pull/17559
- The file templates are already provided in a non-deprecated way by
  richdocuments.
- The template manager used here is deprecated for 14 versions now...

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 12:45:55 +02:00
Kate fc9310feef Merge pull request #52885 from nextcloud/fix/docblock-color
fix(OCP\Color): use correct doc block type
2025-05-16 12:41:51 +02:00
Richard Steinmetz 3699eed678 Merge pull request #52708 from nextcloud/fix/dav/update-rooms-resources-background-job
fix(dav): add repair step to queue job to update rooms and resources
2025-05-16 12:39:51 +02:00
Côme Chilliet 12fdcd0826 Merge pull request #52894 from nextcloud/chore/move-impl-util
chore: move implementation to non-deprecated OCP\Util from OC_Helper
2025-05-16 12:28:42 +02:00
F. E Noel Nfebe 6b83b89fe7 Merge pull request #52772 from nextcloud/fix/unified-search-filter-reset-on-load-more
fix(unified_search): Maintain filters when loading more results
2025-05-16 12:28:26 +02:00
nextcloud-command 60c911c3d0 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-16 10:01:41 +00:00
nfebe 04f227a102 fix(unified_search): Reset result limit for new search requests
Before now the result limit is never reset until the page is refreshed.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-16 10:52:40 +01:00
nfebe b35fad7a03 fix(unified_search): Maintain non-provider filters when loading more results
Maintain existing non-provider filters (like date and person filters) while
loading more results for a specific provider.

This now works as the provider data passed to the `newResults` array after search
is built dynamically and not manually, the result of a manual build was that the
`provider.filters` properpy which is used in the `find` method was being left out
in the providers pushed into the results array.

Fixes #52081

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-16 10:52:28 +01:00
Côme Chilliet 70ef0a8db7 fix: Remove calls to legacy callers in tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 11:47:38 +02:00
Ferdinand Thiessen 802def31f2 chore: move implementation to non-deprecated OCP\Util from OC_Helper
Only moves the implementation where it was already existing and adds
more helpful deprecation messages.
This way we can in the future just remove the OC_Helper variants.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 10:56:58 +02:00
Côme Chilliet 2406677b40 fix: Do not use circle provider class constant
This is to avoid issues if the circles app is disabled but you still
 have circles shares in your DB

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 10:50:41 +02:00
Côme Chilliet 2419f4bebb fix: Count on the circles application to register its share provider
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 10:49:04 +02:00
Côme Chilliet 0243d23b8c fix(tests): Remove calls to removed getMountProviderCollection from tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 10:49:03 +02:00
Côme Chilliet 369900e5a5 fix: Remove deprecated getters from Server that were previously removed from public interface
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 10:49:01 +02:00
Côme Chilliet eccc727f4e fix: Remove more unused deprecated getters from IServerContainer
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 10:48:05 +02:00
Côme Chilliet 998062d342 fix: Cleanup share ProviderFactory to correctly use DI instead of deprecated getters
Ideally circles and talk should migrate to calling registerProvider and
 core would not need to use their OCA classes like currently.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 10:48:03 +02:00
Côme Chilliet c3edaeebba fix: Remove deprecated getters in IServerContainer which are not used anymore
For now I left the ones which are called from lib/
Next step is to fix all calls and remove those as well.
Also the getters should be removed from the implementation.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-16 10:47:32 +02:00
Christoph Wurst 47c0786a3f Merge pull request #52871 from AndyXheli/patch-2
fix(previews): lower log level when cached preview isn't found
2025-05-16 10:42:51 +02:00
Nextcloud bot b9480f44dc fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-16 00:22:51 +00:00
Kate 4b62b5785e Merge pull request #52886 from nextcloud/chore/ignore-3rdparty
chore: ignore 3rdparty while psalm linting
2025-05-15 22:36:52 +02:00
John Molakvoæ 183c253f5e Merge pull request #52533 from nextcloud/fix/no-account-filter-public-share
fix: do not show account filter for public shares
2025-05-15 19:25:31 +02:00
dependabot[bot] f61e865980 chore(deps): Bump undici from 5.28.5 to 5.29.0
Bumps [undici](https://github.com/nodejs/undici) from 5.28.5 to 5.29.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.5...v5.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 5.29.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-15 16:45:04 +00:00
Ferdinand Thiessen 2986fead40 chore: ignore 3rdparty while psalm linting
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-15 18:38:38 +02:00
Ferdinand Thiessen aabb4e547a fix(OCP\Color): use correct doc block type
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-15 18:35:14 +02:00
Robin Appelman 48e94baeeb Merge pull request #52873 from nextcloud/cache-rename-source-error
fix: improve error message when cache rename source can't be found
2025-05-15 18:34:07 +02:00
Daniel Kesselberg 3d1de793b1 refactor(dav): replace IAppData with IAppDataFactory for PhotoCache
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-15 18:28:45 +02:00
Kate cf44995aac Merge pull request #52846 from nextcloud/refactor/ocp-deprecations 2025-05-15 18:05:06 +02:00
John Molakvoæ 1987b176a5 Merge pull request #52862 from nextcloud/feat/mimes-names 2025-05-15 17:44:35 +02:00
Daniel Kesselberg 8a1ae0934e feat: add command to clear contacts photo cache
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-15 17:20:57 +02:00
nextcloud-command 8f28c8c59d chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-15 15:09:11 +00:00
John Molakvoæ (skjnldsv) 62a9ec2067 fix(core): remove untranslated mime names
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-15 15:07:08 +00:00
John Molakvoæ (skjnldsv) 20e69bc1b0 feat(files): show readable mime if available
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-15 15:07:08 +00:00
John Molakvoæ (skjnldsv) ada985e651 chore: update mimetypenames
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-15 15:07:08 +00:00
Ferdinand Thiessen 74bded74a3 refactor: migrate from OC to OCP in public interfaces
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-15 16:17:47 +02:00
Ferdinand Thiessen b6515f9402 refactor: add missing template implements where needed
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-15 16:15:13 +02:00
Kate 4aa4972550 Merge pull request #52870 from nextcloud/chore/remove-get-storage 2025-05-15 16:04:45 +02:00
Joas Schilling 3e4ff2624c Merge pull request #42678 from nextcloud/refactor/app/remove-register-routes
refactor(App): Remove registerRoutes method
2025-05-15 15:10:28 +02:00
Robin Appelman 5329c373cc fix: improve error message when cache rename source can't be found
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-15 15:06:55 +02:00
AndyXheli ecd1d5dde2 fix(previews): lower log level when cached preview isn't found
Since this PR #52221 was implemented, the log file has been flooded with warnings stating, "Cached preview not found for file; generating a new preview." This appears to be more of an informational message rather than a warning. This PR will change it from warning to debug

Original PR
#52221

Signed-off-by: AndyXheli <andyxheli@gmail.com>
2025-05-15 07:34:40 -05:00
Ferdinand Thiessen 54eaad76c0 chore!(\OCP\Files): remove deprecated static getStorage method
Was deprecated since Nextcloud 14 and is not used anymore.
Removing allows us to clean the OCP psalm baseline.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-15 14:18:28 +02:00
Ferdinand Thiessen e4ed062d68 fix(RouteParser): bail out if method name contains hashtag
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-15 13:57:14 +02:00
provokateurin 63ba61487b chore(AppFramework): Remove unused RouteConfig class and migrate tests to RouteParser
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-15 13:57:14 +02:00
provokateurin db70ff6488 refactor(App): Remove registerRoutes method
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-15 13:46:14 +02:00
Robin Appelman 07fa9b9311 Merge pull request #51818 from nextcloud/info-storage-command
feat: add command to get basic storage info
2025-05-15 13:42:41 +02:00
Kate 2a01454fbf Merge pull request #52860 from nextcloud/feat/psalm/error-deprecations 2025-05-15 12:46:58 +02:00
Kate 701fcbf46b Merge pull request #52853 from nextcloud/refactor/rector-top-level 2025-05-15 12:41:51 +02:00
Robin Appelman cfc4196038 feat: add mount id to info:storage(s)
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-15 11:49:09 +02:00
provokateurin 0f2f4aab5c feat(psalm): Mark all usage of deprecated code as error
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-15 11:48:40 +02:00
Robin Appelman 6927edc9ff feat: add command to get basic storage info
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-15 11:48:28 +02:00
John Molakvoæ cac44fd924 Merge pull request #52822 from nextcloud/feat/mime-names 2025-05-15 11:41:12 +02:00
provokateurin 3b42c92d69 refactor: Extend rector to ocs/ and ocs-provider/
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-15 10:30:03 +02:00
provokateurin 6d6d83d3d9 refactor: Extend rector to all top-level files
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-15 10:30:02 +02:00
Joas Schilling c62fa55007 Merge pull request #52851 from nextcloud/ci/noid/update-phpunit10
test: Prepare tests/ and some apps/*/tests/ for PHPUnit10
2025-05-15 09:30:33 +02:00
Joas Schilling 5f9117b939 test: Fix coding standards
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:48:13 +02:00
Joas Schilling 57a49a50aa test: Make extending tests also static already
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:29:33 +02:00
Joas Schilling ea0229dc86 test: Fix some apps/*/tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:26:15 +02:00
Joas Schilling 437f380fd9 test: Fix most tests/lib/DB/QueryBuilder
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:25:01 +02:00
Joas Schilling a316ae1590 fix: Fix warning when crash reporter fails to get loaded
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:25:01 +02:00
Joas Schilling 3e7db013c1 test: Fix non-static data providers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:25:01 +02:00
Joas Schilling 9621e451ba test: Fix tests/lib/Files
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:25:00 +02:00
Joas Schilling e0a1c84ebb test: Make Archive test order independent
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:25:00 +02:00
Joas Schilling 2c74609e07 test: Fix tests/lib/[S-Z]*
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:24:59 +02:00
Joas Schilling f474b5b3a9 test: Fix tests/lib/Security/
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:24:59 +02:00
Joas Schilling c5cd7ef9b9 test: Fix tests/lib/[H-N]*
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:24:59 +02:00
Joas Schilling 3cc4410273 test: Fix tests/lib/[C-G]*
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:24:57 +02:00
Joas Schilling 720ab52e07 test: Fix tests/lib/App*
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:21:24 +02:00
Joas Schilling 5283e9a5e2 test: Cleanup tests/lib/Files/*
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:21:22 +02:00
Joas Schilling 53b116b8a5 test: Remove more withConsecutive
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:18:26 +02:00
F. E Noel Nfebe 158b3ef859 Merge pull request #52813 from nextcloud/fix/52794/share-advanced-settings
fix(files_sharing): Show note if note exists on share
2025-05-15 07:49:26 +02:00
Nextcloud bot fee878308e fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-15 00:22:57 +00:00
Kate 8ecadfa6bf Merge pull request #52820 from nextcloud/refactor/rector-core 2025-05-15 01:42:15 +02:00
Côme Chilliet 300964ec4b Merge pull request #52840 from nextcloud/fix/remove-broken-versions-routes
fix(files_versions): Remove routes leading to deleted ajax files
2025-05-15 00:19:30 +02:00
provokateurin 82fb8f8508 refactor: Extend rector to core/
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-15 00:16:54 +02:00
Kate c3ddd1da46 Merge pull request #52669 from nextcloud/chore/refactor-update-notification+ 2025-05-15 00:07:31 +02:00
John Molakvoæ (skjnldsv) ed8ebac562 chore: add missing GPL-2.0-only license
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-14 23:10:56 +02:00
Côme Chilliet baae99eaad Merge pull request #52667 from nextcloud/fix/improve-init-profiling
Improve init profiling
2025-05-14 22:57:55 +02:00
John Molakvoæ (skjnldsv) d7c70d0367 fix(core): force sorting mimetypenames.dist.json
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-14 22:55:06 +02:00
John Molakvoæ (skjnldsv) 24bc1d606e feat(core): add human readable mimes
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-14 22:55:06 +02:00
John Molakvoæ e65084adda Merge pull request #52841 from nextcloud/chore/dependabot 2025-05-14 22:47:20 +02:00
John Molakvoæ 970eb8299f Merge pull request #52359 from nextcloud/feat/mime-column 2025-05-14 22:42:27 +02:00
nextcloud-command 86c591ba5f chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-14 22:39:15 +02:00
nfebe 7810a9005e test(file_sharing): Do not open advanced settings manually
If a share note is present, the advanced settings should expand automatically,
without the user needing to click.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-14 22:39:15 +02:00
nfebe 63cf3f53c3 fix(files_sharing): Show note if note exists on share
When a share includes a note, ensure the note checkbox is checked and the note is
displayed when reopening the share sidebar.

Fixes: #52794.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-14 22:39:15 +02:00
Côme Chilliet 6974015e39 fix: Update psalm baseline to remove fixed issue
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-14 22:29:55 +02:00
Ferdinand Thiessen fd8df1003d chore: remove reviewers from dependendabot - its deprecated
Instead make sure all PRs get a reviewer assigned.
Also fixed an issue with the `dist/` folder as there is no automated PR
adding dist files - it needs to be manually updated, so that a PR
containing changes has to be reviewed properly!

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-14 22:27:25 +02:00
John Molakvoæ ae63945736 Merge pull request #52544 from nextcloud/chore/drop-deprecated-account-scopes 2025-05-14 22:15:01 +02:00
John Molakvoæ b3b63020c9 Merge pull request #52812 from nextcloud/chore/oc-helper-rmdirr 2025-05-14 21:53:47 +02:00
Côme Chilliet fd4c103e8b fix(files_versions): Remove routes leading to deleted ajax files
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-14 21:36:33 +02:00
nextcloud-command 8576c8baa6 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-14 17:53:32 +00:00
John Molakvoæ 7fc0318475 chore(files): adjust renaming action comment
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-05-14 17:51:12 +00:00
John Molakvoæ 006d4ee952 fix(files): hide mime column by default
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-05-14 17:51:12 +00:00
John Molakvoæ (skjnldsv) c7a50c708d fix(files): refresh Node data on extension change
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-14 17:51:12 +00:00
John Molakvoæ (skjnldsv) a4ab5a3cdf feat(files): allow showing file type (mime) column
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-14 17:51:12 +00:00
Benjamin Gaussorgues 1b72ddd8c8 Merge pull request #52684 from nextcloud/bugfix/noid/last-insert-id-when-reconnecting 2025-05-14 19:44:30 +02:00
Côme Chilliet 2cd491f491 Merge pull request #48560 from nextcloud/fix/migrate-encryption-away-from-hooks
feat(encryption): Migrate from hooks to events
2025-05-14 19:25:51 +02:00
Côme Chilliet 42f45030ff Merge pull request #52817 from nextcloud/chore/deps/rector-2.0
chore(deps): Update rector to ^2.0
2025-05-14 19:19:27 +02:00
Côme Chilliet 0c56605497 fix: Fix psalm issue and update baseline
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-14 19:18:31 +02:00
Ferdinand Thiessen 1b273b8c2c chore(IAccountManager): remove deprecated visibility constants
Those constants are not used anywhere anymore and are deprecated for
more than ten versions. So its time to cleanup the interface.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-14 19:15:24 +02:00
Andy Scherzinger 14f79829f3 Merge pull request #52775 from nextcloud/nested-jail-root
fix unjailedroot of nested jails if there are other wrappers in between
2025-05-14 17:36:55 +02:00
John Molakvoæ 4635cb4b2e Merge pull request #52809 from nextcloud/fix/preview-check 2025-05-14 15:50:01 +02:00
provokateurin 78a175fc74 refactor: Apply rector refactorings
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-14 15:29:02 +02:00
provokateurin 953d1ab962 chore(deps): Update rector to ^2.0
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-14 15:28:37 +02:00
provokateurin 2919685603 ci: Add vendor-bin/rector to dependabot
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-14 15:28:14 +02:00
Kate bfa494f247 Merge pull request #52800 from nextcloud/debt/noid/simple-file-generic-exception 2025-05-14 15:25:41 +02:00
Ferdinand Thiessen 072d4e8cba chore: move implementation from OC legacy to OCP\Files
- move implementation to the OCP variant that called the legacy before
- add the missing deprecation notice
- add missing parameter to align both signatures
- use OCP\Files where this method is still used

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-14 14:55:45 +02:00
Daniel 7523c38e58 Merge pull request #52798 from nextcloud/bug/noid/log-requests-exceeding-rate-limit
fix: log requests exceeding the rate limiting
2025-05-14 14:54:57 +02:00
Ferdinand Thiessen 1c7e4a1ba6 Merge pull request #52801 from nextcloud/chore/oc-helper-filesize
chore: replace legacy OC_Helper calls with OCP\Util
2025-05-14 14:37:13 +02:00
nextcloud-command 40239518c1 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-14 12:33:29 +00:00
John Molakvoæ (skjnldsv) 37d4bdce00 fix(files): do not even try to fetch a preview if èhas-preview` is false
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-14 14:22:01 +02:00
Ferdinand Thiessen a01e85799c Merge pull request #52802 from nextcloud/chore/oc-helper-can-exec
chore: deprecate \OC_Helper::canExecute
2025-05-14 12:45:25 +02:00
Daniel Kesselberg a53e15c971 fix: log requests exceeding the rate limiting
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-14 12:23:40 +02:00
Joas Schilling 7304756e03 test: Sort the reactions before comparing
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-14 11:42:52 +02:00
Robin Appelman 1950076ca1 Merge pull request #52378 from nextcloud/transfer-external-storage
feat: add option to include external storage when transfering files
2025-05-14 11:10:32 +02:00
Daniel 498c57f648 Merge pull request #52046 from nextcloud/bug/49834/calendar-unsharing
Introduce own method for calendar unsharing
2025-05-14 10:59:59 +02:00
John Molakvoæ 3aae7ae305 Merge pull request #52792 from nextcloud/fix/mime-fallback-public 2025-05-14 10:51:40 +02:00
Joas Schilling df94cceb7b fix(db): Store last insert id before reconnect
During a reconnect we are losing the connection and when the
realLastInsertId call is the one triggering the reconnect, it
does not return the ID. But inside the reconnect, we were able
to save the last insert id, so calling it a second time is going
to be successful.
We can not return the result on the initial call, as we are already
way deeper in the stack performing the actual database query on
the doctrine driver.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-14 10:27:00 +02:00
Robin Appelman b67a43764a Merge pull request #52694 from nextcloud/fixHardcodedVersionsFolder
fix(files_versions): Folder should not be hardcoded
2025-05-14 10:18:07 +02:00
Ferdinand Thiessen 1ae3fa4003 chore: replace leagcy OC_Helper calls with OCP\Util
- Replace legacy calls with OCP\Util
- Add missing deprecation notices
- Inline implementation in OCP\Util and call it from OC_Helper

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-14 10:18:04 +02:00
Kate 0f03a892b9 Merge pull request #52782 from nextcloud/feat/log-client-side-req-id 2025-05-14 10:07:36 +02:00
Ferdinand Thiessen 85a6b0d0eb chore: deprecate \OC_Helper::canExecute
replace this legacy method with just the IBinaryFinder

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-14 09:55:14 +02:00
Daniel Kesselberg 023b98c44b fix(dav): only consider user's principal for unsharing entries
Before: Find all entries in `dav_shares` with `access = 5` for the user's principal, as well as group and circle memberships.

After: Find all entries in `dav_shares` with `access = 5` solely for the user's principal.

Future support for unsharing group or circle principals could be considered as a feature enhancement.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-14 09:03:33 +02:00
Daniel Kesselberg c05d3fdb2e fix(caldav): prevent unshare entry creation for owner unsharing
- Introduces a `unshare` method in `CalDavBackend` to handle user unshares.
- Implements check to determine if unshare entry is needed based on group/circle membership.
- Ensures `updateShares` is only used when the calendar owner manages shares.
- Resolves issue where unsharing a calendar as owner created an unshare entry in `oc_dav_shares`.

Related PRs:
- https://github.com/nextcloud/server/pull/43117
- https://github.com/nextcloud/server/pull/47737

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-14 09:03:32 +02:00
Nextcloud bot a338772ddd fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-14 00:22:28 +00:00
Côme Chilliet 2b4bfcc212 fix(log): Only log client request id if present, and at the end
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-14 00:35:21 +02:00
Côme Chilliet 4c25654574 feat(log): Log the request id sent with the request
This should help matching client logs with server logs, hopefully.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-14 00:35:21 +02:00
Côme Chilliet 43418eea5f fix(tests): Set encryption configuration even earlier so that all users are created with private key
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet a86d917907 fix(encryption): Only prevent cache deletion if target is not object store in moveFromStorage
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet a79b5dea7c fix(encryption): Improve Update class and event listenening
to avoid back&forth between path and Node object

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 2d8f6b366a chore: Assert rename success in versionning tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet e6275f8759 fix: Preserve file id when moving from object store even if encryption wrapper is present
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 27599ef45d fix(encryption): Fix a PHP error in Encryption Util in specific situations
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 08bff4cf4a fix(admin_audit): Survive if file change id after rename (it should not)
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 367c877b7a fix(tests): Avoid user login before a private key is setup
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet f6f83430a9 chore: Update psalm baseline to remove fixed issue
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 561b590c77 chore(trashbin): Fix configuration mocking in trashbin tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 14872c8040 chore(files_versions): Only mock getSystemValue method to avoid problems in files_versions tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet e35a8ed063 fix(tests): Disable encryption wrapper when it makes sense
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 9bb0721d66 fix: Fix mtime preservation when moving a directory across storages with encryption registered
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 8779ae38a4 fix(encryption): Fix filesize for part files in Encryption wrapper
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 21233b7e17 fix(tests): Remove Encryption disabling in ViewTest to avoid side effects
Adapt tests a bit to make them pass with Encryption wrapper registered

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 38f341c179 fix(tests): Unregister encryption modules in ViewTest to avoid side effects
It was clearing the hooks with the same results before

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet 536ccf144c feat(encryption): Migrate from hooks to events
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet fb615ef9f8 Merge pull request #52688 from nextcloud/feat/ocp-sanitize-filenames
feat(FilenameValidator): allow to sanitize filenames
2025-05-13 23:35:43 +02:00
Daniel Kesselberg 866063c198 fix: annotate possible exceptions
File.getContent can throw a GenericFileException since https://github.com/nextcloud/server/pull/37943.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-13 22:27:19 +02:00
Christoph Wurst 8c68f1eeb7 Merge pull request #52778 from nextcloud/fix/noid-check-for-properties-before-processing
fix: check if properties exist before using them
2025-05-13 18:58:16 +02:00
Robin Appelman 1e72620169 fix: fix unjailedroot of nested jails if there are other wrappers in between
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-13 18:29:00 +02:00
Robin Appelman 0001c22668 test: add test for nested cache jail unjailedroot
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-13 18:29:00 +02:00
John Molakvoæ (skjnldsv) cd6a53ea4d fix(files_sharing): add mime fallback to public preview too
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-13 18:28:54 +02:00
John Molakvoæ b9da9416be Merge pull request #52785 from nextcloud/feat/file-drop-recursive 2025-05-13 18:27:19 +02:00
Côme Chilliet 20c6d1a7e9 feat: Improve init a bit, and add more profiling steps
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 16:08:49 +02:00
John Molakvoæ (skjnldsv) b286bca485 fix(dav): remove unnecessary plugin getHTTPMethods
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-13 16:03:20 +02:00
John Molakvoæ (skjnldsv) 4495794a0b feat(dav): allow uploading folders to public shares
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-13 16:03:20 +02:00
nextcloud-command 7a2d7baa32 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-13 12:30:05 +00:00
Ferdinand Thiessen e9382dc4da fix: do not show account filter for public shares
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-13 14:21:22 +02:00
Ferdinand Thiessen 6cf1870322 feat(FilenameValidator): allow to sanitize filenames
Share the filename sanitizing with the OCP filename validator.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-13 14:14:17 +02:00
Robin Appelman 56897b6f3c Merge pull request #52681 from nextcloud/occ-external-dependencies
feat: add command to check files_external dependencies
2025-05-13 11:13:24 +02:00
Ferdinand Thiessen 76696be762 chore: remove legacy migration step to remove background job
This is already included since Nextcloud 29, so the background job is
removed and the class does not exist anymore.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-13 10:04:35 +02:00
Ferdinand Thiessen 9255afaeab refactor(updatenotification): use consistant patterns for on-demand class members
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-13 10:04:35 +02:00
Ferdinand Thiessen be3cf85656 refactor(updatenotification): use constant instead of variable
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-13 10:04:35 +02:00
Ferdinand Thiessen 6e9b4eb0a8 refactor(updatenotification): add return types and fix typos
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-13 10:04:35 +02:00
Ferdinand Thiessen ff318138a2 refactor(updatenotification): use OCP\ServerVersion
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-13 10:00:34 +02:00
Ferdinand Thiessen 1a8a6bea97 refactor: use APP_NAME where possible
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-13 09:49:28 +02:00
Robin Appelman f97495bf5a feat: add command to check files_external dependencies
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-13 09:46:19 +02:00
Côme Chilliet 2f1c74d43f Merge pull request #51920 from nextcloud/newfolder-race-improvements
fix: improve handling of newFolder race condition handling
2025-05-13 09:16:54 +02:00
Nextcloud bot d4b38083d6 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-13 00:22:59 +00:00
Ferdinand Thiessen d0e9e2c859 Merge pull request #52771 from nextcloud/fix/update-notification-respect-config
fix(updatenotification): respect `updatechecker` config
2025-05-12 23:30:12 +02:00
SebastianKrupinski ebd80bc142 fix: check if properties exist before using them
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-05-12 15:44:07 -04:00
John Molakvoæ 0eb530ecde Merge pull request #52774 from nextcloud/feat/oracle-setup-cypres 2025-05-12 19:41:31 +02:00
Ferdinand Thiessen 957efe0670 fix(updatenotification): respect updatechecker config
If disabled:
- Hide admin settings
- Do not create Nextcloud server update notifications

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-12 18:06:41 +02:00
John Molakvoæ (skjnldsv) 3500018b56 feat(cypress): add oracle to setup tests
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-12 17:50:17 +02:00
Louis a2eed985aa Merge pull request #52686 from nextcloud/isNumericMtime 2025-05-12 13:21:51 +02:00
Robin Appelman 7e9fc7604a Merge pull request #52693 from nextcloud/config-system-set-json
feat: allow setting system config values with json value
2025-05-12 13:18:26 +02:00
Robin Appelman 768b101a9d Merge pull request #52706 from nextcloud/info-file-more-encryption-checks
feat: add more encryption checks to info:file
2025-05-12 13:17:26 +02:00
Robin Appelman e6bdfcd8ed Merge pull request #52665 from nextcloud/mountpoint-mkdir-quota
fix: create mountpoint folder even if the user has a quota of 0
2025-05-12 13:17:02 +02:00
Robin Appelman ffe10d4916 feat: allow setting system config values with json value
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-12 12:02:40 +02:00
John Molakvoæ ff1dfc6bd0 Merge pull request #52703 from nextcloud/feat/setup-checks
chore(cypress): add setup tests
2025-05-12 11:05:04 +02:00
Nextcloud bot 0827645b53 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-12 00:22:47 +00:00
Ferdinand Thiessen a4d7c12326 Merge pull request #52747 from nextcloud/rakekniven-patch-1
chore(i18n): Adapted spelling of product name "Windows"
2025-05-11 11:32:30 +02:00
rakekniven ca1f779258 chore(i18n): Adapted spelling of product name "Windows"
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-05-11 10:26:16 +02:00
Nextcloud bot 195dbad119 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-11 00:22:42 +00:00
Kate 0a73113b35 Merge pull request #52707 from nextcloud/encryption-no-header-size-error 2025-05-10 09:47:21 +02:00
dependabot[bot] a4c923f4b9 Merge pull request #52712 from nextcloud/dependabot/composer/build/integration/behat/behat-3.22.0 2025-05-10 03:33:55 +00:00
dependabot[bot] 25e7c10a33 Merge pull request #52725 from nextcloud/dependabot/npm_and_yarn/vitest/coverage-v8-3.1.3 2025-05-10 03:33:50 +00:00
dependabot[bot] 0c200fb9ef build(deps-dev): bump @vitest/coverage-v8 from 3.1.2 to 3.1.3
Bumps [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.3/packages/coverage-v8)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 01:57:30 +00:00
dependabot[bot] 70db2a4c9e build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.21.1 to 3.22.0.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.21.1...v3.22.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.22.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 01:22:38 +00:00
Nextcloud bot 2624d2b702 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-10 00:22:59 +00:00
Robin Appelman b0b8159d6a fix: throw a better error if we can't get the encrypted header size
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-09 22:33:45 +02:00
skjnldsv 3dbc479239 chore(cypress): add setup tests
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-05-09 21:59:23 +02:00
John Molakvoæ d7f8a106cc Merge pull request #52690 from nextcloud/Valdnet-patch-1 2025-05-09 21:21:25 +02:00
Richard Steinmetz cef60f9fd1 fix(dav): add repair step to queue job to update rooms and resources
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-05-09 17:19:43 +02:00
Robin Appelman d9c53ef748 feat: add more encryption checks to info:file
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-09 16:35:31 +02:00
Sebastian Krupinski 0b354efb22 Merge pull request #51081 from nextcloud/fix/noid/calendar-enabled
fix(CalDAV): add calendar enable
2025-05-09 15:21:59 +01:00
SebastianKrupinski 477bc4e3f1 fix: add calendar enable
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-05-09 09:05:21 -04:00
Alexander Piskun c7430d5cb8 Merge pull request #52699 from nextcloud/fix/noid/AppAPI-invalid-userId
fix(webhooks_listener): correctly set userId from event
2025-05-09 13:37:01 +03:00
Oleksander Piskun aa0135c223 fix(webhooks_listener): correctly set userId from event
Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
2025-05-09 13:07:33 +03:00
Git'Fellow 1b549d4943 fix(files_versions): Folder should not be hardcoed
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-05-09 09:35:17 +02:00
nextcloud-command 5435f3bab0 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-09 07:04:07 +00:00
rakekniven 2ed16599e1 chore(i18n): Use plural
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-05-09 07:01:56 +00:00
Valdnet 95af3305d8 Spelling standardization
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2025-05-09 07:01:56 +00:00
Nextcloud bot 04b1dfdf13 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-09 00:23:45 +00:00
Kate 648745d524 Merge pull request #52634 from nextcloud/perf/share20/get-all-shares-in-folder 2025-05-08 16:24:21 +02:00
provokateurin ae16a28758 perf(Share20): Add interface to query all shares in a folder without filtering by user
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-08 15:29:40 +02:00
Robin Appelman 99364adc1c fix: improve handling of newFolder race condition handling
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-08 15:19:40 +02:00
Robin Appelman cd75876c1e fix: create mountpoint folder even if the user has a quota of 0
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-08 15:15:36 +02:00
Robin Appelman 1228cfd3a2 Merge pull request #52133 from nextcloud/no-shared-direct-download
fix: disable direct download for shares
2025-05-08 15:14:11 +02:00
Git'Fellow 2d68644e11 fix(files_external): Safely check if the timestamp is numeric
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-05-08 11:46:52 +02:00
Kate 349cc7b732 Merge pull request #52543 from nextcloud/fix/52060/manage-download-on-federated-reshare 2025-05-08 08:07:45 +02:00
Nextcloud bot 7c6f8d2a25 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-08 00:23:25 +00:00
Robin Appelman 3a02d942ae fix: handle transfering the root of a mountpoint
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-07 18:31:15 +02:00
Robin Appelman 2c0e576a7d feat: add option to include external storage when transfering files
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-05-07 18:31:13 +02:00
John Molakvoæ 0dc971189b Merge pull request #52636 from nextcloud/test/files-download 2025-05-07 11:16:17 +02:00
John Molakvoæ e3e6a3b72e Merge pull request #52438 from nextcloud/fix/middle-click 2025-05-07 10:53:12 +02:00
nextcloud-command a5b7af3d74 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-07 08:33:36 +00:00
skjnldsv c446274bf0 fix(files): middle click & ctrl new tab
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-05-07 10:29:36 +02:00
Kate 7880a5c25e Merge pull request #52375 from nextcloud/fix/noid/metadata-on-fresh-setup 2025-05-07 09:40:30 +02:00
Maxence Lange cd06b2432c Merge pull request #52623 from nextcloud/feat/noid/get-value-type-from-lexicon
iAppConfig: getValueType() get data from lexicon if available
2025-05-07 00:04:46 -01:00
Nextcloud bot 8528916bbc fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-07 00:23:10 +00:00
Daniel 1c2b4f2a41 Merge pull request #52586 from nextcloud/bugfix/noid/remove-sleep-from-throttler
fix(throttler): Always use the sleepDelayOrThrowOnMax instead of deprecated sleepDelay
2025-05-06 19:22:53 +02:00
Maxence Lange cc96782177 fix(share): assume download enabled on federated share
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-05-06 14:48:28 -01:00
F. E Noel Nfebe 598579396c Merge pull request #52511 from nextcloud/feat/no-issue/show-remote-shares-as-internal-config
feat(files_sharing): Add command to control display area for federated shares
2025-05-06 16:20:17 +02:00
nextcloud-command 46b98f3bcc chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-06 13:32:45 +00:00
nfebe f471bd292f fix(files_sharing): Move ConfigLexicon to Config dir, update sharing input
- Fix autoloading for new `ConfigLexicon`
- Ensure that sharing input in sharing tab respect `show-federated-shares-as-internal`:
This is important, because when federated shares are shown as internal the users should add them from the internal shares section

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-06 14:28:01 +01:00
Maxence Lange 4c241d4f4b refactor: use config lexicon
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-05-06 14:28:01 +01:00
nfebe 1c50329fdb feat(files_sharing): Add toggle for federated share display area
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-05-06 14:28:01 +01:00
Kate 87bad33496 Merge pull request #52047 from nextcloud/sub-mount-filter-no-storage 2025-05-06 15:25:23 +02:00
Kate 206aac5b5b Merge pull request #52128 from nextcloud/shared-target-verify-cache-fix 2025-05-06 15:25:09 +02:00
Kate c1a9dfd993 Merge pull request #52441 from nextcloud/scan-locked-error 2025-05-06 15:23:16 +02:00
Kate 9592390070 Merge pull request #51779 from nextcloud/object-store-filename 2025-05-06 15:21:01 +02:00
John Molakvoæ 24c6a1ff0b Merge pull request #52182 from nextcloud/feat/dav/public-share-chunked-upload 2025-05-06 14:25:28 +02:00
Louis 1c518a291d Merge pull request #52360 from nextcloud/artonge/fix/use_preview_api_for_blurhash_generation 2025-05-06 14:12:50 +02:00
Daniel 31899d95b9 Merge pull request #51924 from nextcloud/feat/issue-563-calendar-export
feat: Calendar Export
2025-05-06 13:05:20 +02:00
Kate 5cf799bdb4 Merge pull request #52642 from nextcloud/fix/task-cleanup-delay 2025-05-06 11:56:42 +02:00
Kent Delante 7c4098d8c7 Merge pull request #52583 from nextcloud/leftybournes/fix/app-sorting
fix(apps): Sort names separately from active/update state
2025-05-06 17:27:59 +08:00
nextcloud-command 7896575af8 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-05-06 09:09:42 +00:00
SebastianKrupinski a2d4f8d3f1 feat: Calendar Export
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-05-06 11:09:33 +02:00
Kate cd9f0350b0 Merge pull request #52621 from nextcloud/feat/noid/files-external-lexicon 2025-05-06 10:27:28 +02:00
Nextcloud bot 25c34ce1e5 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-06 00:23:26 +00:00
Edward Ly 6af7ca0a85 fix(TaskProcessing): increase task cleanup delay
Signed-off-by: Edward Ly <contact@edward.ly>
2025-05-05 11:24:13 -07:00
Maxence Lange 6bd5f6af83 feat(files_external): support lexicon
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-05-05 17:05:45 -01:00
Arthur Schiwon 2a1e63be14 Merge pull request #52048 from nextcloud/fix/noid/wfe-empty-group-in-check
fix(workflowengine): fix group not shown in Group membership check
2025-05-05 17:34:36 +02:00
Arthur Schiwon c051a5b650 build: compile assets
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-05-05 17:01:04 +02:00
Arthur Schiwon c2dea5faf6 fix(workflowengine): fix group not shown in Group membership check
this might have occured on instances with
- more than twenty groups, and
- on rules with more than one Group membership checks
- and at least one of them being not in the set of the first 20 groups

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-05-05 16:58:16 +02:00
Ferdinand Thiessen 88829b3abf test: add e2e tests for multiple-files download
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-05 16:03:08 +02:00
Ferdinand Thiessen c668703021 Merge pull request #51608 from nextcloud/feat/sanitize-filenames-command
feat(files): add command to automatically rename filenames
2025-05-05 15:47:30 +02:00
Kate 0e0abcbdc4 Merge pull request #52630 from nextcloud/fix/files/activity-rich-object-strings 2025-05-05 15:30:54 +02:00
provokateurin 01a8d7748c chore(deps): Update @nextcloud/upload to ^1.10.0
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 15:27:12 +02:00
Kate 66c2607365 Merge pull request #52628 from nextcloud/fix/files_external/hidden-password-fields 2025-05-05 14:33:37 +02:00
provokateurin cfdb919c37 fix(files): Fix non-string values for activity rich object strings
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 14:05:35 +02:00
provokateurin 46f5b07322 feat(dav): Enable chunked upload for public shares
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 13:23:11 +02:00
provokateurin a55e61d97c feat(dav): Allow UploadHome to handle public shares
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 13:23:11 +02:00
provokateurin 8813df9623 refactor(dav): Pass UID from UploadHome to UploadFolder and CleanupService
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 13:23:11 +02:00
provokateurin 7f0953d520 refactor(dav): Replace baseuri manipulation with RootCollection for public shares
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 13:23:11 +02:00
provokateurin e90e3a70fa feat(dav): Allow share principals
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 13:23:10 +02:00
provokateurin db5f6a4e96 fix(files_external): Mark password fields for LoginCredentials and SessionCredentials as hidden and optional
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 13:19:48 +02:00
provokateurin 01d2a9f76a fix(files_external): Convert VALUE_HIDDEN to FLAG_HIDDEN to allow combining VALUE_PASSWORD and FLAG_HIDDEN
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-05 13:19:43 +02:00
Maxence Lange b3f52ebbe8 feat(appconfig): getValueType() get data from lexicon if available
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-05-05 10:17:02 -01:00
Richard Steinmetz 4783459144 Merge pull request #52589 from nextcloud/fix/dav/orphan-cleanup-job
fix(dav): move orphan cleaning logic to a chunked background job
2025-05-05 12:32:14 +02:00
Andy Scherzinger 5644f33b44 Merge pull request #52581 from spalmurray/master
ci: pin Codecov action versions by hash
2025-05-05 12:20:36 +02:00
Richard Steinmetz d0fcb7e638 fix(dav): move orphan cleaning logic to a chunked background job
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-05-05 12:13:09 +02:00
Louis Chemineau 867be352f3 fix(blurhash): Use preview API to generate the previews
This allows to benefit from all the checks done by the preview API.
This also use the newly introduced `cacheResult` argument to limit disk usage.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-05-05 11:13:31 +02:00
Joas Schilling e6bcc4e4e9 Merge pull request #52626 from nextcloud/bugfix/noid/make-comments-test-better-readable
test(comments): Make Comments test result output properly readable
2025-05-05 11:03:04 +02:00
Louis Chemineau 2238548278 feat(previews): Support in memory preview request
This allows callers to use the API without increasing the disk usage.

Example: blurhash generation, where we request a preview for all uploaded pictures, but don't want to necessarily store that preview.
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-05-05 10:38:51 +02:00
Joas Schilling d46d2d1acf test: Fix coding standards
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-05 10:09:22 +02:00
Joas Schilling 10424f248b test(comments): Make Comments test result output properly readable
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-05 09:38:02 +02:00
Kate ed485a9731 Merge pull request #52587 from nextcloud/bugfix/noid/fix-type-error 2025-05-05 09:08:56 +02:00
Joas Schilling aba39c717a Merge pull request #52588 from nextcloud/test/noid/more-phpunit-10
test: Finish migrating tests/Core/ to PHPUnit 10 compatible code
2025-05-05 09:08:40 +02:00
Nextcloud bot ca1fc249ce fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-05 00:49:13 +00:00
Simon L. f068350998 Merge pull request #52584 from nextcloud/enh/noid/fix-docs-ci
fix(CI): fix CI in documentation repository
2025-05-04 13:38:05 +02:00
Simon L. 8683a9bb4c fix(CI): fix CI in documentation repository
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-05-04 13:10:17 +02:00
Nextcloud bot e167a567f2 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-04 00:22:42 +00:00
Nextcloud bot d99c797aac fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-03 00:22:42 +00:00
Joas Schilling c24f5fb256 test: Finish migrating tests/Core/ to PHPUnit 10 compatible code
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-02 16:47:42 +02:00
Joas Schilling 9009ef1a4c fix(loginflow): Fix type error when password could not be decrypted
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-02 14:08:50 +02:00
Joas Schilling 7964f338dc fix(throttler): Remove the sleep from the throttler that throws
The sleep is not adding benefit when it's being aborted with 429
in other cases anyway.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-02 11:27:29 +02:00
Andy Scherzinger 9a16e4fd14 Merge pull request #52542 from nextcloud/artonge/fix/forward_extra
fix: Forward 'extra' argument when optimizing query
2025-05-02 08:48:58 +02:00
Kent Delante 9fbb3d8b4d fix(apps): Sort names separately from active/update state
Signed-off-by: Kent Delante <kent.delante@proton.me>
2025-05-02 14:10:38 +08:00
Nextcloud bot b231e18867 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-02 00:22:57 +00:00
Spencer Murray ecacdd2e77 ci: pin codecov/test-results-action@v1.1.0 with hash
Signed-off-by: Spencer Murray <spencer.murray@sentry.io>
2025-05-01 11:39:23 -04:00
Spencer Murray dbfbb8da7f ci: pin codecov/codecov-action@v5.4.2 with hash
Signed-off-by: Spencer Murray <spencer.murray@sentry.io>
2025-05-01 11:39:22 -04:00
Spencer Murray 4fe5c8a217 ci: do not upload codecov bundle when TESTING=true
Signed-off-by: Spencer Murray <spencer.murray@sentry.io>
2025-05-01 11:39:14 -04:00
John Molakvoæ 8b07a9be20 Merge pull request #52572 from nextcloud/fix/noid/flaky-sso-tests 2025-05-01 16:13:15 +02:00
Andy Scherzinger d692f39f9f Merge pull request #52575 from nextcloud/rakekniven-patch-1
fix(notification): Notification in activity shows "Rich subject or a …
2025-05-01 13:16:07 +02:00
Marcel Müller 99d23a434c fix: Ensure samba is started in kerberos tests
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-05-01 11:15:48 +02:00
Marcel Müller 3cf7b8ddbe chore: Add logs for dc and apache container
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-05-01 11:15:24 +02:00
rakekniven 1d80bcb97c fix(notification): Notification in activity shows "Rich subject or a parameter for ..."
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-05-01 08:59:46 +02:00
Nextcloud bot 112f6f43fb fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-01 00:23:00 +00:00
dependabot[bot] 8788d659c8 Merge pull request #52571 from nextcloud/dependabot/npm_and_yarn/vite-6.3.4 2025-04-30 20:29:22 +00:00
Daniel be1982568a Merge pull request #52546 from nextcloud/fix/52278/remove-unused-etag-check
fix: Remove unneccesary etag check
2025-04-30 22:28:27 +02:00
Marcel Müller ddd91793bc fix: Add etag tests to NavigationControllerTest
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-04-30 21:48:34 +02:00
dependabot[bot] 3eb797ddf7 build(deps): bump vite from 6.2.6 to 6.3.4
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.6 to 6.3.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-30 19:38:01 +00:00
Louis a67720552e Merge pull request #52551 from nextcloud/checkResultArray
fix(WeatherStatus): Check if result is an array
2025-04-30 21:30:03 +02:00
Ferdinand Thiessen df69eb56d1 Merge pull request #52269 from nextcloud/fix/files-summary
fix(files): make sure to always have proper plural forms
2025-04-30 19:11:47 +02:00
Ferdinand Thiessen 2036beec06 Merge pull request #52565 from nextcloud/artonge/fix/attribute_in_sidebar
fix: Forward attributes to the sidebar
2025-04-30 18:07:08 +02:00
nextcloud-command 0fb8daa7bb chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-30 15:59:19 +00:00
Ferdinand Thiessen 10d17de5bc Merge pull request #52298 from nextcloud/test/no-git-ignore
test: ignore git-ignored files from tests
2025-04-30 17:55:22 +02:00
Ferdinand Thiessen 04f7d4a100 fix(files): make sure to always have proper plural forms
counted words should always be translated using `n`.
We can still simply concat the segments with punctation, this always
works regardless of the language used (even with RTL / LTR languages).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-30 17:54:54 +02:00
Louis Chemineau eab2d9e3a9 fix: Forward attributes to the sidebar
Needed for Photos' sidebar tab

Signed-off-by: Louis Chemineau <louis@chmn.me>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-30 15:27:39 +00:00
Ferdinand Thiessen 3657c2a650 docs(files): add more documentation about WCF and links to the admin docs
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-30 16:32:49 +02:00
Ferdinand Thiessen f7f4930581 feat(files): add command to (dis)enable windows compatible filenames
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-30 16:32:49 +02:00
Ferdinand Thiessen 226ad23a1a feat(files): add command to automatically rename filenames
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-30 16:32:07 +02:00
Christoph Wurst 535253e0d2 Merge pull request #52228 from nextcloud/fix/issue-50748-calendar-object-move
fix(CalDAV): do not ignore move command object target uri
2025-04-30 16:27:48 +02:00
Daniel 391e09331f Merge pull request #52558 from nextcloud/chore/constants/sort
chore(Constants): Sort by value
2025-04-30 16:22:01 +02:00
provokateurin 6c127e2fdd chore(Constants): Sort by value
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-04-30 14:20:12 +02:00
John Molakvoæ 57e0ffcb27 Merge pull request #52532 from nextcloud/fix/public-displayname-owner 2025-04-30 11:32:05 +02:00
Joas Schilling d20e4d2fe9 Merge pull request #52552 from nextcloud/techdebt/noid/more-phpunit-10-preparations
tests: Prepare more tests for PHPUnit 10
2025-04-30 09:42:57 +02:00
Joas Schilling b77011a918 test: Prepare more tests for PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-30 09:18:01 +02:00
John Molakvoæ c06d851ead Merge pull request #52535 from nextcloud/fix/public-owner-scope 2025-04-30 08:59:22 +02:00
nextcloud-command b95695b110 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-30 06:43:23 +00:00
skjnldsv 58aaddeca5 fix(dav): check the owner displayName scope before giving attribute
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-30 08:37:08 +02:00
Git'Fellow 9c8e026003 fix (WeatherStatus): Check if result is an array
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-04-30 08:01:35 +02:00
Nextcloud bot 88aa80e847 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-30 00:23:19 +00:00
Marcel Müller 1addd35b78 fix: Remove unneccesary etag check
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-04-29 23:15:50 +02:00
Richard Steinmetz 6f661deb75 Merge pull request #52534 from nextcloud/perf/caldav/bigger-chunks-orphan-repair
perf(caldav): increase chunk size in RemoveOrphanEventsAndContacts repair step
2025-04-29 23:05:05 +02:00
skjnldsv bcc8de0c9d fix(files_sharing): bring back owner and ownerDisplayName initial state
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-29 21:25:47 +02:00
Louis Chemineau 5c73f2c37f fix: Forward 'extra' argument when optimizing query
This allows DAV SEARCH queries containing optimizable comparisons on files metadata like:

```xml
				<d:or>
					<d:eq>
						<d:prop>
							<nc:metadata-photos-place />
						</d:prop>
						<d:literal>La Valette-du-Var</d:literal>
					</d:eq>
					<d:eq>
						<d:prop>
							<nc:metadata-photos-place />
						</d:prop>
						<d:literal>Évenos</d:literal>
					</d:eq>
				</d:or>
```

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-04-29 18:17:23 +02:00
Andy Scherzinger f26dc79480 Merge pull request #52179 from spalmurray/master
ci: add Codecov's test analytics and bundle analysis features
2025-04-29 17:27:36 +02:00
Richard Steinmetz 33a8e2226c perf(caldav): increase chunk size in RemoveOrphanEventsAndContacts repair step
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-04-29 16:34:19 +02:00
Joas Schilling e7fbfa61e5 Merge pull request #52051 from Lukasdotcom/feat/text-to-speech
feat(TaskProcessing): Add TextToSpeech provider
2025-04-29 15:41:21 +02:00
F. E Noel Nfebe 008e9f2101 Merge pull request #52526 from nextcloud/fix/no-issue/prevent-create-delete-perms-on-file-shares
fix(files_sharing): Prevent create/delete permissions on file shares
2025-04-29 14:14:14 +02:00
nextcloud-command 9483507093 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-29 11:49:59 +00:00
Ferdinand Thiessen 28df049b99 Merge pull request #52525 from nextcloud/fix/noid/wfe-set-inital-value
fix(WFE): properly set inital status
2025-04-29 13:48:04 +02:00
nfebe 99ae04d9ce fix(files_sharing): Prevent create/delete permissions on file shares
File shares can't support create or delete permissions. This change ensures those permissions are
 stripped or ignored when the shared item is not a folder.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-04-29 13:42:02 +02:00
Ferdinand Thiessen 698146c366 Merge pull request #51592 from nextcloud/fix/search-cast
fix(dav): throw invalid argument when property type does not match
2025-04-29 13:41:48 +02:00
Arthur Schiwon 94202f2664 build: compile assets
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-04-29 12:23:36 +02:00
Arthur Schiwon 09bb0720d4 fix(WFE): properly set inital status
The operationComponent.value is only possibly available with registered
operations that have the value prop. Ones that do not would not have the
value set properly initially. Going to inputValue, which is mapped to the
components model-value, solves this.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-04-29 12:23:27 +02:00
Ferdinand Thiessen 9df998e710 Merge pull request #52369 from nextcloud/fix/files-versions-author
fix(files_versions): wait for version to be created before setting metadata
2025-04-29 11:01:58 +02:00
Ferdinand Thiessen 0e50ba839c test: ignore git-ignored files from tests
Fix running `npm run test` when your development setup has other apps
checked out - like having the viewer app installed locally in `apps`.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-29 10:15:29 +02:00
Stephan Orbaugh f9b6b88d5c Merge pull request #52479 from RobertZenz/bugfix/fix-jsresourcelocator-incorrect-parameter
fix(JSResourceLocator) fix incorrect parameter being used.
2025-04-29 09:10:51 +02:00
Nextcloud bot 0d98f91ae6 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-29 00:22:42 +00:00
Spencer Murray 0395eaacbb ci: change if always() to if not cancelled on test results uploads
Signed-off-by: Spencer Murray <spencer.murray@sentry.io>
2025-04-28 16:01:50 -04:00
Spencer Murray 9c3bdf2647 ci: always upload test results, even if tests fail
Signed-off-by: Spencer Murray <spencer.murray@sentry.io>
2025-04-28 16:01:49 -04:00
Spencer Murray c795fb1937 ci: fix whitespace
Signed-off-by: Spencer Murray <spencer.murray@sentry.io>
2025-04-28 16:01:49 -04:00
Spencer Murray cb4e76060d ci: tweak Codecov webpack plugin config
Signed-off-by: Spencer Murray <spencer.murray@sentry.io>
2025-04-28 16:01:48 -04:00
Spencer Murray 41764b9c09 ci: always collect and upload test results, not just on coverage runs
Signed-off-by: Spencer Murray <spencer.murray@sentry.io>
2025-04-28 16:01:47 -04:00
Spencer Murray 191d07d588 ci: add Codecov's test analytics and bundle analysis features
Signed-off-by: Spencer Murray <spencer.murray@sentry.io>
2025-04-28 16:01:43 -04:00
Kate 10a01423ec Merge pull request #52402 from nextcloud/fix/32bit-pack 2025-04-28 21:23:17 +02:00
Joas Schilling 40e52e212a Merge pull request #52434 from nextcloud/bugfix/52420/closure-as-default-app
fix(navigation): Fix default app entry registered as closure
2025-04-28 16:54:11 +02:00
Andy Scherzinger 0d19a1333f Merge pull request #52443 from nextcloud/reminder-dont-validiate-node-dav
fix: don't check node access again for listing reminders in dav
2025-04-28 14:51:25 +02:00
Richard Steinmetz 1cb1f39279 Merge pull request #52494 from nextcloud/fix/default-contact
fix: check if config is enabled before creating a default contact
2025-04-28 13:22:34 +02:00
Stephan Orbaugh 115cca57aa Merge pull request #52445 from invario/master
chore: Update config.sample.php to document new ffprobe path option
2025-04-28 13:21:50 +02:00
Ferdinand Thiessen a22171507a fix(32bit): use PHP_INT_MAX where needed
* Typo from https://github.com/nextcloud/server/pull/52392

`0xFFFF` is only 2 bytes, but we need either `0xFFFFFFFF` or maybe a bit
easier to read `PHP_INT_MAX`.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-28 12:33:58 +02:00
Hamza Mahjoubi 58ffd9d06e fix: check if config is enabled before creating a default contact
Signed-off-by: Hamza Mahjoubi <hamzamahjoubi221@gmail.com>
2025-04-28 11:46:32 +02:00
F. E Noel Nfebe 6a2c0a254e Merge pull request #52423 from nextcloud/fix/51226/show-remote-shares-as-external-2
fix(files_sharing): Show remote shares as external
2025-04-28 11:13:45 +02:00
Nextcloud bot e5676ce0a9 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-28 00:23:11 +00:00
Andy Scherzinger e2a54af254 Merge pull request #51609 from nextcloud/fix/files-versions-listeners
fix(files_versions): only handle path updates when there is path
2025-04-28 00:26:04 +02:00
Ferdinand Thiessen 8ca23f2c7d fix(files_versions): only handle path updates when there is path
`getPathForNode` can fail with null for various reasons (e.g. no owner),
in this cases we need to just skip the event handling.

Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-27 23:51:56 +02:00
Ferdinand Thiessen e33fcfddc1 fix(dav): throw invalid argument when property type does not match
* Resolves https://github.com/nextcloud/server/issues/49972

Currently a TypeError is thrown when casting fails,
this lead to a HTTP 500 error. Instead throw a proper
InvalidArgumentError so the user receives a HTTP 400.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-27 23:05:07 +02:00
Ferdinand Thiessen 5862d5aea1 Merge pull request #52250 from nextcloud/fix/twitter-fediverse
fix(settings): allow to clear twitter and fediverse
2025-04-27 23:00:39 +02:00
Andy Scherzinger b3bea71f1e Merge branch 'master' into fix/twitter-fediverse 2025-04-27 22:46:17 +02:00
dependabot[bot] 71463f984a Merge pull request #52461 from nextcloud/dependabot/npm_and_yarn/vitest-3.1.2 2025-04-27 13:23:31 +00:00
Ferdinand Thiessen 3b63ad000a chore: align other vitest related packages
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-27 14:55:40 +02:00
dependabot[bot] 902d01cc47 build(deps-dev): bump vitest from 3.1.1 to 3.1.2
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.2/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 3.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-27 14:55:08 +02:00
nextcloud-command 02da7fdeb7 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-27 14:15:07 +02:00
Ferdinand Thiessen dabe0ec29f fix(settings): allow to clear twitter and fediverse
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-27 14:15:07 +02:00
Ferdinand Thiessen e2291024f0 Merge pull request #52417 from nextcloud/fix/group-admin-new-user
fix(settings): only provide groups the subadmin has access to
2025-04-27 12:39:45 +02:00
Ferdinand Thiessen 1ba88da113 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-27 11:38:42 +02:00
Ferdinand Thiessen 6d8c49f0d4 fix(settings): group admins only can add users to their groups
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-27 11:35:40 +02:00
Ferdinand Thiessen 8cc0c266d5 feat(settings): provide user groups for accounts list
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-27 11:35:40 +02:00
Nextcloud bot 8df3310cc4 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-27 00:22:59 +00:00
dependabot[bot] 8c01acc13c Merge pull request #52456 from nextcloud/dependabot/npm_and_yarn/webpack-5.99.7 2025-04-26 19:36:16 +00:00
nextcloud-command fa3caf1763 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-26 19:21:01 +00:00
dependabot[bot] 3ea86c1087 build(deps-dev): bump webpack from 5.99.6 to 5.99.7
Bumps [webpack](https://github.com/webpack/webpack) from 5.99.6 to 5.99.7.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.99.6...v5.99.7)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.99.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 21:17:01 +02:00
dependabot[bot] 832b1509f4 Merge pull request #52458 from nextcloud/dependabot/npm_and_yarn/marked-15.0.11 2025-04-26 17:25:00 +00:00
nextcloud-command 5fbce0d1c1 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-26 17:10:32 +00:00
dependabot[bot] edf6279a95 build(deps): bump marked from 15.0.8 to 15.0.11
Bumps [marked](https://github.com/markedjs/marked) from 15.0.8 to 15.0.11.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v15.0.8...v15.0.11)

---
updated-dependencies:
- dependency-name: marked
  dependency-version: 15.0.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 19:07:15 +02:00
Robert Zenz f428e6786b fix(JSResourceLocator) fix incorrect parameter being used. 2025-04-26 15:19:55 +02:00
Richard Steinmetz bb886258e0 Merge pull request #52428 from nextcloud/chore/dav/refactor-inline-listeners
refactor(dav): refactor inline event listeners
2025-04-26 09:00:25 +02:00
Lukas Schaefer 99e8849b6c feat(TaskProcessing): Add TextToSpeech provider
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2025-04-26 00:46:23 -04:00
dependabot[bot] e49bda0e20 Merge pull request #52460 from nextcloud/dependabot/npm_and_yarn/puppeteer-24.7.2 2025-04-26 03:11:48 +00:00
dependabot[bot] 668b456ddd Merge pull request #52455 from nextcloud/dependabot/composer/build/integration/behat/behat-3.21.1 2025-04-26 03:09:15 +00:00
dependabot[bot] a7fd536570 Merge pull request #52457 from nextcloud/dependabot/npm_and_yarn/stylelint-16.19.1 2025-04-26 02:44:33 +00:00
dependabot[bot] e5c5023844 build(deps-dev): bump puppeteer from 24.7.0 to 24.7.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.7.0 to 24.7.2.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.7.0...puppeteer-v24.7.2)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.7.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 01:45:15 +00:00
dependabot[bot] a452afd77c build(deps-dev): bump stylelint from 16.18.0 to 16.19.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.18.0 to 16.19.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/16.18.0...16.19.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 01:43:14 +00:00
dependabot[bot] 20347c216d build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.21.0 to 3.21.1.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.21.0...v3.21.1)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.21.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 01:42:32 +00:00
invario 1386b8096d chore: Update config.sample.php to document new ffprobe path option
PR #51712 added new preview_ffprobe_path parameter. This PR updates config.sample.php to document this new optional parameter and the fallback behavior if the option is not set.

Signed-off-by: invario <67800603+invario@users.noreply.github.com>
2025-04-25 20:33:25 -04:00
Nextcloud bot 7cbca23e51 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-26 00:22:58 +00:00
Robin Appelman 3d36625af6 fix: don't check node access again for listing reminders in dav
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-25 20:34:58 +02:00
Richard Steinmetz 16dd61cc28 refactor(dav): refactor inline event listeners
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-04-25 20:32:18 +02:00
Richard Steinmetz de23547ef9 Merge pull request #52427 from nextcloud/chore/dav/first-class-callable
refactor(dav): use first class callable syntax to boot the app
2025-04-25 20:31:06 +02:00
Robin Appelman bb4cf2830a fix: better error message when trying to scan a folder that is already being scanned
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-25 18:40:03 +02:00
Git'Fellow 5f40fad790 Merge pull request #52439 from nextcloud/backport/45765/master
[master] fix(settings): Use axios directly for health check to preven URL sanitizing
2025-04-25 17:45:53 +02:00
nextcloud-command bfd8c1db47 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-25 14:45:41 +00:00
Ferdinand Thiessen 5dfbac867f fix(settings): Use axios directly for health check to preven URL sanitizing
When using Apache with `DirectorySlash` it will respond with 301 and the URL with trailing slash.
But when using traefik as the reverse proxy it can not rewrite redirects, this leads to the problem
that the Apache response is using HTTP in the redirect but the real server (traefik) is only listening on HTTPS.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-25 14:39:03 +00:00
Richard Steinmetz 109422f24e refactor(dav): use first class callable syntax to boot the app
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-04-25 15:05:50 +02:00
Joas Schilling cdfce26ea9 fix(navigation): Fix absolute URLs from default apps
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-25 14:49:19 +02:00
Joas Schilling 553870d30a fix(navigation): Fix default app entry registered as closure
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-25 14:47:33 +02:00
Kate 84e9aff847 Merge pull request #52429 from nextcloud/bugfix/noid/fix-autocomplete-of-app-configs 2025-04-25 14:18:08 +02:00
nextcloud-command 3bdc173644 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-25 11:05:30 +00:00
Andy Scherzinger f154e60af3 Merge pull request #52424 from nextcloud/bugfix/noid/censor-more-app-configs
fix(config): Censor more app configs in system report
2025-04-25 13:03:38 +02:00
nfebe 6454cb5124 perf(files_sharing): Change sharing filtering from O(3n) to O(n)
Replaced multiple Array.filter() calls with a single loop to improve performance.
This avoids redundant iterations over the shares array and categorizes them more efficiently.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-04-25 12:00:04 +01:00
nfebe 26cb5ebd8a fix(files_sharing): Show remote shares in external shares section
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-04-25 11:59:47 +01:00
Stephan Orbaugh 258983e665 Merge pull request #51355 from AIlkiv/refactor/rollback-hook-usage
refactor: cleanup rollback hook usage
2025-04-25 11:42:20 +02:00
Joas Schilling 7962df9427 fix(occ): Fix autocompletion of config:app:* commands
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-25 11:30:21 +02:00
Joas Schilling 8524955091 fix(config): Censor more app configs in system report
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-25 11:01:38 +02:00
ailkiv 616716cd6a refactor: cleanup rollback hook usage
Signed-off-by: ailkiv <a.ilkiv.ye@gmail.com>
2025-04-25 08:25:11 +00:00
Joas Schilling 0c3ebbfed5 Merge pull request #52404 from nextcloud/bugfix/49973/allow-federated-filesharing-without-federation-app
fix(federation): Allow federation file sharing when federation app is…
2025-04-25 09:33:33 +02:00
Nextcloud bot 1ae57fb054 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-25 00:22:43 +00:00
Andy Scherzinger c45c792622 Merge pull request #51309 from nextcloud/backport/51260/master
test(cypress): rename select all clear
2025-04-24 23:38:23 +02:00
skjnldsv 3b85743cf9 fix(cypress): rename select all clear
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-24 23:25:23 +02:00
Andy Scherzinger 34949e4a36 Merge pull request #52079 from IONOS-Productivity/fix/s3_traffic_on_video_thumbnails
fix(previews): avoid large file downloads for remote movie storage
2025-04-24 14:44:34 +02:00
Daniel cc5ca58816 Merge pull request #51438 from nextcloud/perf/db/cards-properties-abid-name-value-idx
perf(db): Extend index on cards_properties to cover name and value
2025-04-24 13:33:37 +02:00
Ferdinand Thiessen 0051db7a43 Merge pull request #52373 from nextcloud/fix/files-version-creation
fix(files_versions): create version if previous does not exist
2025-04-24 13:30:49 +02:00
Ferdinand Thiessen 4114fbfaff Merge pull request #52400 from nextcloud/chore/laravel-php84
chore(deps): Bump laravel/serializable-closure from 1.3.5 to 2.0.4
2025-04-24 13:04:26 +02:00
Joas Schilling 4fc5eaeff0 fix(federation): Allow federation file sharing when federation app is disabled
The app id might be misleading, the federation app is for syncing addressbooks
with trusted servers. It is not always enabled and show not have to be.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-24 13:03:14 +02:00
Kate 85b43f62a3 Merge pull request #52276 from nextcloud/feat/noid/log-query-parameters 2025-04-24 12:56:11 +02:00
Ferdinand Thiessen 43c5232333 Merge pull request #52364 from nextcloud/fix/51875/allow-keyboard-input-4-share-expiration-on-chrome
fix(files_sharing): Improve expiration date input change handling
2025-04-24 12:46:31 +02:00
nextcloud-command 7a1c947ef0 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-24 10:30:44 +00:00
nfebe 3c73f3fcae fix(files_sharing): Improve expiration date input change handling
If the time picker component is emitting a Date object already, then there is redundant call of `new Date(new Date())` and
therefore introduces subtle bugs, for example on chrome users could not  enter expiration date with keyboard.

- Use @update:model-value instead of @change/@input for more reliable date updates
- Ensure null and invalid dates are handled correctly in onExpirationChange
- Validate date input before updating defaultExpirationDateEnabled

Resolves : https://github.com/nextcloud/server/issues/51875

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-04-24 12:25:47 +02:00
Kate 0567332af1 Merge pull request #52374 from nextcloud/fix/updatenotification/applist-error-handling 2025-04-24 12:24:41 +02:00
nextcloud-command 9ae83f4bae chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-24 10:10:10 +00:00
Ferdinand Thiessen 4cb41d6111 chore(deps): Bump laravel/serializable-closure from 1.3.5 to 2.0.4
* for https://github.com/nextcloud/3rdparty/pull/2071
* enabled offical PHP 8.4 support

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-24 11:11:08 +02:00
Ferdinand Thiessen 94538c11c7 Merge pull request #52396 from nextcloud/chore/openstack-3-12
chore(3rdparty): update `php-opencloud/openstack` to v3.12.0 for PHP8.4
2025-04-24 11:07:42 +02:00
Stephan Orbaugh be5431253a Merge pull request #48277 from schaarsc/feature/32735-occ-add-tag-to-file-master
new occ commands to manage system-tags for files
2025-04-24 10:12:33 +02:00
Stephan Orbaugh aa8c0a68cb Merge pull request #50650 from IONOS-Productivity/feat/login_flow_v2-user_agents-allow-list
feat(login-flow-v2): Restrict allowed apps by user agent check
2025-04-24 10:12:19 +02:00
Côme Chilliet 7a50f612d7 Merge pull request #52392 from nextcloud/fix/32bit-support
fix(32bit): make `pack` compatible with 32bit PHP
2025-04-24 09:53:20 +02:00
Ferdinand Thiessen d86189adc5 Merge pull request #52299 from nextcloud/refactor/preview-tests
refactor: Thumbnail Generator logging and tests
2025-04-24 09:50:11 +02:00
Ferdinand Thiessen 3845a64df0 chore(3rdparty): update php-opencloud/openstack to v3.12.0 for PHP8.4
| Production Changes      | From    | To      | Compare                                                                     |
|-------------------------|---------|---------|-----------------------------------------------------------------------------|
| guzzlehttp/guzzle       | 7.9.2   | 7.9.3   | [...](https://github.com/guzzle/guzzle/compare/7.9.2...7.9.3)               |
| guzzlehttp/promises     | 2.0.4   | 2.2.0   | [...](https://github.com/guzzle/promises/compare/2.0.4...2.2.0)             |
| guzzlehttp/psr7         | 2.7.0   | 2.7.1   | [...](https://github.com/guzzle/psr7/compare/2.7.0...2.7.1)                 |
| guzzlehttp/uri-template | v1.0.3  | v1.0.4  | [...](https://github.com/guzzle/uri-template/compare/v1.0.3...v1.0.4)       |
| php-opencloud/openstack | v3.10.0 | v3.12.0 | [...](https://github.com/php-opencloud/openstack/compare/v3.10.0...v3.12.0) |

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-24 09:29:36 +02:00
Ferdinand Thiessen 9fce0f9297 Merge pull request #52391 from nextcloud/fix/harden-template-functions
fix(Template): harden enabled-theme logic
2025-04-24 07:38:20 +02:00
Nextcloud bot 1cc990358c fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-24 00:23:35 +00:00
Andy Scherzinger 2c8c036bdb Merge pull request #51439 from nextcloud/fix/create-missing-replacement-indexes
fix(db): Create replacement index where original index is missing
2025-04-24 00:49:22 +02:00
Ferdinand Thiessen 8b1dcb9759 Merge pull request #50444 from nextcloud/jtr-docs-dispatcher-return
docs(dispatcher): Correct described return values
2025-04-24 00:26:34 +02:00
nfebe d980e69f74 refactor: Thumbnail Generator logging and tests
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-04-23 23:06:28 +01:00
Andy Scherzinger 25ef415e14 Merge pull request #51766 from nextcloud/info-file-permissions
feat: show permissions in info:file output
2025-04-23 23:42:20 +02:00
Ferdinand Thiessen 9bfea21520 fix(32bit): make pack compatible with 32bit PHP
The `P` formatter is 64bit only - we need to manually pack the 64bit.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-23 23:28:14 +02:00
Ferdinand Thiessen f5f5a07e38 Merge pull request #52347 from nextcloud/dependabot/github_actions/github-actions-510ea978f9
build(deps): bump the github-actions group with 4 updates
2025-04-23 23:27:50 +02:00
Ferdinand Thiessen 8503ce8968 fix(Template): harden enabled-theme logic
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-23 22:57:12 +02:00
Josh 6951053c90 docs(dispatcher): Correct described return values
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-04-23 22:43:03 +02:00
Ferdinand Thiessen 56b9974c41 Merge pull request #51994 from nextcloud/fix/noid/allows-some-char-from-federationid
fix(federation): allows equal signs in federation id
2025-04-23 21:23:05 +02:00
Ferdinand Thiessen 366eb9c2b6 Merge pull request #52361 from nextcloud/fix/51833/add-retries-to-s3-client
fix(objectstorage): add retry attempts to S3 connection
2025-04-23 20:39:56 +02:00
Ferdinand Thiessen 271df14e6b Merge pull request #52290 from nextcloud/fix/show-better-mtime
refactor(files): share `mtime` for file entry components
2025-04-23 20:38:56 +02:00
Ferdinand Thiessen 9794f90b9d chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-23 20:22:43 +02:00
Ferdinand Thiessen 05fecce17d fix(files): share mtime for file entry components
Also restructure the mtime opacity calculation to work as expected also
for old files.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-23 20:22:28 +02:00
Maxence Lange 65a2b3b689 fix(metadata): set background job on fresh setup
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-04-23 13:57:25 -01:00
provokateurin cc17e4c1fe fix(updatenotification): Fix error handling when fetching applist for server update
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-04-23 16:42:35 +02:00
Ferdinand Thiessen 5e03c6fb58 fix(files_versions): create version if previous does not exist
This issue happens reproducible if:
- Versions is disabled
- Upload a file
- Enable versions
- Upload same file unchanged
- Now the error happens.

Problem is that the mtime is unchanged so no version will be created on the upload, but it tries to update the last version which does not exists.
Instead of "upload same file unchanged" you can also - like in the example stack trace above - use Android with an SD card with invalid mtime -> the mtime will be stripped so its always the same.
Instead of disable versions the same also happens if e.g. the versions creation failed due to other issues.

The solution now is to catch the exception and create if not exists.
A cleaner solution would be to have a method on the versions backend
like `hasVersionEntity(File $file, int $revision): bool` but this would
be a breaking change or at least a feature that apps need to implement.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-23 16:03:20 +02:00
John Molakvoæ 9bfa1e7bd9 Merge pull request #52094 from nextcloud/rakekniven-patch-1 2025-04-23 14:16:11 +02:00
dependabot[bot] 09854b4549 Merge pull request #52315 from nextcloud/dependabot/npm_and_yarn/dockerode-4.0.6 2025-04-23 12:10:59 +00:00
Kate 38f7e0f1d1 Merge pull request #52366 from nextcloud/feat/noid/profile-data-api 2025-04-23 14:05:04 +02:00
nextcloud-command a68e0355d9 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-23 13:54:34 +02:00
Ferdinand Thiessen 21c128754d Merge pull request #52241 from nextcloud/bugfix/noid/fix-room-or-resource-condition
fix(caldav): Fix check for ROOM or RESOURCE condition
2025-04-23 13:54:01 +02:00
rakekniven b27d76059e chore(i18n): Use "name" instead of "nickname"
Users asked why they should use a nickname?
"Name" covers nickname, pseudonym, username or real name.


Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-04-23 13:53:18 +02:00
dependabot[bot] de5142545f Merge pull request #52321 from nextcloud/dependabot/npm_and_yarn/webpack-5.99.6 2025-04-23 11:37:17 +00:00
dependabot[bot] 893d81a5a5 build(deps-dev): bump webpack from 5.99.5 to 5.99.6
Bumps [webpack](https://github.com/webpack/webpack) from 5.99.5 to 5.99.6.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.99.5...v5.99.6)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.99.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-23 11:23:03 +00:00
Ferdinand Thiessen 2020760f88 fix(files_versions): wait for version to be created before setting metadata
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-23 13:09:43 +02:00
Joas Schilling 9ed33cf6aa feat(profile): Add an API to get the profile field data
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-23 12:38:18 +02:00
Anna Larch 49baa914cf fix(objectstorage): add retry attempts to S3 connection
Signed-off-by: Anna Larch <anna@nextcloud.com>
2025-04-23 12:15:06 +02:00
Misha M.-Kupriyanov 4a924bf400 fix(previews): avoid large file downloads for remote movie storage
Prevent downloading entire movie files from remote storage (e.g., S3)
when the 'moov atom' is located at the end of the file.

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2025-04-23 10:04:27 +02:00
Misha M.-Kupriyanov d1a94f3c9c feat(login-flow-v2): Restrict allowed apps by user agent check
Enable via:
./occ config:system:set core.login_flow_v2.allowed_user_agents 0  --value '/Custom Foo Client/i'
./occ config:system:set core.login_flow_v2.allowed_user_agents 1  --value '/Custom Bar Client/i'

if user agent string is unknown
the template with "Access forbidden"-"Please use original client" will be displayed

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2025-04-23 09:45:23 +02:00
Nextcloud bot 14868ac0ee fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-23 00:22:56 +00:00
dependabot[bot] 0c177240c3 Merge pull request #52330 from nextcloud/dependabot/npm_and_yarn/sass-1.87.0 2025-04-22 19:21:42 +00:00
John Molakvoæ 1f81bc05b9 Merge pull request #52296 from nextcloud/fix/drop-file-preview 2025-04-22 20:08:16 +02:00
dependabot[bot] 731060fe69 build(deps-dev): bump sass from 1.86.3 to 1.87.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.86.3 to 1.87.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.86.3...1.87.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.87.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 15:39:53 +00:00
nextcloud-command 4628f85f85 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-22 15:32:13 +00:00
John Molakvoæ (skjnldsv) 12327fea1e fix(files): prevent dragging preview when drag-drop
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-04-22 15:26:18 +00:00
dependabot[bot] 9a8c099b48 Merge pull request #52325 from nextcloud/dependabot/npm_and_yarn/puppeteer-24.7.0 2025-04-22 15:17:04 +00:00
dependabot[bot] bd05af4273 Merge pull request #52304 from nextcloud/dependabot/composer/build/integration/behat/behat-3.21.0 2025-04-22 14:48:02 +00:00
Maxence Lange 743924ce4d fix(federation): allows equal signs in federation id
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-04-22 13:03:56 -01:00
dependabot[bot] ce26d5450a build(deps): bump the github-actions group with 4 updates
Bumps the github-actions group with 4 updates: [shivammathur/setup-php](https://github.com/shivammathur/setup-php), [actions/setup-node](https://github.com/actions/setup-node), [codecov/codecov-action](https://github.com/codecov/codecov-action) and [nextcloud-libraries/npm-audit-action](https://github.com/nextcloud-libraries/npm-audit-action).


Updates `shivammathur/setup-php` from 2.32.0 to 2.33.0
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/9e72090525849c5e82e596468b86eb55e9cc5401...cf4cade2721270509d5b1c766ab3549210a39a2a)

Updates `actions/setup-node` from 4.3.0 to 4.4.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/cdca7365b2dadb8aad0a33bc7601856ffabcc48e...49933ea5288caeca8642d1e84afbd3f7d6820020)

Updates `codecov/codecov-action` from 5.4.0 to 5.4.2
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Commits](https://github.com/codecov/codecov-action/compare/v5.4.0...v5.4.2)

Updates `nextcloud-libraries/npm-audit-action` from 0.1.0 to 0.2.0
- [Release notes](https://github.com/nextcloud-libraries/npm-audit-action/releases)
- [Commits](https://github.com/nextcloud-libraries/npm-audit-action/compare/2a60bd2e79cc77f2cc4d9a3fe40f1a69896f3a87...1b1728b2b4a7a78d69de65608efcf4db0e3e42d0)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-version: 2.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: actions/setup-node
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: codecov/codecov-action
  dependency-version: 5.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: nextcloud-libraries/npm-audit-action
  dependency-version: 0.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 13:04:58 +00:00
dependabot[bot] 796e089c0d build(deps-dev): bump puppeteer from 24.6.1 to 24.7.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.6.1 to 24.7.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.6.1...puppeteer-v24.7.0)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 12:59:48 +00:00
dependabot[bot] 056f510228 build(deps-dev): bump dockerode from 4.0.5 to 4.0.6
Bumps [dockerode](https://github.com/apocas/dockerode) from 4.0.5 to 4.0.6.
- [Release notes](https://github.com/apocas/dockerode/releases)
- [Commits](https://github.com/apocas/dockerode/compare/v4.0.5...v4.0.6)

---
updated-dependencies:
- dependency-name: dockerode
  dependency-version: 4.0.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 12:58:34 +00:00
dependabot[bot] 32d90b528c build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.20.0 to 3.21.0.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.20.0...v3.21.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.21.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 12:56:17 +00:00
Ferdinand Thiessen cb92b5a64a Merge pull request #52293 from nextcloud/chore/dependabot
ci(dependabot): remove stable29 and group composer directories
2025-04-22 14:55:21 +02:00
Julius Knorr 12490b2837 Merge pull request #52099 from nextcloud/perf/excimer
Built in profiling capabilities with excimer
2025-04-22 14:50:14 +02:00
Ferdinand Thiessen efa2cda370 Merge pull request #51491 from nextcloud/fix/path-length
fix(dav): allow uploading of files with long filenames
2025-04-22 13:53:26 +02:00
F. E Noel Nfebe 25bc18c6dc Merge pull request #52221 from nextcloud/feat/no-issue/add-logging-preview-generation
feat: add logging to preview generation
2025-04-22 12:37:49 +02:00
Ferdinand Thiessen 9f6b2b8e45 Merge pull request #52291 from nextcloud/revert/gfm-pin
chore: revert "fix(deps): lock mdast-util-gfm-autolink-literal library"
2025-04-22 11:26:00 +02:00
Ferdinand Thiessen b4255a9652 fix(dav): allow uploading of files with long filenames
A filename must be less or equal 255 characters, but when adding the
`.part` and `.ocfiletransfer` extensions we might overflow this limit.
So we should also use filename hashes for uploading when the file has a
long filename, similar like when we are uploading to the user storage
directly.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-22 11:09:25 +02:00
Ferdinand Thiessen 6141ab1da6 refactor(dav): simplify length header handling
Reduce nesting and drop duplicated sections.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-22 11:09:05 +02:00
Ferdinand Thiessen fd22b9cb18 ci(dependabot): remove stable29 and group composer directories
- stable29 is EOL
- make configuration better readable by grouping composer configurations
  with `directories` instead of individual configurations.
- do not allow major updates on stable branches, but still do patch
  updates.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-22 11:06:27 +02:00
Joas Schilling fe7c1c0aad fix(caldav): Fix check for ROOM or RESOURCE comment
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-22 11:02:13 +02:00
John Molakvoæ 703af4bd44 Merge pull request #52249 from nextcloud/chore/update-3rdparty 2025-04-22 10:44:45 +02:00
Ferdinand Thiessen f24d178d0f chore: revert "fix(deps): lock mdast-util-gfm-autolink-literal library to exact version 2.0.0"
This reverts commit d028b61a40.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-22 10:27:25 +02:00
dependabot[bot] c4b9e9d4a1 Merge pull request #52272 from nextcloud/dependabot/npm_and_yarn/libphonenumber-js-1.12.7 2025-04-22 08:07:04 +00:00
Ferdinand Thiessen f1448fcf07 chore(theming): remove scssphp and just native nested CSS
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-22 09:51:04 +02:00
Ferdinand Thiessen 36230f78c6 chore: drop scssphp dependency
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-22 09:51:04 +02:00
dependabot[bot] 35056e5c33 build(deps): bump libphonenumber-js from 1.12.6 to 1.12.7
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.6 to 1.12.7.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/commits/master)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-version: 1.12.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-22 07:38:56 +00:00
Côme Chilliet 98e3afce9e Merge pull request #52257 from nextcloud/fix/noid/ensure-userid-attr-present
fix(LDAP): inlcude ldapExpertUsernameAttr in general attribute list
2025-04-22 09:24:50 +02:00
Julius Knorr 3fc9a99521 perf: Add config options to trigger individual and sample profiling using excimer
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-04-22 08:57:02 +02:00
Nextcloud bot cb4fcd0f40 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-22 00:23:01 +00:00
Nextcloud bot db8e570802 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-21 00:23:10 +00:00
Ferdinand Thiessen 07f26fc789 Merge pull request #51953 from nextcloud/dependabot/npm_and_yarn/backbone-1.6.1
build(deps): bump backbone from 1.6.0 to 1.6.1
2025-04-20 11:46:35 +02:00
Nextcloud bot 91ded2c005 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-20 00:23:05 +00:00
Marcel Müller 2ca168f717 chore: Update config.sample.php to include query log extensions
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-04-19 21:29:33 +02:00
Marcel Müller 0955b0a39d feat: Add option to also log parameters to query log
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-04-19 21:29:26 +02:00
Andy Scherzinger 9cd42d67fb Merge pull request #52267 from danielniccoli/patch-1
Update AUTHORS
2025-04-19 09:13:17 +02:00
Nextcloud bot 368ce76528 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-19 00:22:46 +00:00
dependabot[bot] 03b65867a8 build(deps): bump backbone from 1.6.0 to 1.6.1
Bumps [backbone](https://github.com/jashkenas/backbone) from 1.6.0 to 1.6.1.
- [Commits](https://github.com/jashkenas/backbone/compare/1.6.0...1.6.1)

---
updated-dependencies:
- dependency-name: backbone
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-18 23:08:53 +00:00
dependabot[bot] 69823fe160 Merge pull request #51950 from nextcloud/dependabot/npm_and_yarn/mime-4.0.7 2025-04-18 23:02:18 +00:00
dependabot[bot] 8ebe423360 Merge pull request #52251 from nextcloud/dependabot/npm_and_yarn/http-proxy-middleware-2.0.9 2025-04-18 22:54:43 +00:00
dependabot[bot] 3c8990eb87 Merge pull request #52243 from nextcloud/dependabot/npm_and_yarn/babel/preset-typescript-7.27.0 2025-04-18 22:53:31 +00:00
dependabot[bot] 682b9f43b1 build(deps-dev): bump mime from 4.0.6 to 4.0.7
Bumps [mime](https://github.com/broofa/mime) from 4.0.6 to 4.0.7.
- [Release notes](https://github.com/broofa/mime/releases)
- [Changelog](https://github.com/broofa/mime/blob/main/CHANGELOG.md)
- [Commits](https://github.com/broofa/mime/compare/v4.0.6...v4.0.7)

---
updated-dependencies:
- dependency-name: mime
  dependency-version: 4.0.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-18 22:45:55 +00:00
Ferdinand Thiessen a4cb653db0 Merge pull request #52141 from nextcloud/dependabot/npm_and_yarn/simplewebauthn/browser-13.1.0
build(deps): bump @simplewebauthn/browser from 12.0.0 to 13.1.0
2025-04-19 00:38:48 +02:00
dependabot[bot] 0e60b5c123 Merge pull request #52244 from nextcloud/dependabot/npm_and_yarn/types/dockerode-3.3.38 2025-04-18 22:05:23 +00:00
Ferdinand Thiessen 454dab3ab7 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-19 00:01:32 +02:00
Ferdinand Thiessen 77b663231f chore: migrate types to @simplewebauthn/browser (changes package layout)
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-18 23:56:06 +02:00
dependabot[bot] 871ea1c9cd build(deps): bump @simplewebauthn/browser from 12.0.0 to 13.1.0
Bumps [@simplewebauthn/browser](https://github.com/MasterKale/SimpleWebAuthn/tree/HEAD/packages/browser) from 12.0.0 to 13.1.0.
- [Release notes](https://github.com/MasterKale/SimpleWebAuthn/releases)
- [Changelog](https://github.com/MasterKale/SimpleWebAuthn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MasterKale/SimpleWebAuthn/commits/v13.1.0/packages/browser)

---
updated-dependencies:
- dependency-name: "@simplewebauthn/browser"
  dependency-version: 13.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-18 23:55:46 +02:00
Ferdinand Thiessen 630c454db6 Merge pull request #52247 from nextcloud/dependabot/npm_and_yarn/webpack-5.99.5
build(deps-dev): bump webpack from 5.94.0 to 5.99.5
2025-04-18 23:50:29 +02:00
dependabot[bot] 3a7c3e029e Merge pull request #52245 from nextcloud/dependabot/npm_and_yarn/jsdom-26.1.0 2025-04-18 21:45:34 +00:00
dependabot[bot] 32881e298b build(deps-dev): bump webpack from 5.94.0 to 5.99.5
Bumps [webpack](https://github.com/webpack/webpack) from 5.94.0 to 5.99.5.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.94.0...v5.99.5)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.99.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-18 21:35:19 +00:00
Daniel Niccoli bc4c940b6e Update AUTHORS
Signed-off-by: Daniel Niccoli <2971735+danielniccoli@users.noreply.github.com>
2025-04-18 17:03:32 +02:00
Nextcloud bot c337020446 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-18 00:23:31 +00:00
Christoph Wurst 29161c0dfd fix(db): Create replacement index where original index is missing
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2025-04-17 17:59:19 +02:00
Arthur Schiwon 1eb9000b0d fix(LDAP): inlcude ldapExpertUsernameAttr in general attribute list
fixes corner cases in which an LDAP record might be loaded and used,
where the user is still not mapped - and then this information is
missing though expected.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-04-17 17:00:31 +02:00
Arthur Schiwon 8410d67fc7 Merge pull request #52224 from nextcloud/bugfix/noid/dont-break-when-checking-if-too-long-user-exists
fix(usermanager): Don't throw when checking if a too long user id is an existing user
2025-04-17 16:55:02 +02:00
Côme Chilliet fb724416ba Merge pull request #52178 from nextcloud/fix/remove-app.php-loading
fix: Remove support for app.php loading
2025-04-17 16:39:43 +02:00
nfebe 6b89838cc2 feat: add logging to preview generation
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-04-17 14:24:18 +01:00
Joas Schilling 47f1950a40 Merge pull request #52252 from nextcloud/fix/noid/log-false-user
fix(Log): revert swich to ?? operator
2025-04-17 15:20:19 +02:00
Arthur Schiwon fe52a03ff8 fix(Log): revert swich to ?? operator
false is expected, not null. The changed caused "user" in the log files
to be false instead of "--", which is breaking behaviour.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-04-17 14:26:38 +02:00
dependabot[bot] ed6bf0815c build(deps-dev): bump http-proxy-middleware from 2.0.7 to 2.0.9
Bumps [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) from 2.0.7 to 2.0.9.
- [Release notes](https://github.com/chimurai/http-proxy-middleware/releases)
- [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.9/CHANGELOG.md)
- [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.7...v2.0.9)

---
updated-dependencies:
- dependency-name: http-proxy-middleware
  dependency-version: 2.0.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-17 11:27:04 +00:00
Ferdinand Thiessen dc8e16c520 Merge pull request #52246 from nextcloud/dependabot/npm_and_yarn/nextcloud/vue-8.25.1
build(deps): bump @nextcloud/vue from 8.24.0 to 8.25.1
2025-04-17 13:25:20 +02:00
dependabot[bot] 55233c530a build(deps): bump @nextcloud/vue from 8.24.0 to 8.25.1
Bumps [@nextcloud/vue](https://github.com/nextcloud-libraries/nextcloud-vue) from 8.24.0 to 8.25.1.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-vue/blob/v8.25.1/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-vue/compare/v8.24.0...v8.25.1)

---
updated-dependencies:
- dependency-name: "@nextcloud/vue"
  dependency-version: 8.25.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-17 11:01:05 +00:00
Ferdinand Thiessen a80cf40329 Merge pull request #52240 from nextcloud/fix/use-also-default-text
fix(mail): use matching text color for primary elements
2025-04-17 12:43:50 +02:00
dependabot[bot] f1202c4017 build(deps-dev): bump jsdom from 26.0.0 to 26.1.0
Bumps [jsdom](https://github.com/jsdom/jsdom) from 26.0.0 to 26.1.0.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md)
- [Commits](https://github.com/jsdom/jsdom/compare/26.0.0...26.1.0)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-version: 26.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-17 10:36:34 +00:00
dependabot[bot] fe99d38aab build(deps-dev): bump @types/dockerode from 3.3.37 to 3.3.38
Bumps [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode) from 3.3.37 to 3.3.38.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode)

---
updated-dependencies:
- dependency-name: "@types/dockerode"
  dependency-version: 3.3.38
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-17 10:36:10 +00:00
dependabot[bot] 37fae11d5c build(deps-dev): bump @babel/preset-typescript from 7.26.0 to 7.27.0
Bumps [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript) from 7.26.0 to 7.27.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.0/packages/babel-preset-typescript)

---
updated-dependencies:
- dependency-name: "@babel/preset-typescript"
  dependency-version: 7.27.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-17 10:35:50 +00:00
Ferdinand Thiessen 8f8c11ad4e fix(mail): use matching text color for primary elements
when we use the default primary as background color we have to use the
default primary text color as well.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-17 11:51:46 +02:00
Joas Schilling 1ada9910b1 fix(user): Introduce a public constant for max length of user id
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-17 09:50:12 +02:00
John Molakvoæ 253a741013 Merge pull request #50465 from nextcloud/zorn-v-patch-1 2025-04-17 09:15:53 +02:00
Kate f0154a75ca Merge pull request #52223 from nextcloud/feat/add-configurable-ipv6-subnet
feat(security): add configurable IPv6 subnet for BFP and throttling
2025-04-17 09:03:04 +02:00
Benjamin Gaussorgues 9f666c2b73 feat(ip): add configurable IPv6 subnet for BFP and throttling
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2025-04-17 08:12:03 +02:00
Nextcloud bot f34466c99e fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-17 00:23:00 +00:00
SebastianKrupinski 1a90998edc fix: do not ignore move command object target uri
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-04-16 17:43:12 -04:00
Ferdinand Thiessen f20d79e041 Merge pull request #52180 from nextcloud/fix/bring-back-hide-downlaod
fix(files_sharing): bring back handling of `hide-download` on public shares
2025-04-16 20:54:28 +02:00
Ferdinand Thiessen e5291caa22 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-16 20:39:30 +02:00
Ferdinand Thiessen e2df8f3d69 fix(files_sharing): allow to disable share download permission
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-16 20:38:20 +02:00
Ferdinand Thiessen 47d1afbb7f revert: do not unify hide-download and prevent-download permissions
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-16 20:38:20 +02:00
Ferdinand Thiessen a799d8dccf fix(files_sharing): do not show download button if hide-download is enabled
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-16 20:38:20 +02:00
Ferdinand Thiessen 11594df799 refactor(files): use new hide-download WebDAV property for download action
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-16 20:38:20 +02:00
Ferdinand Thiessen ba3c504812 feat(files_sharing): add WebDAV property for the hide-download state of shares
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-16 20:38:20 +02:00
Joas Schilling 775ca882f3 fix(usermanager): Don't throw when checking if a too long user id is an existing user
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-16 17:47:28 +02:00
zorn-v d0658e85ea Check that user actually can validate password for js
Signed-off-by: zorn-v <zorn7@yandex.ru>
2025-04-16 16:06:11 +02:00
Andy Scherzinger 85d2ee5262 Merge pull request #52175 from nextcloud/perf/properies-index-
perf: Add index to select properties by name, path and user
2025-04-16 11:23:33 +02:00
Julius Knorr a8328b06d6 perf: Add index to select properties by name, path and user
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-04-16 11:06:22 +02:00
Richard Steinmetz de37af9687 perf(carddav): don't query circle memberships
It is not possible to share address books with circles so it is
pointless to query for address books shared with joined circles.

Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-04-16 10:04:01 +02:00
Nextcloud bot 3e5a3063ae fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-16 00:23:18 +00:00
Andy Scherzinger f81b54a370 Merge pull request #52212 from nextcloud/fix/improve-error-output-of-sso-test
chore: Output error content when test smb-kerberos-sso is failing
2025-04-15 19:09:27 +02:00
Côme Chilliet cd6e5ababb Merge pull request #52080 from nextcloud/chore-check-for-composer-bin
ci: add check to ensure composer-bin is not accidentally committed
2025-04-15 18:05:54 +02:00
Côme Chilliet 63ed670458 chore: Output error content when test smb-kerberos-sso is failing
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-15 16:54:56 +02:00
Daniel Kesselberg 3e9454ad72 chore: update main autoloader
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-04-15 13:20:37 +02:00
Daniel Kesselberg fa8b389b6e ci: add check to ensure composer-bin is not accidentally committed
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-04-15 13:20:37 +02:00
F. E Noel Nfebe e5b34b700d Merge pull request #52121 from nextcloud/fix/no-issue/use-password-default-sharing-details
fix(files_sharing): Apply default password setting in SharingDetailsTab
2025-04-15 12:56:40 +02:00
nextcloud-command ace0928759 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-15 10:09:27 +00:00
nfebe 02efad600a fix(files_sharing): Apply default password setting in SharingDetailsTab
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-04-15 10:56:26 +01:00
John Molakvoæ fbb77270c2 Merge pull request #50905 from nextcloud/fix/rate-limit-share-creation 2025-04-15 10:57:50 +02:00
John Molakvoæ 50dcbdeec6 fix(files_sharing): adjust rate limit share creation to 20 over 10 minutes
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-04-15 10:32:47 +02:00
skjnldsv 75063cd71b test: enable rate limiting for ratelimiting.feature
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-15 10:31:02 +02:00
Louis b2a187d296 Merge pull request #51729 from nextcloud/artonge/support_oc_checksum_in_bulk_upload
feat: Support OC-Checksum in bulk upload
2025-04-15 09:49:38 +02:00
John Molakvoæ f4841e1172 Merge pull request #52072 from nextcloud/fix/sharing-exp-date 2025-04-15 09:22:59 +02:00
Joas Schilling 59d1a49acc test: Disable ratelimit as tests trigger it
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-15 08:45:50 +02:00
skjnldsv 338ab64365 fix(files_sharing): rate limit share creation 10 times per 10 minutes
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-15 08:45:25 +02:00
Nextcloud bot a75f47f216 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-15 00:22:43 +00:00
nextcloud-command f7cb282118 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-14 20:50:31 +00:00
skjnldsv bc70e0ded0 fix(files_sharing): file request pass empty string if password or expiration is disabled
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-14 22:46:52 +02:00
skjnldsv 6a0d92dedf fix(files_sharing): expireDate null tests
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-14 22:46:52 +02:00
John Molakvoæ f37026034e Merge pull request #51640 from nextcloud/dependabot/npm_and_yarn/sass-loader-16.0.5 2025-04-14 22:45:56 +02:00
nextcloud-command f321646a67 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-14 20:32:27 +00:00
dependabot[bot] 649ea5df71 build(deps-dev): bump sass-loader from 16.0.2 to 16.0.5
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 16.0.2 to 16.0.5.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v16.0.2...v16.0.5)

---
updated-dependencies:
- dependency-name: sass-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 22:28:17 +02:00
John Molakvoæ d13798671c Merge pull request #52144 from nextcloud/dependabot/npm_and_yarn/puppeteer-24.6.1 2025-04-14 22:26:25 +02:00
John Molakvoæ d3a41b69c9 Merge pull request #52147 from nextcloud/dependabot/npm_and_yarn/types/dockerode-3.3.37 2025-04-14 22:24:46 +02:00
John Molakvoæ c1e1b2b4f8 Merge pull request #52148 from nextcloud/dependabot/npm_and_yarn/nextcloud/webpack-vue-config-6.3.0 2025-04-14 22:23:05 +02:00
skjnldsv bc456bbb8a chore: remove ts-loader and use webpack-vue-configs
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-14 22:09:10 +02:00
skjnldsv 8ff9747cbf chore: fix babel and webpack deps
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-14 20:03:59 +00:00
dependabot[bot] 95ffa38cb8 build(deps-dev): bump @nextcloud/webpack-vue-config from 6.2.0 to 6.3.0
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud-libraries/webpack-vue-config) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/nextcloud-libraries/webpack-vue-config/releases)
- [Changelog](https://github.com/nextcloud-libraries/webpack-vue-config/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/webpack-vue-config/compare/v6.2.0...v6.3.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/webpack-vue-config"
  dependency-version: 6.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 22:00:20 +02:00
Louis f8391e60ce Merge pull request #51020 from nextcloud/artonge/fix/transfer_ownership 2025-04-14 16:14:45 +02:00
Côme Chilliet 696e163ba2 Merge pull request #52086 from nextcloud/fix/cleanup-user-backends
Cleanup user backends related methods
2025-04-14 15:49:49 +02:00
dependabot[bot] 96a8a74403 Merge pull request #52146 from nextcloud/dependabot/npm_and_yarn/dompurify-3.2.5 2025-04-14 13:07:54 +00:00
Côme Chilliet 12b1342316 chore: Update psalm baseline
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-14 14:51:22 +02:00
Côme Chilliet 92038229fa fix: Remove support for app.php loading
It has been deprecated for a long time, and the last known active
 application to use it (user_saml) is now migrated the modern API.
Presence of the file is still checked in order to log an error.
This behavior may be removed as well in a few versions.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-14 14:30:00 +02:00
dependabot[bot] bbe3bc2ad3 build(deps): bump dompurify from 3.2.4 to 3.2.5
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.2.4...3.2.5)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-14 11:48:10 +00:00
Ferdinand Thiessen 988da9622c Merge pull request #52142 from nextcloud/dependabot/npm_and_yarn/vueuse/components-11.3.0
build(deps): bump @vueuse/components from 11.1.0 to 11.3.0
2025-04-14 12:30:58 +02:00
dependabot[bot] 62bedebe7c build(deps): bump @vueuse/components from 11.1.0 to 11.3.0
Bumps [@vueuse/components](https://github.com/vueuse/vueuse/tree/HEAD/packages/components) from 11.1.0 to 11.3.0.
- [Release notes](https://github.com/vueuse/vueuse/releases)
- [Commits](https://github.com/vueuse/vueuse/commits/v11.3.0/packages/components)

---
updated-dependencies:
- dependency-name: "@vueuse/components"
  dependency-version: 11.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-14 10:12:32 +00:00
Louis c74e4ad922 Merge pull request #52137 from nextcloud/revert-51431-enh/noid/disable-bulk-upload 2025-04-14 11:41:10 +02:00
dependabot[bot] 6a14a78444 Merge pull request #52153 from nextcloud/dependabot/npm_and_yarn/marked-15.0.8 2025-04-14 09:30:46 +00:00
dependabot[bot] 56c7a93ef5 build(deps): bump marked from 15.0.7 to 15.0.8
Bumps [marked](https://github.com/markedjs/marked) from 15.0.7 to 15.0.8.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v15.0.7...v15.0.8)

---
updated-dependencies:
- dependency-name: marked
  dependency-version: 15.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-14 09:16:19 +00:00
Ferdinand Thiessen 6e2afef860 Merge pull request #52150 from nextcloud/dependabot/npm_and_yarn/nextcloud/eslint-config-8.4.2
build(deps-dev): bump @nextcloud/eslint-config from 8.4.1 to 8.4.2
2025-04-14 11:12:28 +02:00
Kate d385e024b9 Merge pull request #52166 from nextcloud/upstream/52135/52135-master 2025-04-14 10:53:38 +02:00
dependabot[bot] bc4fc5d7f0 build(deps-dev): bump @nextcloud/eslint-config from 8.4.1 to 8.4.2
Bumps [@nextcloud/eslint-config](https://github.com/nextcloud-libraries/eslint-config) from 8.4.1 to 8.4.2.
- [Release notes](https://github.com/nextcloud-libraries/eslint-config/releases)
- [Changelog](https://github.com/nextcloud-libraries/eslint-config/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/eslint-config/compare/v8.4.1...v8.4.2)

---
updated-dependencies:
- dependency-name: "@nextcloud/eslint-config"
  dependency-version: 8.4.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-04-14 08:48:34 +00:00
Benjamin Gaussorgues fc3067679d Merge pull request #52162 from nextcloud/rakekniven-patch-2 2025-04-14 10:21:33 +02:00
Marcel Klehr ca47be30de Merge pull request #52168 from nextcloud/fix/context-chat-l10n
fix(ContextAgent): Do not translate the name ContextAgent
2025-04-14 08:55:13 +02:00
Marcel Klehr 19ede62b90 fix(ContextAgent): Do not translate the name ContextAgent
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-04-14 08:14:14 +02:00
Nextcloud bot caf30f048b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-14 00:22:55 +00:00
Nextcloud bot 88df96d69d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-13 00:23:06 +00:00
Maxence Lange 61ab5cf157 fix(setup): ignore missing theming app
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-04-12 18:49:26 -01:00
rakekniven 0ceea33749 chore(i18n): Aligned spelling of app name
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-04-12 17:19:26 +02:00
Kate e761c9e3eb Merge pull request #52156 from nextcloud/dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.5.3 2025-04-12 08:58:42 +02:00
dependabot[bot] 8eb3c975ad build(deps): bump nextcloud/openapi-extractor
Bumps [nextcloud/openapi-extractor](https://github.com/nextcloud-releases/openapi-extractor) from 1.5.2 to 1.5.3.
- [Changelog](https://github.com/nextcloud-releases/openapi-extractor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-releases/openapi-extractor/compare/v1.5.2...v1.5.3)

---
updated-dependencies:
- dependency-name: nextcloud/openapi-extractor
  dependency-version: 1.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-04-12 08:27:22 +02:00
dependabot[bot] 8537b67eff Merge pull request #52151 from nextcloud/dependabot/npm_and_yarn/stylelint-16.18.0 2025-04-12 02:08:58 +00:00
dependabot[bot] 9dd4206ee1 build(deps-dev): bump puppeteer from 24.5.0 to 24.6.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.5.0 to 24.6.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.5.0...puppeteer-v24.6.1)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-version: 24.6.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 02:04:02 +00:00
dependabot[bot] 5c54f64db0 Merge pull request #52145 from nextcloud/dependabot/npm_and_yarn/sass-1.86.3 2025-04-12 02:00:33 +00:00
dependabot[bot] 9662ce460b Merge pull request #52140 from nextcloud/dependabot/npm_and_yarn/zip.js/zip.js-2.7.60 2025-04-12 01:57:59 +00:00
dependabot[bot] ab7a4ee2dd build(deps-dev): bump stylelint from 16.17.0 to 16.18.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.17.0 to 16.18.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/16.17.0...16.18.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.18.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 01:22:13 +00:00
dependabot[bot] e65e8c893b build(deps-dev): bump @types/dockerode from 3.3.32 to 3.3.37
Bumps [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode) from 3.3.32 to 3.3.37.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode)

---
updated-dependencies:
- dependency-name: "@types/dockerode"
  dependency-version: 3.3.37
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 01:21:13 +00:00
dependabot[bot] d494169e3f build(deps-dev): bump sass from 1.85.1 to 1.86.3
Bumps [sass](https://github.com/sass/dart-sass) from 1.85.1 to 1.86.3.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.85.1...1.86.3)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.86.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 01:20:42 +00:00
dependabot[bot] 6bc4eda3cb build(deps-dev): bump @zip.js/zip.js from 2.7.54 to 2.7.60
Bumps [@zip.js/zip.js](https://github.com/gildas-lormeau/zip.js) from 2.7.54 to 2.7.60.
- [Release notes](https://github.com/gildas-lormeau/zip.js/releases)
- [Commits](https://github.com/gildas-lormeau/zip.js/compare/v2.7.54...v2.7.60)

---
updated-dependencies:
- dependency-name: "@zip.js/zip.js"
  dependency-version: 2.7.60
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 01:19:32 +00:00
Nextcloud bot 2494eff627 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-12 00:23:05 +00:00
Louis a81440d11c Revert "feat(bulk-upload): change the default to disabled as there are still some bugs present" 2025-04-11 23:39:25 +02:00
dependabot[bot] f61cec4b8e Merge pull request #52132 from nextcloud/dependabot/npm_and_yarn/vite-6.2.6 2025-04-11 15:54:10 +00:00
Robin Appelman fb3e60862f fix: disable direct download for shares
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-11 17:42:21 +02:00
dependabot[bot] 816ca72c64 build(deps): bump vite from 6.2.5 to 6.2.6
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.5 to 6.2.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-11 15:38:59 +00:00
Robin Appelman 1185b5ee35 fix: don't return other mounts from share mount provider
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-11 14:20:21 +02:00
Joas Schilling 2ea3491240 Merge pull request #52105 from nextcloud/automated/noid/master-update-code-signing-crl
[master] fix(security): Update code signing revocation list
2025-04-11 12:29:24 +02:00
Tobias Kaminsky 5e9ebe4acb Merge pull request #51431 from nextcloud/enh/noid/disable-bulk-upload
feat(bulk-upload): change the default to disabled as there are still some bugs present
2025-04-11 11:22:02 +02:00
Marcel Klehr d16bc3b550 Merge pull request #52116 from nextcloud/Lukasdotcom-fix/fileids
Fix(TaskProcessing): for validation for taskprocessing EShapeType
2025-04-11 09:26:44 +02:00
Lukas Schaefer b4dcace2ac Fix(TaskProcessing): for validation for taskprocessing EShapeType
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2025-04-11 02:56:36 -04:00
nextcloud-command 7f569205d9 fix(security): Update code signing revocation list
Signed-off-by: GitHub <noreply@github.com>
2025-04-11 02:36:27 +00:00
Nextcloud bot 345167ff18 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-11 00:23:04 +00:00
Robin Appelman db078e7a60 Merge pull request #52073 from nextcloud/custom-properties-preload-negative
fix: fix preloading files with no custom properties
2025-04-10 21:30:22 +02:00
Simon L. 5e6478fd64 feat(bulk-upload): change the default to disabled as there are still some bugs present
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-04-10 15:28:52 +02:00
Côme Chilliet 0cf4f3cc71 fix: Replace all usages of OC_User backend method calls by IUserManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-10 11:29:21 +02:00
Côme Chilliet ddd7d4ed13 fix: Deprecate OC_User methods related to user backends
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-10 11:12:25 +02:00
Robin Appelman 5c66fead67 fix: fix preloading files with no custom properties
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-09 15:04:35 +02:00
Robin Appelman c1dbc27fd6 fix: don't construct storage when checking if a sub-mount is applicable
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-04-08 18:21:41 +02:00
Louis Chemineau 3bb2a92962 feat: Support OC-Checksum in bulk upload
To align with the rest of Nextcloud.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-04-01 14:35:21 +02:00
Louis Chemineau 8fdf2a7eae fix: Transfer ownership with S3 as primary
When using S3 as primary storage, transferring ownership with the `--move` option fail with the following error:

`SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '8-45b963397aa40d4a0063e0d85e4fe7a1' for key 'fs_storage_path_hash'`

The `--move` option moves the entire home folder from one account to another.
The error means that the move failed because the destination folder already exist in `oc_filecache`.

- With S3 as primary storage, folders only exists as entries in `oc_filecache`.
- With S3 as primary storage, `moveFromStorage(...)` only moves the cache entry, as nothing needs to be moved on disk. This cache move does not delete potentially pre-existing destination folder.
- With Local storage, `moveFromStorage(...)` calls `rename(...)` which delete pre-existing folder.

- `transfer(...)`: https://github.com/nextcloud/server/blob/687a4d9ac7fcdbd935f81a0def567a1092306f7a/apps/files/lib/Service/OwnershipTransferService.php#L112
- `oneTimeUserSetup(...)`: https://github.com/nextcloud/server/blob/687a4d9ac7fcdbd935f81a0def567a1092306f7a/lib/private/Files/SetupManager.php#L261-L262
- `mkdir(...)`: https://github.com/nextcloud/server/blob/687a4d9ac7fcdbd935f81a0def567a1092306f7a/lib/private/Files/ObjectStore/ObjectStoreStorage.php#L91-L135
- `moveFromStorage(...)`: https://github.com/nextcloud/server/blob/687a4d9ac7fcdbd935f81a0def567a1092306f7a/lib/private/Files/ObjectStore/ObjectStoreStorage.php#L635-L636

Delete pre-existing folder in `moveFromStorage(...)`

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-04-01 13:53:56 +02:00
Robin Appelman f436ab066e feat: show permissions in info:file output
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-03-31 15:38:33 +02:00
Robin Appelman 8aae332622 feat: store original storage id and path in object store metadata
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-03-31 15:10:58 +02:00
Robin Appelman 94114b99f7 feat: more generic way of passing metadata to object storage backends for new objects
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-03-31 14:55:18 +02:00
Christoph Wurst 8388646ae7 perf(db): Extend index on cards_properties to cover name and value
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2025-03-12 13:14:29 +01:00
schaarsc 778ae6a487 feat(systemtags): add commands to manage tags on files
Resolve nextcloud#32735

Signed-off-by: schaarsc <schaarsc@users.noreply.github.com>
2025-01-29 19:02:39 +01:00
3524 changed files with 76624 additions and 47706 deletions
+3
View File
@@ -0,0 +1,3 @@
watch_file lib/versioncheck.php
watch_file package.json
use flake
+9 -8
View File
@@ -10,17 +10,16 @@
/__mocks__ @nextcloud/server-frontend
/__tests__ @nextcloud/server-frontend
/cypress @nextcloud/server-frontend
**/css @nextcloud/server-frontend
**/js @nextcloud/server-frontend
**/src @nextcloud/server-frontend
*.js @nextcloud/server-frontend
*.ts @nextcloud/server-frontend
# dependency management
package.json @nextcloud/server-dependabot
package.json @nextcloud/server-dependabot @nextcloud/server-frontend
package-lock.json @nextcloud/server-dependabot
# Compiled assets only - no owner set to not spam on automated dependency updates
/dist
/dist @nextcloud/server-dependabot
# App maintainers
/apps/admin_audit/appinfo/info.xml @luka-nextcloud @blizzz
@@ -94,9 +93,11 @@ ResponseDefinitions.php @provokateurin @nextcloud/server-backend
/lib/public/UserStatus @nickvergessen @nextcloud/talk-backend
# Groupware
/build/integration/dav_features/caldav.feature @st3iny @SebastianKrupinski
/build/integration/dav_features/carddav.feature @st3iny @SebastianKrupinski
/build/integration/dav_features/caldav.feature @st3iny @SebastianKrupinski @tcitworld
/build/integration/dav_features/carddav.feature @hamza221 @SebastianKrupinski
/lib/public/Calendar @st3iny @SebastianKrupinski @tcitworld
/lib/public/Contacts @hamza221 @SebastianKrupinski
# Personal interest
*/Activity/* @nickvergessen @nextcloud/server-backend
*/Notifications/* @nickvergessen @nextcloud/talk-backend
*/Activity/* @nickvergessen @nextcloud/server-backend
*/Notifications/* @nickvergessen @nextcloud/talk-backend
+124 -228
View File
@@ -1,233 +1,8 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
version: 2
updates:
# Linting and coding style
- package-ecosystem: composer
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# cs-fixer
- package-ecosystem: composer
directory: "/vendor-bin/cs-fixer"
schedule:
interval: weekly
day: saturday
time: "04:10"
timezone: Europe/Copenhagen
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# openapi-extractor
- package-ecosystem: composer
directory: "/vendor-bin/openapi-extractor"
schedule:
interval: weekly
day: saturday
time: "04:20"
timezone: Europe/Brussels
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
- "provokateurin"
# psalm
- package-ecosystem: composer
directory: "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:30"
timezone: Europe/Madrid
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# phpunit
- package-ecosystem: composer
directory: "/vendor-bin/phpunit"
schedule:
interval: weekly
day: saturday
time: "04:40"
timezone: Europe/Madrid
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Main master npm
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
# Testing master npm
- package-ecosystem: npm
directory: "/build"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
# Testing master composer
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
target-branch: stable29
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
target-branch: stable30
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
target-branch: stable31
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable29
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable30
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable31
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
@@ -241,6 +16,127 @@ updates:
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Main composer (linting, testing, openapi)
- package-ecosystem: composer
directories:
- "/"
- "/build/integration"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
- "/vendor-bin/rector"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
# Main master npm frontend dependencies
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
# Latest stable release
# Composer dependencies for linting and testing
- package-ecosystem: composer
target-branch: stable31
directories:
- "/"
- "/build/integration"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "03:30"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Latest stable branch
# frontend dependencies
- package-ecosystem: npm
target-branch: stable31
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:30"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
ignore:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
# Older stable releases
# Composer dependencies for linting and testing
- package-ecosystem: composer
target-branch: stable30
directories:
- "/"
- "/build/integration"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# frontend dependencies
- package-ecosystem: npm
target-branch: stable30
directory: "/"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
ignore:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
+3 -5
View File
@@ -36,6 +36,7 @@ jobs:
- 'composer.json'
- 'composer.lock'
- '**.php'
- build/autoloaderchecker.sh
autoloader:
runs-on: ubuntu-latest
@@ -57,7 +58,7 @@ jobs:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
@@ -66,9 +67,6 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Check auto loaders
run: bash ./build/autoloaderchecker.sh
@@ -89,7 +87,7 @@ jobs:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
+15 -6
View File
@@ -27,13 +27,22 @@ jobs:
steps:
- name: Set server major version environment
run: |
# retrieve version number from branch reference
server_major=$(echo "${{ github.base_ref }}" | sed -En 's/stable//p')
echo "server_major=$server_major" >> $GITHUB_ENV
echo "current_month=$(date +%Y-%m)" >> $GITHUB_ENV
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const regex = /^stable(\d+)$/
const baseRef = context.payload.pull_request.base.ref
const match = baseRef.match(regex)
if (match) {
console.log('Setting server_major to ' + match[1]);
core.exportVariable('server_major', match[1]);
console.log('Setting current_month to ' + (new Date()).toISOString().substr(0, 7));
core.exportVariable('current_month', (new Date()).toISOString().substr(0, 7));
}
- name: Checking if ${{ env.server_major }} is EOL
- name: Checking if server ${{ env.server_major }} is EOL
if: ${{ env.server_major != '' }}
run: |
curl -s https://raw.githubusercontent.com/nextcloud-releases/updater_server/production/config/major_versions.json \
| jq '.["${{ env.server_major }}"]["eol"] // "9999-99" | . >= "${{ env.current_month }}"' \
+24 -2
View File
@@ -28,8 +28,30 @@ jobs:
runs-on: ubuntu-latest-low
steps:
- name: Download version.php from ${{ github.base_ref }}
run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ github.base_ref }}/version.php' --output version.php
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping freeze check');
}
}
- name: Download version.php from ${{ env.server_ref }}
if: ${{ env.server_ref != '' }}
run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ env.server_ref }}/version.php' --output version.php
- name: Run check
if: ${{ env.server_ref != '' }}
run: cat version.php | grep 'OC_VersionString' | grep -i -v 'RC'
+27 -3
View File
@@ -32,24 +32,48 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: 3rdparty commit hash on current branch
id: actual
run: |
echo "commit=$(git submodule status | grep ' 3rdparty' | egrep -o '[a-f0-9]{40}')" >> "$GITHUB_OUTPUT"
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping outdated 3rdparty check');
}
}
- name: Last 3rdparty commit on target branch
if: ${{ env.server_ref != '' }}
id: target
run: |
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty refs/heads/${{ github.base_ref }} | awk '{ print $1}')" >> "$GITHUB_OUTPUT"
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty refs/heads/${{ env.server_ref }} | awk '{ print $1}')" >> "$GITHUB_OUTPUT"
- name: Compare if 3rdparty commits are different
if: ${{ env.server_ref != '' }}
run: |
echo '3rdparty/ seems to not point to the last commit of the dedicated branch:'
echo 'Branch has: ${{ steps.actual.outputs.commit }}'
echo '${{ github.base_ref }} has: ${{ steps.target.outputs.commit }}'
echo '${{ env.server_ref }} has: ${{ steps.target.outputs.commit }}'
- name: Fail if 3rdparty commits are different
if: ${{ steps.changes.outputs.src != 'false' && steps.actual.outputs.commit != steps.target.outputs.commit }}
if: ${{ env.server_ref != '' && steps.changes.outputs.src != 'false' && steps.actual.outputs.commit != steps.target.outputs.commit }}
run: |
exit 1
@@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- uses: webiny/action-conventional-commits@8bc41ff4e7d423d56fa4905f6ff79209a78776c7 # v1.3.0
with:
+5 -1
View File
@@ -11,6 +11,9 @@ on:
issue_comment:
types: [created]
permissions:
contents: read
jobs:
init:
runs-on: ubuntu-latest
@@ -102,6 +105,7 @@ jobs:
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
# Needed to allow force push later
persist-credentials: true
token: ${{ secrets.COMMAND_BOT_PAT }}
fetch-depth: 0
@@ -120,7 +124,7 @@ jobs:
fallbackNpm: '^10'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
cache: npm
+35 -3
View File
@@ -38,24 +38,56 @@ jobs:
id: comment-branch
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping pull 3rdparty command');
}
}
- name: Setup git
run: |
git config --local user.email 'nextcloud-command@users.noreply.github.com'
git config --local user.name 'nextcloud-command'
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
if: ${{ env.server_ref == '' }}
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
- name: Pull 3rdparty
run: git submodule foreach 'if [ "$sm_path" == "3rdparty" ]; then git pull origin '"'"'${{ github.event.issue.pull_request.base.ref }}'"'"'; fi'
if: ${{ env.server_ref != '' }}
run: git submodule foreach 'if [ "$sm_path" == "3rdparty" ]; then git pull origin '"'"'${{ env.server_ref }}'"'"'; fi'
- name: Commit and push changes
if: ${{ env.server_ref != '' }}
run: |
git add 3rdparty
git commit -s -m 'Update submodule 3rdparty to latest ${{ github.event.issue.pull_request.base.ref }}'
git commit -s -m 'Update submodule 3rdparty to latest ${{ env.server_ref }}'
git push
- name: Add reaction on failure
+61 -7
View File
@@ -18,9 +18,16 @@ env:
# Adjust APP_NAME if your repository name is different
APP_NAME: ${{ github.event.repository.name }}
# Server requires head_ref instead of base_ref, as we want to test the PR branch
# This represents the server branch to checkout.
# Usually it's the base branch of the PR, but for pushes it's the branch itself.
# e.g. 'main', 'stable27' or 'feature/my-feature'
# n.b. server will use head_ref, as we want to test the PR branch.
BRANCH: ${{ github.head_ref || github.ref_name }}
permissions:
contents: read
jobs:
init:
runs-on: ubuntu-latest
@@ -43,6 +50,7 @@ jobs:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
# We need to checkout submodules for 3rdparty
submodules: true
@@ -64,7 +72,7 @@ jobs:
fallbackNpm: "^10"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -80,7 +88,7 @@ jobs:
run: npm run cypress:version
- name: Save context
uses: buildjet/cache/save@v4
uses: buildjet/cache/save@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
with:
key: cypress-context-${{ github.run_id }}
path: ./
@@ -94,23 +102,68 @@ jobs:
matrix:
# Run multiple copies of the current job in parallel
# Please increase the number or runners as your tests suite grows (0 based index for e2e tests)
containers: ["component", '0', '1', '2', '3', '4', '5', '6', '7']
containers: ['component', 'setup', '0', '1', '2', '3', '4', '5', '6', '7']
# Hack as strategy.job-total includes the component and GitHub does not allow math expressions
# Always align this number with the total of e2e runners (max. index + 1)
total-containers: [8]
services:
mysql:
# Only start mysql if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-mysql-8.4:latest' || ''}}
ports:
- '3306/tcp'
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
mariadb:
# Only start mariadb if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'mariadb:11.4' || ''}}
ports:
- '3306/tcp'
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mariadb-admin ping" --health-interval 5s --health-timeout 2s --health-retries 5
postgres:
# Only start postgres if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-postgres-17:latest' || ''}}
ports:
- '5432/tcp'
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --mount type=tmpfs,destination=/var/lib/postgresql/data --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
oracle:
# Only start oracle if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/gvenzl/oracle-free:23' || ''}}
ports:
- '1521'
env:
ORACLE_PASSWORD: oracle
options: --health-cmd healthcheck.sh --health-interval 20s --health-timeout 10s --health-retries 10
name: runner ${{ matrix.containers }}
steps:
- name: Restore context
uses: buildjet/cache/restore@v4
uses: buildjet/cache/restore@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
with:
fail-on-cache-miss: true
key: cypress-context-${{ github.run_id }}
path: ./
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ needs.init.outputs.nodeVersion }}
@@ -121,7 +174,7 @@ jobs:
run: ./node_modules/cypress/bin/cypress install
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@108b8684ae52e735ff7891524cbffbcd4be5b19f # v6.7.16
uses: cypress-io/github-action@be1bab96b388bbd9ce3887e397d373c8557e15af # v6.9.2
with:
# We already installed the dependencies in the init job
install: false
@@ -141,6 +194,7 @@ jobs:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
SPLIT: ${{ matrix.total-containers }}
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
SETUP_TESTING: ${{ matrix.containers == 'setup' && 'true' || '' }}
- name: Upload snapshots and videos
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
@@ -9,7 +9,7 @@
name: Dependabot
on:
pull_request_target:
pull_request_target: # zizmor: ignore[dangerous-triggers]
branches:
- main
- master
@@ -24,7 +24,7 @@ concurrency:
jobs:
auto-approve-merge:
if: github.actor == 'dependabot[bot]' || github.actor == 'renovate[bot]'
if: github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'renovate[bot]'
runs-on: ubuntu-latest-low
permissions:
# for hmarr/auto-approve-action to approve PRs
+15 -5
View File
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-ftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -40,7 +43,6 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1', '8.4']
@@ -53,8 +55,9 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up ftpd
@@ -68,7 +71,7 @@ jobs:
if [[ "${{ matrix.ftpd }}" == 'pure-ftpd' ]]; then docker run --name ftp -d --net host -e "PUBLICHOST=localhost" -e FTP_USER_NAME=test -e FTP_USER_PASS=test -e FTP_USER_HOME=/home/test -v /tmp/ftp:/home/test -v /tmp/ftp:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -96,15 +99,22 @@ jobs:
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/FtpTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-files-external-ftp
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-ftp
- name: ftpd logs
if: always()
run: |
+51 -25
View File
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -40,17 +43,18 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2', '8.3', '8.4']
php-versions: ['8.1', '8.2', '8.4']
include:
- php-versions: '8.2'
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3
name: php${{ matrix.php-versions }}-s3-minio
services:
minio:
image: bitnami/minio
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
@@ -60,12 +64,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -83,26 +88,38 @@ jobs:
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'secret' => 'actually-not-secret', 'passwordsalt' => 'actually-not-secret', 'hostname' => 'localhost','key' => '$OBJECT_STORE_KEY','secret' => '$OBJECT_STORE_SECRET', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
echo "<?php return ['run' => true, 'minio' => true, 'secret' => 'actually-not-secret', 'passwordsalt' => 'actually-not-secret', 'hostname' => 'localhost','key' => '$OBJECT_STORE_KEY','secret' => '$OBJECT_STORE_SECRET', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/Amazons3Test.php \
apps/files_external/tests/Storage/VersionedAmazonS3Test.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
run: |
composer run test:files_external -- \
--group S3 \
--log-junit junit.xml \
apps/files_external/tests/Storage \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-s3
- name: Nextcloud logs
if: always()
run: |
cat data/nextcloud.log
- name: S3 logs
if: always()
run: |
@@ -117,30 +134,31 @@ jobs:
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
php-versions: ['8.1', '8.2', '8.4']
include:
- php-versions: '8.3'
coverage: true
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3
name: php${{ matrix.php-versions }}-s3-localstack
services:
localstack:
env:
SERVICES: s3
DEBUG: 1
image: localstack/localstack
image: localstack/localstack@sha256:9d4253786e0effe974d77fe3c390358391a56090a4fff83b4600d8a64404d95d # v4.5.0
ports:
- "4566:4566"
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -155,21 +173,29 @@ jobs:
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true,'hostname' => 'localhost','key' => 'ignored','secret' => 'ignored', 'bucket' => 'bucket', 'port' => 4566, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
echo "<?php return ['run' => true, 'localstack' => true, 'hostname' => 'localhost','key' => 'ignored','secret' => 'ignored', 'bucket' => 'bucket', 'port' => 4566, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/Amazons3Test.php \
apps/files_external/tests/Storage/VersionedAmazonS3Test.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
run: |
composer run test:files_external -- \
--group S3 \
--log-junit junit.xml \
apps/files_external/tests/Storage \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-s3
- name: S3 logs
if: always()
run: |
+15 -5
View File
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-sftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -40,7 +43,6 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1', '8.4']
@@ -53,8 +55,9 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up sftpd
@@ -64,7 +67,7 @@ jobs:
if [[ '${{ matrix.sftpd }}' == 'openssh' ]]; then docker run -p 2222:22 --name sftp -d -v /tmp/sftp:/home/test atmoz/sftp 'test:test:::data'; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -85,15 +88,22 @@ jobs:
run: composer run test:files_external -- \
apps/files_external/tests/Storage/SftpTest.php \
apps/files_external/tests/Storage/SFTP_KeyTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-files-external-sftp
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-sftp
- name: sftpd logs
if: always()
run: |
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-smb-kerberos-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -43,13 +46,15 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Checkout user_saml
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
repository: nextcloud/user_saml
path: apps/user_saml
@@ -83,6 +88,18 @@ jobs:
run: |
apps/files_external/tests/sso-setup/test-sso-smb.sh ${{ env.DC_IP }}
- name: Show logs DC
if: always()
run: |
docker logs dc
echo "------------"
docker exec dc cat /var/log/samba/log.samba
- name: Show logs Apache
if: always()
run: |
docker logs apache
- name: Show logs
if: always()
run: |
+18 -6
View File
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-smb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -40,6 +43,7 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
include:
@@ -50,18 +54,19 @@ jobs:
services:
samba:
image: ghcr.io/nextcloud/continuous-integration-samba:latest
image: ghcr.io/nextcloud/continuous-integration-samba:latest # zizmor: ignore[unpinned-images]
ports:
- 445:445
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -88,17 +93,24 @@ jobs:
apps/files_external/tests/env/wait-for-connection 127.0.0.1 445 60
- name: PHPUnit
run: composer run test:files_external -- --verbose \
run: composer run test:files_external -- \
apps/files_external/tests/Storage/SmbTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v4.1.1
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-files-external-smb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-smb
files-external-smb-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-smb]
+18 -6
View File
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-webdav-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -40,6 +43,7 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2', '8.3', '8.4']
include:
@@ -50,18 +54,19 @@ jobs:
services:
apache:
image: ghcr.io/nextcloud/continuous-integration-webdav-apache:latest
image: ghcr.io/nextcloud/continuous-integration-webdav-apache:latest # zizmor: ignore[unpinned-images]
ports:
- 8081:80
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -85,17 +90,24 @@ jobs:
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://test:pass@localhost:8081/webdav/
- name: PHPUnit
run: composer run test:files_external -- --verbose \
run: composer run test:files_external -- \
apps/files_external/tests/Storage/WebdavTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v4.1.1
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-files-external-webdav
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-webdav
files-external-webdav-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-webdav-apache]
+16 -4
View File
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-generic-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -39,6 +42,7 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2', '8.3', '8.4']
include:
@@ -49,12 +53,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -75,15 +80,22 @@ jobs:
- name: PHPUnit
run: composer run test:files_external -- \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-files-external-generic
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-generic
files-external-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-generic ]
@@ -0,0 +1,98 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Generate changelog on release
on:
release:
types: [published]
permissions:
contents: write
jobs:
changelog_generate:
runs-on: ubuntu-latest
# Only allowed to be run on nextcloud-releases repositories
if: ${{ github.repository_owner == 'nextcloud-releases' }}
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
with:
require: write
- name: Checkout github_helper
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
repository: nextcloud/github_helper
path: github_helper
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
path: server
fetch-depth: 0
- name: Get previous tag
shell: bash
run: |
cd server
# Print all tags
git log --decorate --oneline | egrep 'tag: ' | sed -r 's/^.+tag: ([^,\)]+)[,\)].+$/\1/g'
# Get the current tag
TAGS=$(git log --decorate --oneline | egrep 'tag: ' | sed -r 's/^.+tag: ([^,\)]+)[,\)].+$/\1/g')
CURRENT_TAG=$(echo "$TAGS" | head -n 1)
# Get the previous tag - filter pre-releases only if current tag is stable
if echo "$CURRENT_TAG" | grep -q 'rc\|beta\|alpha'; then
# Current tag is pre-release, don't filter
PREVIOUS_TAG=$(echo "$TAGS" | sed -n '2p')
else
# Current tag is stable, filter out pre-releases
PREVIOUS_TAG=$(echo "$TAGS" | grep -v 'rc\|beta\|alpha' | sed -n '2p')
fi
echo "CURRENT_TAG=$CURRENT_TAG" >> $GITHUB_ENV
echo "PREVIOUS_TAG=$PREVIOUS_TAG" >> $GITHUB_ENV
# Since this action only runs on nextcloud-releases, ignoring is okay
- name: Verify current tag # zizmor: ignore[template-injection]
run: |
if [ "${{ github.ref_name }}" != "${{ env.CURRENT_TAG }}" ]; then
echo "Current tag does not match the release tag. Exiting."
exit 1
fi
- name: Set up php 8.2
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: 8.2
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set credentials
run: |
echo '{"username": "github-actions"}' > github_helper/credentials.json
# Since this action only runs on nextcloud-releases, ignoring is okay
- name: Generate changelog between ${{ env.PREVIOUS_TAG }} and ${{ github.ref_name }} # zizmor: ignore[template-injection]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd github_helper/changelog
composer install
php index.php generate:changelog --no-bots --format=forum server ${{ env.PREVIOUS_TAG }} ${{ github.ref_name }} > changelog.md
# Since this action only runs on nextcloud-releases, ignoring is okay
- name: Set changelog to release # zizmor: ignore[template-injection]
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd server
gh release edit ${{ github.ref_name }} --notes-file "../github_helper/changelog/changelog.md" --title "${{ github.ref_name }}"
+7 -4
View File
@@ -4,6 +4,9 @@ name: DAV integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-caldav-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -40,7 +43,6 @@ jobs:
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1']
@@ -51,12 +53,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -67,7 +70,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
uses: LizardByte/setup-python-action@master
uses: LizardByte/setup-python-action@6fe61189717d4cb073a3219e234749125f53b5c2 # v2025.530.174035
with:
python-version: '2.7'
+6 -3
View File
@@ -4,6 +4,9 @@ name: Litmus integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-litmus-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -40,7 +43,6 @@ jobs:
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1']
@@ -50,12 +52,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
+8 -5
View File
@@ -4,6 +4,9 @@ name: S3 primary storage integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-s3-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -40,7 +43,6 @@ jobs:
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1']
@@ -50,12 +52,12 @@ jobs:
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
minio:
image: bitnami/minio
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
@@ -65,12 +67,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
+8 -4
View File
@@ -66,6 +66,7 @@ jobs:
- 'openldap_numerical_features'
- 'ldap_features'
- 'remoteapi_features'
- 'routing_features'
- 'setup_features'
- 'sharees_features'
- 'sharing_features'
@@ -77,12 +78,12 @@ jobs:
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
openldap:
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7 # zizmor: ignore[unpinned-images]
ports:
- 389:389
env:
@@ -95,12 +96,14 @@ jobs:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Checkout Talk app
if: ${{ matrix.test-suite == 'videoverification_features' }}
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
repository: nextcloud/spreed
path: apps/spreed
ref: ${{ matrix.spreed-versions }}
@@ -109,12 +112,13 @@ jobs:
if: ${{ matrix.test-suite == 'sharing_features' }}
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
repository: nextcloud/activity
path: apps/activity
ref: ${{ matrix.activity-versions }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -160,7 +164,7 @@ jobs:
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
cat $(./occ log:file |grep "Log file"|cut -d" " -f3)
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
+6 -1
View File
@@ -20,6 +20,9 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
@@ -54,6 +57,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
@@ -63,7 +68,7 @@ jobs:
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v3
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
+3 -1
View File
@@ -49,9 +49,11 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up php8.1
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: 8.1
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
+3 -1
View File
@@ -54,9 +54,11 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: ${{ matrix.php-versions }}
coverage: none
+3 -1
View File
@@ -26,6 +26,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
@@ -35,7 +37,7 @@ jobs:
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
+19 -4
View File
@@ -23,6 +23,9 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
@@ -60,6 +63,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
@@ -81,9 +86,11 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
@@ -99,10 +106,14 @@ jobs:
run: npm run test:coverage --if-present
- name: Collect coverage
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v4.3.1
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./coverage/lcov.info
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
jsunit:
runs-on: ubuntu-latest
needs: [versions, changes]
@@ -115,9 +126,11 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
@@ -143,9 +156,11 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
+6 -1
View File
@@ -20,6 +20,9 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
@@ -54,6 +57,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
@@ -63,7 +68,7 @@ jobs:
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v3
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
+3 -3
View File
@@ -24,7 +24,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['main', 'master', 'stable31', 'stable30', 'stable29']
branches: ['main', 'master', 'stable31', 'stable30']
name: npm-audit-fix-${{ matrix.branches }}
@@ -45,7 +45,7 @@ jobs:
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -54,7 +54,7 @@ jobs:
- name: Fix npm audit
id: npm-audit
uses: nextcloud-libraries/npm-audit-action@2a60bd2e79cc77f2cc4d9a3fe40f1a69896f3a87 # v0.1.0
uses: nextcloud-libraries/npm-audit-action@1b1728b2b4a7a78d69de65608efcf4db0e3e42d0 # v0.2.0
- name: Run npm ci and npm run build
if: steps.checkout.outcome == 'success'
+18 -7
View File
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: object-storage-azure-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -44,6 +47,7 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2']
include:
@@ -54,7 +58,7 @@ jobs:
services:
azurite:
image: mcr.microsoft.com/azure-storage/azurite
image: mcr.microsoft.com/azure-storage/azurite@sha256:0a47e12e3693483cef5c71f35468b91d751611f172d2f97414e9c69113b106d9 # v3.34.0
env:
AZURITE_ACCOUNTS: nextcloud:bmV4dGNsb3Vk
ports:
@@ -62,19 +66,20 @@ jobs:
options: --health-cmd="nc 127.0.0.1 10000 -z" --health-interval=1s --health-retries=30
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -94,22 +99,28 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: PHPUnit
env:
OBJECT_STORE: azure
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bmV4dGNsb3Vk
run: composer run test -- --group PRIMARY-azure ${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
run: composer run test -- --group PRIMARY-azure --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-azure
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-azure
- name: Azurite logs
if: always()
run: |
+18 -7
View File
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: object-storage-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -44,6 +47,7 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2']
include:
@@ -54,13 +58,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
@@ -70,12 +74,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -95,7 +100,7 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: Wait for S3
run: |
@@ -107,15 +112,21 @@ jobs:
OBJECT_STORE: s3
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: composer run test -- --group PRIMARY-s3 ${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
run: composer run test -- --group PRIMARY-s3 --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-s3
- name: S3 logs
if: always()
run: |
+18 -7
View File
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: object-storage-swift-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -44,6 +47,7 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2']
include:
@@ -54,25 +58,26 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
swift:
image: ghcr.io/cscfi/docker-keystone-swift
image: ghcr.io/cscfi/docker-keystone-swift@sha256:e8b1ec21120ab9adc6ac6a2b98785fd273676439a8633fe898e37f2aea7e0712
ports:
- 5000:5000
- 8080:8080
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -91,21 +96,27 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: PHPUnit
env:
OBJECT_STORE: swift
OBJECT_STORE_SECRET: veryfast
run: composer run test -- --group PRIMARY-swift ${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
run: composer run test -- --group PRIMARY-swift --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-swift
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-swift
- name: Swift logs
if: always()
run: |
+3 -1
View File
@@ -27,9 +27,11 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Set up php
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: '8.1'
extensions: ctype, curl, dom, fileinfo, gd, json, libxml, mbstring, openssl, pcntl, pdo, posix, session, simplexml, xml, xmlreader, xmlwriter, zip, zlib
+12 -5
View File
@@ -4,6 +4,9 @@ name: Performance testing
on:
pull_request:
permissions:
contents: read
concurrency:
group: performance-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -14,6 +17,9 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
permissions:
pull-requests: write
strategy:
fail-fast: false
matrix:
@@ -29,13 +35,14 @@ jobs:
exit 1
- name: Checkout server before PR
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
ref: ${{ github.event.pull_request.base.ref }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
@@ -49,7 +56,7 @@ jobs:
php -S localhost:8080 &
- name: Apply blueprint
uses: icewind1991/blueprint@v0.1.2
uses: icewind1991/blueprint@00504403f76cb2a09efd0d16793575055e6f63cb # v0.1.2
with:
blueprint: tests/blueprints/basic.toml
ref: ${{ github.event.pull_request.head.ref }}
@@ -66,7 +73,7 @@ jobs:
output: before.json
profiler-branch: master
- name: Apply PR
- name: Apply PR # zizmor: ignore[template-injection]
run: |
git remote add pr '${{ github.event.pull_request.head.repo.clone_url }}'
git fetch pr '${{ github.event.pull_request.head.ref }}'
@@ -98,7 +105,7 @@ jobs:
before.json
after.json
- uses: actions/github-script@v7
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
if: failure() && steps.compare.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}
+10 -5
View File
@@ -7,6 +7,7 @@ on:
paths:
- 'version.php'
- '.github/workflows/phpunit-32bits.yml'
- 'tests/phpunit-autotest.xml'
workflow_dispatch:
schedule:
- cron: "15 1 * * 1-6"
@@ -27,13 +28,15 @@ jobs:
container: shivammathur/node:latest-i386
strategy:
fail-fast: false
matrix:
php-versions: ['8.1','8.3']
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Install tools
@@ -42,10 +45,10 @@ jobs:
sudo apt-get install -y ffmpeg imagemagick libmagickcore-6.q16-3-extra
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype, curl, dom, fileinfo, gd, imagick, intl, json, mbstring, openssl, pdo_sqlite, posix, sqlite, xml, zip, apcu
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, apcu, ldap
coverage: none
ini-file: development
ini-values:
@@ -53,14 +56,16 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=autotest --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test -- --exclude-group PRIMARY-azure,PRIMARY-s3,PRIMARY-swift,Memcached,Redis,RoutingWeirdness
+16 -5
View File
@@ -23,6 +23,9 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
@@ -54,6 +57,7 @@ jobs:
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
mariadb-versions: ['10.3', '10.6', '10.11', '11.4']
@@ -68,7 +72,7 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
@@ -88,10 +92,11 @@ jobs:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -117,18 +122,24 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.db.xml
flags: phpunit-mariadb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-mariadb
summary:
permissions:
contents: none
+14 -6
View File
@@ -54,6 +54,7 @@ jobs:
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.3', '8.4']
include:
@@ -64,19 +65,20 @@ jobs:
services:
memcached:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 11212:11212/tcp
- 11212:11212/udp
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -94,18 +96,24 @@ jobs:
mkdir data
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: PHPUnit memcached tests
run: composer run test -- --group Memcache,Memcached ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
run: composer run test -- --group Memcache,Memcached --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.xml
flags: phpunit-memcached
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-memcached
- name: Print logs
if: always()
run: |
+19 -11
View File
@@ -54,6 +54,7 @@ jobs:
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
mysql-versions: ['8.4']
@@ -62,13 +63,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:3306/tcp
env:
@@ -78,7 +79,7 @@ jobs:
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard1:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5001:3306/tcp
env:
@@ -88,7 +89,7 @@ jobs:
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard2:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5002:3306/tcp
env:
@@ -98,7 +99,7 @@ jobs:
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard3:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5003:3306/tcp
env:
@@ -108,7 +109,7 @@ jobs:
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard4:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5004:3306/tcp
env:
@@ -120,12 +121,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -152,18 +154,24 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-mysql
- name: Print logs
if: always()
run: |
+18 -7
View File
@@ -23,6 +23,9 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
@@ -54,6 +57,7 @@ jobs:
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
mysql-versions: ['8.0', '8.4']
@@ -68,13 +72,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:3306/tcp
env:
@@ -86,12 +90,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -117,18 +122,24 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-mysql
- name: Print logs
if: always()
run: |
+14 -6
View File
@@ -57,6 +57,7 @@ jobs:
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.3', '8.4']
include:
@@ -67,19 +68,20 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -100,18 +102,24 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: PHPUnit nodb testsuite
run: composer run test -- --exclude-group DB,SLOWDB ${{ matrix.coverage && ' --coverage-clover ./clover.nodb.xml' || '' }}
run: composer run test -- --exclude-group DB,SLOWDB --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.nodb.xml' || '' }}
- name: Upload nodb code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.nodb.xml
flags: phpunit-nodb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-nodb
- name: Print logs
if: always()
run: |
@@ -6,6 +6,9 @@ on:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-object-store-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -44,7 +47,6 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1']
@@ -54,13 +56,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
@@ -70,12 +72,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
@@ -92,7 +95,7 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: Wait for S3
run: |
+15 -5
View File
@@ -23,6 +23,9 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
@@ -73,7 +76,7 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
@@ -100,10 +103,11 @@ jobs:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -122,18 +126,24 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=oci --database-name=${{ matrix.oracle-versions < 23 && 'XE' || 'FREE' }} --database-host=127.0.0.1 --database-port=1521 --database-user=system --database-pass=oracle --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.db.xml
flags: phpunit-oci
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-oci
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
+17 -6
View File
@@ -23,6 +23,9 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
@@ -54,6 +57,7 @@ jobs:
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
# To keep the matrix smaller we ignore PostgreSQL versions in between as we already test the minimum and the maximum
@@ -69,13 +73,13 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
postgres:
image: ghcr.io/nextcloud/continuous-integration-postgres-${{ matrix.postgres-versions }}:latest
image: ghcr.io/nextcloud/continuous-integration-postgres-${{ matrix.postgres-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:5432/tcp
env:
@@ -88,10 +92,11 @@ jobs:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -112,18 +117,24 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: PHPUnit database tests
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.db.xml
flags: phpunit-postgres
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-postgres
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
+16 -5
View File
@@ -23,6 +23,9 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
@@ -54,6 +57,7 @@ jobs:
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.3', '8.4']
include:
@@ -64,7 +68,7 @@ jobs:
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
@@ -73,10 +77,11 @@ jobs:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -95,21 +100,27 @@ jobs:
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
php -f tests/enable_all.php
- name: Nextcloud debug information
run: ./occ app:list && echo "======= System config =======" && ./occ config:list system
- name: PHPUnit database tests
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.0
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
files: ./clover.db.xml
flags: phpunit-sqlite
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-sqlite
- name: Print logs
if: always()
run: |
+7 -2
View File
@@ -15,8 +15,13 @@ on:
schedule:
- cron: '30 1 * * *'
permissions:
contents: read
pull-requests: write
jobs:
pr-feedback:
if: ${{ github.repository_owner == 'nextcloud' }}
runs-on: ubuntu-latest
steps:
- name: The get-github-handles-from-website action
@@ -31,7 +36,7 @@ jobs:
blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
- uses: marcelklehr/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4
- uses: nextcloud/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4 # main
with:
feedback-message: |
Hello there,
@@ -46,5 +51,5 @@ jobs:
(If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).)
days-before-feedback: 14
start-date: '2024-04-30'
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }},nextcloud-command,nextcloud-android-bot'
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}'
exempt-bots: true
+10 -5
View File
@@ -11,12 +11,17 @@ name: REUSE Compliance Check
on: [pull_request]
permissions:
contents: read
jobs:
reuse-compliance-check:
runs-on: ubuntu-latest
runs-on: ubuntu-latest-low
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: REUSE Compliance Check
uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
- name: REUSE Compliance Check
uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
+4 -1
View File
@@ -7,6 +7,9 @@ on:
schedule:
- cron: "0 0 * * *"
permissions:
contents: read
jobs:
stale:
runs-on: ubuntu-latest
@@ -17,7 +20,7 @@ jobs:
issues: write
steps:
- uses: actions/stale@v9
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9
with:
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
stale-issue-message: >
+12 -5
View File
@@ -13,6 +13,9 @@ on:
- '.github/workflows/static-code-analysis.yml'
- '**.php'
permissions:
contents: read
concurrency:
group: static-code-analysis-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -27,10 +30,11 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: '8.1'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
@@ -57,10 +61,11 @@ jobs:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
@@ -78,7 +83,7 @@ jobs:
- name: Upload Security Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@v3
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3
with:
sarif_file: results.sarif
@@ -91,10 +96,11 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
@@ -121,10 +127,11 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
+5 -1
View File
@@ -7,6 +7,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
jobs:
update-ca-certificate-bundle:
runs-on: ubuntu-latest
@@ -19,8 +22,9 @@ jobs:
name: update-ca-certificate-bundle-${{ matrix.branches }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
submodules: true
@@ -7,6 +7,9 @@ on:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
jobs:
update-code-signing-crl:
runs-on: ubuntu-latest
@@ -14,13 +17,14 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
branches: ['master', 'stable31', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-code-signing-crl-${{ matrix.branches }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
submodules: true
@@ -7,13 +7,17 @@ on:
schedule:
- cron: "0 0 * * 1"
permissions:
contents: read
jobs:
update-minimum-supported-desktop-version:
runs-on: ubuntu-latest-low
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Download desktop client version file from 5 years ago
@@ -0,0 +1,69 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update PRs titles on stable branches
on:
pull_request:
types: [opened, edited]
branches:
- "stable*"
concurrency:
group: stable-pr-title-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
update-pr-title:
runs-on: ubuntu-latest-low
permissions:
pull-requests: write
contents: read
steps:
- name: Wait for potential title edits
run: sleep 15
- name: Get PR details and update title
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
});
const baseBranch = pr.base.ref;
const currentTitle = pr.title;
// Check if this is a stable branch
// Should not happen as we only trigger on stable* branches 🤷‍♀️
if (!baseBranch.startsWith('stable')) {
console.log(`Not a stable branch: ${baseBranch}`);
return;
}
const prefix = `[${baseBranch}]`;
// Check if title already has the correct prefix and no other stable tags
const correctTagRegex = new RegExp(`^\\[${baseBranch}\\]\\s*`);
const hasOtherStableTags = /\[stable[\d.]*\]/.test(currentTitle.replace(correctTagRegex, ''));
if (correctTagRegex.test(currentTitle) && !hasOtherStableTags) {
console.log(`Title already has correct prefix only: ${currentTitle}`);
return;
}
// Remove all stable tags and add the correct one
const cleanTitle = currentTitle.replace(/\[stable[\d.]*\]\s*/g, '').trim();
const newTitle = `${prefix} ${cleanTitle}`;
console.log(`Updating title from: "${currentTitle}" to: "${newTitle}"`);
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
title: newTitle,
});
+3
View File
@@ -152,6 +152,7 @@ Vagrantfile
# Tests - auto-generated files
/data-autotest
/results.sarif
/tests/.phpunit.cache
/tests/.phpunit.result.cache
/tests/coverage*
/tests/css
@@ -183,3 +184,5 @@ core/js/mimetypelist.js
cypress/downloads
cypress/snapshots
cypress/videos
/.direnv
+6 -2
View File
@@ -107,7 +107,7 @@ Files: tests/data/integritycheck/htaccessWithValidModifiedContent/.htaccess
Copyright: 2016 ownCloud, Inc., 2019 Nextcloud GmbH and Nextcloud contributors
License: AGPL-3.0-only
Files: core/img/favicon*.* core/img/logo/logo*.* tests/data/testimage.webp apps/testing/img/logo.png core/img/apps/spreed.svg
Files: core/img/favicon*.* core/img/logo/logo*.* tests/data/testimage.webp tests/data/broken-video.webm apps/testing/img/logo.png core/img/apps/spreed.svg
Copyright: 2016-2024 Nextcloud GmbH
License: LicenseRef-NextcloudTrademarks
@@ -131,6 +131,10 @@ Files: build/stubs/pcntl.php build/stubs/zip.php
Copyright: 2022 JetBrains
License: Apache-2.0
Files: build/stubs/excimer.php
Copyright: 2019 Wikimedia Foundation
License: Apache-2.0
Files: core/js/mimetypelist.js core/js/core.json themes/example/core/img
Copyright: 2016 ownCloud, Inc., 2016-2024 Nextcloud GmbH and Nextcloud contributors
License: AGPL-3.0-only
@@ -347,6 +351,6 @@ Files: apps/theming/fonts/OpenDyslexic-Bold.otf apps/theming/fonts/OpenDyslexic-
Copyright: 2012-2019 Abbie Gonzalez <https://abbiecod.es|support@abbiecod.es>, with Reserved Font Name OpenDyslexic.
License: OFL-1.1-RFN
Files: openapi.json
Files: openapi.json .envrc flake.nix flake.lock
Copyright: 2025 Nextcloud GmbH and Nextcloud contributors
License: AGPL-3.0-or-later
+1 -1
View File
@@ -67,7 +67,7 @@
- Bernhard Posselt <dev@bernhard-posselt.com>
- Bernhard Reiter <ockham@raz.or.at>
- Bill McGonigle <bill-github.com@bfccomputing.com>
- Birk Borkason <daniel.niccoli@gmail.com>
- Daniel Niccoli <daniel.niccoli@gmail.com>
- Bjoern Schiessle <bjoern@schiessle.org>
- Björn Schießle <bjoern@schiessle.org>
- Bjørn Forsman <bjorn.forsman@gmail.com>
+117
View File
@@ -0,0 +1,117 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice
+2 -2
View File
@@ -1,7 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Одитиране/създаване на регистри",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Предоставя възможности за регистриране в Nextcloud, като например достъп до файлове за регистриране или други чувствителни действия."
"Auditing / Logging" : "Одитиране / Регистри на действията",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Предоставя възможности за създаване на регистри на действията в \"Nextcloud\", като например кой е осъществил достъп до файл или други действия."
},
"nplurals=2; plural=(n != 1);");
+2 -2
View File
@@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Одитиране/създаване на регистри",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Предоставя възможности за регистриране в Nextcloud, като например достъп до файлове за регистриране или други чувствителни действия."
"Auditing / Logging" : "Одитиране / Регистри на действията",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Предоставя възможности за създаване на регистри на действията в \"Nextcloud\", като например кой е осъществил достъп до файл или други действия."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+6
View File
@@ -0,0 +1,6 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Aodit / Kerzhlevr"
},
"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");
+4
View File
@@ -0,0 +1,4 @@
{ "translations": {
"Auditing / Logging" : "Aodit / Kerzhlevr"
},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"
}
+2 -1
View File
@@ -1,6 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Auditoría / Registros"
"Auditing / Logging" : "Auditoría / Registros",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el registro de accesos a archivos o acciones sensibles."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+2 -1
View File
@@ -1,4 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditoría / Registros"
"Auditing / Logging" : "Auditoría / Registros",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el registro de accesos a archivos o acciones sensibles."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
+2 -2
View File
@@ -1,7 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Pemeriksaan / Pencatatan",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kemampuan pencatatan untuk Nextcloud seperti pencatatan akses berkas atau tindakan sensitif lainnya."
"Auditing / Logging" : "Pengauditan/Pencatatan",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kemampuan pencatatan untuk Nextcloud, misalnya pencatatan akses file atau tindakan sensitif lainnya."
},
"nplurals=1; plural=0;");
+2 -2
View File
@@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Pemeriksaan / Pencatatan",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kemampuan pencatatan untuk Nextcloud seperti pencatatan akses berkas atau tindakan sensitif lainnya."
"Auditing / Logging" : "Pengauditan/Pencatatan",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kemampuan pencatatan untuk Nextcloud, misalnya pencatatan akses file atau tindakan sensitif lainnya."
},"pluralForm" :"nplurals=1; plural=0;"
}
+7
View File
@@ -0,0 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Ukaguzi/kuweka kumbukumbu",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Hutoa uwezo wa kuweka kumbukumbu kwa Nextcloud kama vile ufikiaji wa faili za kumbukumbu au vitendo nyeti."
},
"nplurals=2; plural=(n != 1);");
+5
View File
@@ -0,0 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Ukaguzi/kuweka kumbukumbu",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Hutoa uwezo wa kuweka kumbukumbu kwa Nextcloud kama vile ufikiaji wa faili za kumbukumbu au vitendo nyeti."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -21
View File
@@ -10,7 +10,6 @@ namespace OCA\AdminAudit\Actions;
use OC\Files\Node\NonExistingFile;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent;
use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent;
@@ -26,9 +25,6 @@ use Psr\Log\LoggerInterface;
* @package OCA\AdminAudit\Actions
*/
class Files extends Action {
private array $renamedNodes = [];
/**
* Logs file read actions
*/
@@ -52,31 +48,16 @@ class Files extends Action {
);
}
/**
* Logs rename actions of files
*/
public function beforeRename(BeforeNodeRenamedEvent $event): void {
try {
$source = $event->getSource();
$this->renamedNodes[$source->getId()] = $source;
} catch (InvalidPathException|NotFoundException $e) {
Server::get(LoggerInterface::class)->error(
'Exception thrown in file rename: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
}
/**
* Logs rename actions of files
*/
public function afterRename(NodeRenamedEvent $event): void {
try {
$target = $event->getTarget();
$originalSource = $this->renamedNodes[$target->getId()];
$source = $event->getSource();
$params = [
'newid' => $target->getId(),
'oldpath' => $originalSource->getPath(),
'oldpath' => $source->getPath(),
'newpath' => $target->getPath(),
];
} catch (InvalidPathException|NotFoundException $e) {
-10
View File
@@ -8,16 +8,6 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Actions;
class Versions extends Action {
public function rollback(array $params): void {
$this->log('Version "%s" of "%s" was restored.',
[
'version' => $params['revision'],
'path' => $params['path']
],
['version', 'path']
);
}
public function delete(array $params): void {
$this->log('Version "%s" was deleted.',
['path' => $params['path']],
+2 -9
View File
@@ -27,6 +27,7 @@ use OCA\AdminAudit\Listener\GroupManagementEventListener;
use OCA\AdminAudit\Listener\SecurityEventListener;
use OCA\AdminAudit\Listener\SharingEventListener;
use OCA\AdminAudit\Listener\UserManagementEventListener;
use OCA\Files_Versions\Events\VersionRestoredEvent;
use OCP\App\Events\AppDisableEvent;
use OCP\App\Events\AppEnableEvent;
use OCP\App\Events\AppUpdateEvent;
@@ -41,7 +42,6 @@ use OCP\Console\ConsoleEvent;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent;
use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent;
@@ -110,6 +110,7 @@ class Application extends App implements IBootstrap {
// File events
$context->registerEventListener(BeforePreviewFetchedEvent::class, FileEventListener::class);
$context->registerEventListener(VersionRestoredEvent::class, FileEventListener::class);
// Security events
$context->registerEventListener(TwoFactorProviderChallengePassed::class, SecurityEventListener::class);
@@ -168,13 +169,6 @@ class Application extends App implements IBootstrap {
private function fileHooks(IAuditLogger $logger, IEventDispatcher $eventDispatcher): void {
$fileActions = new Files($logger);
$eventDispatcher->addListener(
BeforeNodeRenamedEvent::class,
function (BeforeNodeRenamedEvent $event) use ($fileActions): void {
$fileActions->beforeRename($event);
}
);
$eventDispatcher->addListener(
NodeRenamedEvent::class,
function (NodeRenamedEvent $event) use ($fileActions): void {
@@ -220,7 +214,6 @@ class Application extends App implements IBootstrap {
private function versionsHooks(IAuditLogger $logger): void {
$versionsActions = new Versions($logger);
Util::connectHook('\OCP\Versions', 'rollback', $versionsActions, 'rollback');
Util::connectHook('\OCP\Versions', 'delete', $versionsActions, 'delete');
}
@@ -10,6 +10,7 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Listener;
use OCA\AdminAudit\Actions\Action;
use OCA\Files_Versions\Events\VersionRestoredEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\Files\InvalidPathException;
@@ -19,12 +20,14 @@ use OCP\Server;
use Psr\Log\LoggerInterface;
/**
* @template-implements IEventListener<BeforePreviewFetchedEvent>
* @template-implements IEventListener<BeforePreviewFetchedEvent|VersionRestoredEvent>
*/
class FileEventListener extends Action implements IEventListener {
public function handle(Event $event): void {
if ($event instanceof BeforePreviewFetchedEvent) {
$this->beforePreviewFetched($event);
} elseif ($event instanceof VersionRestoredEvent) {
$this->versionRestored($event);
}
}
@@ -54,4 +57,18 @@ class FileEventListener extends Action implements IEventListener {
return;
}
}
/**
* Logs when a version is restored
*/
private function versionRestored(VersionRestoredEvent $event): void {
$version = $event->getVersion();
$this->log('Version "%s" of "%s" was restored.',
[
'version' => $version->getRevisionId(),
'path' => $version->getVersionPath()
],
['version', 'path']
);
}
}
+1 -1
View File
@@ -9,7 +9,7 @@
<name>Cloud Federation API</name>
<summary>Enable clouds to communicate with each other and exchange data</summary>
<description>The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.</description>
<version>1.15.0</version>
<version>1.16.0</version>
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<namespace>CloudFederationAPI</namespace>
+6 -6
View File
@@ -20,11 +20,11 @@ return [
'verb' => 'POST',
'root' => '/ocm',
],
// [
// 'name' => 'RequestHandler#inviteAccepted',
// 'url' => '/invite-accepted',
// 'verb' => 'POST',
// 'root' => '/ocm',
// ]
[
'name' => 'RequestHandler#inviteAccepted',
'url' => '/invite-accepted',
'verb' => 'POST',
'root' => '/ocm',
]
],
];
@@ -11,5 +11,9 @@ return array(
'OCA\\CloudFederationAPI\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
'OCA\\CloudFederationAPI\\Config' => $baseDir . '/../lib/Config.php',
'OCA\\CloudFederationAPI\\Controller\\RequestHandlerController' => $baseDir . '/../lib/Controller/RequestHandlerController.php',
'OCA\\CloudFederationAPI\\Db\\FederatedInvite' => $baseDir . '/../lib/Db/FederatedInvite.php',
'OCA\\CloudFederationAPI\\Db\\FederatedInviteMapper' => $baseDir . '/../lib/Db/FederatedInviteMapper.php',
'OCA\\CloudFederationAPI\\Events\\FederatedInviteAcceptedEvent' => $baseDir . '/../lib/Events/FederatedInviteAcceptedEvent.php',
'OCA\\CloudFederationAPI\\Migration\\Version1016Date202502262004' => $baseDir . '/../lib/Migration/Version1016Date202502262004.php',
'OCA\\CloudFederationAPI\\ResponseDefinitions' => $baseDir . '/../lib/ResponseDefinitions.php',
);
@@ -26,6 +26,10 @@ class ComposerStaticInitCloudFederationAPI
'OCA\\CloudFederationAPI\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
'OCA\\CloudFederationAPI\\Config' => __DIR__ . '/..' . '/../lib/Config.php',
'OCA\\CloudFederationAPI\\Controller\\RequestHandlerController' => __DIR__ . '/..' . '/../lib/Controller/RequestHandlerController.php',
'OCA\\CloudFederationAPI\\Db\\FederatedInvite' => __DIR__ . '/..' . '/../lib/Db/FederatedInvite.php',
'OCA\\CloudFederationAPI\\Db\\FederatedInviteMapper' => __DIR__ . '/..' . '/../lib/Db/FederatedInviteMapper.php',
'OCA\\CloudFederationAPI\\Events\\FederatedInviteAcceptedEvent' => __DIR__ . '/..' . '/../lib/Events/FederatedInviteAcceptedEvent.php',
'OCA\\CloudFederationAPI\\Migration\\Version1016Date202502262004' => __DIR__ . '/..' . '/../lib/Migration/Version1016Date202502262004.php',
'OCA\\CloudFederationAPI\\ResponseDefinitions' => __DIR__ . '/..' . '/../lib/ResponseDefinitions.php',
);
+8
View File
@@ -0,0 +1,8 @@
OC.L10N.register(
"cloud_federation_api",
{
"Cloud Federation API" : "Asl faylni o'chirishda kutilmagan xatolik yuz berdi.",
"Enable clouds to communicate with each other and exchange data" : "Bulutlar bir-biri bilan aloqa qilish va ma'lumot almashish imkonini beradi",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API turli xil Nextcloud misollariga bir-biri bilan muloqot qilish va ma'lumotlarni almashish imkonini beradi."
},
"nplurals=1; plural=0;");
+6
View File
@@ -0,0 +1,6 @@
{ "translations": {
"Cloud Federation API" : "Asl faylni o'chirishda kutilmagan xatolik yuz berdi.",
"Enable clouds to communicate with each other and exchange data" : "Bulutlar bir-biri bilan aloqa qilish va ma'lumot almashish imkonini beradi",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API turli xil Nextcloud misollariga bir-biri bilan muloqot qilish va ma'lumotlarni almashish imkonini beradi."
},"pluralForm" :"nplurals=1; plural=0;"
}
+7 -20
View File
@@ -6,6 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\CloudFederationAPI;
use NCU\Security\Signature\Exceptions\IdentityNotFoundException;
@@ -16,16 +17,16 @@ use OCP\Capabilities\IInitialStateExcludedCapability;
use OCP\IAppConfig;
use OCP\IURLGenerator;
use OCP\OCM\Exceptions\OCMArgumentException;
use OCP\OCM\IOCMProvider;
use OCP\OCM\ICapabilityAwareOCMProvider;
use Psr\Log\LoggerInterface;
class Capabilities implements ICapability, IInitialStateExcludedCapability {
public const API_VERSION = '1.1'; // informative, real version.
public const API_VERSION = '1.1.0';
public function __construct(
private IURLGenerator $urlGenerator,
private IAppConfig $appConfig,
private IOCMProvider $provider,
private ICapabilityAwareOCMProvider $provider,
private readonly OCMSignatoryManager $ocmSignatoryManager,
private readonly LoggerInterface $logger,
) {
@@ -34,23 +35,7 @@ class Capabilities implements ICapability, IInitialStateExcludedCapability {
/**
* Function an app uses to return the capabilities
*
* @return array{
* ocm: array{
* apiVersion: '1.0-proposal1',
* enabled: bool,
* endPoint: string,
* publicKey?: array{
* keyId: string,
* publicKeyPem: string,
* },
* resourceTypes: list<array{
* name: string,
* shareTypes: list<string>,
* protocols: array<string, string>
* }>,
* version: string
* }
* }
* @return array<string, array<string, mixed>>
* @throws OCMArgumentException
*/
public function getCapabilities() {
@@ -62,6 +47,8 @@ class Capabilities implements ICapability, IInitialStateExcludedCapability {
$this->provider->setEnabled(true);
$this->provider->setApiVersion(self::API_VERSION);
$this->provider->setCapabilities(['/invite-accepted', '/notifications', '/shares']);
$this->provider->setEndPoint(substr($url, 0, $pos));
$resource = $this->provider->createNewResourceType();
+3
View File
@@ -6,6 +6,7 @@
namespace OCA\CloudFederationAPI;
use OCP\Federation\ICloudFederationProviderManager;
use Psr\Log\LoggerInterface;
/**
* Class config
@@ -18,6 +19,7 @@ class Config {
public function __construct(
private ICloudFederationProviderManager $cloudFederationProviderManager,
private LoggerInterface $logger,
) {
}
@@ -32,6 +34,7 @@ class Config {
$provider = $this->cloudFederationProviderManager->getCloudFederationProvider($resourceType);
return $provider->getSupportedShareTypes();
} catch (\Exception $e) {
$this->logger->error('Failed to create federation provider', ['exception' => $e]);
return [];
}
}
@@ -1,8 +1,10 @@
<?php
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\CloudFederationAPI\Controller;
use NCU\Federation\ISignedCloudFederationProvider;
@@ -15,15 +17,20 @@ use NCU\Security\Signature\IIncomingSignedRequest;
use NCU\Security\Signature\ISignatureManager;
use OC\OCM\OCMSignatoryManager;
use OCA\CloudFederationAPI\Config;
use OCA\CloudFederationAPI\Db\FederatedInviteMapper;
use OCA\CloudFederationAPI\Events\FederatedInviteAcceptedEvent;
use OCA\CloudFederationAPI\ResponseDefinitions;
use OCA\FederatedFileSharing\AddressHandler;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\BruteForceProtection;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\Attribute\OpenAPI;
use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\Exceptions\ActionNotSupportedException;
use OCP\Federation\Exceptions\AuthenticationFailedException;
use OCP\Federation\Exceptions\BadRequestException;
@@ -61,12 +68,15 @@ class RequestHandlerController extends Controller {
private IURLGenerator $urlGenerator,
private ICloudFederationProviderManager $cloudFederationProviderManager,
private Config $config,
private IEventDispatcher $dispatcher,
private FederatedInviteMapper $federatedInviteMapper,
private readonly AddressHandler $addressHandler,
private readonly IAppConfig $appConfig,
private ICloudFederationFactory $factory,
private ICloudIdManager $cloudIdManager,
private readonly ISignatureManager $signatureManager,
private readonly OCMSignatoryManager $signatoryManager,
private ITimeFactory $timeFactory,
) {
parent::__construct($appName, $request);
}
@@ -107,7 +117,8 @@ class RequestHandlerController extends Controller {
}
// check if all required parameters are set
if ($shareWith === null ||
if (
$shareWith === null ||
$name === null ||
$providerId === null ||
$resourceType === null ||
@@ -213,6 +224,101 @@ class RequestHandlerController extends Controller {
return new JSONResponse($responseData, Http::STATUS_CREATED);
}
/**
* Inform the sender that an invitation was accepted to start sharing
*
* Inform about an accepted invitation so the user on the sender provider's side
* can initiate the OCM share creation. To protect the identity of the parties,
* for shares created following an OCM invitation, the user id MAY be hashed,
* and recipients implementing the OCM invitation workflow MAY refuse to process
* shares coming from unknown parties.
* @link https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1invite-accepted/post
*
* @param string $recipientProvider The address of the recipent's provider
* @param string $token The token used for the invitation
* @param string $userId The userId of the recipient at the recipient's provider
* @param string $email The email address of the recipient
* @param string $name The display name of the recipient
*
* @return JSONResponse<Http::STATUS_OK, array{userID: string, email: string, name: string}, array{}>|JSONResponse<Http::STATUS_FORBIDDEN|Http::STATUS_BAD_REQUEST|Http::STATUS_CONFLICT, array{message: string, error: true}, array{}>
*
* Note: Not implementing 404 Invitation token does not exist, instead using 400
* 200: Invitation accepted
* 400: Invalid token
* 403: Invitation token does not exist
* 409: User is already known by the OCM provider
*/
#[PublicPage]
#[NoCSRFRequired]
#[BruteForceProtection(action: 'inviteAccepted')]
public function inviteAccepted(string $recipientProvider, string $token, string $userId, string $email, string $name): JSONResponse {
$this->logger->debug('Processing share invitation for ' . $userId . ' with token ' . $token . ' and email ' . $email . ' and name ' . $name);
$updated = $this->timeFactory->getTime();
if ($token === '') {
$response = new JSONResponse(['message' => 'Invalid or non existing token', 'error' => true], Http::STATUS_BAD_REQUEST);
$response->throttle();
return $response;
}
try {
$invitation = $this->federatedInviteMapper->findByToken($token);
} catch (DoesNotExistException) {
$response = ['message' => 'Invalid or non existing token', 'error' => true];
$status = Http::STATUS_BAD_REQUEST;
$response = new JSONResponse($response, $status);
$response->throttle();
return $response;
}
if ($invitation->isAccepted() === true) {
$response = ['message' => 'Invite already accepted', 'error' => true];
$status = Http::STATUS_CONFLICT;
return new JSONResponse($response, $status);
}
if ($invitation->getExpiredAt() !== null && $updated > $invitation->getExpiredAt()) {
$response = ['message' => 'Invitation expired', 'error' => true];
$status = Http::STATUS_BAD_REQUEST;
return new JSONResponse($response, $status);
}
$localUser = $this->userManager->get($invitation->getUserId());
if ($localUser === null) {
$response = ['message' => 'Invalid or non existing token', 'error' => true];
$status = Http::STATUS_BAD_REQUEST;
$response = new JSONResponse($response, $status);
$response->throttle();
return $response;
}
$sharedFromEmail = $localUser->getEMailAddress();
if ($sharedFromEmail === null) {
$response = ['message' => 'Invalid or non existing token', 'error' => true];
$status = Http::STATUS_BAD_REQUEST;
$response = new JSONResponse($response, $status);
$response->throttle();
return $response;
}
$sharedFromDisplayName = $localUser->getDisplayName();
$response = ['userID' => $localUser->getUID(), 'email' => $sharedFromEmail, 'name' => $sharedFromDisplayName];
$status = Http::STATUS_OK;
$invitation->setAccepted(true);
$invitation->setRecipientEmail($email);
$invitation->setRecipientName($name);
$invitation->setRecipientProvider($recipientProvider);
$invitation->setRecipientUserId($userId);
$invitation->setAcceptedAt($updated);
$invitation = $this->federatedInviteMapper->update($invitation);
$event = new FederatedInviteAcceptedEvent($invitation);
$this->dispatcher->dispatchTyped($event);
return new JSONResponse($response, $status);
}
/**
* Send a notification about an existing share
*
@@ -233,7 +339,8 @@ class RequestHandlerController extends Controller {
#[BruteForceProtection(action: 'receiveFederatedShareNotification')]
public function receiveNotification($notificationType, $resourceType, $providerId, ?array $notification) {
// check if all required parameters are set
if ($notificationType === null ||
if (
$notificationType === null ||
$resourceType === null ||
$providerId === null ||
!is_array($notification)
@@ -452,7 +559,7 @@ class RequestHandlerController extends Controller {
*/
private function getHostFromFederationId(string $entry): string {
if (!str_contains($entry, '@')) {
throw new IncomingRequestException('entry ' . $entry . ' does not contains @');
throw new IncomingRequestException('entry ' . $entry . ' does not contain @');
}
$rightPart = substr($entry, strrpos($entry, '@') + 1);
@@ -0,0 +1,62 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\CloudFederationAPI\Db;
use OCP\AppFramework\Db\Entity;
use OCP\DB\Types;
/**
* @method bool isAccepted()
* @method void setAccepted(bool $accepted)
* @method int|null getAcceptedAt()
* @method void setAcceptedAt(int $acceptedAt)
* @method int|null getCreatedAt()
* @method void setCreatedAt(int $createdAt)
* @method int|null getExpiredAt()
* @method void setExpiredAt(int $expiredAt)
* @method string|null getRecipientEmail()
* @method void setRecipientEmail(string $recipientEmail)
* @method string|null getRecipientName()
* @method void setRecipientName(string $recipientName)
* @method string|null getRecipientProvider()
* @method void setRecipientProvider(string $recipientProvider)
* @method string|null getRecipientUserId()
* @method void setRecipientUserId(string $recipientUserId)
* @method string getToken()
* @method void setToken(string $token)
* @method string|null getUserId()
* @method void setUserId(string $userId)
*/
class FederatedInvite extends Entity {
protected bool $accepted = false;
protected ?int $acceptedAt = 0;
protected int $createdAt = 0;
protected ?int $expiredAt = 0;
protected ?string $recipientEmail = null;
protected ?string $recipientName = null;
protected ?string $recipientProvider = null;
protected ?string $recipientUserId = null;
protected string $token = '';
protected string $userId = '';
public function __construct() {
$this->addType('accepted', Types::BOOLEAN);
$this->addType('acceptedAt', Types::BIGINT);
$this->addType('createdAt', Types::BIGINT);
$this->addType('expiredAt', Types::BIGINT);
$this->addType('recipientEmail', Types::STRING);
$this->addType('recipientName', Types::STRING);
$this->addType('recipientProvider', Types::STRING);
$this->addType('recipientUserId', Types::STRING);
$this->addType('token', Types::STRING);
$this->addType('userId', Types::STRING);
}
}
@@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\CloudFederationAPI\Db;
use OCP\AppFramework\Db\QBMapper;
use OCP\IDBConnection;
/**
* @template-extends QBMapper<FederatedInvite>
*/
class FederatedInviteMapper extends QBMapper {
public const TABLE_NAME = 'federated_invites';
public function __construct(IDBConnection $db) {
parent::__construct($db, self::TABLE_NAME);
}
public function findByToken(string $token): FederatedInvite {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('federated_invites')
->where($qb->expr()->eq('token', $qb->createNamedParameter($token)));
return $this->findEntity($qb);
}
}
@@ -0,0 +1,24 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\CloudFederationAPI\Events;
use OCA\CloudFederationAPI\Db\FederatedInvite;
use OCP\EventDispatcher\Event;
class FederatedInviteAcceptedEvent extends Event {
public function __construct(
private FederatedInvite $invitation,
) {
parent::__construct();
}
public function getInvitation(): FederatedInvite {
return $this->invitation;
}
}
@@ -0,0 +1,89 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\CloudFederationAPI\Migration;
use Closure;
use OCP\DB\ISchemaWrapper;
use OCP\DB\Types;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version1016Date202502262004 extends SimpleMigrationStep {
/**
* @param IOutput $output
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @return null|ISchemaWrapper
*/
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
/** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
$table_name = 'federated_invites';
if (!$schema->hasTable($table_name)) {
$table = $schema->createTable($table_name);
$table->addColumn('id', Types::BIGINT, [
'autoincrement' => true,
'notnull' => true,
'length' => 11,
'unsigned' => true,
]);
$table->addColumn('user_id', Types::STRING, [
'notnull' => true,
'length' => 64,
]);
// https://saturncloud.io/blog/what-is-the-maximum-length-of-a-url-in-different-browsers/#maximum-url-length-in-different-browsers
// We use the least common denominator, the minimum length supported by browsers
$table->addColumn('recipient_provider', Types::STRING, [
'notnull' => false,
'length' => 2083,
]);
$table->addColumn('recipient_user_id', Types::STRING, [
'notnull' => false,
'length' => 1024,
]);
$table->addColumn('recipient_name', Types::STRING, [
'notnull' => false,
'length' => 1024,
]);
// https://www.directedignorance.com/blog/maximum-length-of-email-address
$table->addColumn('recipient_email', Types::STRING, [
'notnull' => false,
'length' => 320,
]);
$table->addColumn('token', Types::STRING, [
'notnull' => true,
'length' => 60,
]);
$table->addColumn('accepted', Types::BOOLEAN, [
'notnull' => false,
'default' => false
]);
$table->addColumn('created_at', Types::BIGINT, [
'notnull' => true,
]);
$table->addColumn('expired_at', Types::BIGINT, [
'notnull' => false,
]);
$table->addColumn('accepted_at', Types::BIGINT, [
'notnull' => false,
]);
$table->addUniqueConstraint(['token']);
$table->setPrimaryKey(['id']);
return $schema;
}
return null;
}
}
+165 -73
View File
@@ -36,79 +36,10 @@
},
"Capabilities": {
"type": "object",
"required": [
"ocm"
],
"properties": {
"ocm": {
"type": "object",
"required": [
"apiVersion",
"enabled",
"endPoint",
"resourceTypes",
"version"
],
"properties": {
"apiVersion": {
"type": "string",
"enum": [
"1.0-proposal1"
]
},
"enabled": {
"type": "boolean"
},
"endPoint": {
"type": "string"
},
"publicKey": {
"type": "object",
"required": [
"keyId",
"publicKeyPem"
],
"properties": {
"keyId": {
"type": "string"
},
"publicKeyPem": {
"type": "string"
}
}
},
"resourceTypes": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"shareTypes",
"protocols"
],
"properties": {
"name": {
"type": "string"
},
"shareTypes": {
"type": "array",
"items": {
"type": "string"
}
},
"protocols": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"version": {
"type": "string"
}
}
"additionalProperties": {
"type": "object",
"additionalProperties": {
"type": "object"
}
}
},
@@ -396,6 +327,167 @@
}
}
}
},
"/index.php/ocm/invite-accepted": {
"post": {
"operationId": "request_handler-invite-accepted",
"summary": "Inform the sender that an invitation was accepted to start sharing",
"description": "Inform about an accepted invitation so the user on the sender provider's side can initiate the OCM share creation. To protect the identity of the parties, for shares created following an OCM invitation, the user id MAY be hashed, and recipients implementing the OCM invitation workflow MAY refuse to process shares coming from unknown parties.\nhttps://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1invite-accepted/post\nNote: Not implementing 404 Invitation token does not exist, instead using 400",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"recipientProvider",
"token",
"userId",
"email",
"name"
],
"properties": {
"recipientProvider": {
"type": "string",
"description": "The address of the recipent's provider"
},
"token": {
"type": "string",
"description": "The token used for the invitation"
},
"userId": {
"type": "string",
"description": "The userId of the recipient at the recipient's provider"
},
"email": {
"type": "string",
"description": "The email address of the recipient"
},
"name": {
"type": "string",
"description": "The display name of the recipient"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Invitation accepted",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"userID",
"email",
"name"
],
"properties": {
"userID": {
"type": "string"
},
"email": {
"type": "string"
},
"name": {
"type": "string"
}
}
}
}
}
},
"403": {
"description": "Invitation token does not exist",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"message",
"error"
],
"properties": {
"message": {
"type": "string"
},
"error": {
"type": "boolean",
"enum": [
true
]
}
}
}
}
}
},
"400": {
"description": "Invalid token",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"message",
"error"
],
"properties": {
"message": {
"type": "string"
},
"error": {
"type": "boolean",
"enum": [
true
]
}
}
}
}
}
},
"409": {
"description": "User is already known by the OCM provider",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"message",
"error"
],
"properties": {
"message": {
"type": "string"
},
"error": {
"type": "boolean",
"enum": [
true
]
}
}
}
}
}
}
}
}
}
},
"tags": [
@@ -0,0 +1,136 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\CloudFederationApi\Tests;
use NCU\Security\Signature\ISignatureManager;
use OC\OCM\OCMSignatoryManager;
use OCA\CloudFederationAPI\Config;
use OCA\CloudFederationAPI\Controller\RequestHandlerController;
use OCA\CloudFederationAPI\Db\FederatedInvite;
use OCA\CloudFederationAPI\Db\FederatedInviteMapper;
use OCA\FederatedFileSharing\AddressHandler;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\ICloudFederationFactory;
use OCP\Federation\ICloudFederationProviderManager;
use OCP\Federation\ICloudIdManager;
use OCP\IAppConfig;
use OCP\IGroupManager;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class RequestHandlerControllerTest extends TestCase {
private IRequest&MockObject $request;
private LoggerInterface&MockObject $logger;
private IUserManager&MockObject $userManager;
private IGroupManager&MockObject $groupManager;
private IURLGenerator&MockObject $urlGenerator;
private ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
private Config&MockObject $config;
private IEventDispatcher&MockObject $eventDispatcher;
private FederatedInviteMapper&MockObject $federatedInviteMapper;
private AddressHandler&MockObject $addressHandler;
private IAppConfig&MockObject $appConfig;
private ICloudFederationFactory&MockObject $cloudFederationFactory;
private ICloudIdManager&MockObject $cloudIdManager;
private ISignatureManager&MockObject $signatureManager;
private OCMSignatoryManager&MockObject $signatoryManager;
private ITimeFactory&MockObject $timeFactory;
private RequestHandlerController $requestHandlerController;
protected function setUp(): void {
parent::setUp();
$this->request = $this->createMock(IRequest::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->cloudFederationProviderManager = $this->createMock(ICloudFederationProviderManager::class);
$this->config = $this->createMock(Config::class);
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
$this->federatedInviteMapper = $this->createMock(FederatedInviteMapper::class);
$this->addressHandler = $this->createMock(AddressHandler::class);
$this->appConfig = $this->createMock(IAppConfig::class);
$this->cloudFederationFactory = $this->createMock(ICloudFederationFactory::class);
$this->cloudIdManager = $this->createMock(ICloudIdManager::class);
$this->signatureManager = $this->createMock(ISignatureManager::class);
$this->signatoryManager = $this->createMock(OCMSignatoryManager::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->requestHandlerController = new RequestHandlerController(
'cloud_federation_api',
$this->request,
$this->logger,
$this->userManager,
$this->groupManager,
$this->urlGenerator,
$this->cloudFederationProviderManager,
$this->config,
$this->eventDispatcher,
$this->federatedInviteMapper,
$this->addressHandler,
$this->appConfig,
$this->cloudFederationFactory,
$this->cloudIdManager,
$this->signatureManager,
$this->signatoryManager,
$this->timeFactory,
);
}
public function testInviteAccepted(): void {
$token = 'token';
$userId = 'userId';
$invite = new FederatedInvite();
$invite->setCreatedAt(1);
$invite->setUserId($userId);
$invite->setToken($token);
$this->federatedInviteMapper->expects(self::once())
->method('findByToken')
->with($token)
->willReturn($invite);
$this->federatedInviteMapper->expects(self::once())
->method('update')
->willReturnArgument(0);
$user = $this->createMock(IUser::class);
$user->method('getUID')
->willReturn($userId);
$user->method('getEMailAddress')
->willReturn('email');
$user->method('getDisplayName')
->willReturn('displayName');
$this->userManager->expects(self::once())
->method('get')
->with($userId)
->willReturn($user);
$recipientProvider = 'http://127.0.0.1';
$recipientId = 'remote';
$recipientEmail = 'remote@example.org';
$recipientName = 'Remote Remoteson';
$response = ['userID' => $userId, 'email' => 'email', 'name' => 'displayName'];
$json = new JSONResponse($response, Http::STATUS_OK);
$this->assertEquals($json, $this->requestHandlerController->inviteAccepted($recipientProvider, $token, $recipientId, $recipientEmail, $recipientName));
}
}
+11 -7
View File
@@ -10,23 +10,27 @@ OC.L10N.register(
"{author} commented on {file}" : "{author} reageerde op {file}",
"<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden",
"Files" : "Bestanden",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een opmerking van een account dat intussen is verwijderd",
"{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"",
"Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen",
"Edit comment" : "Bewerk reactie",
"Delete comment" : "Verwijder reactie",
"Cancel edit" : "Annuleer bewerking",
"Edit comment" : "Reactie bewerken",
"Delete comment" : "Reactie verwijderen",
"Cancel edit" : "Bewerking annuleren",
"New comment" : "Nieuwe reactie",
"Post comment" : "Plaats reactie",
"Write a comment" : "Schrijf een reactie",
"Post comment" : "Reactie plaatsen",
"@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor smart picker",
"Could not reload comments" : "Kon reactie niet opnieuw laden",
"Failed to mark comments as read" : "Kon reacties niet als gelezen markeren",
"Unable to load the comments list" : "Kan reactielijst niet laden",
"No comments yet, start the conversation!" : "Nog geen reacties, start de discussie!",
"No more messages" : "Geen berichten meer",
"Retry" : "Opnieuw proberen",
"_1 new comment_::_{unread} new comments_" : ["1 nieuwe reactie","{unread} nieuwe reacties"],
"Comment" : "Reactie",
"An error occurred while trying to edit the comment" : "Er trad een fout op bij het bewerken van de reactie",
"An error occurred while trying to edit the comment" : "Er is een fout opgetreden bij het bewerken van de reactie",
"Comment deleted" : "Reactie verwijderd",
"An error occurred while trying to delete the comment" : "Er trad een fout op bij het verwijderen van de reactie",
"An error occurred while trying to create the comment" : "Er trad een fout op bij het creëren van de reactie"
"An error occurred while trying to delete the comment" : "Er is een fout opgetreden bij het verwijderen van de reactie",
"An error occurred while trying to create the comment" : "Er is een fout opgetreden bij het aanmaken van de reactie"
},
"nplurals=2; plural=(n != 1);");
+11 -7
View File
@@ -8,23 +8,27 @@
"{author} commented on {file}" : "{author} reageerde op {file}",
"<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden",
"Files" : "Bestanden",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een opmerking van een account dat intussen is verwijderd",
"{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"",
"Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen",
"Edit comment" : "Bewerk reactie",
"Delete comment" : "Verwijder reactie",
"Cancel edit" : "Annuleer bewerking",
"Edit comment" : "Reactie bewerken",
"Delete comment" : "Reactie verwijderen",
"Cancel edit" : "Bewerking annuleren",
"New comment" : "Nieuwe reactie",
"Post comment" : "Plaats reactie",
"Write a comment" : "Schrijf een reactie",
"Post comment" : "Reactie plaatsen",
"@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor smart picker",
"Could not reload comments" : "Kon reactie niet opnieuw laden",
"Failed to mark comments as read" : "Kon reacties niet als gelezen markeren",
"Unable to load the comments list" : "Kan reactielijst niet laden",
"No comments yet, start the conversation!" : "Nog geen reacties, start de discussie!",
"No more messages" : "Geen berichten meer",
"Retry" : "Opnieuw proberen",
"_1 new comment_::_{unread} new comments_" : ["1 nieuwe reactie","{unread} nieuwe reacties"],
"Comment" : "Reactie",
"An error occurred while trying to edit the comment" : "Er trad een fout op bij het bewerken van de reactie",
"An error occurred while trying to edit the comment" : "Er is een fout opgetreden bij het bewerken van de reactie",
"Comment deleted" : "Reactie verwijderd",
"An error occurred while trying to delete the comment" : "Er trad een fout op bij het verwijderen van de reactie",
"An error occurred while trying to create the comment" : "Er trad een fout op bij het creëren van de reactie"
"An error occurred while trying to delete the comment" : "Er is een fout opgetreden bij het verwijderen van de reactie",
"An error occurred while trying to create the comment" : "Er is een fout opgetreden bij het aanmaken van de reactie"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -1
View File
@@ -19,7 +19,7 @@ OC.L10N.register(
"New comment" : "Yorum ekle",
"Write a comment …" : "Bir yorum yazın…",
"Post comment" : "Yorum gönder",
"@ for mentions, : for emoji, / for smart picker" : "Anmalar için @, emojiler için :, akıllı seçici için /",
"@ for mentions, : for emoji, / for smart picker" : "Bahsetmeler için @, emojiler için :, akıllı seçici için /",
"Could not reload comments" : "Yorumlar yeniden yüklenemedi",
"Failed to mark comments as read" : "Yorumlar okunmuş olarak işaretlenemedi",
"Unable to load the comments list" : "Yorum listesi yüklenemedi",
+1 -1
View File
@@ -17,7 +17,7 @@
"New comment" : "Yorum ekle",
"Write a comment …" : "Bir yorum yazın…",
"Post comment" : "Yorum gönder",
"@ for mentions, : for emoji, / for smart picker" : "Anmalar için @, emojiler için :, akıllı seçici için /",
"@ for mentions, : for emoji, / for smart picker" : "Bahsetmeler için @, emojiler için :, akıllı seçici için /",
"Could not reload comments" : "Yorumlar yeniden yüklenemedi",
"Failed to mark comments as read" : "Yorumlar okunmuş olarak işaretlenemedi",
"Unable to load the comments list" : "Yorum listesi yüklenemedi",
+2 -4
View File
@@ -19,7 +19,7 @@ let ActivityTabPluginInstance
*/
export function registerCommentsPlugins() {
window.OCA.Activity.registerSidebarAction({
mount: async (el, { context, fileInfo, reload }) => {
mount: async (el, { fileInfo, reload }) => {
const pinia = createPinia()
if (!ActivityTabPluginView) {
@@ -29,7 +29,6 @@ export function registerCommentsPlugins() {
}
ActivityTabPluginInstance = new ActivityTabPluginView({
el,
parent: context,
pinia,
propsData: {
reloadCallback: reload,
@@ -58,10 +57,9 @@ export function registerCommentsPlugins() {
timestamp: moment(comment.props?.creationDateTime).toDate().getTime(),
mount(element: HTMLElement, { context, reload }) {
mount(element: HTMLElement, { reload }) {
this._CommentsViewInstance = new CommentsViewObject({
el: element,
parent: context,
propsData: {
comment,
resourceId: fileInfo.id,
+1 -1
View File
@@ -364,7 +364,7 @@ $comment-padding: 10px;
&__message {
white-space: pre-wrap;
word-break: break-word;
word-break: normal;
max-height: 70px;
overflow: hidden;
margin-top: -6px;
@@ -1,4 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,30 +23,17 @@ use OCP\Files\Node;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Share\IShareHelper;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ListenerTest extends TestCase {
/** @var Listener */
protected $listener;
/** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
protected $activityManager;
/** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
protected $session;
/** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
protected $appManager;
/** @var IMountProviderCollection|\PHPUnit\Framework\MockObject\MockObject */
protected $mountProviderCollection;
/** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
protected $rootFolder;
/** @var IShareHelper|\PHPUnit\Framework\MockObject\MockObject */
protected $shareHelper;
protected IManager&MockObject $activityManager;
protected IUserSession&MockObject $session;
protected IAppManager&MockObject $appManager;
protected IMountProviderCollection&MockObject $mountProviderCollection;
protected IRootFolder&MockObject $rootFolder;
protected IShareHelper&MockObject $shareHelper;
protected Listener $listener;
protected function setUp(): void {
parent::setUp();
@@ -76,7 +66,7 @@ class ListenerTest extends TestCase {
->method('getObjectType')
->willReturn('files');
/** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
/** @var CommentsEvent|MockObject $event */
$event = $this->createMock(CommentsEvent::class);
$event->expects($this->any())
->method('getComment')
@@ -85,13 +75,13 @@ class ListenerTest extends TestCase {
->method('getEvent')
->willReturn(CommentsEvent::EVENT_ADD);
/** @var IUser|\PHPUnit\Framework\MockObject\MockObject $ownerUser */
/** @var IUser|MockObject $ownerUser */
$ownerUser = $this->createMock(IUser::class);
$ownerUser->expects($this->any())
->method('getUID')
->willReturn('937393');
/** @var \PHPUnit\Framework\MockObject\MockObject $mount */
/** @var MockObject $mount */
$mount = $this->createMock(ICachedMountFileInfo::class);
$mount->expects($this->any())
->method('getUser')
@@ -133,7 +123,7 @@ class ListenerTest extends TestCase {
->method('getUser')
->willReturn($ownerUser);
/** @var \PHPUnit\Framework\MockObject\MockObject $activity */
/** @var MockObject $activity */
$activity = $this->createMock(IEvent::class);
$activity->expects($this->exactly(count($al['users'])))
->method('setAffectedUser');
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -7,7 +9,12 @@
*/
namespace OCA\Comments\Tests\Unit\AppInfo;
use OCA\Comments\Activity\Filter;
use OCA\Comments\Activity\Listener;
use OCA\Comments\Activity\Provider;
use OCA\Comments\Activity\Setting;
use OCA\Comments\AppInfo\Application;
use OCA\Comments\Controller\NotificationsController;
use OCA\Comments\Notification\Notifier;
use OCP\IUserManager;
use OCP\IUserSession;
@@ -38,12 +45,12 @@ class ApplicationTest extends TestCase {
$c = $app->getContainer();
$services = [
'OCA\Comments\Controller\NotificationsController',
'OCA\Comments\Activity\Filter',
'OCA\Comments\Activity\Listener',
'OCA\Comments\Activity\Provider',
'OCA\Comments\Activity\Setting',
'OCA\Comments\Notification\Listener',
NotificationsController::class,
Filter::class,
Listener::class,
Provider::class,
Setting::class,
\OCA\Comments\Notification\Listener::class,
Notifier::class,
];
@@ -8,13 +8,12 @@ namespace OCA\Comments\Tests\Unit\Collaboration;
use OCA\Comments\Collaboration\CommentersSorter;
use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CommentersSorterTest extends TestCase {
/** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
protected $commentsManager;
/** @var CommentersSorter */
protected $sorter;
protected ICommentsManager&MockObject $commentsManager;
protected CommentersSorter $sorter;
protected function setUp(): void {
parent::setUp();
@@ -55,7 +54,7 @@ class CommentersSorterTest extends TestCase {
$this->assertEquals($data['expected'], $workArray);
}
public function sortDataProvider() {
public static function sortDataProvider(): array {
return [[
[
#1 sort properly and otherwise keep existing order
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -22,26 +24,16 @@ use OCP\IUser;
use OCP\IUserSession;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class NotificationsTest extends TestCase {
/** @var NotificationsController */
protected $notificationsController;
/** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
protected $commentsManager;
/** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
protected $rootFolder;
/** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
protected $session;
/** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
protected $notificationManager;
/** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
protected $urlGenerator;
protected ICommentsManager&MockObject $commentsManager;
protected IRootFolder&MockObject $rootFolder;
protected IUserSession&MockObject $session;
protected IManager&MockObject $notificationManager;
protected IURLGenerator&MockObject $urlGenerator;
protected NotificationsController $notificationsController;
protected function setUp(): void {
parent::setUp();
@@ -81,10 +73,6 @@ class NotificationsTest extends TestCase {
$this->urlGenerator->expects($this->exactly(2))
->method('linkToRoute')
->withConsecutive(
['comments.Notifications.view', ['id' => '42']],
['core.login.showLoginForm', ['redirect_url' => 'link-to-comment']]
)
->willReturnMap([
['comments.Notifications.view', ['id' => '42'], 'link-to-comment'],
['core.login.showLoginForm', ['redirect_url' => 'link-to-comment'], 'link-to-login'],
+19 -30
View File
@@ -1,4 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -10,43 +13,32 @@ use OCA\Comments\Listener\CommentsEventListener;
use OCA\Comments\Notification\Listener as NotificationListener;
use OCP\Comments\CommentsEvent;
use OCP\Comments\IComment;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class EventHandlerTest extends TestCase {
/** @var CommentsEventListener */
protected $eventHandler;
/** @var ActivityListener|\PHPUnit\Framework\MockObject\MockObject */
protected $activityListener;
/** @var NotificationListener|\PHPUnit\Framework\MockObject\MockObject */
protected $notificationListener;
protected ActivityListener&MockObject $activityListener;
protected NotificationListener&MockObject $notificationListener;
protected CommentsEventListener $eventHandler;
protected function setUp(): void {
parent::setUp();
$this->activityListener = $this->getMockBuilder(ActivityListener::class)
->disableOriginalConstructor()
->getMock();
$this->notificationListener = $this->getMockBuilder(NotificationListener::class)
->disableOriginalConstructor()
->getMock();
$this->activityListener = $this->createMock(ActivityListener::class);
$this->notificationListener = $this->createMock(NotificationListener::class);
$this->eventHandler = new CommentsEventListener($this->activityListener, $this->notificationListener);
}
public function testNotFiles(): void {
/** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
$comment = $this->getMockBuilder(IComment::class)->getMock();
/** @var IComment|MockObject $comment */
$comment = $this->createMock(IComment::class);
$comment->expects($this->once())
->method('getObjectType')
->willReturn('smiles');
/** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
$event = $this->getMockBuilder(CommentsEvent::class)
->disableOriginalConstructor()
->getMock();
/** @var CommentsEvent|MockObject $event */
$event = $this->createMock(CommentsEvent::class);
$event->expects($this->once())
->method('getComment')
->willReturn($comment);
@@ -56,7 +48,7 @@ class EventHandlerTest extends TestCase {
$this->eventHandler->handle($event);
}
public function handledProvider() {
public static function handledProvider(): array {
return [
[CommentsEvent::EVENT_DELETE],
[CommentsEvent::EVENT_UPDATE],
@@ -67,19 +59,16 @@ class EventHandlerTest extends TestCase {
/**
* @dataProvider handledProvider
* @param string $eventType
*/
public function testHandled($eventType): void {
/** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
$comment = $this->getMockBuilder(IComment::class)->getMock();
public function testHandled(string $eventType): void {
/** @var IComment|MockObject $comment */
$comment = $this->createMock(IComment::class);
$comment->expects($this->once())
->method('getObjectType')
->willReturn('files');
/** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
$event = $this->getMockBuilder(CommentsEvent::class)
->disableOriginalConstructor()
->getMock();
/** @var CommentsEvent|MockObject $event */
$event = $this->createMock(CommentsEvent::class);
$event->expects($this->atLeastOnce())
->method('getComment')
->willReturn($comment);
@@ -14,25 +14,19 @@ use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ListenerTest extends TestCase {
/** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
protected $notificationManager;
/** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
protected $userManager;
/** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
protected $urlGenerator;
/** @var Listener */
protected $listener;
protected IManager&MockObject $notificationManager;
protected IUserManager&MockObject $userManager;
protected IURLGenerator&MockObject $urlGenerator;
protected Listener $listener;
protected function setUp(): void {
parent::setUp();
$this->notificationManager = $this->createMock(\OCP\Notification\IManager::class);
$this->notificationManager = $this->createMock(IManager::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->listener = new Listener(
@@ -41,7 +35,7 @@ class ListenerTest extends TestCase {
);
}
public function eventProvider() {
public static function eventProvider(): array {
return [
[CommentsEvent::EVENT_ADD, 'notify'],
[CommentsEvent::EVENT_UPDATE, 'notify'],
@@ -56,8 +50,8 @@ class ListenerTest extends TestCase {
* @param string $notificationMethod
*/
public function testEvaluate($eventType, $notificationMethod): void {
/** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
$comment = $this->getMockBuilder(IComment::class)->getMock();
/** @var IComment|MockObject $comment */
$comment = $this->createMock(IComment::class);
$comment->expects($this->any())
->method('getObjectType')
->willReturn('files');
@@ -78,10 +72,8 @@ class ListenerTest extends TestCase {
->method('getId')
->willReturn('1234');
/** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
$event = $this->getMockBuilder(CommentsEvent::class)
->disableOriginalConstructor()
->getMock();
/** @var CommentsEvent|MockObject $event */
$event = $this->createMock(CommentsEvent::class);
$event->expects($this->once())
->method('getComment')
->willReturn($comment);
@@ -89,8 +81,8 @@ class ListenerTest extends TestCase {
->method(('getEvent'))
->willReturn($eventType);
/** @var INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
$notification = $this->getMockBuilder(INotification::class)->getMock();
/** @var INotification|MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->any())
->method($this->anything())
->willReturn($notification);
@@ -106,26 +98,24 @@ class ListenerTest extends TestCase {
$this->userManager->expects($this->exactly(6))
->method('userExists')
->withConsecutive(
['foobar'],
['barfoo'],
['foo@bar.com'],
['bar@foo.org@foobar.io'],
['23452-4333-54353-2342'],
['yolo']
)
->willReturn(true);
->willReturnMap([
['foobar', true],
['barfoo', true],
['foo@bar.com', true],
['bar@foo.org@foobar.io', true],
['23452-4333-54353-2342', true],
['yolo', true]
]);
$this->listener->evaluate($event);
}
/**
* @dataProvider eventProvider
* @param string $eventType
*/
public function testEvaluateNoMentions($eventType): void {
/** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
$comment = $this->getMockBuilder(IComment::class)->getMock();
public function testEvaluateNoMentions(string $eventType): void {
/** @var IComment|MockObject $comment */
$comment = $this->createMock(IComment::class);
$comment->expects($this->any())
->method('getObjectType')
->willReturn('files');
@@ -136,10 +126,8 @@ class ListenerTest extends TestCase {
->method('getMentions')
->willReturn([]);
/** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
$event = $this->getMockBuilder(CommentsEvent::class)
->disableOriginalConstructor()
->getMock();
/** @var CommentsEvent|MockObject $event */
$event = $this->createMock(CommentsEvent::class);
$event->expects($this->once())
->method('getComment')
->willReturn($comment);
@@ -161,8 +149,8 @@ class ListenerTest extends TestCase {
}
public function testEvaluateUserDoesNotExist(): void {
/** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
$comment = $this->getMockBuilder(IComment::class)->getMock();
/** @var IComment|MockObject $comment */
$comment = $this->createMock(IComment::class);
$comment->expects($this->any())
->method('getObjectType')
->willReturn('files');
@@ -176,10 +164,8 @@ class ListenerTest extends TestCase {
->method('getId')
->willReturn('1234');
/** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
$event = $this->getMockBuilder(CommentsEvent::class)
->disableOriginalConstructor()
->getMock();
/** @var CommentsEvent|MockObject $event */
$event = $this->createMock(CommentsEvent::class);
$event->expects($this->once())
->method('getComment')
->willReturn($comment);
@@ -187,8 +173,8 @@ class ListenerTest extends TestCase {
->method(('getEvent'))
->willReturn(CommentsEvent::EVENT_ADD);
/** @var INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
$notification = $this->getMockBuilder(INotification::class)->getMock();
/** @var INotification|MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->any())
->method($this->anything())
->willReturn($notification);
@@ -203,9 +189,7 @@ class ListenerTest extends TestCase {
$this->userManager->expects($this->once())
->method('userExists')
->withConsecutive(
['foobar']
)
->with('foobar')
->willReturn(false);
$this->listener->evaluate($event);

Some files were not shown because too many files have changed in this diff Show More