Compare commits

..

701 Commits

Author SHA1 Message Date
Joas Schilling f003ca890b Morelocks
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-04 06:28:10 +02:00
Joas Schilling 9ec64ff578 More logs
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-04 06:14:44 +02:00
Joas Schilling ea58ce9d4a debug failing integration tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-03 17:44:20 +02: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
Louis f4cb78b905 Merge pull request #52242 from nextcloud/artonge/fix/copy_subfolders_s3 2025-06-02 11:55:54 +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
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
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
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
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
Robert Zenz f428e6786b fix(JSResourceLocator) fix incorrect parameter being used. 2025-04-26 15:19:55 +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
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
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
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
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
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
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
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
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
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
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
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
2926 changed files with 49482 additions and 36731 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
+1 -14
View File
@@ -16,8 +16,6 @@ updates:
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Main composer (linting, testing, openapi)
- package-ecosystem: composer
@@ -28,6 +26,7 @@ updates:
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
- "/vendor-bin/rector"
schedule:
interval: weekly
day: saturday
@@ -36,8 +35,6 @@ updates:
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Main master npm frontend dependencies
- package-ecosystem: npm
@@ -51,8 +48,6 @@ updates:
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"
@@ -75,8 +70,6 @@ updates:
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
@@ -96,8 +89,6 @@ updates:
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"
ignore:
@@ -125,8 +116,6 @@ updates:
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
@@ -145,8 +134,6 @@ updates:
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"
ignore:
+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:
+4
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
+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
+59 -5
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
@@ -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,16 +102,61 @@ 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 }}
@@ -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
+14 -4
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
@@ -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.2
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: |
+31 -11
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']
include:
- php-versions: '8.2'
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,8 +64,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 php ${{ matrix.php-versions }}
@@ -94,15 +99,22 @@ jobs:
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' || '' }}
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.2
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: |
@@ -120,23 +132,24 @@ jobs:
php-versions: ['8.1', '8.2', '8.3']
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:b52c16663c70b7234f217cb993a339b46686e30a1a5d9279cb5feeb2202f837c # v4.4.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 }}
@@ -161,15 +174,22 @@ jobs:
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' || '' }}
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v5.4.2
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: |
+14 -4
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
@@ -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.2
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: |
+16 -4
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,14 +54,15 @@ 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 }}
@@ -90,15 +95,22 @@ jobs:
- name: PHPUnit
run: composer run test:files_external -- --verbose \
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@ad3126e916f78f00edff4ed0317cf185271ccc2d # 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]
+16 -4
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,14 +54,15 @@ 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 }}
@@ -87,15 +92,22 @@ jobs:
- name: PHPUnit
run: composer run test:files_external -- --verbose \
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@ad3126e916f78f00edff4ed0317cf185271ccc2d # 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]
+15 -3
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,8 +53,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 php ${{ matrix.php-versions }}
@@ -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.2
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,90 @@
# 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 '^[0-9a-f]+ \((HEAD, )?tag: ' | sed -r 's/^.+tag: ([^ ]+)[,\)].+$/\1/g'
# Get the current tag
TAGS=$(git log --decorate --oneline | egrep '^[0-9a-f]+ \((HEAD, )?tag: ' | sed -r 's/^.+tag: ([^ ]+)[,\)].+$/\1/g')
CURRENT_TAG=$(echo "$TAGS" | head -n 1)
# Get the previous tag that is not an rc, beta or alpha
PREVIOUS_TAG=$(echo "$TAGS" | grep -v 'rc\|beta\|alpha' | sed -n '2p')
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 }}"
+6 -3
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,8 +53,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 php ${{ matrix.php-versions }}
@@ -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'
+5 -2
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,8 +52,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 php ${{ matrix.php-versions }}
+7 -4
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,8 +67,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 php ${{ matrix.php-versions }}
+5 -2
View File
@@ -77,12 +77,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 +95,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,6 +111,7 @@ 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 }}
+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@49933ea5288caeca8642d1e84afbd3f7d6820020 # 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@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.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@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.0
uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0
with:
php-version: ${{ matrix.php-versions }}
coverage: none
+2
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
+16 -1
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,6 +86,8 @@ 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@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
@@ -99,10 +106,14 @@ jobs:
run: npm run test:coverage --if-present
- name: Collect coverage
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # 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,6 +126,8 @@ 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@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
@@ -143,6 +156,8 @@ 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@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
+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@49933ea5288caeca8642d1e84afbd3f7d6820020 # v3
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
+1 -1
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 }}
+16 -5
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,15 +66,16 @@ 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 }}
@@ -101,15 +106,21 @@ jobs:
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.2
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: |
+16 -5
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,8 +74,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 php ${{ matrix.php-versions }}
@@ -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.2
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: |
+16 -5
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,21 +58,22 @@ 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 }}
@@ -97,15 +102,21 @@ jobs:
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.2
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@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.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@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.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}}
+3 -1
View File
@@ -27,13 +27,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
+15 -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}}
@@ -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@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.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
@@ -120,15 +125,21 @@ jobs:
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- 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.2
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
+12 -4
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,15 +65,16 @@ 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 }}
@@ -97,15 +99,21 @@ jobs:
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- 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.2
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: |
+17 -9
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,8 +121,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 php ${{ matrix.php-versions }}
@@ -155,15 +157,21 @@ jobs:
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- 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.2
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: |
+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']
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@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.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
@@ -120,15 +125,21 @@ jobs:
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- 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.2
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: |
+12 -4
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,15 +68,16 @@ 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 }}
@@ -103,15 +105,21 @@ jobs:
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- 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.2
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,8 +72,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 php ${{ matrix.php-versions }}
+14 -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 }}
@@ -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@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.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
@@ -125,15 +129,21 @@ jobs:
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- 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.2
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
+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']
# 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@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.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
@@ -115,15 +120,21 @@ jobs:
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- 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.2
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
+15 -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 }}
@@ -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@cf4cade2721270509d5b1c766ab3549210a39a2a #v2.33.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
@@ -101,15 +106,21 @@ jobs:
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.2
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: >
+8 -1
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,6 +30,7 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
@@ -57,6 +61,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
@@ -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,6 +96,7 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
@@ -121,6 +127,7 @@ jobs:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
submodules: true
- name: Set up php
+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
+2
View File
@@ -183,3 +183,5 @@ core/js/mimetypelist.js
cypress/downloads
cypress/snapshots
cypress/videos
/.direnv
+1 -1
View File
@@ -351,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
+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 -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 -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) {
@@ -42,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;
@@ -170,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 {
+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;"
}
+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);
@@ -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
@@ -23,26 +26,16 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class NotifierTest extends TestCase {
/** @var Notifier */
protected $notifier;
/** @var IFactory|MockObject */
protected $l10nFactory;
/** @var IL10N|MockObject */
protected $l;
/** @var IRootFolder|MockObject */
protected $folder;
/** @var ICommentsManager|MockObject */
protected $commentsManager;
/** @var IURLGenerator|MockObject */
protected $url;
/** @var IUserManager|MockObject */
protected $userManager;
/** @var INotification|MockObject */
protected $notification;
/** @var IComment|MockObject */
protected $comment;
/** @var string */
protected $lc = 'tlh_KX';
protected IFactory&MockObject $l10nFactory;
protected IL10N&MockObject $l;
protected IRootFolder&MockObject $folder;
protected ICommentsManager&MockObject $commentsManager;
protected IURLGenerator&MockObject $url;
protected IUserManager&MockObject $userManager;
protected INotification&MockObject $notification;
protected IComment&MockObject $comment;
protected Notifier $notifier;
protected string $lc = 'tlh_KX';
protected function setUp(): void {
parent::setUp();
@@ -75,9 +68,8 @@ class NotifierTest extends TestCase {
public function testPrepareSuccess(): void {
$fileName = 'Gre\'thor.odp';
$displayName = 'Huraga';
$message = '@Huraga mentioned you in a comment on "Gre\'thor.odp"';
/** @var Node|MockObject $node */
/** @var Node&MockObject $node */
$node = $this->createMock(Node::class);
$node
->expects($this->atLeastOnce())
@@ -192,7 +184,6 @@ class NotifierTest extends TestCase {
public function testPrepareSuccessDeletedUser(): void {
$fileName = 'Gre\'thor.odp';
$message = 'You were mentioned on "Gre\'thor.odp", in a comment by an account that has since been deleted';
/** @var Node|MockObject $node */
$node = $this->createMock(Node::class);
+1 -1
View File
@@ -4,6 +4,6 @@ OC.L10N.register(
"Recently contacted" : "Contacté récemment",
"Contacts Interaction" : "Interaction avec les contacts",
"Manages interaction between accounts and contacts" : "Gère l'interaction entre les comptes et les contacts",
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Collectez des données sur les interactions entre les comptes et les contacts et fournissez un répertoire pour ces données"
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Collecte des données sur les interactions entre les comptes et les contacts et fournit un répertoire pour ces données"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+1 -1
View File
@@ -2,6 +2,6 @@
"Recently contacted" : "Contacté récemment",
"Contacts Interaction" : "Interaction avec les contacts",
"Manages interaction between accounts and contacts" : "Gère l'interaction entre les comptes et les contacts",
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Collectez des données sur les interactions entre les comptes et les contacts et fournissez un répertoire pour ces données"
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Collecte des données sur les interactions entre les comptes et les contacts et fournit un répertoire pour ces données"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
@@ -21,12 +21,8 @@ use Test\TestCase;
* @group DB
*/
class RecentContactMapperTest extends TestCase {
/** @var RecentContactMapper */
private $recentContactMapper;
/** @var ITimeFactory */
private $time;
private RecentContactMapper $recentContactMapper;
private ITimeFactory $time;
protected function setUp(): void {
parent::setUp();
+2 -2
View File
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "أهلا، {name} ",
"Happy birthday 🥳🤩🎂🎉" : "عيد ميلاد سعيد 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "عيد ميلاد سعيد, يا {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title} أيقونة\"",
"Customize" : "تعديل",
"Edit widgets" : "تعديل أدوات الصفحة الرئيسية",
"Get more widgets from the App Store" : "يمكنك الحصول على المزيد من الأدوات من متجر التطبيقات",
@@ -24,6 +23,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "للحفاظ على خصوصيتك، يتم استدعاء بيانات حالة الطقس عبر خادم NextCloud الخاص بك نيابه عنك، وبالتالي فإن خدمة حالة الطقس لا تشارك معلوماتك الشخصية.",
"Weather data from Met.no" : "بيانات الطقس من Met.no",
"geocoding with Nominatim" : "الترميز الجغرافي مع Nominatim",
"elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData"
"elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData",
"\"{title} icon\"" : "\"{title} أيقونة\""
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
+2 -2
View File
@@ -14,7 +14,6 @@
"Hello, {name}" : "أهلا، {name} ",
"Happy birthday 🥳🤩🎂🎉" : "عيد ميلاد سعيد 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "عيد ميلاد سعيد, يا {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title} أيقونة\"",
"Customize" : "تعديل",
"Edit widgets" : "تعديل أدوات الصفحة الرئيسية",
"Get more widgets from the App Store" : "يمكنك الحصول على المزيد من الأدوات من متجر التطبيقات",
@@ -22,6 +21,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "للحفاظ على خصوصيتك، يتم استدعاء بيانات حالة الطقس عبر خادم NextCloud الخاص بك نيابه عنك، وبالتالي فإن خدمة حالة الطقس لا تشارك معلوماتك الشخصية.",
"Weather data from Met.no" : "بيانات الطقس من Met.no",
"geocoding with Nominatim" : "الترميز الجغرافي مع Nominatim",
"elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData"
"elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData",
"\"{title} icon\"" : "\"{title} أيقونة\""
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
}
+2 -2
View File
@@ -14,7 +14,6 @@ OC.L10N.register(
"Good evening, {name}" : "Bones nueches, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
"\"{title} icon\"" : "«Iconu de: {title}»",
"Customize" : "Personalizar",
"Edit widgets" : "Editar los widgets",
"Get more widgets from the App Store" : "Consigui más widgets de l'App Store",
@@ -22,6 +21,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pa la to privacidá, los datos del clima solicítense dende esta instancia de Nextcloud y, polo tanto, el serviciu del clima no recibe nenguna información personal.",
"Weather data from Met.no" : "datos del clima de Met.no",
"geocoding with Nominatim" : "xeocodificación con Nominatim",
"elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData"
"elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData",
"\"{title} icon\"" : "«Iconu de: {title}»"
},
"nplurals=2; plural=(n != 1);");
+2 -2
View File
@@ -12,7 +12,6 @@
"Good evening, {name}" : "Bones nueches, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
"\"{title} icon\"" : "«Iconu de: {title}»",
"Customize" : "Personalizar",
"Edit widgets" : "Editar los widgets",
"Get more widgets from the App Store" : "Consigui más widgets de l'App Store",
@@ -20,6 +19,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pa la to privacidá, los datos del clima solicítense dende esta instancia de Nextcloud y, polo tanto, el serviciu del clima no recibe nenguna información personal.",
"Weather data from Met.no" : "datos del clima de Met.no",
"geocoding with Nominatim" : "xeocodificación con Nominatim",
"elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData"
"elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData",
"\"{title} icon\"" : "«Iconu de: {title}»"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -2
View File
@@ -13,7 +13,6 @@ OC.L10N.register(
"Good evening, {name}" : "Добър вечер, {name}",
"Hello" : "Здравейте",
"Hello, {name}" : "Здравейте, {name}",
"\"{title} icon\"" : "„икона {title}“",
"Customize" : "Персонизиране",
"Edit widgets" : "Редактиране на изпълнимите модули",
"Get more widgets from the App Store" : "Вземете повече приспособления от App Store",
@@ -21,6 +20,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За вашата поверителност данните за времето се изискват от Nextcloud сървъра ви от ваше име, така че метеорологичната служба не получава лична информация.",
"Weather data from Met.no" : "Данни за времето от Met.no",
"geocoding with Nominatim" : "геокодиране с Nominatim",
"elevation data from OpenTopoData" : " кота данни от OpenTopoData"
"elevation data from OpenTopoData" : " кота данни от OpenTopoData",
"\"{title} icon\"" : "„икона {title}“"
},
"nplurals=2; plural=(n != 1);");
+2 -2
View File
@@ -11,7 +11,6 @@
"Good evening, {name}" : "Добър вечер, {name}",
"Hello" : "Здравейте",
"Hello, {name}" : "Здравейте, {name}",
"\"{title} icon\"" : "„икона {title}“",
"Customize" : "Персонизиране",
"Edit widgets" : "Редактиране на изпълнимите модули",
"Get more widgets from the App Store" : "Вземете повече приспособления от App Store",
@@ -19,6 +18,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За вашата поверителност данните за времето се изискват от Nextcloud сървъра ви от ваше име, така че метеорологичната служба не получава лична информация.",
"Weather data from Met.no" : "Данни за времето от Met.no",
"geocoding with Nominatim" : "геокодиране с Nominatim",
"elevation data from OpenTopoData" : " кота данни от OpenTopoData"
"elevation data from OpenTopoData" : " кота данни от OpenTopoData",
"\"{title} icon\"" : "„икона {title}“"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -2
View File
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Per molts anys 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Per molts anys, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"icona de {title}\"",
"Customize" : "Personalitza",
"Edit widgets" : "Edita els ginys",
"Get more widgets from the App Store" : "Obtén més ginys a la botiga d'aplicacions",
@@ -24,6 +23,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per a la vostra privadesa, les dades meteorològiques les sol·licita el servidor del Nextcloud en nom vostre perquè el servei meteorològic no rebi cap informació personal.",
"Weather data from Met.no" : "Dades meteorològiques de Met.no",
"geocoding with Nominatim" : "codis geogràfics amb Nominatim",
"elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData"
"elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData",
"\"{title} icon\"" : "\"icona de {title}\""
},
"nplurals=2; plural=(n != 1);");
+2 -2
View File
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Per molts anys 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Per molts anys, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"icona de {title}\"",
"Customize" : "Personalitza",
"Edit widgets" : "Edita els ginys",
"Get more widgets from the App Store" : "Obtén més ginys a la botiga d'aplicacions",
@@ -22,6 +21,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per a la vostra privadesa, les dades meteorològiques les sol·licita el servidor del Nextcloud en nom vostre perquè el servei meteorològic no rebi cap informació personal.",
"Weather data from Met.no" : "Dades meteorològiques de Met.no",
"geocoding with Nominatim" : "codis geogràfics amb Nominatim",
"elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData"
"elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData",
"\"{title} icon\"" : "\"icona de {title}\""
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -2
View File
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Dobrý den, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Všechno nejlepší k narozeninám 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Všechno nejlepší k narozeninám, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "„ikona {title}“",
"Customize" : "Přizpůsobit si",
"Edit widgets" : "Upravit ovládací prvky",
"Get more widgets from the App Store" : "Získat další ovládací prvky z katalogu aplikací",
@@ -24,6 +23,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Vaše soukromí je chráněno tím, že komunikaci se službou předpovědi počasí zprostředkovává vámi využívaný Nextcloud server. Díky tomu služba, která tyto údaje poskytuje, neobdrží z vašeho počítače žádné osobní údaje.",
"Weather data from Met.no" : "Údaje o počasí z Met.no",
"geocoding with Nominatim" : "z popisu polohy na souřadnice převáděno službou Nominatim",
"elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData"
"elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData",
"\"{title} icon\"" : "„ikona {title}“"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
+2 -2
View File
@@ -14,7 +14,6 @@
"Hello, {name}" : "Dobrý den, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Všechno nejlepší k narozeninám 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Všechno nejlepší k narozeninám, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "„ikona {title}“",
"Customize" : "Přizpůsobit si",
"Edit widgets" : "Upravit ovládací prvky",
"Get more widgets from the App Store" : "Získat další ovládací prvky z katalogu aplikací",
@@ -22,6 +21,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Vaše soukromí je chráněno tím, že komunikaci se službou předpovědi počasí zprostředkovává vámi využívaný Nextcloud server. Díky tomu služba, která tyto údaje poskytuje, neobdrží z vašeho počítače žádné osobní údaje.",
"Weather data from Met.no" : "Údaje o počasí z Met.no",
"geocoding with Nominatim" : "z popisu polohy na souřadnice převáděno službou Nominatim",
"elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData"
"elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData",
"\"{title} icon\"" : "„ikona {title}“"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}
+2 -2
View File
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hej {name}",
"Happy birthday 🥳🤩🎂🎉" : "Tillykke med fødselsdagen 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Tillykke med fødselsdagen, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title} ikon\"",
"Customize" : "Brugerdefiner",
"Edit widgets" : "Rediger widgets",
"Get more widgets from the App Store" : "Få flere widgets fra App Store",
@@ -24,6 +23,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv, er det din Nextcloud-server der henter vejr-data og udbyderen modtager således ingen oplysninger om dig.",
"Weather data from Met.no" : "Vejr-data leveres af Met.no",
"geocoding with Nominatim" : "Geocoding med Nominatim",
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData"
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData",
"\"{title} icon\"" : "\"{title} ikon\""
},
"nplurals=2; plural=(n != 1);");
+2 -2
View File
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hej {name}",
"Happy birthday 🥳🤩🎂🎉" : "Tillykke med fødselsdagen 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Tillykke med fødselsdagen, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title} ikon\"",
"Customize" : "Brugerdefiner",
"Edit widgets" : "Rediger widgets",
"Get more widgets from the App Store" : "Få flere widgets fra App Store",
@@ -22,6 +21,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv, er det din Nextcloud-server der henter vejr-data og udbyderen modtager således ingen oplysninger om dig.",
"Weather data from Met.no" : "Vejr-data leveres af Met.no",
"geocoding with Nominatim" : "Geocoding med Nominatim",
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData"
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData",
"\"{title} icon\"" : "\"{title} ikon\""
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -2
View File
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hallo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title}-Symbol\"",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Hole dir weitere Widgets aus dem App-Store",
@@ -24,6 +23,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu deinem Datenschutz werden die Wetterdaten von deinem Nextcloud-Server für dich angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.",
"Weather data from Met.no" : "Wetterdaten von Met.no",
"geocoding with Nominatim" : "Geokodierung mit Nominatim",
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData"
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData",
"\"{title} icon\"" : "\"{title}-Symbol\""
},
"nplurals=2; plural=(n != 1);");
+2 -2
View File
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hallo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title}-Symbol\"",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Hole dir weitere Widgets aus dem App-Store",
@@ -22,6 +21,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu deinem Datenschutz werden die Wetterdaten von deinem Nextcloud-Server für dich angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.",
"Weather data from Met.no" : "Wetterdaten von Met.no",
"geocoding with Nominatim" : "Geokodierung mit Nominatim",
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData"
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData",
"\"{title} icon\"" : "\"{title}-Symbol\""
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -2
View File
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hallo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title}-Symbol\"",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Holen Sie sich weitere Widgets aus dem App-Store",
@@ -24,6 +23,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu Ihrem Datenschutz werden die Wetterdaten von Ihrem Nextcloud-Server für Sie angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.",
"Weather data from Met.no" : "Wetterdaten von Met.no",
"geocoding with Nominatim" : "Geokodierung mit Nominatim",
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData"
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData",
"\"{title} icon\"" : "\"{title}-Symbol\""
},
"nplurals=2; plural=(n != 1);");
+2 -2
View File
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hallo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title}-Symbol\"",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Holen Sie sich weitere Widgets aus dem App-Store",
@@ -22,6 +21,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu Ihrem Datenschutz werden die Wetterdaten von Ihrem Nextcloud-Server für Sie angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.",
"Weather data from Met.no" : "Wetterdaten von Met.no",
"geocoding with Nominatim" : "Geokodierung mit Nominatim",
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData"
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData",
"\"{title} icon\"" : "\"{title}-Symbol\""
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -2
View File
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hello, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Happy birthday 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Happy birthday, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title} icon\"",
"Customize" : "Customise",
"Edit widgets" : "Edit widgets",
"Get more widgets from the App Store" : "Get more widgets from the App Store",
@@ -24,6 +23,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.",
"Weather data from Met.no" : "Weather data from Met.no",
"geocoding with Nominatim" : "geocoding with Nominatim",
"elevation data from OpenTopoData" : "elevation data from OpenTopoData"
"elevation data from OpenTopoData" : "elevation data from OpenTopoData",
"\"{title} icon\"" : "\"{title} icon\""
},
"nplurals=2; plural=(n != 1);");
+2 -2
View File
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hello, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Happy birthday 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Happy birthday, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"{title} icon\"",
"Customize" : "Customise",
"Edit widgets" : "Edit widgets",
"Get more widgets from the App Store" : "Get more widgets from the App Store",
@@ -22,6 +21,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.",
"Weather data from Met.no" : "Weather data from Met.no",
"geocoding with Nominatim" : "geocoding with Nominatim",
"elevation data from OpenTopoData" : "elevation data from OpenTopoData"
"elevation data from OpenTopoData" : "elevation data from OpenTopoData",
"\"{title} icon\"" : "\"{title} icon\""
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -2
View File
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Feliz cumpleaños 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Feliz cumpleaños, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"icono {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
@@ -24,6 +23,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.",
"Weather data from Met.no" : "Datos meteorológicos de Met.no",
"geocoding with Nominatim" : "geocoding con Nominatim",
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData"
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData",
"\"{title} icon\"" : "\"icono {title}\""
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+2 -2
View File
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Feliz cumpleaños 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Feliz cumpleaños, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "\"icono {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
@@ -22,6 +21,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.",
"Weather data from Met.no" : "Datos meteorológicos de Met.no",
"geocoding with Nominatim" : "geocoding con Nominatim",
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData"
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData",
"\"{title} icon\"" : "\"icono {title}\""
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
+2 -2
View File
@@ -13,7 +13,6 @@ OC.L10N.register(
"Good evening, {name}" : "Buenas noches, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
"\"{title} icon\"" : "\"icono {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
@@ -21,6 +20,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.",
"Weather data from Met.no" : "Datos meteorológicos de Met.no",
"geocoding with Nominatim" : "geocoding con Nominatim",
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData"
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData",
"\"{title} icon\"" : "\"icono {title}\""
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+2 -2
View File
@@ -11,7 +11,6 @@
"Good evening, {name}" : "Buenas noches, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
"\"{title} icon\"" : "\"icono {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
@@ -19,6 +18,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.",
"Weather data from Met.no" : "Datos meteorológicos de Met.no",
"geocoding with Nominatim" : "geocoding con Nominatim",
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData"
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData",
"\"{title} icon\"" : "\"icono {title}\""
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
+2 -2
View File
@@ -14,7 +14,6 @@ OC.L10N.register(
"Good evening, {name}" : "Buenas tardes, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
"\"{title} icon\"" : "\"ícono de {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
@@ -22,6 +21,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.",
"Weather data from Met.no" : "Datos meteorológicos de Met.no",
"geocoding with Nominatim" : "geocoding con Nominatim",
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData"
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData",
"\"{title} icon\"" : "\"ícono de {title}\""
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+2 -2
View File
@@ -12,7 +12,6 @@
"Good evening, {name}" : "Buenas tardes, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
"\"{title} icon\"" : "\"ícono de {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
@@ -20,6 +19,7 @@
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Por privacidad, los datos meteorológicos son solicitados por tu servidor Nextcloud en tu nombre de tal forma que el servicio no recibe información personal.",
"Weather data from Met.no" : "Datos meteorológicos de Met.no",
"geocoding with Nominatim" : "geocoding con Nominatim",
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData"
"elevation data from OpenTopoData" : "datos de elevación de OpenTopoData",
"\"{title} icon\"" : "\"ícono de {title}\""
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
+2 -2
View File
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Tere, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Palju õnne sünnipäevaks 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Palju õnne, {name} 🥳🤩🎂🎉",
"\"{title} icon\"" : "„{title} ikoon“",
"Customize" : "Kohanda",
"Edit widgets" : "Muuda vidinaid",
"Get more widgets from the App Store" : "Hangi rohkem vidinaid Rakenduste Poest",
@@ -24,6 +23,7 @@ OC.L10N.register(
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Sinu privaatsuse huvides küsib su nimel ilmaandmeid Nextcloudi server, nii et ilmateenistus ei saa isiklikku teavet.",
"Weather data from Met.no" : "Ilmaandmed Met.no-st",
"geocoding with Nominatim" : "geoprogrammeerimine Nominatimiga",
"elevation data from OpenTopoData" : "kõrgusandmed OpenTopoDatast"
"elevation data from OpenTopoData" : "kõrgusandmed OpenTopoDatast",
"\"{title} icon\"" : "„{title} ikoon“"
},
"nplurals=2; plural=(n != 1);");

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