Compare commits

..

245 Commits

Author SHA1 Message Date
Arthur Schiwon e15fcecaf0 Merge pull request #42146 from nextcloud/release/28.0.0
28.0.0
2023-12-11 21:21:42 +01:00
Arthur Schiwon 4489c21d85 Merge pull request #42164 from nextcloud/revert-42163-backport/42142/stable28
Revert "[stable28] fix(dav): Prevent out-of-office event time drifts"
2023-12-11 21:20:52 +01:00
Arthur Schiwon a33ffeb496 Revert "[stable28] fix(dav): Prevent out-of-office event time drifts" 2023-12-11 21:20:23 +01:00
Arthur Schiwon c471de211f Merge pull request #42163 from nextcloud/backport/42142/stable28
[stable28] fix(dav): Prevent out-of-office event time drifts
2023-12-11 21:20:10 +01:00
Arthur Schiwon 53275e6b3e Merge pull request #42159 from nextcloud/backport/42154/stable28
[stable28] fix rename on live photos
2023-12-11 21:12:47 +01:00
Christoph Wurst 4757d3ed7d fix(dav): Prevent out-of-office event time drifts
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-12-11 17:28:42 +00:00
Maxence Lange e80f85a847 fix rename
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-12-11 15:44:19 +00:00
Arthur Schiwon 45ab3e1dfe 28.0.0
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-12-11 12:25:57 +01:00
Nextcloud bot 12bafe16d5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-11 00:24:29 +00:00
Nextcloud bot 9d7e1e0ba3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-10 00:19:21 +00:00
Nextcloud bot 6602b84f9a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-09 00:19:17 +00:00
Arthur Schiwon 478c8ca030 Merge pull request #42123 from nextcloud/release/28.0.0_rc4
28.0.0 RC4
2023-12-08 16:28:33 +01:00
Arthur Schiwon e76713ba74 Merge pull request #42119 from nextcloud/backport/42115/stable28
[stable28] chore(deps): Update openapi-extractor
2023-12-08 16:14:21 +01:00
Arthur Schiwon e989cc6867 28.0.0 RC4
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-12-08 16:09:29 +01:00
John Molakvoæ 25cda7cb5a Merge pull request #42113 from nextcloud/backport/42100/stable28 2023-12-08 15:44:33 +01:00
John Molakvoæ 46b6966f35 Merge pull request #42122 from nextcloud/backport/42093/stable28 2023-12-08 15:44:24 +01:00
John Molakvoæ 8b5a4449c8 fix(l10n): fix translations for init scripts
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-12-08 13:40:44 +00:00
jld3103 0f320e352f chore(deps): Update openapi-extractor
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-12-08 13:02:44 +01:00
Grigorii K. Shartsev 1adffd4284 fix(core): add translations on the login page
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-12-08 09:44:27 +00:00
Nextcloud bot cd428124ff Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-08 00:19:05 +00:00
Arthur Schiwon 3ac0dec6fb Merge pull request #41966 from nextcloud/release/28.0.0_rc3
28.0.0 RC3
2023-12-07 21:21:48 +01:00
Arthur Schiwon 4a77f2814f Merge pull request #42103 from nextcloud/fix/stable28-reference-picker
[stable28]  fix: Adjust reference picker code for the vue based FilePicker
2023-12-07 21:16:19 +01:00
Ferdinand Thiessen 6ea6048d51 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-07 11:08:46 -08:00
Ferdinand Thiessen c3907dce86 fix(files): Adjust reference picker for new vue file picker
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-07 11:08:46 -08:00
Arthur Schiwon ceb3975fd9 Merge pull request #42105 from nextcloud/42101-stable28-backport
[stable28] Change global search UI text to unified search
2023-12-07 19:30:37 +01:00
Louis 1675c79dce Merge pull request #41983 from nextcloud/automated/noid/stable28-fix-npm-audit
[stable28] Fix npm audit
2023-12-07 17:37:53 +01:00
nextcloud-command a90844ed66 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-07 15:57:32 +00:00
fenn-cs 050a0bf74d Change global search UI text to unified search
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2023-12-07 16:25:15 +01:00
Louis 0697900bf2 Merge pull request #42076 from nextcloud/backport/42067/stable28
[stable28] Fix some silent share bugs
2023-12-07 12:52:14 +01:00
Andy Scherzinger 17696ac3d8 Merge pull request #42089 from nextcloud/backport/42077/stable28
[stable28] enh(a11y): Add navigation labels
2023-12-07 12:49:43 +01:00
Andy Scherzinger d147641484 Merge pull request #42088 from nextcloud/backport/42055/stable28
[stable28] enh(NavigationManager): Use ID as fallback for `app` property of entries
2023-12-07 12:41:52 +01:00
Joas Schilling 95f82d79cb Merge pull request #42087 from nextcloud/backport/42001/stable28
[stable28] fix(dav): Improve handling and logging of bulk upload failures
2023-12-07 10:30:24 +01:00
Joas Schilling 24606a9d70 Merge pull request #42082 from nextcloud/backport/41937/stable28
[stable28] fix(bruteforce-protection): Don't throw a 500 when MaxDelayReached is…
2023-12-07 10:29:20 +01:00
Joas Schilling 475d2b2dc8 chore(assets): Recompile JS
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-07 10:26:11 +01:00
Christopher Ng b4bc7f394e enh(settings): Add apps and user management navigation labels
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-12-07 09:19:23 +00:00
Christopher Ng 4ad7360348 enh(files): Add files navigation label
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-12-07 09:19:23 +00:00
Ferdinand Thiessen b82a7d6102 enh(NavigationManager): Use ID as fallback for app property of entries
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-07 08:27:28 +00:00
Andy Scherzinger f4275c2629 28.0.0 RC3
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-12-07 08:58:28 +01:00
Andy Scherzinger 13f0badf19 Merge pull request #42073 from nextcloud/backport/42062/stable28
[stable28] Correct semantics for link opening in global search
2023-12-07 08:57:31 +01:00
nextcloud-command 06eda7ab6c chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-07 08:56:31 +01:00
fenn-cs 8a67fc44c9 Remove newPassword from share model, if disabled
It's important to delete the `newPassword` prop from the share
 model, if the user unchecks the isPasswordProtected checkbox.

This clearer and allows for the unchecking to actually work as
`this.$set()` fails with the falsy value `''`.

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2023-12-07 08:56:31 +01:00
fenn-cs 9c67ae4ec1 Create element reference inside $nextTick()
Accessing `this.$refs.shareList` outside $nextTick()
 could lead to the holder (`listComponent`) being undefined
 as the ref is yet to exist.

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2023-12-07 08:56:31 +01:00
Joas Schilling e8492bc8e1 fix(dav): Improve handling and logging of bulk upload failures
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-07 08:56:14 +01:00
Joas Schilling 705f2365ac fix(bruteforce-protection): Don't throw a 500 when MaxDelayReached is thrown
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-07 08:55:54 +01:00
Simon L d9abfa002d Merge pull request #42058 from nextcloud/backport/42031/stable28 2023-12-07 08:53:44 +01:00
Julius Härtl 9894a22a8f Merge pull request #42074 from nextcloud/backport/41944/stable28 2023-12-07 08:39:02 +01:00
Simon L 26b927251e fix look of personal global credentials settings
Signed-off-by: Simon L <szaimen@e.mail.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-07 08:30:43 +01:00
Nextcloud bot 252477fbd6 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-07 00:19:48 +00:00
Ferdinand Thiessen 01db5d200d Merge pull request #42069 from nextcloud/backport/41948/stable28
[stable28] fix(theming): Adjust dark theme to be accessible adjust cypress tests
2023-12-06 23:19:58 +01:00
Julius Härtl b9e7ec4bb9 fix: Properly fetch version from shared files by accessing the owner storage version
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-12-06 23:17:38 +01:00
Ferdinand Thiessen 465f2169c7 Merge pull request #42071 from nextcloud/fix/stable28/files-handle-drop-folders-correctly
[stable28] fix(files): Correctly handle dropping folders on file list
2023-12-06 22:17:16 +01:00
nextcloud-command 9ba949354d chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-06 20:23:53 +00:00
fenn-cs a728bcde43 Correct semantics for link opening in global search
Following the update of `NcListItem` to allow control over
 where and how passed `hrefs` open, the search result component
 can now make use of these props.

See : https://github.com/nextcloud-libraries/nextcloud-vue/pull/4923

Resolves :  #41800

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2023-12-06 20:23:52 +00:00
Ferdinand Thiessen c7ea556bfb fix(theming): Adjust dark theme to be accessible adjust cypress tests
Also fix warning text color for bright / default theme on blurry background

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-06 20:34:36 +01:00
nextcloud-command 05df9ac57e chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-06 20:25:58 +01:00
Ferdinand Thiessen 5700db2061 fix(files): Correctly handle dropping folders on file list
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-06 20:25:58 +01:00
Joas Schilling 0577c9a103 Update .drone.yml signature
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-06 20:13:11 +01:00
Ferdinand Thiessen dce63cef71 Merge pull request #42057 from nextcloud/backport/stable28-dialogs
[stable28] chore: Update `@nextcloud/dialogs` to version 5.0.3
2023-12-06 16:48:36 +01:00
Joas Schilling 330ab5f53a Merge pull request #42050 from nextcloud/backport/42044/stable28
[stable28] Fix AppSettingsController.php overwriting currentLanguage
2023-12-06 15:03:50 +01:00
Ferdinand Thiessen 9e0b231ee9 chore: Update @nextcloud/dialogs to version 5.0.3
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-06 14:55:50 +01:00
1 Man Projects 7c40700491 Fix AppSettingsController.php overwriting currentLanguage
Fix for CurrentLanguage being overwritten by currentVersion thus breaking App-View

Signed-off-by: 1 Man Projects <reed@1manprojects.de>
2023-12-06 11:34:57 +00:00
Andy Scherzinger b10f72fccc Merge pull request #41949 from nextcloud/backport/stable28/40169
[stable28] enh(settings): Load from disabled users endpoint
2023-12-06 10:44:51 +01:00
Joas Schilling 675d25e865 Merge pull request #42029 from nextcloud/backport/41962/stable28
[stable28] fix(dav): Make current ooo info time-dependent
2023-12-06 05:57:34 +01:00
Nextcloud bot 819d474a48 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-06 00:21:01 +00:00
Christoph Wurst df4a76a4e6 fix(dav): Make current ooo info time-dependent
* If there is an out of office absence info and it happens now -> return
  data
* Else: return no data

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-12-06 00:15:59 +01:00
Côme Chilliet a9d86c1f95 Invert parameter order in getDisabledUserList to be consistent
This matches what was done in the calls and so fixes getting disabled
 user list when there are several backends returning disabled users.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
(cherry picked from commit 85e7887e0764a9347bbbb10812459d95ccdfa6d4)
2023-12-06 00:08:29 +01:00
Christopher Ng e32d38375a chore: compile assets
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-12-06 00:08:29 +01:00
Christopher Ng c7fc085849 enh(settings): Load from disabled users endpoint
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 7affbba6aecebf68b9c2e9ae6cb75fb251f94861)
2023-12-06 00:08:29 +01:00
Andy Scherzinger fa1c1ac19d Merge pull request #41969 from nextcloud/backport/41844/stable28
[stable28] fix(TextProcessing): Add task type template param to IManager and registerTPProvider
2023-12-06 00:06:41 +01:00
Andy Scherzinger 680c4ae155 Merge pull request #41976 from nextcloud/fix/stable28-fix-table-header
[stable28] fix(files): Adjust table header to look like on previous versions
2023-12-06 00:05:40 +01:00
Ferdinand Thiessen c1c8b928a6 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 22:35:54 +01:00
Ferdinand Thiessen 814ebcda22 fix(files): Adjust table header to look like on previous versions
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 22:33:46 +01:00
Julius Härtl 178ce1f3ec Merge pull request #42023 from nextcloud/backport/42006/stable28 2023-12-05 20:49:59 +01:00
Ferdinand Thiessen 4ece2f27a3 Merge pull request #42032 from nextcloud/backport/unified-search-headings
[stable28] fix(UnifiedSearch): Move headings out of list element (invalid HTML)
2023-12-05 18:23:18 +01:00
Ferdinand Thiessen fd580e5067 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 17:55:20 +01:00
Ferdinand Thiessen acf619be23 fix: Adjust code to be Vue 2.7 compatible as key on <template> is Vue3 only
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 17:55:18 +01:00
Ferdinand Thiessen 6c49c3e936 fix(UnifiedSearch): Move headings out of list elements
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 17:54:44 +01:00
nextcloud-command 88e9925cf3 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-05 16:06:32 +00:00
Julius Härtl 52b902831c fix: Also filter out undefined entries from the file list
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-12-05 16:58:13 +01:00
Julius Härtl 6a938e1ae9 fix: Properly take show_hidden user setting into account for file listing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-12-05 16:58:13 +01:00
Benjamin Gaussorgues 52aadb5fd2 Merge pull request #42014 from nextcloud/backport/41985/stable28 2023-12-05 16:56:06 +01:00
Ferdinand Thiessen 3a09ddcb52 Merge pull request #41989 from nextcloud/backport/28-logic-files
[stable28] fix(files): Reverse logic to prevent copy to itself
2023-12-05 15:03:19 +01:00
Ferdinand Thiessen 3d32e748e6 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 14:40:13 +01:00
Ferdinand Thiessen 052db6200d enh(files): Add cypress tests for copy and move
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 14:04:16 +01:00
Ferdinand Thiessen f695df8506 fix(files): Correct condition for checking copy/move into same directory
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 14:04:16 +01:00
Ferdinand Thiessen 77970de9f3 Merge pull request #41990 from nextcloud/fix/backport-28-drag-n-drop
[stable28] fix(files): Allow to drag and drop new files also on empty directories
2023-12-05 14:03:39 +01:00
Arthur Schiwon 034241b29a Merge pull request #42017 from nextcloud/backport/41650/stable28
[stable28] feat(LDAP): implement IIsAdmin interface
2023-12-05 13:50:41 +01:00
Ferdinand Thiessen b1a6031a60 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 13:05:59 +01:00
Ferdinand Thiessen e210caf4cf fix(config): Adjust typescript config to allow .ts imports and Typescript in Vue files
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 13:04:29 +01:00
Ferdinand Thiessen 96c477d86d fix(files): Show error message if drag-and-drop upload fails
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 13:04:29 +01:00
Ferdinand Thiessen 89e01eafee fix(files): Allow to drag and drop new files also on empty directories
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 13:04:29 +01:00
Andy Scherzinger 7ae780be6b Merge pull request #42026 from nextcloud/backport/42019/stable28
[stable28] +files_metadata_installed
2023-12-05 12:32:45 +01:00
Ferdinand Thiessen 4a14b6e2ea Merge pull request #41991 from nextcloud/fix/backport-table-labels
[stable28]  fix(files): Remove confusing table header labels
2023-12-05 11:53:48 +01:00
Ferdinand Thiessen 6f4dc60745 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 11:14:57 +01:00
Ferdinand Thiessen 9d6c2ae264 fix(files): Remove confusing table header labels
For screen readers the table header was very verbose and confusing,
as the SR reads out e.g. "sort list by name button FILENAME" for every row / file.
Instead reduce it to "name button FILENAME" and add information about sorting to caption, as recommended by WCAG [1]

[1]: https://www.w3.org/WAI/ARIA/apg/patterns/table/examples/sortable-table/

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-05 10:56:28 +01:00
Maxence Lange 4d89d9cd0f +files_metadata_installed
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-12-05 09:24:04 +00:00
Nextcloud bot 782160af76 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-05 00:21:26 +00:00
Andy Scherzinger 875b6516c8 Merge pull request #42013 from nextcloud/backport/41460/stable28
[stable28] Migrate database missing checks
2023-12-04 20:20:50 +01:00
Arthur Schiwon 26465f3c56 feat(LDAP): warn about demoting a group while promoting another
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-12-04 18:52:20 +00:00
Arthur Schiwon 668d2bc6d5 enh(LDAP): add occ command to promote an LDAP group to admin
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-12-04 18:52:20 +00:00
Arthur Schiwon d8215fbcee enh(LDAP): implement IIsAdmin interface
- add configuration to specify one LDAP group acting as admin group (CLI)
- implement `isAdmin()` method, basically relying on inGroup against the
  configured group

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-12-04 18:52:19 +00:00
Varun Patil a7586ccf47 fix(files): allow any throwable in logException
If a TypeError is passed here, it in turn causes a TypeError which
kills the rendering of the error page.

Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2023-12-04 16:26:37 +00:00
Côme Chilliet e57d31ffb0 Missing things in database should be warning, not info
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-12-04 16:23:25 +00:00
Côme Chilliet bd9a5df5d1 fix(tests) Fix CheckSetupControllerTest
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-12-04 16:23:25 +00:00
Côme Chilliet b75affa793 Switch from deprecated hasPrimaryKey to getPrimaryKey function
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-12-04 16:23:25 +00:00
Côme Chilliet fc2467c18f Migrate missing primary key database check to new API
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-12-04 16:23:24 +00:00
Côme Chilliet e48e67b0a4 Migrate missing index database check to new API
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-12-04 16:23:23 +00:00
Côme Chilliet d0a72a103d Migrate missing column database check to new API
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-12-04 16:23:23 +00:00
Joas Schilling 9ab8020035 Merge pull request #42010 from nextcloud/backport/42008/stable28
[stable28] fix(metadata): Allow to load metadata of multiple files at once
2023-12-04 16:35:30 +01:00
Joas Schilling c6acd3f8ec fix(metadata): Fix copy-paste doc block throws
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-04 14:59:36 +01:00
Joas Schilling 4ce175b88f fix(metadata): Allow to load metadata of multiple files at once
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-04 13:58:40 +00:00
Joas Schilling a5eaa56314 Merge pull request #42005 from nextcloud/backport/41999/stable28
[stable28] fix(security): Handle idn_to_utf8 returning false
2023-12-04 13:59:00 +01:00
Julius Härtl b6dd719711 Merge pull request #42000 from nextcloud/backport/41995/stable28 2023-12-04 12:50:17 +01:00
Joas Schilling 704751f868 fix(security): Handle idn_to_utf8 returning false
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-04 11:18:51 +00:00
Marcel Klehr d95c3edd6b fix(TemplateManager): Bail early if templatedirectory is empty
fixes #39266

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-12-04 09:57:30 +00:00
Joas Schilling 0744821ebf Merge pull request #41955 from nextcloud/backport/41766/stable28
[stable28] fix(files_external): Fix "Could not find resource main.js to load"
2023-12-04 08:55:21 +01:00
Nextcloud bot 3ef484d1c3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-04 00:18:37 +00:00
Ferdinand Thiessen 41ece3b55c Merge pull request #41978 from nextcloud/backport/41953/stable28
[stable28] fix(files): Move aria-label for favorite icon from span to icon
2023-12-03 17:28:38 +01:00
nextcloud-command cd4d6809a2 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-12-03 14:22:28 +00:00
Ferdinand Thiessen 93017848f0 fix(files): Remove aria-label from span and move to favorite icon
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-12-03 15:18:35 +01:00
nextcloud-command 82e6627eea chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-12-03 02:49:32 +00:00
Nextcloud bot ca5da4f347 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-03 00:18:28 +00:00
Joas Schilling 6380a38de4 Merge pull request #41967 from nextcloud/fix/dav/single-day-ooo-stable28
[stable28] fix(dav): Allow single-day out of office
2023-12-02 08:10:51 +01:00
Nextcloud bot 1149706765 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-02 00:21:25 +00:00
Louis 917e271730 Merge pull request #41941 from nextcloud/backport/41924/stable28
[stable28] Add comment in SyncLivePhotosListener
2023-12-02 00:21:27 +01:00
Louis Chemineau 263f9e1e77 Add comment in SyncLivePhotosListener
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-12-01 22:54:57 +01:00
Joas Schilling dec04eccb0 fix(files_external): Fix "Could not find resource main.js to load"
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-01 15:28:41 -06:00
Marcel Klehr 2d65838af1 fix(TextProcessing): Make task type template param covariant
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-12-01 12:36:42 +00:00
Christoph Wurst 3b30b2ff16 fix(dav): Allow single-day out of office
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-12-01 13:29:53 +01:00
Joas Schilling ed809fd0f6 Merge pull request #41960 from nextcloud/bugfix/noid/fix-video-verification-tests
fix(CI): Fix video verification tests
2023-12-01 11:40:47 +01:00
Joas Schilling 385495050b Merge pull request #41963 from nextcloud/backport/41957/stable28
[stable28] feat(out-of-office): Add OCS endpoint to set and clear absence
2023-12-01 11:39:12 +01:00
Joas Schilling bdf3b46daf fix(out-of-office)!: Remove non OCS endpoint
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-01 11:00:35 +01:00
Joas Schilling d5f3710917 feat(out-of-office): Migrate frontend to OCS endpoint
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-01 10:59:45 +01:00
Joas Schilling 7bfeeaedee feat(out-of-office): Add OCS endpoint to set and clear absence
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-01 10:57:40 +01:00
Joas Schilling ab788f5dfa fix(CI): Fix video verification tests
Searching for "master" doesn't work when the app switches to "main"

Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-01 10:43:10 +01:00
Joas Schilling ffbc8c90bf Merge pull request #41956 from nextcloud/backport/41928/stable28
[stable28] fix(copyright): Fix copyright doc blocks
2023-12-01 10:14:51 +01:00
Joas Schilling f65eba52eb fix(copyright): Fix copyright doc blocks
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-01 07:20:23 +00:00
Nextcloud bot 8b3161efc9 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-01 00:18:42 +00:00
Andy Scherzinger ba53734e15 Merge pull request #41945 from nextcloud/fix/stable28-cypress-global-search-modal
[stable28] fix(cypress): Adjust user columns tests
2023-11-30 21:55:29 +01:00
Arthur Schiwon 45e5715575 Merge pull request #41814 from nextcloud/release/28.0.0_rc2
28.0.0 RC2
2023-11-30 20:59:47 +01:00
Arthur Schiwon 9bcb7774a4 Merge pull request #41943 from nextcloud/fix/stable28-update-vue
[stable28] Update `@nextcloud/vue` to 8.3.0
2023-11-30 20:47:04 +01:00
Ferdinand Thiessen a9f6050144 fix(cypress): Adjust user columns tests to be more specific when selecting a modal
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-11-30 20:37:46 +01:00
Ferdinand Thiessen cc3e0f9e0b fix: Update dav snapshots
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-11-30 19:46:49 +01:00
Ferdinand Thiessen 048cf59275 chore: Update @nextcloud/vue to 8.3.0
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-11-30 19:46:48 +01:00
Ferdinand Thiessen 20de1ec38b Merge pull request #41932 from nextcloud/backport/41923/stable28
[stable28] fix(core): app icon alignment in app menu
2023-11-30 19:44:13 +01:00
Andy Scherzinger 2bc87ddc5b Merge pull request #41929 from nextcloud/41785-manual-backport
[stable28] Migrate openResult method to SearchResult component
2023-11-30 18:56:33 +01:00
fenn-cs 71d7a99a52 Migrate openResult method to SearchResult component
After moving the `SearchResult` to its own component and leaving
 out the openResult method, the search results do not lead anywhere but
 but error out.

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-30 18:33:10 +01:00
Ferdinand Thiessen fdaa6e7c95 Merge pull request #41925 from nextcloud/41781-manual-backport
[stable28] UI updates for global search
2023-11-30 18:26:48 +01:00
fenn-cs 47cd940871 Fix date filter wording & improve search feedback
- Show loading when actually loading, instead of no content
- Change modified label to `Date` as it applies to a bunch of things.

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-30 17:15:06 +01:00
fenn-cs 8ec0f24e6f Unbold user names in SearchableList
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2023-11-30 17:11:02 +01:00
fenn-cs 6fa617026d Improve accesibility for search tags/chips
- Use stand font of filter tags/chips
- No bold
- Use close icon and no close thick

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2023-11-30 17:11:02 +01:00
F. E Noel Nfebe eeaf2a086f Merge pull request #41930 from nextcloud/41792-manual-backport
[stable28]  Handle close GlobalSearchModal gracefully #41792
2023-11-30 17:09:34 +01:00
F. E Noel Nfebe 46fa012140 Merge pull request #41933 from nextcloud/41729-manual-backport
[stable28]  Enable new global search by default #41729
2023-11-30 16:54:05 +01:00
Andy Scherzinger 16190c7dbb Merge pull request #41934 from nextcloud/41885-manual-backport
[stable28]  Improve share logic for enforced password & expiry date
2023-11-30 16:39:35 +01:00
fenn-cs daafc733fa Handle close GlobalSearchModal gracefully
The current close infrastructure modifies a prop which has
 no real effect aside bugs.

In addition, calling the `NcModal.close()` as the primary way to
 close the search modal instead of using the states defined in `GlobalSearch` view
 causing re-open bugs (Modal cannot open, needs to click twice, and other weird stuff).

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-30 15:33:08 +00:00
Louis 996d94a0de Merge pull request #41921 from nextcloud/backport/41765/stable28
[stable28] Synchronize operation on live photo files
2023-11-30 15:42:18 +01:00
fenn-cs bd117d229f Enable new global search by default
The new global search would now be activated by default and users,
 have the option to revert to the old unified search by setting `unified_search.enabled`
to true in the NC `config.php` file.

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-30 13:46:28 +00:00
Benjamin Gaussorgues 7ad8426824 Merge pull request #41926 from nextcloud/41771-manual-backport 2023-11-30 14:17:39 +01:00
fenn-cs efc385dc39 Improve share logic for enforced password & expiry date
* It's possible for the admin to enforce and expiry date after, some
 shares have been created. This commit makes possible to update the
 share with the new admin constraints.

* This commit would users to modify enforced expiry to anything within
 range and less than the enforced limit in the pre-create dialog for public
 shares.

* This commit fixes, unable to update share without updating password.

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2023-11-30 12:41:06 +01:00
Grigorii K. Shartsev 2c2a8559e0 chore(assets): recompile assets
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-11-30 11:30:50 +00:00
Grigorii K. Shartsev 7c00a0853b fix(core): app icon alignment in app menu
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2023-11-30 11:30:49 +00:00
fenn-cs df7a1906e8 Always emit search event
For BOD, it's better to always emit the search event so
 apps (all of which we don't know) responding to this effect would receive notifications when
the search happens within these apps.

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2023-11-30 11:37:25 +01:00
Simon L 0561b11a4e Merge pull request #41920 from nextcloud/backport/41855/stable28
[stable28] fix(theming): Fix color inverted icons based on theming and dark mode
2023-11-30 11:09:58 +01:00
Louis Chemineau 86d88f6b00 Synchronize operation on live photo files
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-30 09:44:51 +00:00
Joas Schilling 32ec76e8d9 Fix more active entry icons
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-30 09:15:44 +01:00
Joas Schilling 217753d5f3 fix(theming): Fix color inverted icons based on theming and dark mode
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-30 09:14:09 +01:00
Simon L a1434af01e Merge pull request #41912 from nextcloud/update/vue/stable28
[stable28] update @nextcloud/upload to 1.0.2
2023-11-30 09:03:47 +01:00
Nextcloud bot 6cdfa519a2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-30 00:22:41 +00:00
root 5f2b03c7f4 update @nextcloud/upload to 1.0.2
Signed-off-by: Simon L <szaimen@e.mail.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-29 23:15:33 +00:00
Arthur Schiwon 7407afb469 Merge pull request #41811 from nextcloud/backport/41778/stable28
[stable28] fix(dav): don't schedule out-of-office jobs for dates in the past
2023-11-29 21:56:17 +01:00
Arthur Schiwon c967da3b56 Merge pull request #41873 from nextcloud/backport/41703/stable28
[stable28] fix(dav): Convert dates without tz drift
2023-11-29 21:52:58 +01:00
Christoph Wurst b11da9c004 fix(dav): Timezone drift of OOO event
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-29 19:49:42 +01:00
Christoph Wurst ac782a1619 fix(dav): Convert dates without tz drift
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-29 19:49:42 +01:00
Christoph Wurst 64c7221390 Merge pull request #41868 from nextcloud/mime-type-msg-eml-28
[stable28] fix: add mimetype for eml and msg
2023-11-29 17:51:48 +01:00
Christoph Wurst 1b8e30ddb2 Merge pull request #41886 from nextcloud/backport/41866/stable28
[stable28] fix(dav): Prioritize timezone from core/login
2023-11-29 17:49:17 +01:00
Andy Scherzinger ec962bb7c8 Merge pull request #41845 from nextcloud/backport/41818/stable28
[stable28] fix(OOO): Make the returned data more explicit
2023-11-29 15:20:31 +01:00
Christoph Wurst 00ba78fed0 fix(dav): Prioritize timezone from core/login
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-29 14:12:43 +00:00
Daniel Kesselberg 1081c4aaa3 fix: change mime type for msg file
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-11-29 12:39:07 +01:00
Daniel Kesselberg 6ab3b061d3 fix: add mimetype for eml and msg
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-11-29 12:39:07 +01:00
Andy Scherzinger 8a4136dadf Merge pull request #41807 from nextcloud/backport/41753/stable28
[stable28] Spelling correction
2023-11-29 12:01:37 +01:00
Andy Scherzinger 81b4563039 Merge pull request #41837 from nextcloud/backport/41738/stable28
[stable28] feat(dav): hide search providers if their respective app is not activated
2023-11-29 11:50:43 +01:00
Joas Schilling 3c3b5d87a1 fix(OOO): Make the returned data more explicit
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-29 10:10:53 +00:00
Andy Scherzinger d6a411b4b4 Merge pull request #41783 from nextcloud/backport/41749/stable28
[stable28] fix(files_versions): Check for user and owner before call getUserFolder
2023-11-29 10:55:57 +01:00
Andy Scherzinger d384ade402 Update test for changed string - openInFilesAction.spec.ts
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-29 10:36:43 +01:00
Valdnet 32761660cd Change to capital letter
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-29 10:36:43 +01:00
Valdnet 962dea6a62 Correct a typo
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2023-11-29 10:36:43 +01:00
Andy Scherzinger 56827fc676 Merge pull request #41815 from nextcloud/backport/41809/stable28
[stable28] fix: Hidden password confirmation dialog with new global search
2023-11-29 10:35:48 +01:00
Andy Scherzinger 529ac2f4d6 Merge pull request #41817 from nextcloud/backport/41759/stable28
[stable28] fix(dav): Make ooo settings a form and the message required
2023-11-29 10:30:45 +01:00
Benjamin Gaussorgues 761b042e84 feat(dav): hide search providers if their respective app is not activated
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-29 09:28:00 +00:00
Christoph Wurst 41379c0f0a fix(dav): Make ooo settings a form and the message required
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-29 08:07:53 +00:00
Nextcloud bot 2f1f35530b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-29 00:20:37 +00:00
Git'Fellow ba7c8e1df2 fix(files_versions): Explicitly check for user or owner before call getUserFolder
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

Fix typo

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

Fix

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

Fix

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

Fix

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

Optimize DI

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

Switch to DI

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

userSession does not contain null

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

Restore phpdoc annots

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-11-29 00:33:13 +01:00
Christopher Ng 97f10e3c37 chore: compile assets
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-11-28 15:15:58 -08:00
Christopher Ng 51b54f9751 fix: Hidden password confirmation dialog
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 5525edd805)
2023-11-28 15:11:15 -08:00
Christopher Ng 154fe8f102 fix(settings): Duplicate update user manager calls
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 919b5dbdf5)
2023-11-28 15:11:11 -08:00
Arthur Schiwon 2f3b949524 28.0.0 RC2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-11-28 22:53:59 +01:00
Richard Steinmetz ba72471dd6 fix(dav): don't schedule out-of-office jobs for dates in the past
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-11-28 18:47:46 +00:00
Christoph Wurst 699ee7a1d8 Merge pull request #41798 from nextcloud/enh/stable28/add-ooo-and-remove-user-status
[stable28] enh(userstatus): add OOO automation and remove calendar automation
2023-11-28 18:20:18 +01:00
Andy Scherzinger f37e9da36a Merge pull request #41784 from nextcloud/backport/41782/stable28
[stable28] fix(files): Empty files list when uid contains special chars
2023-11-28 16:52:42 +01:00
Anna Larch e8481e428a [stable28] enh(userstatus): add OOO automation and remove calendar automation
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-11-28 15:44:23 +01:00
Arthur Schiwon e7b1d1f46c Merge pull request #41726 from nextcloud/backport/41722/stable28
[stable28] fix(dav): Avoid date diffing if PHP is buggy
2023-11-28 10:30:06 +01:00
Christopher Ng 918bd7607e chore: compile assets
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-11-27 17:26:19 -08:00
Christopher Ng 96386083dd fix(files): Empty files list when uid contains special chars
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 52cf1b3178)
2023-11-27 17:23:38 -08:00
Nextcloud bot 47fb88479e Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-28 00:26:29 +00:00
Andy Scherzinger 4342a48798 Merge pull request #41732 from nextcloud/backport/41632/stable28
[stable28] Fix adding x-requested-with header for relative URLs in some cases
2023-11-27 13:12:29 +01:00
Julien Veyssier d52641b8b8 compile assets
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-11-27 12:16:24 +01:00
Julien Veyssier 7741d5cd8f fix adding x-requested-with header for relative URLs when the base NC URL is empty
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-11-27 12:16:24 +01:00
Joas Schilling 057daaee9d Merge pull request #41761 from nextcloud/backport/41678/stable28
fix(security): Update expiration date in security.txt
2023-11-27 12:03:47 +01:00
Joas Schilling c05b1e841a fix(security): Update expiration date in security.txt
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-27 10:45:28 +01:00
Joas Schilling e6106cfbc2 Merge pull request #41757 from nextcloud/backport/41640/stable28
[stable28] fix(setupcheck): Fix memory limit setup check
2023-11-27 09:32:48 +01:00
Joas Schilling c1c6372ef2 fix(setupcheck): Fix memory limit setup check
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-27 05:49:43 +00:00
Nextcloud bot 25bc2e50c3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-27 00:23:08 +00:00
Nextcloud bot 5b2ae14e75 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-26 00:23:47 +00:00
Andy Scherzinger 38714a2a07 Merge pull request #41741 from nextcloud/backport/41705/stable28
[stable28] confirm content on dav-v2 test
2023-11-25 09:35:21 +01:00
Maxence Lange ec74c00d4c confirm content on dav-v2 test
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-25 08:26:25 +01:00
Nextcloud bot 700b6ea4a3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-25 00:26:04 +00:00
Andy Scherzinger 919b448bb6 Merge pull request #41742 from nextcloud/backport/41685/stable28
[stable28] Ensure share has download permissions in F2V
2023-11-24 21:15:32 +01:00
Louis 15e4c78014 Ensure share has download permissions in F2V
Signed-off-by: Louis <louis@chmn.me>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-24 18:12:35 +00:00
Louis 5e8ee6e0d6 Ensure share has download permissions in F2V
Signed-off-by: Louis <louis@chmn.me>
2023-11-24 17:59:38 +00:00
Andy Scherzinger 9b752d977f Merge pull request #41715 from nextcloud/backport/41707/stable28
[stable28] fix(files): Use SVG as FilePicker buttons to bring back icons
2023-11-24 18:00:43 +01:00
Ferdinand Thiessen 0f3cc3beab chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-24 16:26:23 +01:00
Ferdinand Thiessen 3727a18deb fix(files): Use SVG as FilePicker icons instead of Vue components
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-11-24 16:26:23 +01:00
Andy Scherzinger 2f1dfc8bcc Merge pull request #41733 from nextcloud/backport/41719/stable28
[stable28] Fix action button labels
2023-11-24 16:25:30 +01:00
Marco Ambrosini c9b5369a99 Fix action button labels
Signed-off-by: Marco Ambrosini <marcoambrosini@icloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-24 14:08:25 +00:00
Christoph Wurst 777701e7d1 fix(dav): Avoid date diffing if PHP is buggy
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-24 10:30:39 +00:00
Ferdinand Thiessen a89e93dcec Merge pull request #41716 from nextcloud/backport/41683/stable28
[stable28] Remove unneeded links and add `focus-visible` state on a link
2023-11-24 11:30:07 +01:00
julia.kirschenheuter 1b19610704 Remove unneeded links and add focus-visible state on a link
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2023-11-24 09:45:41 +01:00
Andy Scherzinger 36109fd26f Merge pull request #41708 from nextcloud/backport/41687/stable28
[stable28] fix(core): Subscribe to navigation changes on mounted for Unified search
2023-11-24 09:38:49 +01:00
Nextcloud bot 0d478a0b9c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-24 00:27:21 +00:00
Ferdinand Thiessen 076abb661b fix(core): Subscribe to navigation changes on mounted for Unified search
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-23 23:39:32 +00:00
Arthur Schiwon b092daa0f6 Merge pull request #41621 from nextcloud/release/28.0.0_rc1
28.0.0 RC1
2023-11-23 21:53:31 +01:00
Arthur Schiwon 20be3a737d Merge pull request #41706 from nextcloud/backport/41652/stable28
[stable28] Focus global search input on open
2023-11-23 21:39:16 +01:00
fenn-cs ef73f18bff Focus global search input on open
For better accesibility, the search input in the global search
modal should be focused when the search modal is opened.

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

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-23 19:55:40 +00:00
Arthur Schiwon a8a114ccbb Merge pull request #41701 from nextcloud/feat/dav/out-of-office-job-stable28
[stable28] feat(dav): dispatch out-of-office started and ended events
2023-11-23 19:52:59 +01:00
Andy Scherzinger 33515daa26 Merge pull request #41700 from nextcloud/backport/41669/stable28
[stable28] Add app-based filtering to global search
2023-11-23 19:51:20 +01:00
Richard Steinmetz d593206a30 feat(dav): dispatch out-of-office started and ended events
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-11-23 17:54:10 +01:00
fenn-cs 660e9639e3 Add app-based filtering to global search
Emit search queries from the global search modal that would trigger
list filtering in various apps that support it.

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-23 16:07:40 +00:00
Andy Scherzinger 9f9abd1a57 Merge pull request #41691 from nextcloud/backport/41680/stable28
[stable28] Replace "Update" with "Edit" in advanced share settings
2023-11-23 16:53:00 +01:00
Andy Scherzinger 52c9427c26 Merge pull request #41692 from nextcloud/backport/41672/stable28
[stable28] Fix star stroke color on hover
2023-11-23 16:48:17 +01:00
Marco Ambrosini a1aec65792 Fix star stroke color on hover
Signed-off-by: Marco Ambrosini <marcoambrosini@icloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-23 13:23:46 +00:00
Jérôme Herbinet 819b4a4412 npm run build
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-11-23 13:13:25 +00:00
Jérôme Herbinet a13ef9324f Replace "Update" with "Edit"
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2023-11-23 13:13:24 +00:00
Arthur Schiwon 7fc7449714 Merge pull request #41679 from nextcloud/branchoff/welcome-stable28
Test against stable28 branches
2023-11-23 12:00:45 +01:00
Joas Schilling 7f3ebb4e73 Test against stable28 branches
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-23 10:06:38 +01:00
Arthur Schiwon 26b2712eb5 28.0.0 RC1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-11-20 12:04:02 +01:00
4358 changed files with 68299 additions and 121057 deletions
+1605 -1
View File
File diff suppressed because it is too large Load Diff
+1 -9
View File
@@ -28,15 +28,7 @@
/apps/weather_status/appinfo/info.xml @julien-nc @juliushaertl
/apps/workflowengine/appinfo/info.xml @blizzz @juliushaertl
# Frontend expertise
/apps/files/src* @skjnldsv
/apps/files_external/src* @skjnldsv
/apps/files_reminders/src* @skjnldsv
/apps/files_sharing/src/actions* @skjnldsv
/apps/files_trashbin/src* @skjnldsv
# Security team
/resources/codesigning @mgallien @miaulalala @nickvergessen
/resources/config/ca-bundle.crt @ChristophWurst @miaulalala @nickvergessen
/.drone.yml @nickvergessen
@@ -51,7 +43,7 @@
/core/routes.php @Altahrim
# OpenAPI
openapi*.json @provokateurin
openapi.json @provokateurin
ResponseDefinitions.php @provokateurin
# Talk team
+3 -10
View File
@@ -29,13 +29,6 @@ Thanks for wanting to contribute source code to Nextcloud. That's great!
Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the Nextcloud code with PHPUnit.
### Conventional Commits
Please use [Conventional Commits](https://www.conventionalcommits.org) for your commit messages. This helps maintain clarity and consistency across the project, making it easier to understand changes and automate versioning.
```
feat(files_sharing): allow sharing with contacts
```
### Tests
In order to constantly increase the quality of our software we can no longer accept pull request which submit un-tested code.
@@ -51,9 +44,9 @@ their contribution under the project's license.
Please read [contribute/developer-certificate-of-origin][dcofile].
If you can certify it, then just add a line to every git commit message:
```
Signed-off-by: Random J Developer <random@developer.example.org>
```
````
Signed-off-by: Random J Developer <random@developer.example.org>
````
Use your real name (sorry, no pseudonyms or anonymous contributions).
If you set your `user.name` and `user.email` git configs, you can sign your
+1 -1
View File
@@ -101,10 +101,10 @@ body:
Select PHP engine version serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "PHP 7.4"
- "PHP 8.0"
- "PHP 8.1"
- "PHP 8.2"
- "PHP 8.3"
- "Other"
- type: dropdown
id: webserver
+41 -92
View File
@@ -14,49 +14,6 @@ updates:
reviewers:
- "nextcloud/server-dependabot"
# cs-fixer
- package-ecosystem: composer
directory: "/vendor-bin/cs-fixer"
schedule:
interval: weekly
day: saturday
time: "04:10"
timezone: Europe/Copenhagen
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# openapi-extractor
- package-ecosystem: composer
directory: "/vendor-bin/openapi-extractor"
schedule:
interval: weekly
day: saturday
time: "04:20"
timezone: Europe/Brussels
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
- "provokateurin"
# psalm
- package-ecosystem: composer
directory: "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:30"
timezone: Europe/Madrid
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Main master npm
- package-ecosystem: npm
directory: "/"
@@ -100,6 +57,26 @@ updates:
# Main stableXX npm
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable25
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
- package-ecosystem: npm
directory: "/"
schedule:
@@ -140,27 +117,25 @@ updates:
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable28
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
# Testing StableXX composer
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable25
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
- package-ecosystem: composer
directory: "/build/integration"
schedule:
@@ -197,37 +172,11 @@ updates:
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
- package-ecosystem: composer
directory: "/build/integration"
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable28
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: monthly
timezone: Europe/Paris
groups:
github-actions:
patterns:
- "*"
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
-96
View File
@@ -1,96 +0,0 @@
name: Code checkers
on:
pull_request:
permissions:
contents: read
concurrency:
group: autocheckers-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
autocheckers:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.3']
name: PHP checkers
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@7fdd3ece872ec7ec4c098ae5ab7637d5e0a96067 # v2
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype, json, mbstring
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Check auto loaders
run: bash ./build/autoloaderchecker.sh
- name: Check translations are JSON decodeable
run: php ./build/translation-checker.php
- name: Check translations do not contain triple dot but ellipsis
run: php ./build/triple-dot-checker.php
- name: Check .htaccess does not contain invalid changes
run: php ./build/htaccess-checker.php
- name: Check that all and only expected files are included
run: php ./build/files-checker.php
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, autocheckers]
if: always()
name: autocheckers-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.autocheckers.result != 'success' }}; then exit 1; fi
+1 -1
View File
@@ -20,7 +20,7 @@ jobs:
# Only run on stableXX branches
if: startsWith( github.base_ref, 'stable')
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
steps:
- name: Download updater config
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
steps:
- name: Download version.php from ${{ github.base_ref }}
@@ -1,31 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Block unconventional commits
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-unconventional-commits-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-unconventional-commits:
name: Block unconventional commits
runs-on: ubuntu-latest-low
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: webiny/action-conventional-commits@8bc41ff4e7d423d56fa4905f6ff79209a78776c7 # v1.3.0
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+23 -37
View File
@@ -15,16 +15,15 @@ jobs:
arg1: ${{ steps.command.outputs.arg1 }}
arg2: ${{ steps.command.outputs.arg2 }}
head_ref: ${{ steps.comment-branch.outputs.head_ref }}
base_ref: ${{ steps.comment-branch.outputs.base_ref }}
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v2
uses: skjnldsv/check-actor-permission@e591dbfe838300c007028e1219ca82cc26e8d7c5 # v2
with:
require: write
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -32,7 +31,7 @@ jobs:
reactions: "+1"
- name: Parse command
uses: skjnldsv/parse-command-comment@5c955203c52424151e6d0e58fb9de8a9f6a605a1 # v2
uses: skjnldsv/parse-command-comment@7cef1df370a99dfd5bf896d50121390c96785db8 # v2
id: command
# Init path depending on which command is run
@@ -40,9 +39,9 @@ jobs:
id: git-path
run: |
if ${{ startsWith(steps.command.outputs.arg1, '/') }}; then
echo "path=${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT
echo "path=${{ github.workspace }}${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT
else
echo "path=${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT
echo "path=${{ github.workspace }}${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT
fi
- name: Init branch
@@ -55,13 +54,13 @@ jobs:
steps:
- name: Restore cached git repository
uses: buildjet/cache@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 # v3.3.2
with:
path: .git
key: git-repo
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.6.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
fetch-depth: 0
@@ -77,22 +76,16 @@ jobs:
id: package-engines-versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
fallbackNpm: '^9'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
with:
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
cache: npm
- name: Set up npm ${{ steps.package-engines-versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.package-engines-versions.outputs.npmVersion }}"
- name: Rebase to ${{ needs.init.outputs.base_ref }}
if: ${{ contains(needs.init.outputs.arg1, 'rebase') }}
run: |
git fetch origin ${{ needs.init.outputs.base_ref }}:${{ needs.init.outputs.base_ref }}
git rebase origin/${{ needs.init.outputs.base_ref }}
- name: Install dependencies & build
env:
@@ -102,36 +95,29 @@ jobs:
npm ci
npm run build --if-present
- name: Commit default
if: ${{ !contains(needs.init.outputs.arg1, 'fixup') && !contains(needs.init.outputs.arg1, 'amend') }}
- name: Commit and push default
if: ${{ needs.init.outputs.arg1 != 'fixup' && needs.init.outputs.arg1 != 'amend' }}
run: |
git add ${{ github.workspace }}${{ needs.init.outputs.git_path }}
git add ${{ needs.init.outputs.git_path }}
git commit --signoff -m 'chore(assets): Recompile assets'
- name: Commit fixup
if: ${{ contains(needs.init.outputs.arg1, 'fixup') }}
git push origin ${{ needs.init.outputs.head_ref }}
- name: Commit and push fixup
if: ${{ needs.init.outputs.arg1 == 'fixup' }}
run: |
git add ${{ github.workspace }}${{ needs.init.outputs.git_path }}
git add ${{ needs.init.outputs.git_path }}
git commit --fixup=HEAD --signoff
git push origin ${{ needs.init.outputs.head_ref }}
- name: Commit amend
if: ${{ contains(needs.init.outputs.arg1, 'amend') }}
- name: Commit and push amend
if: ${{ needs.init.outputs.arg1 == 'amend' }}
run: |
git add ${{ github.workspace }}${{ needs.init.outputs.git_path }}
git add ${{ needs.init.outputs.git_path }}
git commit --amend --no-edit --signoff
# Remove any [skip ci] from the amended commit
git commit --amend -m "$(git log -1 --format='%B' | sed '/\[skip ci\]/d')"
- name: Push normally
if: ${{ !contains(needs.init.outputs.arg1, 'rebase') && !contains(needs.init.outputs.arg1, 'amend') }}
run: git push origin ${{ needs.init.outputs.head_ref }}
- name: Force push
if: ${{ contains(needs.init.outputs.arg1, 'rebase') || contains(needs.init.outputs.arg1, 'amend') }}
run: git push --force origin ${{ needs.init.outputs.head_ref }}
git push --force origin ${{ needs.init.outputs.head_ref }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
+2 -2
View File
@@ -18,7 +18,7 @@ jobs:
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -51,7 +51,7 @@ jobs:
git push
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
+2 -2
View File
@@ -23,7 +23,7 @@ jobs:
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -42,7 +42,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
+10 -10
View File
@@ -31,7 +31,7 @@ jobs:
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
with:
files: "composer.json"
@@ -47,7 +47,7 @@ jobs:
fallbackNpm: "^9"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -77,10 +77,10 @@ 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]
containers: ["component", 0, 1, 2]
# Hack as strategy.job-total includes the component and GitHub does not allow math expressions
# Always aling this number with the total of e2e runners (max. index + 1)
total-containers: [6]
total-containers: [3]
name: runner ${{ matrix.containers }}
@@ -93,7 +93,7 @@ jobs:
path: ./
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
with:
node-version: ${{ needs.init.outputs.nodeVersion }}
@@ -101,7 +101,7 @@ jobs:
run: npm i -g npm@"${{ needs.init.outputs.npmVersion }}"
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@1b70233146622b69e789ccdd4f9452adc638d25a # v6.6.1
uses: cypress-io/github-action@ebe8b24c4428922d0f793a5c4c96853a633180e3 # v6.6.0
with:
component: ${{ matrix.containers == 'component' }}
group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run E2E' || '' }}
@@ -121,7 +121,7 @@ jobs:
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
- name: Upload snapshots
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
if: always()
with:
name: snapshots_${{ matrix.containers }}
@@ -132,7 +132,7 @@ jobs:
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
if: failure() && matrix.containers != 'component'
with:
name: nc_logs_${{ matrix.containers }}
@@ -143,14 +143,14 @@ jobs:
run: docker exec nextcloud-cypress-tests-server tar -cvjf - data > data.tar
- name: Upload data dir archive
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
if: failure() && matrix.containers != 'component'
with:
name: nc_data_${{ matrix.containers }}
path: data.tar
summary:
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
needs: [init, cypress]
if: always()
@@ -22,7 +22,7 @@ concurrency:
jobs:
auto-approve-merge:
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
-185
View File
@@ -1,185 +0,0 @@
name: PHPUnit files_external S3
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-s3-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3
services:
minio:
image: bitnami/minio
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
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
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'secret' => 'actually-not-secret', 'passwordsalt' => 'actually-not-secret', 'hostname' => 'localhost','key' => '$OBJECT_STORE_KEY','secret' => '$OBJECT_STORE_SECRET', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/Amazons3Test.php \
apps/files_external/tests/Storage/VersionedAmazonS3Test.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: S3 logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
files-external-s3-localstack:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
name: php${{ matrix.php-versions }}-s3
services:
localstack:
env:
SERVICES: s3
DEBUG: 1
image: localstack/localstack
ports:
- "4566:4566"
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
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
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true,'hostname' => 'localhost','key' => 'ignored','secret' => 'ignored', 'bucket' => 'bucket', 'port' => 4566, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/Amazons3Test.php \
apps/files_external/tests/Storage/VersionedAmazonS3Test.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: S3 logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-external-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-s3-minio, files-external-s3-localstack]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-s3-minio.result != 'success' && needs.files-external-s3-localstack.result != 'success' }}; then exit 1; fi
-109
View File
@@ -1,109 +0,0 @@
name: PHPUnit files_external sFTP
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-sftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-sftp:
runs-on: ubuntu-latest
needs: changes
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.0', '8.3']
sftpd: ['openssh']
include:
- php-versions: '8.0'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.sftpd }}
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up sftpd
run: |
sudo mkdir /tmp/sftp
sudo chown -R 0777 /tmp/sftp
if [[ "${{ matrix.sftpd }}" == 'openssh' ]]; then docker run -p 2222:22 --name sftp -d -v /tmp/sftp:/home/test atmoz/sftp "test:test:::data"; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'host' => 'localhost:2222','user' => 'test','password' => 'test', 'root' => 'data'];" > apps/files_external/tests/config.sftp.php
- name: PHPUnit
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' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.xml
flags: phpunit-files-external-sftp
- name: sftpd logs
if: always()
run: |
ls -l /tmp/sftp
docker logs sftp
sftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-sftp]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-sftp.result != 'success' }}; then exit 1; fi
-108
View File
@@ -1,108 +0,0 @@
name: PHPUnit files_external SMB
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-smb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-smb:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.0', '8.3']
include:
- php-versions: '8.0'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-smb
services:
samba:
image: ghcr.io/nextcloud/continuous-integration-samba:latest
ports:
- 445:445
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, smbclient, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up smbclient
# This is needed as icewind/smb php library for notify
run: sudo apt-get install -y smbclient
- name: Set up Nextcloud
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ config:system:set --value true --type boolean allow_local_remote_servers
./occ app:enable --force files_external
echo "<?php return ['run'=>true, 'host'=>'localhost', 'user'=>'test', 'password'=>'test', 'root'=>'', 'share'=>'public'];" > apps/files_external/tests/config.smb.php
- name: Wait for smb
run: |
apps/files_external/tests/env/wait-for-connection 127.0.0.1 445 60
- name: PHPUnit
run: composer run test:files_external -- --verbose \
apps/files_external/tests/Storage/SmbTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@4fe8c5f003fae66aa5ebb77cfd3e7bfbbda0b6b0 # v3.1.5
with:
files: ./clover.xml
flags: phpunit-files-external-smb
files-external-smb-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-smb]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-smb.result != 'success' }}; then exit 1; fi
-105
View File
@@ -1,105 +0,0 @@
name: PHPUnit files_external WebDAV
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-webdav-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-webdav-apache:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-webdav
services:
apache:
image: ghcr.io/nextcloud/continuous-integration-webdav-apache:latest
ports:
- 8081:80
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
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
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ config:system:set --value true --type boolean allow_local_remote_servers
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'host' => 'localhost:8081/webdav/', 'user' => 'test', 'password'=>'pass', 'root' => '', 'wait' => 0];" > apps/files_external/tests/config.webdav.php
- name: Wait for WebDAV
run: |
sleep 5
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://test:pass@localhost:8081/webdav/
- name: PHPUnit
run: composer run test:files_external -- --verbose \
apps/files_external/tests/Storage/WebdavTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@ab904c41d6ece82784817410c45d8b8c02684457 # v3.1.6
with:
files: ./clover.xml
flags: phpunit-files-external-webdav
files-external-webdav-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-webdav-apache]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-webdav-apache.result != 'success' }}; then exit 1; fi
-93
View File
@@ -1,93 +0,0 @@
name: PHPUnit files_external generic
on:
pull_request:
schedule:
- cron: "5 2 * * *"
concurrency:
group: files-external-generic-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
files-external-generic:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-generic
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
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
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
- name: PHPUnit
run: composer run test:files_external \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.xml
flags: phpunit-files-external-generic
files-external-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-generic ]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-generic.result != 'success' }}; then exit 1; fi
+1 -1
View File
@@ -24,7 +24,7 @@ jobs:
pull-requests: write
name: Block fixup and squash commits
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
steps:
- name: Run check
@@ -1,51 +1,29 @@
name: PHPUnit files_external FTP
name: FTP unit tests
on:
pull_request:
schedule:
- cron: "5 2 * * *"
paths:
- '.github/**'
- 'apps/files_external/**'
concurrency:
group: files-external-ftp-${{ github.head_ref || github.run_id }}
group: ftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
APP_NAME: files_external
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-ftp:
ftp-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0', '8.3']
php-versions: ['8.0']
ftpd: ['proftpd', 'vsftpd', 'pure-ftpd']
include:
- php-versions: '8.0'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.ftpd }}
@@ -64,14 +42,11 @@ jobs:
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then docker run --name ftp -d --net host -e PASV_ADDRESS=127.0.0.1 -e FTPUSER_NAME=test -v /tmp/secret.txt:/run/secrets/ftp-user-password-secret -v /tmp/ftp:/home/test instantlinux/proftpd; fi
if [[ "${{ matrix.ftpd }}" == 'vsftpd' ]]; then docker run --name ftp -d --net host -e FTP_USER=test -e FTP_PASS=test -e PASV_ADDRESS=127.0.0.1 -v /tmp/ftp:/home/vsftpd/test fauria/vsftpd; fi
if [[ "${{ matrix.ftpd }}" == 'pure-ftpd' ]]; then docker run --name ftp -d --net host -e "PUBLICHOST=localhost" -e FTP_USER_NAME=test -e FTP_USER_PASS=test -e FTP_USER_HOME=/home/test -v /tmp/ftp:/home/test -v /tmp/ftp:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -80,9 +55,8 @@ jobs:
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true,'host' => 'localhost','user' => 'test','password' => 'test', 'root' => '${{ env.FTP_ROOT }}'];" > apps/files_external/tests/config.ftp.php
./occ app:enable --force ${{ env.APP_NAME }}
php -S localhost:8080 &
- name: smoketest ftp
run: |
php -r 'var_dump(file_put_contents("ftp://test:test@localhost${{ env.FTP_ROOT }}/ftp.txt", "asd"));'
@@ -90,30 +64,21 @@ jobs:
php -r 'var_dump(mkdir("ftp://test:test@localhost${{ env.FTP_ROOT }}/asdads"));'
ls -l /tmp/ftp
[ -f /tmp/ftp/ftp.txt ]
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/FtpTest.php \
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.xml
flags: phpunit-files-external-ftp
run: |
echo "<?php return ['run' => true,'host' => 'localhost','user' => 'test','password' => 'test', 'root' => '${{ env.FTP_ROOT }}'];" > apps/${{ env.APP_NAME }}/tests/config.ftp.php
composer run test:files_external apps/files_external/tests/Storage/FtpTest.php
- name: ftpd logs
if: always()
run: |
docker logs ftp
ftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-ftp]
runs-on: ubuntu-latest
needs: ftp-tests
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-ftp.result != 'success' }}; then exit 1; fi
run: if ${{ needs.ftp-tests.result != 'success' }}; then exit 1; fi
@@ -1,117 +0,0 @@
name: S3 primary storage integration tests
on:
pull_request:
concurrency:
group: integration-s3-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
integration-s3-primary:
runs-on: ubuntu-latest
needs: changes
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.0']
key: ['objectstore', 'objectstore_multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
minio:
image: bitnami/minio
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
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
coverage: 'none'
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: Set up Nextcloud
run: |
mkdir data
echo '<?php $CONFIG=["${{ matrix.key }}" => ["class" => "OC\Files\ObjectStore\S3", "arguments" => ["bucket" => "nextcloud", "autocreate" => true, "key" => "nextcloud", "secret" => "bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=", "hostname" => "localhost", "port" => 9000, "use_ssl" => false, "use_path_style" => true, "uploadPartSize" => 52428800]]];' > config/config.php
echo '<?php $CONFIG=["redis" => ["host" => "localhost", "port" => 6379], "memcache.local" => "\OC\Memcache\Redis", "memcache.distributed" => "\OC\Memcache\Redis"];' > config/redis.config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
- name: Integration
run: |
cd build/integration
bash run.sh --tags "~@failure-s3" dav_features/webdav-related.feature
- name: S3 logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-primary-integration-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-s3-primary]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-s3-primary.result != 'success' }}; then exit 1; fi
-166
View File
@@ -1,166 +0,0 @@
name: Integration sqlite
on:
pull_request:
push:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: integration-sqlite-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
integration-sqlite:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
test-suite:
- 'capabilities_features'
- 'collaboration_features'
- 'comments_features'
- 'dav_features'
- 'features'
- 'federation_features'
- '--tags ~@large files_features'
- 'filesdrop_features'
- 'openldap_features'
- 'openldap_numerical_features'
- 'ldap_features'
- 'remoteapi_features'
- 'setup_features'
- 'sharees_features'
- 'sharing_features'
- 'videoverification_features'
php-versions: ['8.2']
spreed-versions: ['main']
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
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
ports:
- 389:389
env:
SLAPD_DOMAIN: nextcloud.ci
SLAPD_ORGANIZATION: Nextcloud
SLAPD_PASSWORD: admin
SLAPD_ADDITIONAL_MODULES: memberof
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
submodules: true
- name: Checkout Talk app
if: ${{ matrix.test-suite == 'videoverification_features' }}
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
repository: nextcloud/spreed
path: apps/spreed
ref: ${{ matrix.spreed-versions }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, ldap, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up production dependencies
run: composer i --no-dev
- name: Set up behat dependencies
working-directory: build/integration
run: composer i
- name: Set up Talk dependencies
if: ${{ matrix.test-suite == 'videoverification_features' }}
working-directory: apps/spreed
run: composer i --no-dev
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose ${{ contains(matrix.test-suite,'ldap') && '--data-dir=/dev/shm/nc_int' || '' }} --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ config:system:set hashing_default_password --value=true --type=boolean
- name: Configure caching
if: ${{ contains(matrix.test-suite,'ldap') }}
run: |
./occ config:system:set redis host --value=localhost
./occ config:system:set redis port --value=6379 --type=integer
./occ config:system:set redis timeout --value=0 --type=integer
./occ config:system:set memcache.local --value='\OC\Memcache\Redis'
./occ config:system:set memcache.distributed --value='\OC\Memcache\Redis'
- name: Run integration
working-directory: build/integration
env:
LDAP_HOST: localhost
run: bash run.sh ${{ matrix.test-suite }} no-tail-log
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-sqlite]
if: always()
name: integration-sqlite-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-sqlite.result != 'success' }}; then exit 1; fi
+4 -4
View File
@@ -20,13 +20,13 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
id: changes
continue-on-error: true
with:
@@ -64,7 +64,7 @@ jobs:
fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -83,7 +83,7 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
needs: [changes, lint]
if: always()
+3 -3
View File
@@ -16,13 +16,13 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
id: changes
continue-on-error: true
with:
@@ -65,7 +65,7 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
needs: [changes, lint]
if: always()
+3 -3
View File
@@ -17,13 +17,13 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
id: changes
continue-on-error: true
with:
@@ -70,7 +70,7 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
needs: [changes, lint]
if: always()
+7 -7
View File
@@ -11,13 +11,13 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
id: changes
continue-on-error: true
with:
@@ -72,7 +72,7 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
@@ -89,7 +89,7 @@ jobs:
run: npm run test:coverage
- name: Collect coverage
uses: codecov/codecov-action@ab904c41d6ece82784817410c45d8b8c02684457 # v3.1.6
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4
with:
files: ./coverage/lcov.info
@@ -107,7 +107,7 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
@@ -138,7 +138,7 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
@@ -157,7 +157,7 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
needs: [changes, test, jsunit, handlebars]
if: always()
+4 -4
View File
@@ -17,13 +17,13 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
id: changes
continue-on-error: true
with:
@@ -58,7 +58,7 @@ jobs:
fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -87,7 +87,7 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
needs: [changes, build]
if: always()
+3 -3
View File
@@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ["main", "master", "stable28", "stable27", "stable26"]
branches: ["main", "master", "stable27", "stable26", "stable25", "stable24"]
name: npm-audit-fix-${{ matrix.branches }}
@@ -36,7 +36,7 @@ jobs:
fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -58,7 +58,7 @@ jobs:
- name: Create Pull Request
if: always()
uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc # v5
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore(deps): fix npm audit"
-125
View File
@@ -1,125 +0,0 @@
name: Object storage azure
on:
pull_request:
schedule:
- cron: "15 2 * * *"
concurrency:
group: object-storage-azure-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
azure-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
name: php${{ matrix.php-versions }}-azure
services:
azurite:
image: mcr.microsoft.com/azure-storage/azurite
env:
AZURITE_ACCOUNTS: nextcloud:bmV4dGNsb3Vk
ports:
- 10000:10000
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
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@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
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
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: azure
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bmV4dGNsb3Vk
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
env:
OBJECT_STORE: azure
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bmV4dGNsb3Vk
run: composer run test -- --group PRIMARY-azure ${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.xml
flags: phpunit-azure
- name: Azurite logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
azure-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes, azure-primary-tests]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.azure-primary-tests.result != 'success' }}; then exit 1; fi
-131
View File
@@ -1,131 +0,0 @@
name: Object storage S3
on:
pull_request:
schedule:
- cron: "15 2 * * *"
concurrency:
group: object-storage-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
s3-primary-tests-minio:
runs-on: ubuntu-22.04
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
name: php${{ matrix.php-versions }}-s3
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
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
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: s3
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
env:
OBJECT_STORE: s3
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: composer run test -- --group PRIMARY-s3 ${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.xml
flags: phpunit-s3
- name: S3 logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes,s3-primary-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.s3-primary-tests-minio.result != 'success' }}; then exit 1; fi
-121
View File
@@ -1,121 +0,0 @@
name: Object storage Swift
on:
pull_request:
schedule:
- cron: "15 2 * * *"
concurrency:
group: object-storage-swift-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
swift-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
name: php${{ matrix.php-versions }}-swift
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
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
ports:
- 5000:5000
- 8080:8080
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
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
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: swift
OBJECT_STORE_SECRET: veryfast
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
env:
OBJECT_STORE: swift
OBJECT_STORE_SECRET: veryfast
run: composer run test -- --group PRIMARY-swift ${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.xml
flags: phpunit-swift
- name: Swift logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
swift-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes,swift-primary-tests]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.swift-primary-tests.result != 'success' }}; then exit 1; fi
+5 -6
View File
@@ -45,9 +45,8 @@ jobs:
with:
blueprint: tests/blueprints/basic.toml
ref: ${{ github.event.pull_request.head.ref }}
- name: Run before measurements
uses: nextcloud/profiler@6801ee10fc80f10b444388fb6ca9b36ad8a2ea83
uses: nextcloud/profiler@1e66a9de5f76a01e9d1db4f0153bcc1cbf989b3d
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
@@ -56,7 +55,7 @@ jobs:
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: before.json
profiler-branch: master
profiler-branch: stable28
- name: Apply PR
run: |
@@ -69,7 +68,7 @@ jobs:
- name: Run after measurements
id: compare
uses: nextcloud/profiler@6801ee10fc80f10b444388fb6ca9b36ad8a2ea83
uses: nextcloud/profiler@1e66a9de5f76a01e9d1db4f0153bcc1cbf989b3d
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
@@ -78,12 +77,12 @@ jobs:
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: after.json
profiler-branch: master
profiler-branch: stable28
compare-with: before.json
- name: Upload profiles
if: always()
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
with:
name: profiles
path: |
-144
View File
@@ -1,144 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit mariadb
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-mariadb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-mariadb:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.0']
mariadb-versions: ['10.3', '10.4', '10.5', '10.6', '10.11']
include:
- php-versions: '8.3'
mariadb-versions: '10.6'
coverage: ${{ github.event_name != 'pull_request' }}
name: MariaDB ${{ matrix.mariadb-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mariadb:
image: mariadb:${{ matrix.mariadb-versions }}
ports:
- 4444: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 5
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Enable ONLY_FULL_GROUP_BY MySQL option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.db.xml
flags: phpunit-mariadb
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-mariadb]
if: always()
name: phpunit-mariadb-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mariadb.result != 'success' }}; then exit 1; fi
-123
View File
@@ -1,123 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit memcached
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-memcached-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-memcached:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: Memcached (PHP ${{ matrix.php-versions }})
services:
memcached:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 11212:11212/tcp
- 11212:11212/udp
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@7fdd3ece872ec7ec4c098ae5ab7637d5e0a96067 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, memcached, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit memcached tests
run: composer run test -- --group Memcache,Memcached ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.xml
flags: phpunit-memcached
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-memcached]
if: always()
name: phpunit-memcached-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-memcached.result != 'success' }}; then exit 1; fi
-144
View File
@@ -1,144 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit mysql
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-mysql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-mysql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.0']
mysql-versions: ['8.0', '8.3']
include:
- mysql-versions: '8.0'
php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: MySQL ${{ matrix.mysql-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
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
ports:
- 4444: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 5
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Enable ONLY_FULL_GROUP_BY MySQL option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-mysql]
if: always()
name: phpunit-mysql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
-127
View File
@@ -1,127 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
# This is the testsuite running all non-database agnostic unit tests
name: PHPUnit nodb
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-nodb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-nodb:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: No DB unit tests (PHP ${{ matrix.php-versions }})
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
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@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@7fdd3ece872ec7ec4c098ae5ab7637d5e0a96067 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
# Required for tests that use pcntl
ini-values: disable_functions=""
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit nodb testsuite
run: composer run test -- --exclude-group DB,SLOWDB ${{ matrix.coverage && ' --coverage-clover ./clover.nodb.xml' || '' }}
- name: Upload nodb code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.nodb.xml
flags: phpunit-nodb
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-nodb]
if: always()
name: phpunit-nodb-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-nodb.result != 'success' }}; then exit 1; fi
+19 -51
View File
@@ -2,8 +2,6 @@ name: PHPUnit oci
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
@@ -14,13 +12,13 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src }}
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
id: changes
continue-on-error: true
with:
@@ -28,52 +26,36 @@ jobs:
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '**/vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-oci:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
needs: changes
if: needs.changes.outputs.src != 'false' && ${{ github.repository_owner != 'nextcloud-gmbh' }}
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
matrix:
oracle-versions: ['11']
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: Oracle ${{ matrix.oracle-versions }} (PHP ${{ matrix.php-versions }}) - database tests
php-versions: ['8.0', '8.1', '8.2']
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
oracle:
image: ghcr.io/gvenzl/oracle-xe:${{ matrix.oracle-versions }}
image: ghcr.io/gvenzl/oracle-xe:11
# Provide passwords and other environment variables to container
env:
ORACLE_RANDOM_PASSWORD: true
APP_USER: oc_autotest
APP_USER_PASSWORD: nextcloud
APP_USER: autotest
APP_USER_PASSWORD: owncloud
# Forward Oracle port
ports:
- 4444:1521/tcp
- 1521:1521/tcp
# Provide healthcheck script options for startup
options: >-
@@ -89,38 +71,24 @@ jobs:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, oci8
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
extensions: ctype, curl, dom, fileinfo, gd, imagick, intl, json, mbstring, oci8, openssl, pcntl, pdo_sqlite, posix, sqlite, xml, zip
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
composer install
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=oci --database-name=XE --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=oc_autotest --database-pass=nextcloud --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
./occ maintenance:install --verbose --database=oci --database-name=XE --database-host=127.0.0.1 --database-port=1521 --database-user=autotest --database-pass=owncloud --admin-user admin --admin-pass admin
php -f index.php
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.db.xml
flags: phpunit-oci
run: composer run test:db
- name: Run repair steps
run: |
@@ -129,7 +97,7 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
needs: [changes, phpunit-oci]
if: always()
-143
View File
@@ -1,143 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit pgsql
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-pgsql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.0']
# To keep the matrix smaller we ignore PostgreSQL '11', '13', '14' as we already test 10 and 15 as lower and upper bound
postgres-versions: ['10', '15', '16']
include:
- php-versions: '8.3'
postgres-versions: '15'
coverage: ${{ github.event_name != 'pull_request' }}
name: PostgreSQL ${{ matrix.postgres-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
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
ports:
- 4444: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
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit database tests
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.db.xml
flags: phpunit-postgres
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-pgsql]
if: always()
name: phpunit-pgsql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi
-127
View File
@@ -1,127 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: PHPUnit sqlite
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-sqlite:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2', '8.3']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
name: SQLite (PHP ${{ matrix.php-versions }})
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
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@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@7fdd3ece872ec7ec4c098ae5ab7637d5e0a96067 # v2
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
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
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: Nextcloud debug information
run: ./occ app:list && echo "======= System config =======" && ./occ config:list system
- name: PHPUnit database tests
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4
with:
files: ./clover.db.xml
flags: phpunit-sqlite
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-sqlite]
if: always()
name: phpunit-sqlite-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi
+130
View File
@@ -0,0 +1,130 @@
name: S3 External storage
on:
pull_request:
paths:
- 'apps/files_external/**'
concurrency:
group: s3-external-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
APP_NAME: files_external
jobs:
s3-external-tests-minio:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0', '8.1']
name: php${{ matrix.php-versions }}-minio
services:
minio:
env:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
image: bitnami/minio:2021.10.6
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force ${{ env.APP_NAME }}
php -S localhost:8080 &
- name: PHPUnit
run: |
echo "<?php return ['run' => true, 'secret' => 'actually-not-secret', 'passwordsalt' => 'actually-not-secret', 'hostname' => 'localhost','key' => 'minio','secret' => 'minio123', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/${{ env.APP_NAME }}/tests/config.amazons3.php
composer run test:files_external apps/files_external/tests/Storage/Amazons3Test.php
composer run test:files_external apps/files_external/tests/Storage/VersionedAmazonS3Test.php
- name: S3 logs
if: always()
run: |
docker ps -a
docker logs $(docker ps -aq)
s3-external-tests-localstack:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0', '8.1']
name: php${{ matrix.php-versions }}-localstack
services:
minio:
env:
SERVICES: s3
DEBUG: 1
image: localstack/localstack:0.12.7
ports:
- "4566:4566"
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force ${{ env.APP_NAME }}
php -S localhost:8080 &
- name: PHPUnit
run: |
echo "<?php return ['run' => true,'hostname' => 'localhost','key' => 'ignored','secret' => 'ignored', 'bucket' => 'bucket', 'port' => 4566, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/${{ env.APP_NAME }}/tests/config.amazons3.php
composer run test:files_external apps/files_external/tests/Storage/Amazons3Test.php
composer run test:files_external apps/files_external/tests/Storage/VersionedAmazonS3Test.php
- name: S3 logs
if: always()
run: |
docker ps -a
docker logs $(docker ps -aq)
s3-external-summary:
runs-on: ubuntu-latest
needs: [s3-external-tests-minio, s3-external-tests-localstack]
if: always()
steps:
- name: Summary status
run: if ${{ needs.s3-external-tests-minio.result != 'success' }} || ${{ needs.s3-external-tests-localstack.result != 'success' }}; then exit 1; fi
@@ -0,0 +1,95 @@
name: S3 primary storage integration tests
on:
pull_request:
paths:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
concurrency:
group: s3-external-integration-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
s3-primary-integration-tests-minio:
runs-on: ubuntu-20.04
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0']
key: ['objectstore', 'objectstore_multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
redis:
image: redis
ports:
- "6379:6379"
minio:
env:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
image: bitnami/minio:2021.12.29
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, redis
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: Set up Nextcloud
run: |
mkdir data
echo '<?php $CONFIG=["${{ matrix.key }}" => ["class" => "OC\Files\ObjectStore\S3", "arguments" => ["bucket" => "nextcloud", "autocreate" => true, "key" => "minio", "secret" => "minio123", "hostname" => "localhost", "port" => 9000, "use_ssl" => false, "use_path_style" => true, "uploadPartSize" => 52428800]]];' > config/config.php
echo '<?php $CONFIG=["redis" => ["host" => "localhost", "port" => 6379], "memcache.local" => "\OC\Memcache\Redis", "memcache.distributed" => "\OC\Memcache\Redis"];' > config/redis.config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
- name: Integration
run: |
cd build/integration
bash run.sh --tags "~@failure-s3" features/webdav-related.feature
- name: S3 logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-primary-integration-summary:
runs-on: ubuntu-latest
needs: [s3-primary-integration-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.s3-primary-integration-tests-minio.result != 'success' }}; then exit 1; fi
+87
View File
@@ -0,0 +1,87 @@
name: S3 primary storage
on:
pull_request:
paths:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
concurrency:
group: s3-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
s3-primary-tests-minio:
runs-on: ubuntu-20.04
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0']
key: ['objectstore', 'objectstore_multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
minio:
env:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
image: bitnami/minio:2021.12.29
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
mkdir data
echo '<?php $CONFIG=["${{ matrix.key }}" => ["class" => "OC\Files\ObjectStore\S3", "arguments" => ["bucket" => "nextcloud", "autocreate" => true, "key" => "minio", "secret" => "minio123", "hostname" => "localhost", "port" => 9000, "use_ssl" => false, "use_path_style" => true, "uploadPartSize" => 52428800]]];' > config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f index.php
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
run: composer run test:db
- name: S3 logs
if: always()
run: |
docker ps -a
docker logs $(docker ps -aq)
s3-primary-summary:
runs-on: ubuntu-latest
needs: [s3-primary-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.s3-primary-tests-minio.result != 'success' }}; then exit 1; fi
+73
View File
@@ -0,0 +1,73 @@
name: SFTP unit tests
on:
pull_request:
paths:
- 'apps/files_external/**'
env:
APP_NAME: files_external
concurrency:
group: sftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
sftp-tests:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.0']
sftpd: ['openssh']
name: php${{ matrix.php-versions }}-${{ matrix.sftpd }}
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up sftpd
run: |
sudo mkdir /tmp/sftp
sudo chown -R 0777 /tmp/sftp
if [[ "${{ matrix.sftpd }}" == 'openssh' ]]; then docker run -p 2222:22 --name sftp -d -v /tmp/sftp:/home/test atmoz/sftp "test:test:::data"; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force ${{ env.APP_NAME }}
php -S localhost:8080 &
- name: PHPUnit
run: |
echo "<?php return ['run' => true, 'host' => 'localhost:2222','user' => 'test','password' => 'test', 'root' => 'data'];" > apps/${{ env.APP_NAME }}/tests/config.sftp.php
composer run test:files_external apps/files_external/tests/Storage/SftpTest.php
- name: sftpd logs
if: always()
run: |
ls -l /tmp/sftp
docker logs sftp
sftp-summary:
runs-on: ubuntu-latest
needs: sftp-tests
if: always()
steps:
- name: Summary status
run: if ${{ needs.sftp-tests.result != 'success' }}; then exit 1; fi
@@ -1,41 +1,19 @@
name: Samba Kerberos SSO
on:
pull_request:
schedule:
- cron: "5 2 * * *"
paths:
- 'apps/files_external/**'
- '.github/workflows/smb-kerberos.yml'
concurrency:
group: files-external-smb-kerberos-${{ github.head_ref || github.run_id }}
group: smb-kerberos-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
smb-kerberos-tests:
runs-on: ubuntu-latest
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-smb-kerberos:
runs-on: ubuntu-22.04
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
name: smb-kerberos-sso
@@ -44,13 +22,11 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Checkout user_saml
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
repository: nextcloud/user_saml
path: apps/user_saml
- name: Pull images
run: |
docker pull ghcr.io/icewind1991/samba-krb-test-dc
@@ -59,35 +35,21 @@ jobs:
docker tag ghcr.io/icewind1991/samba-krb-test-dc icewind1991/samba-krb-test-dc
docker tag ghcr.io/icewind1991/samba-krb-test-apache icewind1991/samba-krb-test-apache
docker tag ghcr.io/icewind1991/samba-krb-test-client icewind1991/samba-krb-test-client
- name: Setup AD-DC
run: |
DC_IP=$(apps/files_external/tests/sso-setup/start-dc.sh)
sleep 1
apps/files_external/tests/sso-setup/start-apache.sh $DC_IP $PWD
echo "DC_IP=$DC_IP" >> $GITHUB_ENV
- name: Set up Nextcloud
run: |
apps/files_external/tests/sso-setup/setup-sso-nc.sh
- name: Test SSO
run: |
apps/files_external/tests/sso-setup/test-sso-smb.sh ${{ env.DC_IP }}
- name: Show logs
if: always()
if: failure()
run: |
FILEPATH=$(docker exec --user 33 apache ./occ log:file | grep "Log file:" | cut -d' ' -f3)
echo "$FILEPATH:"
docker exec --user 33 apache cat $FILEPATH
sftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-smb-kerberos]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-smb-kerberos.result != 'success' }}; then exit 1; fi
+1 -1
View File
@@ -15,7 +15,7 @@ jobs:
issues: write
steps:
- uses: actions/stale@v9
- uses: actions/stale@v8
with:
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
stale-issue-message: >
+2 -2
View File
@@ -40,7 +40,7 @@ jobs:
- name: Upload Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@v3
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
@@ -68,7 +68,7 @@ jobs:
- name: Upload Security Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@v3
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
+2 -3
View File
@@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ["master", "stable28", "stable27", "stable26", "stable25", "stable24", "stable23", "stable22"]
branches: ["master", "stable27", "stable26", "stable25", "stable24", "stable23", "stable22"]
name: update-ca-certificate-bundle-${{ matrix.branches }}
@@ -26,7 +26,7 @@ jobs:
run: curl --etag-compare build/ca-bundle-etag.txt --etag-save build/ca-bundle-etag.txt --output resources/config/ca-bundle.crt https://curl.se/ca/cacert.pem
- name: Create Pull Request
uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "fix(security): Update CA certificate bundle"
@@ -40,4 +40,3 @@ jobs:
labels: |
dependencies
3. to review
reviewers: ChristophWurst, miaulalala, nickvergessen
@@ -1,46 +0,0 @@
name: Update code signing revocation list
on:
workflow_dispatch:
schedule:
- cron: "5 2 * * *"
jobs:
update-code-signing-crl:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ["master", "stable28", "stable27", "stable26", "stable25", "stable24", "stable23", "stable22"]
name: update-code-signing-crl-${{ matrix.branches }}
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Download CRL file from Appstore repository
run: curl --output resources/codesigning/root.crl https://raw.githubusercontent.com/nextcloud/appstore/master/nextcloudappstore/certificate/nextcloud.crl
- name: Verify CRL is from CRT
run: openssl crl -verify -in resources/codesigning/root.crl -CAfile resources/codesigning/root.crt -noout
- name: Create Pull Request
uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "fix(security): Update code signing revocation list"
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/${{ matrix.branches }}-update-code-signing-crl
title: "[${{ matrix.branches }}] fix(security): Update code signing revocation list"
body: |
Auto-generated update of code signing revocation list from [Appstore](https://github.com/nextcloud/appstore/commits/master/nextcloudappstore/certificate/nextcloud.crl)
labels: |
dependencies
3. to review
reviewers: mgallien, miaulalala, nickvergessen
+5 -5
View File
@@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ["master", "stable28", "stable27", "stable26"]
branches: ["master", "stable27", "stable26", "stable25"]
name: update-psalm-baseline-${{ matrix.branches }}
@@ -28,7 +28,7 @@ jobs:
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -37,11 +37,11 @@ jobs:
run: composer install
- name: Psalm
run: composer run psalm:ci -- --monochrome --no-progress --output-format=text --update-baseline
run: composer run psalm -- --monochrome --no-progress --output-format=text --update-baseline
continue-on-error: true
- name: Psalm OCP
run: composer run psalm:ci -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline
run: composer run psalm -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline
continue-on-error: true
- name: Reset composer
@@ -50,7 +50,7 @@ jobs:
git checkout composer.json composer.lock lib/composer
- name: Create Pull Request
uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: Update psalm baseline
-4
View File
@@ -129,8 +129,6 @@ nbproject
/build/bin
/build/lib/
/build/jsdocs/
/build/integration/output/
/build/integration/phpserver.log
/npm-debug.log
/PhantomJS_*
@@ -164,7 +162,6 @@ tests/acceptance/vendor/
composer.phar
/lib/composer/bin
/lib/composer/bamarni
/vendor-bin/**/vendor
./.htaccess
@@ -173,4 +170,3 @@ core/js/mimetypelist.js
# Tests - cypress
cypress/snapshots
cypress/videos
cypress/downloads
-14
View File
@@ -94,19 +94,5 @@
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
# Clients like xDavv5 on Android, or Cyberduck, use chunked requests.
# When FastCGI or FPM is used with apache, requests arrive to Nextcloud without any content.
# This leads to the creation of empty files.
# The following directive will force the problematic requests to be buffered before being forwarded to Nextcloud.
# This way, the "Transfer-Encoding" header is removed, the "Content-Length" header is set, and the request content is proxied to Nextcloud.
# Here are more information about the issue:
# - https://docs.cyberduck.io/mountainduck/issues/fastcgi/
# - https://docs.nextcloud.com/server/latest/admin_manual/issues/general_troubleshooting.html#troubleshooting-webdav
<IfModule setenvif.c>
<Location "/remote.php">
SetEnvIf Transfer-Encoding "chunked" proxy-sendcl=1
</Location>
</IfModule>
AddDefaultCharset utf-8
Options -Indexes
+2 -2
View File
@@ -1,6 +1,6 @@
# Nextcloud Server ☁
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master)
[![codecov](https://codecov.io/gh/nextcloud/server/branch/master/graph/badge.svg)](https://codecov.io/gh/nextcloud/server)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=stable28)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master)
[![codecov](https://codecov.io/gh/nextcloud/server/branch/stable28/graph/badge.svg)](https://codecov.io/gh/nextcloud/server)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/209/badge)](https://bestpractices.coreinfrastructure.org/projects/209)
[![Design](https://contribute.design/api/shield/nextcloud/server)](https://contribute.design/nextcloud/server)
+9 -12
View File
@@ -1,14 +1,14 @@
# Security Policy
[Security](https://nextcloud.com/security/) is very important to us.
[Security](https://nextcloud.com/security/) is very important to us.
If you believe you have found a security vulnerability that meets our definition of a security
If you believe you have found a security vulnerability that meets our definition of a security
vulnerability, please report is as described below.
## Context
Please review our [threat model and accepted risks](https://nextcloud.com/security/threat-model) to learn what
is currently considered a security vulnerability versus expected behavior. And review what is considered
Please review our [threat model and accepted risks](https://nextcloud.com/security/threat-model) to learn what
is currently considered a security vulnerability versus expected behavior. And review what is considered
[in scope or bounty eligible](https://hackerone.com/nextcloud/policy_scopes).
@@ -31,17 +31,13 @@ Your report should include:
You should receive an initial acknowledgement within 24 hours in most cases.
A member of the security team will confirm the vulnerability, determine its impact, follow-up with any questions,
A member of the security team will confirm the vulnerability, determine its impact, follow-up with any questions,
and coordinate the fix and publication.
The fix will be applied to all applicable and still supported stable branches, tested, and packaged in the next security release.
The vulnerability will be publicly announced after the release. Finally, your name will be added
to the [hall of fame](https://hackerone.com/nextcloud/thanks) as a thank you from the entire Nextcloud
community.
If the vulnerability involves an app that is not maintained by Nextcloud (i.e. hosted by the
Nextcloud project but community maintained, or hosted elsewhere), the security team will try to coordinate with the
current maintainer and help to get the issue fixed in similar fashion.
to the [hall of fame](https://hackerone.com/nextcloud/thanks) as a thank you from the entire Nextcloud
community.
### Bug Bounties
@@ -51,7 +47,8 @@ on past bounty ranges can be found at [hackerone.com/nextcloud](https://hackeron
## Existing Security Advisories
Published security advisories for the Nextcloud Server, Clients and Apps can be viewed at
[https://github.com/nextcloud/security-advisories/security/advisories](https://github.com/nextcloud/security-advisories/security/advisories).
[https://github.com/nextcloud/security-advisories/security/advisories](https://github.com/nextcloud/security-advisories/security/advisories
).
## Supported Versions
View File
+2 -2
View File
@@ -5,7 +5,7 @@
<name>Auditing / Logging</name>
<summary>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</summary>
<description>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</description>
<version>1.19.0</version>
<version>1.18.0</version>
<licence>agpl</licence>
<author>Nextcloud</author>
<namespace>AdminAudit</namespace>
@@ -15,7 +15,7 @@
<category>monitoring</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="29" max-version="29"/>
<nextcloud min-version="28" max-version="28"/>
</dependencies>
<background-jobs>
<job>OCA\AdminAudit\BackgroundJobs\Rotate</job>
+2 -2
View File
@@ -1,7 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "المراجعة / السجلات",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "تُوفِّر إمكانيات تسجيل و مراجعة سجل الحركات على نكست كلاود."
"Auditing / Logging" : "التدقيق / السجلات",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "خاصية سجلات المراقبة لـ نكست كلاود مثل الوصول إلى سجلات الملفات أو المعلومات الحساسة الاخرى."
},
"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
@@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "المراجعة / السجلات",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "تُوفِّر إمكانيات تسجيل و مراجعة سجل الحركات على نكست كلاود."
"Auditing / Logging" : "التدقيق / السجلات",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "خاصية سجلات المراقبة لـ نكست كلاود مثل الوصول إلى سجلات الملفات أو المعلومات الحساسة الاخرى."
},"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;"
}
-7
View File
@@ -1,7 +0,0 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Audit / Giriş",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Nextcloud üçün fayl girişləri və ya başqa həssas hərəkətlər kimi giriş imkanlarını təmin edir."
},
"nplurals=2; plural=(n != 1);");
-5
View File
@@ -1,5 +0,0 @@
{ "translations": {
"Auditing / Logging" : "Audit / Giriş",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Nextcloud üçün fayl girişləri və ya başqa həssas hərəkətlər kimi giriş imkanlarını təmin edir."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -1
View File
@@ -4,4 +4,4 @@ OC.L10N.register(
"Auditing / Logging" : "פיקוח / תיעוד",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "מספק יכולות תיעוד ל־Nextcloud כגון תיעוד גישה ליומן התיעוד או פעולות רגישות אחרות."
},
"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;");
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");
+1 -1
View File
@@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "פיקוח / תיעוד",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "מספק יכולות תיעוד ל־Nextcloud כגון תיעוד גישה ליומן התיעוד או פעולות רגישות אחרות."
},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
}
+1 -1
View File
@@ -2,6 +2,6 @@ OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Auditoria / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece habilidades de registro para o NextCloud, como acessos de arquivo de log ou ações sensíveis."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece recursos de registro para Nextcloud, como registros de acesso a arquivos ou outras ações sensíveis."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+1 -1
View File
@@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditoria / Registro",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece habilidades de registro para o NextCloud, como acessos de arquivo de log ou ações sensíveis."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece recursos de registro para Nextcloud, como registros de acesso a arquivos ou outras ações sensíveis."
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
+1 -1
View File
@@ -29,7 +29,7 @@ namespace OCA\AdminAudit\Actions;
class Console extends Action {
/**
* @param array $arguments
* @param $arguments
*/
public function runCommand(array $arguments): void {
if (!isset($arguments[1]) || $arguments[1] === '_completion') {
@@ -70,6 +70,7 @@ use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
class Application extends App implements IBootstrap {
/** @var LoggerInterface */
protected $logger;
+11 -10
View File
@@ -32,7 +32,8 @@ use Psr\Log\LoggerInterface;
*/
class AuditLogger implements IAuditLogger {
private LoggerInterface $parentLogger;
/** @var LoggerInterface */
private $parentLogger;
public function __construct(ILogFactory $logFactory, IConfig $config) {
$auditType = $config->getSystemValueString('log_type_audit', 'file');
@@ -49,39 +50,39 @@ class AuditLogger implements IAuditLogger {
$this->parentLogger = $logFactory->getCustomPsrLogger($logFile, $auditType, $auditTag);
}
public function emergency($message, array $context = array()): void {
public function emergency($message, array $context = array()) {
$this->parentLogger->emergency($message, $context);
}
public function alert($message, array $context = array()): void {
public function alert($message, array $context = array()) {
$this->parentLogger->alert($message, $context);
}
public function critical($message, array $context = array()): void {
public function critical($message, array $context = array()) {
$this->parentLogger->critical($message, $context);
}
public function error($message, array $context = array()): void {
public function error($message, array $context = array()) {
$this->parentLogger->error($message, $context);
}
public function warning($message, array $context = array()): void {
public function warning($message, array $context = array()) {
$this->parentLogger->warning($message, $context);
}
public function notice($message, array $context = array()): void {
public function notice($message, array $context = array()) {
$this->parentLogger->notice($message, $context);
}
public function info($message, array $context = array()): void {
public function info($message, array $context = array()) {
$this->parentLogger->info($message, $context);
}
public function debug($message, array $context = array()): void {
public function debug($message, array $context = array()) {
$this->parentLogger->debug($message, $context);
}
public function log($level, $message, array $context = array()): void {
public function log($level, $message, array $context = array()) {
$this->parentLogger->log($level, $message, $context);
}
}
@@ -30,7 +30,6 @@ use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\Log\Audit\CriticalActionPerformedEvent;
/** @template-implements IEventListener<CriticalActionPerformedEvent> */
class CriticalActionPerformedEventListener extends Action implements IEventListener {
public function handle(Event $event): void {
if (!($event instanceof CriticalActionPerformedEvent)) {
@@ -30,15 +30,17 @@ use OCA\AdminAudit\Actions\Security;
use OCA\AdminAudit\AuditLogger;
use OCP\Authentication\TwoFactorAuth\IProvider;
use OCP\IUser;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SecurityTest extends TestCase {
private AuditLogger|MockObject $logger;
/** @var AuditLogger|\PHPUnit\Framework\MockObject\MockObject */
private $logger;
private Security $security;
/** @var Security */
private $security;
private MockObject|IUser $user;
/** @var IUser|\PHPUnit\Framework\MockObject\MockObject */
private $user;
protected function setUp(): void {
parent::setUp();
+2 -2
View File
@@ -5,7 +5,7 @@
<name>Cloud Federation API</name>
<summary>Enable clouds to communicate with each other and exchange data</summary>
<description>The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.</description>
<version>1.12.0</version>
<version>1.11.0</version>
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<namespace>CloudFederationAPI</namespace>
@@ -15,6 +15,6 @@
<category>integration</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="29" max-version="29"/>
<nextcloud min-version="28" max-version="28"/>
</dependencies>
</info>
-8
View File
@@ -1,8 +0,0 @@
OC.L10N.register(
"cloud_federation_api",
{
"Cloud Federation API" : "API de Federación en la Nube",
"Enable clouds to communicate with each other and exchange data" : "Permitir que las nubes se comuniquen entre sí e intercambien datos",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "La API de Federación de Nubes permite que varias instancias de Nextcloud se comuniquen entre sí y intercambien datos."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
@@ -1,6 +0,0 @@
{ "translations": {
"Cloud Federation API" : "API de Federación en la Nube",
"Enable clouds to communicate with each other and exchange data" : "Permitir que las nubes se comuniquen entre sí e intercambien datos",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "La API de Federación de Nubes permite que varias instancias de Nextcloud se comuniquen entre sí y intercambien datos."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
@@ -30,7 +30,6 @@ use OCA\CloudFederationAPI\Config;
use OCA\CloudFederationAPI\ResponseDefinitions;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\OpenAPI;
use OCP\AppFramework\Http\JSONResponse;
use OCP\Federation\Exceptions\ActionNotSupportedException;
use OCP\Federation\Exceptions\AuthenticationFailedException;
@@ -56,7 +55,6 @@ use Psr\Log\LoggerInterface;
* @psalm-import-type CloudFederationAPIValidationError from ResponseDefinitions
* @psalm-import-type CloudFederationAPIError from ResponseDefinitions
*/
#[OpenAPI(scope: OpenAPI::SCOPE_FEDERATION)]
class RequestHandlerController extends Controller {
public function __construct(
string $appName,
+3
View File
@@ -0,0 +1,3 @@
{
"directory": "js/vendor"
}
+3
View File
@@ -0,0 +1,3 @@
# compiled vue templates
src/templates.js
js/
+2 -2
View File
@@ -5,7 +5,7 @@
<name>Comments</name>
<summary>Files app plugin to add comments to files</summary>
<description>Files app plugin to add comments to files</description>
<version>1.19.0</version>
<version>1.18.0</version>
<licence>agpl</licence>
<author>Arthur Schiwon</author>
<author>Vincent Petry</author>
@@ -16,7 +16,7 @@
<category>social</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="29" max-version="29"/>
<nextcloud min-version="28" max-version="28"/>
</dependencies>
<activity>
+1 -4
View File
@@ -9,14 +9,12 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s كتب تعليق على %2$s",
"{author} commented on {file}" : "{author} علّق على {file}",
"<strong>Comments</strong> for files" : "<strong>تعليقات</strong> على الملفات",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "تمت الإشارة إليك في \"{file}\"، في تعليقٍ من قِبَل حسابٍ تمّ حذفه سلفاً",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
"{user} mentioned you in a comment on \"{file}\"" : "أشار إليك {user} في تعليق على {file}",
"Files app plugin to add comments to files" : "المكوِّن الإضافي لتطبيق الملفات لإضافة تعليقات إلى الملفات",
"Edit comment" : "تعديل التعليق",
"Delete comment" : "حذف التعليق",
"Cancel edit" : "إلغاء التعديل",
"New comment" : "ملاحظة جديدة",
"Write a comment …" : "أكتُب ملاحظةً ...",
"Post comment" : "أضف تعليق",
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات، : للإيموجي، / للاقط الذكي",
"Could not reload comments" : "تعذّرت إعادة تحميل الملاحظات",
@@ -31,7 +29,6 @@ OC.L10N.register(
"Comment deleted" : "التعليق حُذف",
"An error occurred while trying to delete the comment" : "حدث خطأ أثناء محاولة حذف التعليق",
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"]
},
"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;");
+1 -4
View File
@@ -7,14 +7,12 @@
"%1$s commented on %2$s" : "%1$s كتب تعليق على %2$s",
"{author} commented on {file}" : "{author} علّق على {file}",
"<strong>Comments</strong> for files" : "<strong>تعليقات</strong> على الملفات",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "تمت الإشارة إليك في \"{file}\"، في تعليقٍ من قِبَل حسابٍ تمّ حذفه سلفاً",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
"{user} mentioned you in a comment on \"{file}\"" : "أشار إليك {user} في تعليق على {file}",
"Files app plugin to add comments to files" : "المكوِّن الإضافي لتطبيق الملفات لإضافة تعليقات إلى الملفات",
"Edit comment" : "تعديل التعليق",
"Delete comment" : "حذف التعليق",
"Cancel edit" : "إلغاء التعديل",
"New comment" : "ملاحظة جديدة",
"Write a comment …" : "أكتُب ملاحظةً ...",
"Post comment" : "أضف تعليق",
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات، : للإيموجي، / للاقط الذكي",
"Could not reload comments" : "تعذّرت إعادة تحميل الملاحظات",
@@ -29,7 +27,6 @@
"Comment deleted" : "التعليق حُذف",
"An error occurred while trying to delete the comment" : "حدث خطأ أثناء محاولة حذف التعليق",
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"]
},"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;"
}
+9 -25
View File
@@ -4,33 +4,17 @@ OC.L10N.register(
"Comments" : "Comentarios",
"You commented" : "Comentesti",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Comentesti en: %1$s",
"You commented on {file}" : "Comentesti en: {file}",
"%1$s commented on %2$s" : "%1$s comentó en: %2$s",
"{author} commented on {file}" : "{author} comentó en: {file}",
"You commented on %1$s" : "Comentesti en %1$s",
"You commented on {file}" : "Comentesti en {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{autor} comentó en {ficheru}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> pa ficheros",
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentóte nun comentariu de: «{file}»",
"Files app plugin to add comments to files" : "Plugin de l'aplicación Ficheros p'amestar comentarios a los ficheros",
"Edit comment" : "Editar el comentariu",
"Delete comment" : "Desaniciar el comentariu",
"Cancel edit" : "Anular la edición",
"New comment" : "Comentariu nuevu",
"Write a comment …" : "Escribi un comentariu…",
"Post comment" : "Espublizar el comentariu",
"@ for mentions, : for emoji, / for smart picker" : "@ pa les menciones, : pa los fustaxes, / pal selector intelixente",
"Could not reload comments" : "Nun se pudieron recargar los comentarios",
"No comments yet, start the conversation!" : "Nun hai comentarios, ¡anicia una conversación!",
"No more messages" : "Nun hai más mensaxes",
"Edit comment" : "Editar comentariu",
"Delete comment" : "Desaniciar comentariu",
"No comments yet, start the conversation!" : "Entá nun hai comentarios. ¡Entama una conversación!",
"Retry" : "Retentar",
"Failed to mark comments as read" : "Nun se pudieron marcar los comentarios como lleíos",
"Unable to load the comments list" : "Nun ye posible cargar la llista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentariu nuevu","{unread} comentarios nuevos"],
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"],
"Comment" : "Comentariu",
"An error occurred while trying to edit the comment" : "Prodúxose un error mentanto se tentaba d'editar el comentariu",
"Comment deleted" : "Desanicióse'l comentariu",
"An error occurred while trying to delete the comment" : "Prodúxose un error mentanto se tentaba de desaniciar el comentariu",
"An error occurred while trying to create the comment" : "Prodúxose un error mentanto se tentaba de crear el comentariu",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}",
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"]
"%1$s commented" : "%1$s comentó"
},
"nplurals=2; plural=(n != 1);");
+9 -25
View File
@@ -2,33 +2,17 @@
"Comments" : "Comentarios",
"You commented" : "Comentesti",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Comentesti en: %1$s",
"You commented on {file}" : "Comentesti en: {file}",
"%1$s commented on %2$s" : "%1$s comentó en: %2$s",
"{author} commented on {file}" : "{author} comentó en: {file}",
"You commented on %1$s" : "Comentesti en %1$s",
"You commented on {file}" : "Comentesti en {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{autor} comentó en {ficheru}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> pa ficheros",
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentóte nun comentariu de: «{file}»",
"Files app plugin to add comments to files" : "Plugin de l'aplicación Ficheros p'amestar comentarios a los ficheros",
"Edit comment" : "Editar el comentariu",
"Delete comment" : "Desaniciar el comentariu",
"Cancel edit" : "Anular la edición",
"New comment" : "Comentariu nuevu",
"Write a comment …" : "Escribi un comentariu…",
"Post comment" : "Espublizar el comentariu",
"@ for mentions, : for emoji, / for smart picker" : "@ pa les menciones, : pa los fustaxes, / pal selector intelixente",
"Could not reload comments" : "Nun se pudieron recargar los comentarios",
"No comments yet, start the conversation!" : "Nun hai comentarios, ¡anicia una conversación!",
"No more messages" : "Nun hai más mensaxes",
"Edit comment" : "Editar comentariu",
"Delete comment" : "Desaniciar comentariu",
"No comments yet, start the conversation!" : "Entá nun hai comentarios. ¡Entama una conversación!",
"Retry" : "Retentar",
"Failed to mark comments as read" : "Nun se pudieron marcar los comentarios como lleíos",
"Unable to load the comments list" : "Nun ye posible cargar la llista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentariu nuevu","{unread} comentarios nuevos"],
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"],
"Comment" : "Comentariu",
"An error occurred while trying to edit the comment" : "Prodúxose un error mentanto se tentaba d'editar el comentariu",
"Comment deleted" : "Desanicióse'l comentariu",
"An error occurred while trying to delete the comment" : "Prodúxose un error mentanto se tentaba de desaniciar el comentariu",
"An error occurred while trying to create the comment" : "Prodúxose un error mentanto se tentaba de crear el comentariu",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}",
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"]
"%1$s commented" : "%1$s comentó"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -1
View File
@@ -9,6 +9,7 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
"{author} commented on {file}" : "{author} коментира за {file}",
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
"{user} mentioned you in a comment on \"{file}\"" : "{user} ви спомена в коментар за “{file}”",
"Files app plugin to add comments to files" : "Добавка на приложението Файлове за добавяне на коментари към файловете",
"Edit comment" : "Редактирай коментра",
@@ -25,7 +26,6 @@ OC.L10N.register(
"Comment deleted" : " Изтрит е коментар",
"An error occurred while trying to delete the comment" : "Възникна грешка при опит за изтриване на коментара",
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"]
},
"nplurals=2; plural=(n != 1);");
+1 -1
View File
@@ -7,6 +7,7 @@
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
"{author} commented on {file}" : "{author} коментира за {file}",
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
"{user} mentioned you in a comment on \"{file}\"" : "{user} ви спомена в коментар за “{file}”",
"Files app plugin to add comments to files" : "Добавка на приложението Файлове за добавяне на коментари към файловете",
"Edit comment" : "Редактирай коментра",
@@ -23,7 +24,6 @@
"Comment deleted" : " Изтрит е коментар",
"An error occurred while trying to delete the comment" : "Възникна грешка при опит за изтриване на коментара",
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -1
View File
@@ -9,6 +9,7 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s ha escrit un comentari a %2$s",
"{author} commented on {file}" : "{author} ha escrit un comentari a {file}",
"<strong>Comments</strong> for files" : "<strong>Comentaris</strong> per a fitxers",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
"{user} mentioned you in a comment on \"{file}\"" : "{user} us ha esmentat en un comentari a «{file}»",
"Files app plugin to add comments to files" : "Connector de l'aplicació Fitxers per a afegir comentaris als fitxers",
"Edit comment" : "Edita el comentari",
@@ -28,7 +29,6 @@ OC.L10N.register(
"Comment deleted" : "S'ha suprimit el comentari",
"An error occurred while trying to delete the comment" : "S'ha produït un error en intentar suprimir el comentari",
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
"_%n unread comment_::_%n unread comments_" : ["%n comentari sense llegir","%n comentaris sense llegir"]
},
"nplurals=2; plural=(n != 1);");
+1 -1
View File
@@ -7,6 +7,7 @@
"%1$s commented on %2$s" : "%1$s ha escrit un comentari a %2$s",
"{author} commented on {file}" : "{author} ha escrit un comentari a {file}",
"<strong>Comments</strong> for files" : "<strong>Comentaris</strong> per a fitxers",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
"{user} mentioned you in a comment on \"{file}\"" : "{user} us ha esmentat en un comentari a «{file}»",
"Files app plugin to add comments to files" : "Connector de l'aplicació Fitxers per a afegir comentaris als fitxers",
"Edit comment" : "Edita el comentari",
@@ -26,7 +27,6 @@
"Comment deleted" : "S'ha suprimit el comentari",
"An error occurred while trying to delete the comment" : "S'ha produït un error en intentar suprimir el comentari",
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
"_%n unread comment_::_%n unread comments_" : ["%n comentari sense llegir","%n comentaris sense llegir"]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -3
View File
@@ -9,13 +9,12 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s okomentoval(a) %2$s",
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> k souborům",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
"{user} mentioned you in a comment on \"{file}\"" : "{user} vás zmínil(a) v komentáři u „{file}“",
"Files app plugin to add comments to files" : "Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
"Edit comment" : "Upravit komentář",
"Delete comment" : "Smazat komentář",
"Cancel edit" : "Zrušit úpravu",
"New comment" : "Nový komentář",
"Write a comment …" : "Napsat komentář…",
"Post comment" : "Odeslat komentář",
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
@@ -30,7 +29,6 @@ OC.L10N.register(
"Comment deleted" : "Komentář smazán",
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtené komentáře"]
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
+1 -3
View File
@@ -7,13 +7,12 @@
"%1$s commented on %2$s" : "%1$s okomentoval(a) %2$s",
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> k souborům",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
"{user} mentioned you in a comment on \"{file}\"" : "{user} vás zmínil(a) v komentáři u „{file}“",
"Files app plugin to add comments to files" : "Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
"Edit comment" : "Upravit komentář",
"Delete comment" : "Smazat komentář",
"Cancel edit" : "Zrušit úpravu",
"New comment" : "Nový komentář",
"Write a comment …" : "Napsat komentář…",
"Post comment" : "Odeslat komentář",
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
@@ -28,7 +27,6 @@
"Comment deleted" : "Komentář smazán",
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtené komentáře"]
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}
+1 -1
View File
@@ -9,6 +9,7 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s kommenterede %2$s",
"{author} commented on {file}" : "{author} kommenterede {file}",
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
"{user} mentioned you in a comment on \"{file}\"" : "{user} nævnte dig i en kommentar til \"{file}\"",
"Files app plugin to add comments to files" : "Files app plugin til at tilføje kommentarer til filer",
"Edit comment" : "Rediger kommentar",
@@ -26,7 +27,6 @@ OC.L10N.register(
"Comment deleted" : "Kommentar slettet",
"An error occurred while trying to delete the comment" : "Der opstod en fejl under forsøget på at slette kommentaren",
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"]
},
"nplurals=2; plural=(n != 1);");
+1 -1
View File
@@ -7,6 +7,7 @@
"%1$s commented on %2$s" : "%1$s kommenterede %2$s",
"{author} commented on {file}" : "{author} kommenterede {file}",
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
"{user} mentioned you in a comment on \"{file}\"" : "{user} nævnte dig i en kommentar til \"{file}\"",
"Files app plugin to add comments to files" : "Files app plugin til at tilføje kommentarer til filer",
"Edit comment" : "Rediger kommentar",
@@ -24,7 +25,6 @@
"Comment deleted" : "Kommentar slettet",
"An error occurred while trying to delete the comment" : "Der opstod en fejl under forsøget på at slette kommentaren",
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -5
View File
@@ -9,19 +9,16 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat dich in einem Kommentar zu \"{file}\" erwähnt",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
"Cancel edit" : "Bearbeiten abbrechen",
"New comment" : "Neuer Kommentar",
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
"No more messages" : "Keine weiteren Nachrichten",
"Retry" : "Wiederholen",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste konnte nicht geladen werden",
"_1 new comment_::_{unread} new comments_" : ["1 neuer Kommentar","[unread] neue Kommentare"],
"Comment" : "Kommentar",
@@ -29,7 +26,6 @@ OC.L10N.register(
"Comment deleted" : "Kommentar gelöscht",
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
},
"nplurals=2; plural=(n != 1);");
+1 -5
View File
@@ -7,19 +7,16 @@
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat dich in einem Kommentar zu \"{file}\" erwähnt",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
"Cancel edit" : "Bearbeiten abbrechen",
"New comment" : "Neuer Kommentar",
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
"No more messages" : "Keine weiteren Nachrichten",
"Retry" : "Wiederholen",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste konnte nicht geladen werden",
"_1 new comment_::_{unread} new comments_" : ["1 neuer Kommentar","[unread] neue Kommentare"],
"Comment" : "Kommentar",
@@ -27,7 +24,6 @@
"Comment deleted" : "Kommentar gelöscht",
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -4
View File
@@ -9,14 +9,12 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Sie wurden in einem Kommentar zu \"{file}\" von einem Konto erwähnt, das inzwischen gelöscht wurde.",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat Sie in einem Kommentar zu \"{file}\" erwähnt",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
"Cancel edit" : "Bearbeiten abbrechen",
"New comment" : "Neuer Kommentar",
"Write a comment …" : "Schreiben Sie einen Kommentar …",
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
@@ -31,7 +29,6 @@ OC.L10N.register(
"Comment deleted" : "Kommentar gelöscht",
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
},
"nplurals=2; plural=(n != 1);");
+1 -4
View File
@@ -7,14 +7,12 @@
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Sie wurden in einem Kommentar zu \"{file}\" von einem Konto erwähnt, das inzwischen gelöscht wurde.",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat Sie in einem Kommentar zu \"{file}\" erwähnt",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
"Cancel edit" : "Bearbeiten abbrechen",
"New comment" : "Neuer Kommentar",
"Write a comment …" : "Schreiben Sie einen Kommentar …",
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
@@ -29,7 +27,6 @@
"Comment deleted" : "Kommentar gelöscht",
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -2
View File
@@ -9,12 +9,12 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s",
"{author} commented on {file}" : "Ο {author} σχολίασε στο {file}",
"<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
"{user} mentioned you in a comment on \"{file}\"" : "Ο/η {user} σας ανέφερε σε σχόλιο στο “{file}”",
"Files app plugin to add comments to files" : "Επέκταση της εφαρμογής Αρχεία που επιτρέπει την προσθήκη σχολίων σε αρχεία",
"Edit comment" : "Επεξεργασία σχολίου",
"Delete comment" : "Διαγραφή σχολίου",
"Cancel edit" : "Ακύρωση επεξεργασίας",
"New comment" : "Νέο σχόλιο",
"Post comment" : "Αναρτήστε σχόλιο",
"No comments yet, start the conversation!" : "Δεν υπάρχουν σχόλια, ξεκινήστε την συζήτηση!",
"No more messages" : "Δεν υπάρχουν άλλα μηνύματα",
@@ -26,7 +26,6 @@ OC.L10N.register(
"Comment deleted" : "Το σχόλιο διαγράφηκε",
"An error occurred while trying to delete the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"]
},
"nplurals=2; plural=(n != 1);");
+1 -2
View File
@@ -7,12 +7,12 @@
"%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s",
"{author} commented on {file}" : "Ο {author} σχολίασε στο {file}",
"<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
"{user} mentioned you in a comment on \"{file}\"" : "Ο/η {user} σας ανέφερε σε σχόλιο στο “{file}”",
"Files app plugin to add comments to files" : "Επέκταση της εφαρμογής Αρχεία που επιτρέπει την προσθήκη σχολίων σε αρχεία",
"Edit comment" : "Επεξεργασία σχολίου",
"Delete comment" : "Διαγραφή σχολίου",
"Cancel edit" : "Ακύρωση επεξεργασίας",
"New comment" : "Νέο σχόλιο",
"Post comment" : "Αναρτήστε σχόλιο",
"No comments yet, start the conversation!" : "Δεν υπάρχουν σχόλια, ξεκινήστε την συζήτηση!",
"No more messages" : "Δεν υπάρχουν άλλα μηνύματα",
@@ -24,7 +24,6 @@
"Comment deleted" : "Το σχόλιο διαγράφηκε",
"An error occurred while trying to delete the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -4
View File
@@ -9,14 +9,12 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s commented on %2$s",
"{author} commented on {file}" : "{author} commented on {file}",
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "You were mentioned on \"{file}\", in a comment by an account that has since been deleted",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentioned you in a comment on \"{file}\"",
"Files app plugin to add comments to files" : "Files app plugin to add comments to files",
"Edit comment" : "Edit comment",
"Delete comment" : "Delete comment",
"Cancel edit" : "Cancel edit",
"New comment" : "New comment",
"Write a comment …" : "Write a comment …",
"Post comment" : "Post comment",
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
"Could not reload comments" : "Could not reload comments",
@@ -31,7 +29,6 @@ OC.L10N.register(
"Comment deleted" : "Comment deleted",
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"]
},
"nplurals=2; plural=(n != 1);");
+1 -4
View File
@@ -7,14 +7,12 @@
"%1$s commented on %2$s" : "%1$s commented on %2$s",
"{author} commented on {file}" : "{author} commented on {file}",
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "You were mentioned on \"{file}\", in a comment by an account that has since been deleted",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentioned you in a comment on \"{file}\"",
"Files app plugin to add comments to files" : "Files app plugin to add comments to files",
"Edit comment" : "Edit comment",
"Delete comment" : "Delete comment",
"Cancel edit" : "Cancel edit",
"New comment" : "New comment",
"Write a comment …" : "Write a comment …",
"Post comment" : "Post comment",
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
"Could not reload comments" : "Could not reload comments",
@@ -29,7 +27,6 @@
"Comment deleted" : "Comment deleted",
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+1 -3
View File
@@ -9,13 +9,12 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"{user} mentioned you in a comment on \"{file}\"" : "{user} te mencionó en un comentario en “{file}”",
"Files app plugin to add comments to files" : "Plugin de la app de Archivos para añadir comentarios a archivos.",
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"Cancel edit" : "Cacelar edición",
"New comment" : "Comentario nuevo",
"Write a comment …" : "Escribir un comentario …",
"Post comment" : "Publicar comentario",
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoji, / para selector inteligente",
"Could not reload comments" : "No se pudieron recargar los comentarios",
@@ -30,7 +29,6 @@ OC.L10N.register(
"Comment deleted" : "Comentario borrado",
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"]
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+1 -3
View File
@@ -7,13 +7,12 @@
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"{user} mentioned you in a comment on \"{file}\"" : "{user} te mencionó en un comentario en “{file}”",
"Files app plugin to add comments to files" : "Plugin de la app de Archivos para añadir comentarios a archivos.",
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"Cancel edit" : "Cacelar edición",
"New comment" : "Comentario nuevo",
"Write a comment …" : "Escribir un comentario …",
"Post comment" : "Publicar comentario",
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoji, / para selector inteligente",
"Could not reload comments" : "No se pudieron recargar los comentarios",
@@ -28,7 +27,6 @@
"Comment deleted" : "Comentario borrado",
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"]
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
+1 -1
View File
@@ -9,6 +9,7 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
"{user} mentioned you in a comment on \"{file}\"" : "{user} te mencionó en un comentario en \"{file}\"",
"Files app plugin to add comments to files" : "Plugin de la aplicación de archivos para agregar comentarios a los archivos",
"Edit comment" : "Editar comentario",
@@ -26,7 +27,6 @@ OC.L10N.register(
"Comment deleted" : "Comentario eliminado",
"An error occurred while trying to delete the comment" : "Ocurrió un error al intentar eliminar el comentario",
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

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