Compare commits

..

992 Commits

Author SHA1 Message Date
John Molakvoæ f5ae332e60 Merge pull request #40974 from nextcloud/release/26.0.8_rc2 2023-10-19 17:18:21 +02:00
Andy Scherzinger 2220428f74 Merge pull request #40989 from nextcloud/26_oc10_13
[stable26] Update version.php to owncloud 10.13
2023-10-19 17:09:13 +02:00
Andy Scherzinger 25ebde19a0 Support migration from oC 10.13
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-10-19 17:05:27 +02:00
John Molakvoæ fba3a5f41d 26.0.8 RC2
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-10-19 13:51:28 +02:00
Nextcloud bot b0e4d25df1 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-19 00:28:32 +00:00
Nextcloud bot 3b1b997322 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-18 00:52:55 +00:00
Nextcloud bot d90de779d1 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-17 00:28:00 +00:00
Nextcloud bot 47248b6be4 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-16 00:28:46 +00:00
Nextcloud bot 3f9c450158 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-15 00:27:50 +00:00
Nextcloud bot b556f00a4a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-14 00:28:26 +00:00
Nextcloud bot 5627fc4557 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-13 00:47:25 +00:00
Arthur Schiwon 2196e3aac9 Merge pull request #40841 from nextcloud/release/26.0.8_rc1
26.0.8 RC1
2023-10-12 14:52:58 +02:00
Arthur Schiwon 2e43819fc6 Merge pull request #40883 from nextcloud/backport/40413/stable26
[stable26] Add in:users as a search filter to limit searches to users
2023-10-12 14:38:54 +02:00
Arthur Schiwon 262631b7f6 Merge pull request #40303 from nextcloud/backport/39693/39693-stable26
[stable26] enable download configuration on circles shares
2023-10-12 13:15:38 +02:00
nextcloud-command 5ae215a6f1 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-10-12 11:00:55 +00:00
Arthur Schiwon 1a8a867b03 fix(meta): copyright note 2023-10-12 12:36:19 +02:00
sorbaugh 2f5900c8df remove unused properties
Signed-off-by: sorbaugh <stephan.orbaugh@nextcloud.com>
2023-10-12 12:36:19 +02:00
sorbaugh 94265812f2 Remove unneeded includes.
Usage:
1. Type a string in the search bar
2. Add in:users filter to avoid unnecessary searches in other apps
2023-10-12 12:36:18 +02:00
sorbaugh fc9137cabc Keep Search Provider but remove actual search and display on the searchlist dialog. Will revisit in future search result list in future issue.
Usage:
1. Type a string in the search bar
2. Add in:users filter to avoid unnecessary searches in other apps
2023-10-12 12:36:18 +02:00
sorbaugh 65831e98d8 Add new user filter to search.
Add regex to prevent filter collision in user-list page

Usage:
1. Type a string in the search bar
2. Add in:users to display only users in the search result
2023-10-12 12:36:18 +02:00
Arthur Schiwon 33994b2d81 Merge pull request #38555 from nextcloud/backport/36857/stable26
[stable26] fix unencrypted_size for folders when scanning the filesystem with encryption enabled
2023-10-12 09:14:04 +02:00
Maxence Lange e70856ac2f enable download configuration on circles shares
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-10-12 09:12:39 +02:00
Nextcloud bot 3b5e854e8f Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-12 00:25:49 +00:00
Arthur Schiwon 96eca4a3ea fix(ci): update return type in php doc
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-10-11 14:41:43 +02:00
Robin Appelman 29c36f85b0 fix type hints
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-10-11 14:41:43 +02:00
Robin Appelman 0fde240089 fix unencrypted folder size when no children with unencrypted size set are left
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-10-11 14:41:43 +02:00
Robin Appelman ed6606e86b fix unencrypted_size for files when scanning
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-10-11 14:41:43 +02:00
Robin Appelman 1a70ba6421 fix unencrypted_size for folders when scanning the filesystem with encryption enabled
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-10-11 14:41:43 +02:00
Arthur Schiwon f5277aa1a9 Merge pull request #40862 from nextcloud/backport/40843/stable26
[stable26] remove leading slash
2023-10-11 12:22:34 +02:00
Arthur Schiwon 2fc6a6751a Merge pull request #38815 from nextcloud/backport/38490/stable26
[stable26] emit an event when a message is logged
2023-10-11 12:10:38 +02:00
Arthur Schiwon 09d352f8c9 Merge pull request #38250 from nextcloud/backport/37971/stable26
[stable26] Add commands for basic file actions
2023-10-11 11:06:26 +02:00
Maxence Lange 7482df7e66 remove leading slash
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-10-11 08:44:33 +00:00
Arthur Schiwon d0fb60891d fix(api): set the correct version in since annotation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-10-11 10:44:13 +02:00
Maxence Lange 76340f7ea8 Merge pull request #40781 from nextcloud/backport/40745/stable26
[stable26] fix ocm-provider rewrite rules
2023-10-11 07:25:41 -01:00
Nextcloud bot 02befe415b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-11 00:28:31 +00:00
Arthur Schiwon 5ed3c06d77 Merge pull request #40851 from nextcloud/backport/40785/stable26
[stable26] fix: Log critical session renewal and logout paths
2023-10-10 19:32:31 +02:00
Arthur Schiwon d6da782a81 Merge pull request #40846 from nextcloud/backport/40572/stable26
[stable26] Clear progress bar text when hiding it
2023-10-10 15:23:53 +02:00
Christoph Wurst a5241ba93e fix: Log critical session renewal and logout paths
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-10-10 10:06:00 +00:00
Arthur Schiwon 705944bfec Merge pull request #40632 from nextcloud/backport/40541/stable26
[stable26] fix(dav): expand recurrences when searching
2023-10-10 10:49:49 +02:00
Arthur Schiwon 7f68da45e7 Merge pull request #40384 from nextcloud/backport/36830/stable26
[stable26] fix: Avoid failing with duplicate checks
2023-10-10 10:09:19 +02:00
Nextcloud bot 4ee5895fb5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-10 00:52:04 +00:00
Daniel Calviño Sánchez 3a91a51b4c Clear progress bar text when hiding it
When files are uploaded the progress bar text is set accordingly.
However, other operations that show the progress bar, like deleting
files, do not explicitly set any text. Due to that, when the progress
bar was shown again after uploading files the text did not match the
operation. To solve that now the text is cleared when the progress bar
is hidden (it is not cleared when it is shown as in some cases the text
is set already before showing the progress bar).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-10-09 23:41:28 +00:00
Arthur Schiwon 19ce7bbb91 Merge pull request #40684 from nextcloud/backport/40675/stable26
[stable26] fix(unifiedsearch): Allow searching for "0"
2023-10-09 22:57:16 +02:00
Arthur Schiwon 582b42bb8e Merge pull request #40351 from nextcloud/backport/40349/stable26
[stable26] fix(autoloader): no apcu no side effects
2023-10-09 22:55:00 +02:00
Arthur Schiwon 961956553b Merge pull request #40740 from AaronDewes/stable26
[stable26] Fix: Escape group names for LDAP
2023-10-09 22:53:55 +02:00
Arthur Schiwon 83e518a250 26.0.8 RC1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-10-09 22:37:14 +02:00
Nextcloud bot ec67b515fc Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-09 00:28:57 +00:00
Nextcloud bot 70f9a5a5b5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-08 00:30:10 +00:00
Arthur Schiwon a84d1c70c5 Merge pull request #40798 from nextcloud/backport/40795/stable26
[stable26] fix(user): Log affected user of app token login name mismatch
2023-10-06 13:33:33 +02:00
Christoph Wurst 02e27b8db6 fix(user): Log affected user of app token login name mismatch
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-10-06 08:32:46 +00:00
Nextcloud bot 91bb6b0162 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-06 00:26:38 +00:00
Maxence Lange 20170897bd Update .htaccess
Co-authored-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-10-05 08:56:08 +00:00
Maxence Lange 2f78b6e58b fix ocm-provider rewrite rules
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-10-05 08:56:08 +00:00
Nextcloud bot 7c5b823d8a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-05 00:40:56 +00:00
Nextcloud bot df622dbad3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-04 00:27:19 +00:00
Nextcloud bot ab350fcee5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-03 00:26:24 +00:00
Côme Chilliet e04cb81710 Merge pull request #37201 from AaronDewes/fix/ldap-filter-generation
Fix: Escape group names for LDAP
2023-10-02 11:09:17 +02:00
Nextcloud bot 93ec86336f Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-02 00:26:12 +00:00
Nextcloud bot cc3ef50811 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-01 00:26:26 +00:00
Nextcloud bot c3f10dcdb7 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-30 00:26:15 +00:00
Kate 89296bf8e5 Merge pull request #40694 from nextcloud/fix/dashboard-widgets-api-stable26
[stable26] Fix Dashboard IManager getWidgets return annotation
2023-09-29 09:58:58 +02:00
jld3103 ab2c222c12 Fix Dashboard IManager getWidgets return annotation
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-09-29 09:01:21 +02:00
Nextcloud bot be48278d3b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-29 00:25:51 +00:00
Christoph Wurst f3c1bd610c fix(unifiedsearch): Allow searching for "0"
empty("0") evaluates to true

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-09-28 15:50:10 +00:00
Louis d4578ce574 Merge pull request #40641 from nextcloud/backport/40619/stable26
[stable26] Use proper app id in Version.vue
2023-09-28 06:14:12 +02:00
Nextcloud bot 4832eb423c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-28 00:28:17 +00:00
Nextcloud bot f7d5c91081 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-27 00:27:14 +00:00
Richard Steinmetz ab0a39deaf fix(dav): expand recurrences when searching
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-09-26 16:03:42 +02:00
nextcloud-command d599761332 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-09-26 13:32:34 +00:00
Louis Chemineau d31128f2aa Use proper app id in Version.vue
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-09-26 13:12:00 +00:00
Arthur Schiwon efde16a612 Merge pull request #40370 from nextcloud/backport/39128/stable26
[stable26] fix(ldap): avatar is not being fetched
2023-09-26 11:46:27 +02:00
Nextcloud bot 6fd007398d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-26 00:28:27 +00:00
Ferdinand Thiessen 3970b36bb3 Merge pull request #40606 from nextcloud/fix/trashbin-should-not-throw-while-restoring
[stable26] Do not throw while restoring unloaded files list entries
2023-09-25 10:06:19 +02:00
Nextcloud bot f6b4fc9e21 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-25 00:30:08 +00:00
Ferdinand Thiessen bf23bebaa9 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-09-24 17:53:33 +02:00
Ferdinand Thiessen 95acf8a0e9 fix(files_trashbin): Only remove element if loaded
Make sure to only remove elements from file list (while restoring)
if the element was added to the file list (might not be added, if the list is scrolling).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-09-24 17:49:21 +02:00
Nextcloud bot b1a4b3b764 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-24 00:28:17 +00:00
Maxence Lange 021d73e705 Merge pull request #40592 from nextcloud/backport/39574/39574-stable26
[stable26] ocm services
2023-09-23 14:08:09 -01:00
Nextcloud bot 1251d48e6c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-23 00:28:19 +00:00
Maxence Lange 1bd9d9143b ocm services
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-09-22 19:46:42 -01:00
Nextcloud bot 110b7848d8 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-22 00:32:20 +00:00
Nextcloud bot fbfc171ed5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-21 00:29:45 +00:00
Arthur Schiwon 9b025d0f48 Merge pull request #40528 from nextcloud/release/26.0.7
26.0.7
2023-09-20 14:55:36 +02:00
Arthur Schiwon ce94f9fecf 26.0.7
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-09-20 11:57:30 +02:00
Joas Schilling 59871eb38c Merge pull request #40507 from nextcloud/backport/40488/stable26
[stable26] fix(comments): Use provided offset in best effort when loading comments
2023-09-20 10:23:52 +02:00
Nextcloud bot d4d7c3afe7 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-20 00:27:49 +00:00
Joas Schilling e772fe68a4 fix(comments): Use provided offset in best effort when loading comments
When we didn't find the "$lastKnownComment" the whole condition was ignored.
Now we still use the ID as an offset.
This is required as a fall-back for expired messages in Talk
and deleted comments in other apps.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-09-19 14:06:12 +00:00
Nextcloud bot 702883521f Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-19 00:24:14 +00:00
Andy Scherzinger 44d894f316 Merge pull request #40476 from nextcloud/backport/39699/stable26
[stable26] Hide shares by disabled users
2023-09-18 19:29:37 +02:00
Daniel 08e2fa0258 Merge pull request #40403 from nextcloud/backport/40301/stable26 2023-09-18 18:19:09 +02:00
Daniel 4932d00192 Merge pull request #40445 from nextcloud/backport/40418/stable26 2023-09-18 18:18:18 +02:00
Robin Appelman c1452aa6bd emit an event when a message is logged
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-18 16:33:30 +02:00
Daniel Kesselberg a75d3e5004 fix: don't use davtags for tag search
1. https://github.com/nextcloud/server/pull/26813 Initial implementation with support for systemtags and davtags (vcategory)
2. https://github.com/nextcloud/server/pull/39062 Additional check if the given tag exists, though ISystemTagManager.getAllTags only looks for systemtags

Therefore it's not possible anymore to search for davtags and unnecessary to join the other tables.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-09-18 14:14:27 +02:00
Daniel Kesselberg 3a55fb948f fix(caldav): add webroot to objectid for activities
A calendar uri includes the webroot: example.com/cloud/remote.php/dav/calendars/alice/personal/
The calendar app uses base64(calendar uri) as identifier for calendar objects.

Without this patch the links from activity app to calendar app don't work for installations in a subdirectory.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-09-18 14:09:53 +02:00
Côme Chilliet 49d52dd33a Use nullsafe call syntax instead of additionnal check
Co-authored-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-09-18 10:38:23 +00:00
Côme Chilliet 90a14dbdb3 Fix tests, add test for the new feature
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-18 10:38:22 +00:00
Côme Chilliet f0c3cbeeae Set files_sharing:hide_disabled_user_shares to 'yes' to hide shares from disabled users
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-18 10:38:22 +00:00
Nextcloud bot c0b95e9cc6 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-18 00:27:07 +00:00
Nextcloud bot 365fc2ea3c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-17 00:27:18 +00:00
Nextcloud bot 92050195ab Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-16 00:27:45 +00:00
Julius Härtl 631a964a1a Merge pull request #40380 from nextcloud/backport/38808/stable26 2023-09-15 11:51:24 +02:00
Julius Härtl 9fc79b3a9e Merge pull request #40352 from nextcloud/bugfix/version-events-26 2023-09-15 10:53:22 +02:00
nextcloud-command 3c510d0296 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-09-15 07:33:18 +00:00
Julius Härtl 87358baa79 feat: Add event for version click
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-15 09:23:24 +02:00
Julius Härtl f9d7d4542b feat: Add events for version restore
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-15 09:23:24 +02:00
Nextcloud bot b29b153a6d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-15 00:26:53 +00:00
Arthur Schiwon 1f6197544b Merge pull request #40400 from nextcloud/release/26.0.6
26.0.6
2023-09-14 12:34:01 +02:00
Nextcloud bot 9d591aedef Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-14 00:27:13 +00:00
Arthur Schiwon 2e41d3d149 26.0.6
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-09-13 19:50:56 +02:00
Nextcloud bot f54aa17f84 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-13 00:24:54 +00:00
Julius Härtl 3ccd36e307 fix: Avoid failing with duplicate checks
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-12 15:13:33 +02:00
Julius Härtl 81f3ed25f0 fix: Only read unencrypted_size when file is actually encrypted
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-12 15:06:01 +02:00
Julius Härtl 6a5dc8ce06 fix: Only store unencrypted_size if path should be encrypted
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-12 15:06:01 +02:00
Nextcloud bot b596f0e0ab Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-12 00:28:06 +00:00
Arthur Schiwon 68a85c94b7 fix(LDAP): add return type hint and description
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-09-11 18:04:00 +00:00
Arthur Schiwon 2c3badc32a fix(ldap): avatar is not being fetched
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-09-11 18:04:00 +00:00
Nextcloud bot 87ac2e134f Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-11 00:27:15 +00:00
Nextcloud bot cb2d077041 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-10 00:25:35 +00:00
Nextcloud bot 7399a2c758 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-09 00:25:59 +00:00
Arthur Schiwon e4fbb49f38 fix(autoloader): no apcu no side effects
apcu lead to side effects especially with app management and (soft)
inter-dependencies, and lead also to 500 server errors. While we could
add management to clear apcu cache in many cases (may stil leave edge
cases) the performance benefit is marginally as also class maps are
already cached in opcache. Hence, the simple and effective way to go is
to not use apcu for autoloading.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-09-08 18:56:19 +00:00
Nextcloud bot 2642a330b4 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-08 00:31:44 +00:00
Arthur Schiwon c5d306ab71 Merge pull request #40277 from nextcloud/release/26.0.6_rc1
26.0.6 RC1
2023-09-07 11:53:37 +02:00
Côme Chilliet 5434b35ac7 Merge pull request #40280 from nextcloud/backport/40233/stable26
[stable26] Detect aborted connection in OC\Files\View and stop writing data to the output buffer
2023-09-07 09:31:44 +02:00
Anna 49a6dac6c9 Merge pull request #40302 from nextcloud/backport/40293/stable26
[stable26] fix(ratelimit): Only use memory cache backend for redis
2023-09-07 08:55:12 +02:00
Tobias Kaminsky a3d9c84b39 Merge pull request #40310 from nextcloud/backport/40292/stable26
[stable26] fix(CalDAV): check birthday calendar owner
2023-09-07 08:23:25 +02:00
Nextcloud bot 677998eb47 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-07 00:29:22 +00:00
Anna Larch 22a7e3796f fix(CalDAV): check birthday calendar owner
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-09-06 17:21:20 +00:00
Joas Schilling a1cb0b4460 fix(ratelimit): Only use memory cache backend for redis
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-09-06 18:09:54 +02:00
Andy Scherzinger 0be524db6d Merge pull request #40291 from nextcloud/backport/39895/stable26
[stable26] admin have no special rights on users' entries
2023-09-06 17:17:35 +02:00
Robin Appelman 2f662bf561 minor fixes for get/put
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-06 14:41:27 +02:00
Robin Appelman 29fd9ac6da add command to write a file
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-06 14:41:21 +02:00
Robin Appelman b248d56fd1 move get/delete commands to files namespace, make get take the output as argument instead of option
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-06 14:41:15 +02:00
Robin Appelman 1daf6a82b7 add command to delete a file
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-06 14:41:09 +02:00
Robin Appelman 19d64e8184 add command to get a file from the filesystem
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-06 14:41:03 +02:00
Maxence Lange 82e269c521 admin have no special rights on users' entries
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-09-06 12:40:46 +00:00
max-nextcloud dc73199e2f Merge pull request #39991 from nextcloud/backport/39770/stable26
[stable26] fix: always use display name from correct backend
2023-09-06 13:26:42 +02:00
Daniel 72a3295c05 Merge pull request #39861 from nextcloud/caldav-share-preload-26 2023-09-06 12:37:41 +02:00
Arthur Schiwon d5f6249b76 Merge pull request #40167 from nextcloud/backport/40108/stable26
[stable26] feat: add switch to disable dns pinning
2023-09-06 10:34:48 +02:00
Arthur Schiwon 4230aa8dd3 Merge pull request #40085 from nextcloud/backport/40077/stable26
[stable26] fix(cache): Remove displayname cache entry on delete
2023-09-05 19:11:28 +02:00
Arthur Schiwon f756d8f70a Merge pull request #40076 from nextcloud/fix/stable26/remove-pw-from-logging
[stable26] Do not log passwords in debug mode
2023-09-05 19:09:16 +02:00
Côme Chilliet 342cb33f71 Apply suggestions from code review in View.php
Co-authored-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-05 17:06:11 +00:00
Côme Chilliet ea2b28e1fc Lower log to debug for connections aborted by the client
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-05 17:06:11 +00:00
Côme Chilliet b7d82f7c01 Detect aborted connection in OC\Files\View and stop writing data to the
output buffer

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-05 17:06:10 +00:00
Arthur Schiwon 1c29d87f48 Merge pull request #40232 from nextcloud/sharing-mask-wrapper-26
[26] move share permission logic to storage wrapper
2023-09-05 19:04:41 +02:00
Arthur Schiwon f755b50a6b Merge pull request #40187 from nextcloud/backport/39017/stable26
[stable26] fix(s3): fix handling verify_bucket_exists parameter
2023-09-05 19:00:40 +02:00
Arthur Schiwon db561902ff Merge pull request #39816 from nextcloud/backport/39700/stable26
[stable26] fix: close cursor after reading the invitation
2023-09-05 19:00:23 +02:00
Arthur Schiwon f7d890cd66 Merge pull request #39726 from nextcloud/backport/39698/stable26
[stable26] Catch more invalid cache source storage paths
2023-09-05 18:59:48 +02:00
Arthur Schiwon 82e165726f 26.0.6 RC1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-09-05 17:41:26 +02:00
Daniel 02e009867b Merge pull request #40260 from nextcloud/backport/40234/stable26 2023-09-05 09:52:35 +02:00
John Molakvoæ 22d19af921 Merge pull request #40229 from nextcloud/backport/40195/stable26 2023-09-05 08:34:31 +02:00
Nextcloud bot 3be562dbba Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-05 00:27:48 +00:00
Daniel Kesselberg c2a2416e0c enh: skip processing for empty response
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-09-04 20:17:17 +00:00
Robin Appelman 065f636cb7 cleanup di for share permissions wrapper
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 14:21:19 +02:00
Robin Appelman 1340133526 more share permission logic to storage wrapper
this way we only have to determine the share permissions once

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 14:21:11 +02:00
John Molakvoæ c3f146b965 fix: prevent sharing permissions on user root folder
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-09-04 09:19:44 +00:00
Nextcloud bot 057b65ddb9 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-04 00:32:48 +00:00
Nextcloud bot f3e3f9be46 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-03 00:25:51 +00:00
Nextcloud bot 322001fc77 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-02 00:27:07 +00:00
Nextcloud bot 844a8bb31a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-09-01 00:29:55 +00:00
Thomas Citharel 7deef46668 fix(s3): fix handling verify_bucket_exists parameter
If 'verify_bucket_exists' is set to false in the config.php s3 configuration, it's supposed to avoid
verifying that the bucket exists. However empty(falsy) will  always return true, so this condition
would not work.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-08-31 21:33:05 +00:00
Nextcloud bot ce71b03d60 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-31 00:35:05 +00:00
Daniel Kesselberg 652a8a8f7a feat: add switch to disable dns pinning
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-08-30 22:21:55 +02:00
Nextcloud bot 4c95301f81 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-30 00:31:58 +00:00
Andy Scherzinger fa49b9fba0 Merge pull request #40086 from nextcloud/backport/40081/stable26
[stable26] fix(CalDAV): check voject exists before attempting any operation
2023-08-29 13:37:19 +02:00
Anna Larch 651405a320 fix(CalDAV): check voject exists before attempting any operation
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-08-29 08:18:30 +00:00
Joas Schilling 61e61fb9c3 fix(cache): Remove displayname cache entry on delete
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-08-29 08:53:09 +02:00
Nextcloud bot e917d517b0 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-29 00:31:19 +00:00
Anna Larch 91e081b064 Do not log passwords in debug mode
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-08-28 14:35:04 +02:00
Andy Scherzinger f3619d8558 Merge pull request #39872 from nextcloud/backport/38714/stable26
[stable26] select the fileid first when looking for incomplete files
2023-08-28 13:44:48 +02:00
Ferdinand Thiessen 16f8431426 Merge pull request #40061 from nextcloud/backport/26-upload-progress
[stable26] Improve upload progress visualization
2023-08-28 12:53:42 +02:00
Nextcloud bot b632c1f108 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-28 00:26:49 +00:00
Nextcloud bot df77035ad2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-27 00:31:03 +00:00
Ferdinand Thiessen d85851093f fix: Upload progress shows number of files to upload and current index
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-08-26 15:10:15 +02:00
Ferdinand Thiessen 8416432953 fix: Make smooth bitrate and remaining upload time work when unset
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-08-26 15:07:31 +02:00
Phlogi baa1573a99 Smooth time remaining, bitrate and stabilize user information
Besides the existing moving average, a smoothing factor is introduced for the time remaining display as well as the bitrate.
Furthermore, half of the buffer needs to be filled before the first prediction is displayed to the user. This reduces volatile and jumping durations towards the user and improves usability.

Signed-off-by: Cyrill H. <phlogi@posteo.de>
Co-authored-by: Carl Schwan <carl@carlschwan.eu>
2023-08-26 15:07:31 +02:00
Nextcloud bot 722bbf642b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-26 00:32:56 +00:00
Anna 120d0263a1 Merge pull request #40035 from nextcloud/fix/stable26/log-condition-user
[stable26] fix(logging): user log condition feature
2023-08-25 08:08:39 +02:00
Nextcloud bot e39294e4a7 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-25 00:34:43 +00:00
Côme Chilliet 36f9ca2218 fix(loggging): user log condition feature
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-08-24 15:04:54 +02:00
Nextcloud bot c19469872b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-24 01:01:33 +00:00
John Molakvoæ 554cb0b1d2 Merge pull request #40006 from nextcloud/automated/noid/stable26-update-ca-cert-bundle 2023-08-23 08:09:34 +02:00
nextcloud-command 3c269b41c6 fix(security): Update CA certificate bundle
Signed-off-by: GitHub <noreply@github.com>
2023-08-23 02:09:59 +00:00
Nextcloud bot 0781d6b702 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-23 00:28:36 +00:00
Max aa709291cf fix: always use display name from correct backend
Overwrite the display name after the account is initialized
when using an instacne of IGetDisplayNameBackend.

Before when using a variation of user_oidc and registering
a Backend.php implementing IGetDisplayNameBackend
the personal setting page shows 'uid'.

The UserManager/AccountManager seems not to use consistently
the correct backend.

The correct backend is used in this sequence:

server/lib/private/TemplateLayout.php

          $userDisplayName = \OC_User::getDisplayName();
          $this->assign(user_displayname, $userDisplayName);

In the settings page, it definitely not calls the registered backend,
but seems to fall back to default Backend and shows (usually) uid
or a value from the standard account property table.

Signed-off-by: Max <max@nextcloud.com>
2023-08-22 09:47:51 +02:00
Nextcloud bot 37ca7270ce Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-22 00:52:16 +00:00
Anna fcaa6760af Merge pull request #39935 from nextcloud/fix/stable26/transfer-ownership
[stable26] fix: don't emit Hooks when hookpaths are empty
2023-08-21 09:06:18 +02:00
Nextcloud bot 61ee7be033 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-21 00:27:59 +00:00
Nextcloud bot 75218267b2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-20 00:34:16 +00:00
Nextcloud bot c2f767abb0 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-19 00:34:22 +00:00
Joas Schilling ae6b34feda Merge pull request #39948 from nextcloud/backport/39910/stable26
[stable26] fix(memcache): Fix comparison of Memcache configs to classes
2023-08-18 13:21:12 +02:00
Nextcloud bot 1d2c975159 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-18 00:36:11 +00:00
Joas Schilling 361d8f2742 fix(memcache): Fix comparison of Memcache configs to classes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-08-17 21:48:23 +00:00
Ferdinand Thiessen 168dc8f964 Merge pull request #39931 from nextcloud/backport/39906/stable26
[stable26] Prevent PHP warning when CacheEntry extension keys are not set
2023-08-17 15:58:44 +02:00
Anna Larch fe26271c78 fix: don't emit Hooks when hookpaths are empty
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-08-17 15:00:49 +02:00
Ferdinand Thiessen 15ea32c1e1 fix: Prevent PHP warnings when optional CacheEntry attributes are unset
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-08-17 10:03:53 +00:00
Ferdinand Thiessen b6b0c7e47a tests: Add test for CacheEntry getters
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-08-17 10:03:53 +00:00
Nextcloud bot 3f81ebb5a2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-17 00:34:09 +00:00
Ferdinand Thiessen 3217558a80 Merge pull request #39917 from nextcloud/backport/38665/stable26
[stable26] fix(weather_status): Pass address as param to OSM API
2023-08-16 22:18:13 +02:00
Julius Härtl 59c70f0c05 Merge pull request #39874 from nextcloud/backport/39786/stable26 2023-08-16 20:53:59 +02:00
Ferdinand Thiessen 01d6f12906 fix(weather_status): Pass address as param
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-08-16 16:25:48 +00:00
Joas Schilling 297938a03b Merge pull request #39711 from nextcloud/backport/39689/stable26
[stable26] fix(notifications): Remove share notification when the node is deleted
2023-08-16 11:39:15 +02:00
Nextcloud bot eba82668d5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-16 00:25:53 +00:00
Pytal 12b25c926e Merge pull request #39602 from nextcloud/backport/37954/stable26 2023-08-15 11:29:52 -07:00
Louis Chemineau ef4a861b5c Do not allow to toggle between password and text in sharing
This does not makes sense as we do not have the clear text value.

Signed-off-by: Louis Chemineau <louis@chmn.me>
(cherry picked from commit 6faf8b85d6)
2023-08-14 18:55:38 -07:00
Nextcloud bot c214f0d9f2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-15 00:59:56 +00:00
Julius Härtl d3b126d6f2 fix: Also cleanup version metadata if expiring
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-08-14 21:07:35 +00:00
Robin Appelman 690d9bac5e select the fileid first when looking for incomplete files
this seems to improve mariadbs index selection

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-14 19:15:41 +00:00
John Molakvoæ cd427bccc0 Merge pull request #39854 from nextcloud/manual/backport/stable26/39804/wrap-org-name-login-form 2023-08-14 21:11:21 +02:00
Robin Appelman 4369022f18 cache calendar objects from calendarQuery
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-14 16:19:41 +02:00
Robin Appelman 64c74716ca preload shares for calendars when listing calendars
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-14 14:52:06 +02:00
Nextcloud bot 649175f9ff Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-14 09:06:11 +00:00
fenn-cs 1c44b58ce1 Wrap long productName on login form
Backport : https://github.com/nextcloud/server/pull/39848

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-08-14 08:36:45 +00:00
Nextcloud bot ac063c0f5b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-14 00:26:18 +00:00
Nextcloud bot d5b76a5df3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-13 00:25:17 +00:00
Nextcloud bot 3b1fc7ea56 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-12 00:28:00 +00:00
Daniel Kesselberg e876408c16 fix: close cursor after reading the invitation
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-08-11 16:12:33 +00:00
Benjamin Gaussorgues 6083d93571 Merge pull request #39812 from nextcloud/fix/bump-nextcloud-vue/7.12.2-in-stable26
[stable26] chore: update `@nextcloud-vue` to `v7.12.2`
2023-08-11 16:14:57 +02:00
Benjamin Gaussorgues b25a573095 chore: update @nextcloud-vue to v7.12.2
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-08-11 11:38:34 +00:00
Nextcloud bot 7a49d1e995 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-11 00:30:27 +00:00
Andy Scherzinger 81e1e87d77 Merge pull request #39788 from nextcloud/backport/39741/stable26
[stable26] optimize calendar search query
2023-08-10 12:52:54 +02:00
Jamie McClelland 1bc8feb332 ensure outerquery ->where() function doesn't clobber earier ->andWhere()
Signed-off-by: Jamie McClelland <jm@mayfirst.org>
2023-08-10 07:52:04 +00:00
Jamie McClelland 4f898b9b36 optimize calendar search query
see https://github.com/nextcloud/calendar/issues/4758

Signed-off-by: Jamie McClelland <jm@mayfirst.org>
2023-08-10 07:52:04 +00:00
John Molakvoæ 96eca4513f Merge pull request #39749 from nextcloud/release/26.0.5 2023-08-10 08:09:44 +02:00
Nextcloud bot 8d4f1c004c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-10 00:27:12 +00:00
Nextcloud bot 1397af2272 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-09 00:51:03 +00:00
John Molakvoæ 245d36413a 26.0.5
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-08-08 10:18:37 +02:00
Nextcloud bot 4f5459b697 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-08 00:29:49 +00:00
Nextcloud bot 826f26a4cc Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-07 00:30:43 +00:00
Nextcloud bot 6158d2b908 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-06 00:25:43 +00:00
John Molakvoæ fe85d7d05d fix: simplify sourceData check
Co-authored-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2023-08-05 22:04:35 +00:00
Josh Richards c4505160a0 Catch more invalid cache source storage paths
OC\Files\Cache\Cache::get can return string|false|null, not just string|false.

- nextcloud/server#26270 added handling of false, but null is needed too.
- Well, or we change the default $resullt to false, but I'm not sure if that has other ramifications and the real need here is to simply catch situations where the cache source storage path is not valid for whatever reason

Related: nextcloud/server#19009

Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2023-08-05 22:04:35 +00:00
Nextcloud bot e4260cd855 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-05 00:29:59 +00:00
Joas Schilling 94f22e7807 fix(notifications): Remove share notification when the node is deleted
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-08-04 08:07:04 +00:00
Nextcloud bot be33173841 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-04 00:30:35 +00:00
Arthur Schiwon 2985fb0935 Merge pull request #39676 from nextcloud/release/26.0.5_rc1
26.0.5 RC1
2023-08-03 12:08:59 +02:00
Arthur Schiwon 1f206dc22a Merge pull request #39450 from nextcloud/backport/38907/stable26
[stable26] Fix: ContactManager search with fullmatch
2023-08-03 10:59:15 +02:00
F. E Noel Nfebe e3b3a8161d Merge pull request #39559 from nextcloud/automated/noid/stable26-update-psalm-baseline
[stable26] Update psalm-baseline.xml
2023-08-03 09:29:50 +01:00
nextcloud-command 91806f7843 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-08-03 02:22:51 +00:00
Nextcloud bot 51a400e9e5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-03 00:28:58 +00:00
Johannes Merkel 38ba696729 fix(mail): ContactManager search with fullmatch
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2023-08-02 21:36:10 +02:00
Arthur Schiwon f361b5e215 Merge pull request #39597 from nextcloud/backport/38667/stable26
[stable26] fix(SystemTagManager): Use truncated tagName in getTag and updateTag
2023-08-02 21:18:26 +02:00
Arthur Schiwon 105d0663f9 Merge pull request #39437 from nextcloud/backport/39309/stable26
[stable26] fix(profile): fix getUID on nullable user variable
2023-08-02 21:16:31 +02:00
Arthur Schiwon c174c47f1e Merge pull request #39370 from nextcloud/backport/39339/stable26
[stable26] fix(node): non-existing folder is not searchable
2023-08-02 21:16:12 +02:00
Pytal 177a13ab46 Merge pull request #39666 from nextcloud/backport/39649/stable26 2023-08-02 11:08:52 -07:00
Joas Schilling b5ebcea156 Merge pull request #39679 from nextcloud/backport/39672/stable26
[stable26] fix(dav): use quota of destination in s3 chunk upload
2023-08-02 19:19:17 +02:00
Max e9c9fb4bd3 fix(dav): use quota of destination in s3 chunk upload
Resolves: #39228.
Check the free space on the destination.

Before it was checking the free space on `$storage`
which is the upload storage of the user who triggered the upload.
This led to user quota being applied
even when uploading to a share with unlimited space.

Signed-off-by: Max <max@nextcloud.com>
2023-08-02 12:10:57 +00:00
Arthur Schiwon faa515dba4 26.0.5 RC1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-08-02 13:52:56 +02:00
Julien Veyssier c908faa3c5 Merge pull request #39664 from nextcloud/backport/39527/stable26
[stable26] only show weather credits if the app is enabled and the weather statu…
2023-08-02 10:14:50 +02:00
F. E Noel Nfebe 6044aa5066 Merge pull request #39659 from nextcloud/backport/39614/stable26
[stable26] [27] fix share roots always being marked as writable
2023-08-02 08:48:25 +01:00
Nextcloud bot d69daf91e2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-02 00:53:48 +00:00
Christopher Ng 4af1b98fd6 fix(files_sharing): String translations
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
(cherry picked from commit 8a51d64b09)
2023-08-01 10:02:10 -07:00
Arthur Schiwon 778372a46f only show weather credits if the app is enabled and the weather status is enabled
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-08-01 18:10:14 +02:00
Robin Appelman c71acc65c2 fix share roots always being marked as writable
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-01 15:02:34 +00:00
Nextcloud bot c3d4ade3d2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-01 00:30:01 +00:00
Nextcloud bot 0e627fde66 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-31 00:30:20 +00:00
Nextcloud bot a070f57bc9 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-30 00:25:37 +00:00
Nextcloud bot 04d01566e6 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-29 00:32:29 +00:00
Alexander Piskun 0ce67e9091 Merge pull request #39600 from nextcloud/backport/39537/stable26
[stable26] `/ocs/v1.php/cloud/groups` `UPDATE` method - correct status when group not found
2023-07-28 20:42:11 +03:00
Nextcloud bot 1313984616 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-28 00:31:09 +00:00
Alexander Piskun 4943a4668a to return correct code when group not found
Signed-off-by: Alexander Piskun <bigcat88@icloud.com>
2023-07-27 18:17:32 +00:00
Marcel Klehr ce7641ebfc fix(SystemTagManager): Use truncated tagName in getTag and updateTag
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-07-27 17:13:41 +00:00
Matthieu Gallien 81d8d324e1 Merge pull request #39510 from nextcloud/backport/39221/stable26
[stable26] Bugfix/bulk upload empty files
2023-07-27 16:36:08 +02:00
Nextcloud bot 017534d701 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-27 00:26:15 +00:00
Nextcloud bot 66348c93f9 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-26 00:57:41 +00:00
Nextcloud bot 9e0e815d28 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-25 00:25:47 +00:00
F. E Noel Nfebe 3c3befe6ab Merge pull request #39523 from nextcloud/backport/add-instance-category
[stable26] Add instance category while checking new updates
2023-07-24 23:47:25 +01:00
Matthieu Gallien 4850828839 when reading an empty file getting EOF is not an error
will allow uploading empty files via bulk upload

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-07-24 13:29:33 +02:00
Julius Härtl 57b0bf316f Merge pull request #39459 from nextcloud/backport/26/objectstore-without-multipart 2023-07-24 08:28:21 +02:00
Nextcloud bot 9fa1b73b20 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-24 00:25:49 +00:00
Daniel Kesselberg f537c7b5c6 fix: check that object store backend supports multi part uploads
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-07-23 16:06:55 +02:00
Nextcloud bot f52145f775 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-23 00:28:20 +00:00
Nextcloud bot 23dbebd83b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-22 00:31:46 +00:00
Benjamin Gaussorgues 25ba08b1d3 Add instance category while checking new updates
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-07-21 12:06:49 +02:00
Nextcloud bot ff3442d917 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-21 00:24:41 +00:00
Arthur Schiwon 318ac2714f Merge pull request #39502 from nextcloud/release/26.0.4
26.0.4
2023-07-20 12:58:42 +02:00
Arthur Schiwon 5e50582aa1 Merge pull request #39492 from nextcloud/backport/39490/stable26
[stable26] fix(apps): Fix loading info.xml file
2023-07-20 12:46:34 +02:00
Arthur Schiwon 41b0347db1 26.0.4
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-20 11:58:40 +02:00
Joas Schilling 4a21e41313 fix(apps): Fix loading info.xml file
Ref: https://bugs.php.net/bug.php?id=62577

Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-20 10:47:45 +02:00
Nextcloud bot 7b4ed65fb0 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-20 00:26:32 +00:00
Nextcloud bot 3bd17387a6 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-19 00:26:51 +00:00
Nextcloud bot 2270c78e75 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-18 00:24:22 +00:00
Arthur Schiwon f1d46ef703 Merge pull request #39427 from nextcloud/release/26.0.4_rc2
26.0.4 RC2
2023-07-17 19:52:37 +02:00
Thomas Citharel 5a6447645a fix(profile): fix getUID on nullable user variable
As per method signature, $visitingUser is nullable, so we can't be sure calling getUid() on it will
work.

Closes #35766

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-07-17 13:33:58 +00:00
Joas Schilling 70db98feee Merge pull request #39418 from nextcloud/backport/39416/stable26
[stable26] fix(core): Add password confirmation requirement for getapppassword
2023-07-17 13:56:14 +02:00
Arthur Schiwon f469e88222 Merge pull request #39406 from nextcloud/automated/noid/stable26-update-psalm-baseline
[stable26] Update psalm-baseline.xml
2023-07-17 12:45:14 +02:00
Arthur Schiwon 9e5b7aa2f7 Merge pull request #39375 from nextcloud/backport/39329/stable26
[stable26] fix: also run phpunit on `apps/theming/css` modified files
2023-07-17 12:42:55 +02:00
Arthur Schiwon 3449a9c60b 26.0.4 RC2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-17 12:40:17 +02:00
Joas Schilling 5fdfb65baa fix(core): Add password confirmation requirement for getapppassword
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-17 12:11:08 +02:00
Julius Härtl 0cd3950171 Merge pull request #39397 from nextcloud/backport/39396/stable26 2023-07-17 11:24:57 +02:00
nextcloud-command a0fa84b6a5 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-07-17 02:46:37 +00:00
Nextcloud bot d0705c9367 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-17 00:25:51 +00:00
Nextcloud bot 200d94b751 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-16 00:25:22 +00:00
Nextcloud bot 244576eec2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-15 00:27:24 +00:00
Arthur Schiwon 257cfc6c5d Merge pull request #39393 from nextcloud/backport/39380/stable26
[stable26] fix(db): no hardcoded table prefix is expected
2023-07-14 19:29:44 +02:00
Julius Härtl 32c0472672 feat: Add public event for missing indices
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-07-14 16:30:36 +02:00
Arthur Schiwon de7007ba43 fix(db): no hardcoded table prefix is expected
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-14 11:47:10 +00:00
Nextcloud bot 2b281a8d60 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-14 00:30:17 +00:00
John Molakvoæ 346bdd4cd6 fix: also run phpunit on apps/theming/css modified files
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-07-13 16:16:24 +00:00
Arthur Schiwon 6eaaef1403 fix(node): non-existing folder is not searchable
the previosuly introduced searchBySystemTag was not overwritten in
NonExistingFolder and could run the inherited method.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-13 14:33:05 +00:00
Arthur Schiwon 7eff5b06ac Merge pull request #39281 from nextcloud/release/26.0.4_rc1
26.0.4 RC1
2023-07-13 14:46:55 +02:00
Andy Scherzinger ec0e9dd458 Merge pull request #39355 from nextcloud/backport/39323/39323-stable26
[stable26] getStorage before remove
2023-07-13 14:17:52 +02:00
Maxence Lange bb189784f2 getStorage before remove
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-07-13 10:31:46 -01:00
Arthur Schiwon 4f2b35f935 Merge pull request #39060 from nextcloud/backport/31790/stable26
[stable26] Fix creating events with old (< unix time) lastoccurence
2023-07-13 13:31:36 +02:00
Arthur Schiwon a06ef707bb Merge pull request #39003 from nextcloud/backport/38800/stable26
[stable26] fix: Avoid failing to update the current version entry if there is none
2023-07-13 13:29:22 +02:00
Andy Scherzinger 9b1bb6a61d Merge pull request #39345 from nextcloud/ci/sign-drone-stable26
[stable26] chore(CI): Sign .drone.yml file
2023-07-13 12:45:18 +02:00
Joas Schilling a611f045be chore(CI): Sign .drone.yml file
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-13 11:50:47 +02:00
Nextcloud bot 02b6dce94b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-13 00:29:51 +00:00
Thomas Citharel 226027abf7 style(caldav): improve getDenormalizedData method
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-07-12 19:57:23 +02:00
Thomas Citharel ceca4cd018 Fix creating events with old (< unix time) lastoccurence
Closes #20804

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-07-12 19:57:23 +02:00
Louis Chemineau 4742901124 Do not create a new version if previousNode has the same mtime
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-07-12 19:55:30 +02:00
Julius Härtl e1445f39eb fix: Add logging statement for cases when updating the version fails
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-07-12 19:55:30 +02:00
Louis Chemineau 695565fb83 Handle previousNode size === 0 on version creation
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-07-12 19:55:30 +02:00
Julius Härtl e045faa6a7 fix: Avoid failing to update the current version entry if there is none
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-07-12 19:55:30 +02:00
Arthur Schiwon c015089d46 Merge pull request #39335 from nextcloud/backport/39324/stable26
[stable26] ci(32bit): fix failing test setup
2023-07-12 15:06:17 +02:00
Arthur Schiwon d2388b7a55 ci(32bit): fix failing test setup
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-12 14:03:26 +02:00
Nextcloud bot cd1527effa Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-12 00:22:21 +00:00
Arthur Schiwon 23c2fdc296 Merge pull request #38920 from nextcloud/backport/38639/stable26
[stable26] pruneOutdatedSyncTokens deletes all entries
2023-07-12 00:58:47 +02:00
Julia Kirschenheuter 6541d7ef7c Merge pull request #39285 from nextcloud/orphan-share-command-stable26
[26] add command do delete orphan shares
2023-07-11 11:02:23 +02:00
Andy Scherzinger 4dc0869831 Merge pull request #39293 from nextcloud/backport/39248/stable26
[stable26] preload custom properties when propfinding folders
2023-07-11 10:44:11 +02:00
Richard Steinmetz 491eda93cc fix(dav): close cursor when fetching max id
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-07-11 07:58:46 +02:00
Joas Schilling c954378178 Merge pull request #37737 from nextcloud/backport/36351/stable26
[stable26] Move encrypt-all password email to EmailTemplate
2023-07-11 07:24:32 +02:00
Nextcloud bot b4b72332a5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-11 00:32:41 +00:00
Robin Appelman f8eceb40d4 preload custom properties when propfinding folders
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-10 20:24:32 +00:00
Joas Schilling 68bd04e173 Fix unit tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-10 20:39:04 +02:00
Joas Schilling 77697ff3ed Move encrypt-all password email to EmailTemplate
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-10 20:39:04 +02:00
Julius Härtl c7a8c3b427 Merge pull request #39232 from nextcloud/backport/39202/stable26 2023-07-10 18:08:23 +02:00
Arthur Schiwon ce036dcced Merge pull request #39260 from nextcloud/backports/39146/stable26
[stable26] fix(files_sharing): hide download permission for circle shares
2023-07-10 18:06:07 +02:00
Arthur Schiwon 1c59a7a5db Merge pull request #39031 from nextcloud/backport/38917/stable26
[stable26] fix(l10n): Fix plural issue with different locale and language
2023-07-10 18:05:48 +02:00
Arthur Schiwon 61835be271 Merge pull request #39155 from nextcloud/automated/noid/stable26-update-psalm-baseline
[stable26] Update psalm-baseline.xml
2023-07-10 18:02:26 +02:00
Arthur Schiwon fa388d262a Merge pull request #39143 from nextcloud/fix/password-confirmation-26
[stable26] Fix password confirmation
2023-07-10 18:01:43 +02:00
Arthur Schiwon 91a44763bd Merge pull request #39100 from nextcloud/backport/39093/stable26
[stable26] Silent `imagecreatefromstring()` errors
2023-07-10 17:59:29 +02:00
Arthur Schiwon f4f6a95b02 Merge pull request #38972 from nextcloud/backport/38747/stable26
[stable26] perf: skip request without write permission
2023-07-10 17:57:55 +02:00
Arthur Schiwon 48f27a90bd Merge pull request #39270 from nextcloud/backport/35915/35915-stable26
[stable26] display displayname on federated shares
2023-07-10 17:49:34 +02:00
Robin Appelman a1244e0584 add command do delete orphan shares
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-10 17:09:07 +02:00
Arthur Schiwon 61a21046ea 26.0.4 RC1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-10 16:55:52 +02:00
Joas Schilling a87a931675 Merge pull request #39252 from nextcloud/backport/38046/stable26
[stable26] fix(dav): Abort requests with 429 instead of waiting
2023-07-10 14:30:25 +02:00
Maxence Lange b9a25ce4d5 display displayname on federated shares
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-07-10 10:57:26 -01:00
Richard Steinmetz 0c09c34034 fix(files_sharing): hide download permission for circle shares
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-07-10 09:45:34 +02:00
Joas Schilling ddff2e692d fix(dav): Abort requests with 429 instead of waiting
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-10 06:32:01 +02:00
nextcloud-command 8c7e4c5ad0 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-07-10 02:42:26 +00:00
Nextcloud bot 396a80a39b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-10 00:29:04 +00:00
Nextcloud bot d211eccb4c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-09 00:35:41 +00:00
Nextcloud bot 6e3421bd4a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-08 00:30:30 +00:00
Arthur Schiwon fc9fd0d7f2 refactor: adjust to unexposed searchBySystemTag
- in this backport we have to drop the breaking addition in
  \OCP\Files\Folder
- this requires adjustments in check for the existance of the method but
  also in testing
- another change in \OCP\SystemTag\ISystemTagManager can be applied as
  this interface is not implemented elsewhere

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 16:58:07 +02:00
Arthur Schiwon db1306b955 fix: cannot apply limit+offset on multi-tag-search
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:57 +00:00
Arthur Schiwon dfbedda0a2 refactor: save unnecessary method_exists
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:57 +00:00
Arthur Schiwon 22c417d70b fix: use array_unitersect against objects
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:57 +00:00
Arthur Schiwon eeb76461da fix: obey offset and limit for results from favs and circles
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:57 +00:00
Arthur Schiwon 749efc1ba1 fix: cominbation of small fixes
- possible null return
- parameter name mismatch in implementation
- incomplete unit test

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:56 +00:00
Arthur Schiwon 0b4db60d3b fix: include invisible tags for admins
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:56 +00:00
Arthur Schiwon bb165d3d05 fix: search with more than one search tags
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:56 +00:00
Arthur Schiwon 3ed878a368 fix: no search when LazyFolder was provided
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:56 +00:00
Arthur Schiwon b0ec34fc22 chore: cleanup unused code
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:56 +00:00
Arthur Schiwon 6d249b56bd fix: ensure searchBySystemTag() is available
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:56 +00:00
Arthur Schiwon 48c92ade85 fix: favorites view and universal search against tags
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:56 +00:00
Arthur Schiwon c33f728249 fix: change if with conditionless else to switch; and a parameter value
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:55 +00:00
Arthur Schiwon b172df69d6 use efficient tag retrieval on DAV report request
- uses DAV search approach against valid files joined by systemtag selector
- reduced table join for tag/systemtag search
- supports pagination
- no changes to the output formats or similar

Example request body:

<?xml version="1.0"?>
<oc:filter-files xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns" xmlns:ocs="http://open-collaboration-services.org/ns">
  <d:prop>
    <d:getcontentlength/>
    <d:getcontenttype/>
    <d:getetag/>
    <d:getlastmodified/>
    <d:resourcetype/>
    <nc:face-detections/>
    <nc:file-metadata-size/>
    <nc:has-preview/>
    <nc:realpath/>
    <oc:favorite/>
    <oc:fileid/>
    <oc:permissions/>
    <nc:nbItems/>
  </d:prop>
  <oc:filter-rules>
    <oc:systemtag>32</oc:systemtag>
  </oc:filter-rules>
  <d:limit>
    <d:nresults>50</d:nresults>
    <nc:firstresult>0</nc:firstresult>
  </d:limit>
</oc:filter-files>

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-07 14:54:55 +00:00
John Molakvoæ 54fb0569cf Merge pull request #39206 from nextcloud/backport/39203/stable26 2023-07-07 09:20:43 +02:00
Nextcloud bot 45848c0ca2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-07 00:27:49 +00:00
John Molakvoæ 2fc2a0d613 fix(cypress): revert only toggle
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-07-06 20:46:49 +00:00
Arthur Schiwon e4e608caac Merge pull request #39152 from nextcloud/backport/39115/stable26
[stable26] fix(sse): don't update uncached files
2023-07-06 18:42:59 +02:00
Arthur Schiwon ddfe6cc49c Merge pull request #39194 from nextcloud/fix/stable26/tag-search-short-circuit-master
[stable26] fix(TagSearchProvider): Short circuit if no tag matches the query
2023-07-06 18:38:53 +02:00
Marcel Klehr 1b83c6302a Fix psalm error
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-07-06 14:56:18 +02:00
Marcel Klehr cfe21648d6 fix(TagSearchProvider): Short circuit if no tag matches the query
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-07-06 14:56:12 +02:00
Nextcloud bot 51fda57d59 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-06 00:30:56 +00:00
Christoph Wurst e1af3b9dd4 Merge pull request #39159 from nextcloud/backport/39043/stable26
[stable26] fix(ocp): Fix reference of dashboard IAPIWidget::getItems from WidgetItem
2023-07-05 20:01:04 +02:00
Louis 981262c57b Merge pull request #39117 from nextcloud/backport/37428/stable26
[stable26] Ignore and log non integer versions
2023-07-05 15:41:03 +02:00
Christoph Wurst be78126adf fix(ocp): Fix reference of dashboard IAPIWidget::getItems from WidgetItem
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-07-05 10:54:51 +00:00
Nextcloud bot 83a0c59a2d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-05 00:27:02 +00:00
Richard Steinmetz 36b48dea52 fix(sse): don't update uncached files
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-07-04 20:23:47 +00:00
Arthur Schiwon 3fd03faf58 Merge pull request #38977 from nextcloud/backport/38625/stable26
[stable26] fix: expect interface, not a specific implementation
2023-07-04 22:08:09 +02:00
Côme Chilliet f3f2b0f0a8 Check for non-numeric versions, not non-integer
All versions are string

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-07-04 15:11:41 +02:00
Côme Chilliet 58a950b8a0 Ignore and log non integer versions
This avoids being stuck when there is one buggy file version with a
 non-integer version. It allows the expiration process to not crash and
 continue with the other ones.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-07-04 15:11:41 +02:00
Marcel Klehr 4627db420f Fix(OC/password-confirmation): Hide the correct button
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-07-04 14:28:28 +02:00
Christof Arnosti b0a2919b68 Issue #36644: Test cases
Signed-off-by: Christof Arnosti <charno@charno.ch>
2023-07-04 10:34:39 +02:00
Christof Arnosti 46ceb0d5c1 Issue #36644: Fix pruneOutdatedSyncTokens for CalDAV
pruneOutdatedSyncTokens accidentally deletes all entries of the calendarchanges table
instead of leaving $limit elements in the table

Signed-off-by: Christof Arnosti <charno@charno.ch>
2023-07-04 10:34:39 +02:00
Daniel Kesselberg f0f4c46545 perf: skip request without write permission
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-07-04 10:32:15 +02:00
Nextcloud bot e36c9d6062 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-04 00:29:35 +00:00
Nextcloud bot 2c0169f012 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-03 00:30:56 +00:00
Nextcloud bot 49647b60dd Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-02 00:31:19 +00:00
Ferdinand Thiessen ecb4f42886 Merge pull request #39080 from nextcloud/backport/39025/stable26
[stable26] fix(files): Only render the menu if there are actions to show
2023-07-01 20:57:17 +02:00
Git'Fellow 11a6de90b8 Silent imagecreatefromstring() errors
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-07-01 14:43:13 +00:00
Julius Härtl 5f0de0b740 fix(files): Only render the menu if there are actions to show
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-07-01 16:04:37 +02:00
Nextcloud bot adeeb327f2 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-01 00:25:32 +00:00
Arthur Schiwon f714e44957 Merge pull request #38961 from nextcloud/fix/missing-systemtags-index-stable26
[stable26] fix(systemtags): Add missing systemtags index
2023-06-30 17:37:20 +02:00
Nextcloud bot e929c66d7d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-30 00:30:00 +00:00
Pytal 398efe3e52 Merge pull request #39072 from nextcloud/backport/39067/stable26 2023-06-29 11:21:22 -07:00
John Molakvoæ 09ad1eafb9 chore: update cypress workflow from templates
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-06-29 16:44:43 +00:00
John Molakvoæ 793fc44b59 fix(cypress): branch definition
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-06-29 16:44:42 +00:00
Nextcloud bot 2c9ef176f6 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-28 00:31:00 +00:00
Joas Schilling 756e119162 fix(l10n): Fix plural issue with different locale and language
We need to use the language code here instead of the locale,
because Symfony does not distinguish between the two and would
otherwise e.g. with locale "Czech" and language "German" try to
pick a non-existing plural rule, because Czech has 4 plural forms
and German only 2.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-06-27 14:15:46 +02:00
Nextcloud bot 13d9fb1ad7 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-27 00:32:25 +00:00
Arthur Schiwon 013d34977b ci: adjust return annotation to older psalm version
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-26 17:07:21 +02:00
Joas Schilling 78f649836f Merge pull request #38908 from nextcloud/backport/38897/stable26
[stable26] fix(core): Do not invert app menu text color
2023-06-26 16:45:03 +02:00
Jonas 0ca3879d51 chore(assets): Recompile assets
Signed-off-by: Jonas <jonas@freesources.org>
2023-06-26 15:44:58 +02:00
Ferdinand Thiessen c0878278b3 fix(core): Do not invert app menu text color
* Also fixes other cypress test
* Build assets

Signed-off-by: Philipp Hempel <Philipp.Hempel1@web.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-06-26 15:44:58 +02:00
Simon L 100c2e1c4e Merge pull request #39014 from nextcloud/enh/noid/fix-setup-check
[stable26] fix setup-check test
2023-06-26 15:44:48 +02:00
Julien Veyssier 7c9e237747 Merge pull request #38949 from nextcloud/backport/38773/stable26
[stable26] Add bruteforce protection in OauthApiController
2023-06-26 15:43:59 +02:00
Arthur Schiwon 1465824a36 docs: adjust @since version to backport
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-26 14:49:16 +02:00
Simon L 1d1f2e5aef Merge pull request #39006 from nextcloud/backport/38958/stable26
[stable26] use getsystemvalue-functions in Mailer.php
2023-06-26 14:44:16 +02:00
Simon L 55c7f6f8c5 fix setup-check test
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-06-26 14:38:24 +02:00
Julien Veyssier 25a59c0dc0 add bruteforce protection in OauthApiController
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-06-26 12:29:44 +02:00
Simon L 4e004789d6 try to fix tests
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-06-26 11:08:06 +02:00
Simon L c10f3e31e8 use getsystemvalue-functions in Mailer.php
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-06-26 11:06:24 +02:00
Nextcloud bot 9c904e85f7 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-26 00:28:13 +00:00
Nextcloud bot 1948eafdd8 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-25 00:31:48 +00:00
Nextcloud bot c9f7fe0ddd Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-24 00:26:30 +00:00
Arthur Schiwon aec67f41a3 ci: pro forma check of existence of internal method
createNode() is protected and used by Folder, but being an internal-only
method it shall not be exposed in the Folder or IRootFolder interface.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-23 23:04:44 +00:00
Arthur Schiwon 2b27a4cda0 refactor: declare getMount() and getMountsIn() at IRootFolder
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-23 23:04:44 +00:00
Arthur Schiwon 3813b955ee chore: ugly type juggling
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-23 23:04:40 +00:00
Arthur Schiwon ae48fc86d2 fix: add typehine for IRootFolder
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-23 23:04:40 +00:00
Arthur Schiwon e095311819 fix: expect interface, not a specific implementation
- fixes a regression when deleting folders while music app was enabled,
  for a LazyRoot was passed to this method.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-23 23:04:39 +00:00
Marcel Klehr 46dfa7f129 fix(systemtags): Keep non-existing index
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-06-23 11:43:43 +02:00
Marcel Klehr daf9825d53 fix(systemtags): Move index creation from new migration to existing original migration
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-06-23 11:43:33 +02:00
Marcel Klehr 529702107a fix(systemtags): Add missing systemtags index
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-06-23 11:43:26 +02:00
Julien Veyssier 913d9da7b5 Merge pull request #38708 from nextcloud/backport/38398/stable26
[stable26] Store encrypted OAuth2 client secrets
2023-06-22 17:09:32 +02:00
Julien Veyssier 5f461bceb5 encrypt oauth2 client secrets
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-06-22 14:09:05 +02:00
Julien Veyssier 74bb2df72e add test that inserts a long oauth client secret
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-06-22 14:09:05 +02:00
Simon L 70865d78d1 Merge pull request #38853 from nextcloud/backport/38823/stable26
[stable26] generate user themed favicon and touchicon
2023-06-22 13:57:22 +02:00
Simon L 97addd526f Merge pull request #38887 from nextcloud/backport/38868/stable26
[stable26] fix confusion around mail settings and improve layout a bit
2023-06-22 13:56:43 +02:00
Simon L b89b59c3a9 Merge pull request #38932 from nextcloud/backport/38915/stable26
[stable26] adjust admin setup check to increase warning to configure https
2023-06-22 13:55:44 +02:00
Arthur Schiwon 5348e530ea Merge pull request #38942 from nextcloud/release/26.0.3
26.0.3
2023-06-22 11:59:46 +02:00
Arthur Schiwon 9c0d9a82c5 26.0.3
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-22 11:41:38 +02:00
Nextcloud bot 41146ed643 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-22 00:30:43 +00:00
Simon L 81b64db136 adjust admin setup check to increase warning to set up https
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-06-21 14:30:25 +00:00
Nextcloud bot 35ac87dac0 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-21 00:37:58 +00:00
Nextcloud bot 60032a5914 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-20 00:23:09 +00:00
Arthur Schiwon 761113abd3 Merge pull request #38904 from nextcloud/release/26.0.3_rc2
26.0.3 RC2
2023-06-19 21:02:39 +02:00
Arthur Schiwon 688cbfc068 26.0.3 RC2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-19 17:15:01 +02:00
Julius Härtl 989721bca6 Merge pull request #38892 from nextcloud/obj-store-copy-list-source-cache-26 2023-06-19 16:46:01 +02:00
Robin Appelman 3e46f6289f use source cache when listing folder during recursive copy
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-19 12:31:17 +02:00
Simon L afbb5db89d fix confusion around mail settings
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-06-19 09:56:22 +00:00
Nextcloud bot e9884bd670 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-19 00:18:17 +00:00
Nextcloud bot 012fb0329c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-18 00:18:07 +00:00
Nextcloud bot 05244c2e03 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-17 00:18:12 +00:00
Simon L 63df50fcac generate user themed favicon and touchicon
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-06-16 11:27:51 +00:00
Nextcloud bot 8e674a449b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-16 00:18:13 +00:00
Arthur Schiwon b4178db460 Merge pull request #38755 from nextcloud/release/26.0.3_rc1
26.0.3 RC1
2023-06-15 12:44:51 +02:00
Arthur Schiwon 5f566101f1 Merge pull request #38023 from nextcloud/backport/32877/stable26
[stable26] allow storing multiple mounts for the same rootid in the mount cache
2023-06-15 12:40:45 +02:00
Arthur Schiwon 7c85dfe8f9 ci: revert to avoid conflict for release PR
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-15 12:40:34 +02:00
Arthur Schiwon 00afe495bc Merge pull request #37230 from nextcloud/backport/36033/stable26
[stable26] invalidate existing tokens when deleting an oauth client
2023-06-15 11:54:38 +02:00
Arthur Schiwon d12699a451 Merge pull request #38757 from nextcloud/backport/38468/stable26
[stable26] log failures to read certificates during listing
2023-06-15 11:09:05 +02:00
Nextcloud bot 650b765d1d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-15 00:18:14 +00:00
Arthur Schiwon 40dcc08fe0 adjust @since annotation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-14 23:26:41 +02:00
Arthur Schiwon 99ebcb6dc1 Merge pull request #38684 from nextcloud/backport/37802/stable26
[stable26] Sharing: Do not show copy action when user doesn't have permissions
2023-06-14 23:22:05 +02:00
Simon L 1226328454 Merge pull request #38818 from nextcloud/backport/38811/stable26
[stable26] make sure to show download button only one time
2023-06-14 19:05:58 +02:00
Simon L 806a114f2b make sure to show download button only one time
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-06-14 15:04:35 +00:00
Simon L 6fb44c75c5 Merge pull request #38807 from nextcloud/automated/noid/stable26-fix-npm-audit
[stable26] Fix npm audit
2023-06-14 15:17:39 +02:00
nextcloud-command 3fa37d996d chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-06-14 12:16:45 +00:00
Nextcloud bot c757b11a53 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-14 00:18:10 +00:00
Simon L f8655c1202 Merge pull request #38396 from nextcloud/backport/38164/stable26
[stable26] Show pending popover menu when password is enabled by default
2023-06-14 00:58:33 +02:00
Joas Schilling 7e4895046f chore(assets): Recompile JS
Signed-off-by: Joas Schilling <coding@schilljs.com>
(cherry picked from commit 9f8fa4802b)
2023-06-13 15:12:51 -07:00
Daniel Calviño Sánchez 05e49fe13c Show pending popover menu when password is enabled by default
When "Enforce password protection" is enabled in the sharing settings a
popover menu is shown to set a password before the share is created. On
the other hand, when "Always ask for a password" was enabled in the
sharing settings and a new link share was created the share was
immediately created with a default password; the user was not able to
specify a password (nor create the share without password).

The component template already provided the needed elements to also ask
for the password without enforcing it, but the popover menu was not
shown due to "enableLinkPasswordByDefault" being missing in "if"
conditions.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
(cherry picked from commit d4631921b4)
2023-06-13 15:08:45 -07:00
Daniel Calviño Sánchez dfbfe318a7 Rename "pendingPassword" to "pendingEnforcedPassword"
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
(cherry picked from commit d80f8fc84f)
2023-06-13 15:08:45 -07:00
Arthur Schiwon e9ef560d10 Merge pull request #38358 from nextcloud/backport/38294/stable26
[stable26] Use aria-expanded correctly on toggle user actions
2023-06-13 19:37:20 +02:00
Arthur Schiwon 794bf5b6b9 Merge pull request #37776 from nextcloud/backport/37534/stable26
[stable26] Adjust the value of the "max-parts" parameter of the object storage 'ListPart' interface to 1000
2023-06-13 11:46:05 +02:00
Arthur Schiwon eb99de007d Merge pull request #38574 from nextcloud/backport/38301/stable26
[stable26] fix(caldav): Ignore invalid events for reminder generation
2023-06-13 11:40:38 +02:00
Nextcloud bot 0f6c79af27 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-13 00:18:22 +00:00
Simon L 6cd22c9c62 Merge pull request #38752 from nextcloud/backport/38735/stable26
[stable26] allow to specify upgrade.cli-upgrade-link in order to link to the correct documentation
2023-06-12 17:00:05 +02:00
Simon L 9071864730 Merge pull request #38583 from nextcloud/backport/38206/stable26
[stable26] Increase from 100000 to 600000 iterations for hash_pbkdf2
2023-06-12 16:46:23 +02:00
Simon L 41b6f7de71 Merge pull request #38564 from nextcloud/backport/38549/stable26
[stable26] Fix app menu flicker
2023-06-12 16:06:34 +02:00
Marcel Klehr 4ab9d0f698 Compile frontend js files
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-06-12 15:34:48 +02:00
Marcel Klehr 20784d040b fix(files_sharing): Don't show copy action when !canDownload and no update permissions
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-06-12 15:34:48 +02:00
Simon L fe766099cc Merge pull request #38399 from nextcloud/backport/38291/stable26
[stable26] fix loading custom logo image
2023-06-12 15:17:16 +02:00
Robin Appelman 5fde58d4f0 log failures to read certificates during listing
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-12 12:55:51 +00:00
Arthur Schiwon a41b0dc4f7 26.0.3 RC1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-12 14:49:36 +02:00
Simon L eade015889 allow to specify upgrade.cli-upgrade-link in order to link to the correct documentation
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-06-12 11:56:20 +00:00
Simon L f82f5d05c3 Merge pull request #38741 from nextcloud/automated/noid/stable26-fix-npm-audit
[stable26] Fix npm audit
2023-06-12 10:23:08 +02:00
Nextcloud bot 145b27af80 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-12 00:18:10 +00:00
nextcloud-command e4a2c9f68b chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-06-11 02:58:06 +00:00
Nextcloud bot 86b8a1945c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-11 00:34:45 +00:00
Nextcloud bot 51735f8fd1 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-10 00:17:52 +00:00
Robin Appelman e23e5a5006 Merge pull request #38557 from nextcloud/backport/38259/stable26
[stable26] reload filelist when adding or removing shares
2023-06-09 19:58:11 +02:00
nextcloud-command 0f39d33d37 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-06-09 15:59:39 +00:00
Robin Appelman 1285a2bc9e reload filelist when adding or removing shares
Signed-off-by: Robin Appelman <robin@icewind.nl>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-06-09 17:44:46 +02:00
John Molakvoæ ca6618d761 Merge pull request #38720 from nextcloud/backport/38719/stable26 2023-06-09 16:57:08 +02:00
John Molakvoæ dcf309c0ad Create lint-eslint-when-unrelated.yml
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2023-06-09 09:22:05 +00:00
John Molakvoæ 6d80795ee7 Merge pull request #38704 from nextcloud/backport/38486/stable26 2023-06-09 08:47:45 +02:00
Joas Schilling da1413662a fix(psalm): Install apcu, ftp and ldap extension like in static-code-analysis-security
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-06-08 16:20:49 +02:00
Joas Schilling 71162629cf fix(CI): Temporary workaround - Run Psalm CI with 1 thread only so it finishes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-06-08 16:20:49 +02:00
John Molakvoæ 2868e222f7 fix: keep important php and node versions
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2023-06-08 16:20:49 +02:00
Joas Schilling 0ccdaa2ea5 fix(CI): Update oracle image and config
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-06-08 16:20:49 +02:00
John Molakvoæ 662c60011a chore: update workflows from templates
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-06-08 16:20:49 +02:00
John Molakvoæ 9c2979efba Merge pull request #38698 from nextcloud/backport/38694/stable26 2023-06-08 16:20:39 +02:00
John Molakvoæ af3471a7a1 fix(actions): cypress
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-06-08 08:36:22 +00:00
Nextcloud bot 625302f170 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-08 00:19:09 +00:00
Julien Veyssier 92488a3b70 Merge pull request #38672 from nextcloud/backport/38577/stable26
[stable26] Improve oauth2 database migration from ownCloud
2023-06-07 15:33:24 +02:00
Julien Veyssier 793d5320c3 shorten oauth2 client names before resizing the column
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-06-07 15:32:28 +02:00
Julien Veyssier 1bd9544a8a drop the oauth2_clients trusted column, delete unsupported clients and their access tokens
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-06-07 15:32:28 +02:00
Ferdinand Thiessen cb5a9fa5ae Merge pull request #38487 from nextcloud/backport/37522/stable26
[stable26] Ungroup `placeholder` css rules
2023-06-07 15:14:06 +02:00
Ferdinand Thiessen 672d44c820 fix(core): Ungroup placeholder css rules to prevent browsers from removing all rules
When rules are grouped using the comma operator and one selector is invalid / unknown then the whole group is invalidated[1].
In this case `::-ms-input-placeholder` is unknown to Firefox and Chrome, so the `::placeholder` rule is never applied.
[1]: https://www.w3.org/TR/selectors-3/#grouping

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-06-07 14:31:23 +02:00
Christoph Wurst 4e8ffe9a5f Merge pull request #38677 from nextcloud/backport/38648/stable26
[stable26] fix(caldav): Cast calendar objects id to int when building index
2023-06-07 13:13:26 +02:00
Nextcloud bot ecd3270697 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-07 00:18:09 +00:00
Christoph Wurst 9ba98151ce fix(caldav): Cast calendar objects id to int when building index
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-06 18:43:13 +00:00
Christoph Wurst e8959e75e2 Merge pull request #38660 from nextcloud/backport/38649/stable26
[stable26] fix(caldav): Close DB cursor in reminder index background job
2023-06-06 20:02:18 +02:00
Simon L c77aab679c Merge pull request #38479 from nextcloud/backport/38440/stable26
[stable26] fix: Catch Deadlock properly as execute throws Doctrine exceptions not our wrapped ones
2023-06-06 16:23:47 +02:00
Christoph Wurst aa5ae7ccf5 fix(caldav): Close DB cursor in reminder index background job
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-06 07:41:35 +00:00
Julius Härtl 67155c6de9 Merge pull request #38654 from nextcloud/backport/37904/stable26 2023-06-06 08:11:04 +02:00
Nextcloud bot daf7050211 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-06 00:17:53 +00:00
Julius Härtl 5404437636 Merge pull request #38521 from nextcloud/artonge/backport/stable26/38469 2023-06-05 22:18:50 +02:00
Julius Härtl 03d7556be2 fix: Use proper link for navigating to files on click handler
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-06-05 21:41:47 +02:00
Arthur Schiwon 33451e72ae Merge pull request #38573 from nextcloud/backport/38355/stable26
[stable26] fix(trashbin): Truncate long filenames
2023-06-05 17:38:51 +02:00
Louis Chemineau 8482fb1cea Fix initialisation of versions in the DB
Broken after https://github.com/nextcloud/server/pull/36690

Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-06-05 10:20:32 +00:00
Nextcloud bot a54d822af1 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-05 00:17:43 +00:00
Nextcloud bot e0cb139cb3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-04 00:17:51 +00:00
Daniel 722fbaa616 Merge pull request #38598 from nextcloud/automated/noid/stable26-update-psalm-baseline
[stable26] Update psalm-baseline.xml
2023-06-03 14:31:58 +02:00
nextcloud-command 71b19d0dc8 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-06-03 02:46:35 +00:00
Nextcloud bot eea9c881a9 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-03 00:18:04 +00:00
Simon L 3e1d29dfb5 Merge pull request #38118 from nextcloud/automated/noid/stable26-fix-npm-audit
[stable26] Fix npm audit
2023-06-02 18:51:42 +02:00
nextcloud-command e4980db102 chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-06-02 15:24:25 +00:00
Nextcloud bot c39218248c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-02 00:17:41 +00:00
Christoph Wurst c662ccf81a fix(caldav): Ignore invalid events for reminder generation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-01 20:41:51 +02:00
Daniel a2ac818bd2 Merge pull request #38517 from nextcloud/backport/38496/stable26
[stable26] fix: catch errors in id3parser library
2023-06-01 20:37:32 +02:00
Côme Chilliet 291bd931b7 Adapt encryption test to change in generateHeader
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-06-01 17:59:53 +02:00
Côme Chilliet 212b98d976 Increase from 100000 to 600000 iterations for hash_pbkdf2
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-06-01 17:59:23 +02:00
Christopher Ng f1ce5d4a22 fix(trashbin): Truncate long filenames
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-06-01 10:04:59 +00:00
Julius Härtl 5b02df2f86 Merge pull request #38539 from nextcloud/backport/37758/stable26 2023-06-01 10:18:00 +02:00
Nextcloud bot 161187ca4c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-01 00:18:10 +00:00
ZetaTom b1c6b779f6 Fix app menu flicker
Signed-off-by: ZetaTom <70907959+ZetaTom@users.noreply.github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-31 19:50:19 +00:00
Robin Appelman 957b8b20f9 add new index in repair step instead of on-migrate
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-31 15:38:07 +02:00
Robin Appelman 6cfd5cbe64 allow storing multiple mounts for the same rootid in the mount cache
currently `[$userId, $rootId]` is used as the unique key for storing mounts in the mount cache,
however there are cases where the same rootid is mounted in multiple places for a user which currently leads to not all of those mounts being added to the cache.

Previously this didn't matter as the mount cache was only used to list users with access to a specific file, so a user having access to the file multiple times didn' change anything.

With 24 the mount cache is used for more cases and multiple mounts for the same id becomes relevant.
While I think there isn't a real negative effect atm besides missing the optimized path we should ensure that the mounts are properly listed

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-31 15:38:00 +02:00
Varun Patil 119e52f8b6 redis: move lua scripts to class and add type hints
Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2023-05-31 12:00:34 +02:00
Joas Schilling 05d9937272 Merge pull request #38530 from nextcloud/automated/noid/stable26-update-ca-cert-bundle
[stable26] Update ca-cert bundle
2023-05-31 09:26:20 +02:00
Robin Appelman 76013b9287 add test to verify redis lua script hashes
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-31 07:13:23 +00:00
Varun Patil f5895faafa redis: use atomic operations everywhere
This removes a lot of acrobatics in the code and does each operation
atomically using a lua script. This also reduces several round trips
to the server, and the scripts are compiled and cached server-side.

Notably, since all operations work only on a single key (except clear,
which is broken anyway and shouldn't be used), they will continue to
function and be atomic for Redis cluster.

Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2023-05-31 07:13:23 +00:00
nextcloud-command 3736eecb2e Update CA certificate bundle
Signed-off-by: GitHub <noreply@github.com>
2023-05-31 02:33:26 +00:00
Nextcloud bot 1778f42348 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-31 00:17:53 +00:00
Daniel Kesselberg ef0cffc937 fix: catch errors in id3parser library
We use a forked version of getID3 to read embedded images from mp3 files to use them as previews.

If the library is unable to extract a image or fails on something different we should handle it properly.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-05-30 13:45:48 +00:00
Louis 2f09dc5234 Merge pull request #38509 from nextcloud/artonge/backport/stable26/38467
[stable26] Add fallback when a there is no preview for a version
2023-05-30 13:55:00 +02:00
Louis Chemineau 205cddcf11 Add fallback when a there is no preview for a version
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-05-30 12:16:49 +02:00
Louis Chemineau 5ac2eefe7b Improve handling of undefined version label
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-05-30 11:56:45 +02:00
Nextcloud bot 36ec021f74 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-30 00:17:47 +00:00
Nextcloud bot 2f33312336 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-28 00:17:43 +00:00
Nextcloud bot 72612cb73c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-27 00:18:13 +00:00
Julius Härtl 0a7594753f fix: execute throws docrine exceptions not our wrapped ones
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-26 07:46:25 +00:00
Nextcloud bot 8f0da6b9f7 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-26 00:18:18 +00:00
Arthur Schiwon 053cefa373 Merge pull request #38435 from nextcloud/release/26.0.2
26.0.2
2023-05-25 12:09:03 +02:00
Arthur Schiwon deae7be0a5 26.0.2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-25 12:08:34 +02:00
Nextcloud bot 3a14476947 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-25 00:19:59 +00:00
Joas Schilling c075a1e42e Merge pull request #38437 from nextcloud/revert-37793-backport/37522/stable26
Revert "[stable26] Ungroup `placeholder` css rules to prevent browsers from removing all rules"
2023-05-24 17:18:12 +02:00
Arthur Schiwon 8ba2f2617f Revert "[stable26] Ungroup placeholder css rules to prevent browsers from removing all rules" 2023-05-24 15:19:13 +02:00
Nextcloud bot 93a7d27bb4 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-24 00:17:58 +00:00
Nextcloud bot 81a6300e39 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-23 00:17:36 +00:00
Robin Appelman c63748a95c fix loading custom logo image
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-22 14:50:28 +00:00
fenn-cs aca31e875e Use aria-expanded correctly on toggle user actions
The aria-expanded attribute was added on the expandable item rather
Than the button that triggers the expand.

Resolves : #37137

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-22 10:46:36 +00:00
Nextcloud bot 68acce900a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-22 00:17:54 +00:00
Nextcloud bot a36cd93617 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-21 00:17:17 +00:00
Nextcloud bot 702515d038 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-20 00:17:21 +00:00
Artur Neumann 67bba3537c expect invalidateTokensOfUser only be called for seen users
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2023-05-19 12:27:20 +05:45
Artur Neumann cb005f6835 invalidate oauth2 tokens only for seen users
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2023-05-19 12:02:07 +05:45
Artur Neumann dcab216f49 move mocks into private variables
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2023-05-19 12:02:07 +05:45
Artur Neumann 57c7b73322 autoloaderchecker
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2023-05-19 12:02:06 +05:45
Artur Neumann 3e1e6f1108 added @since tag
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2023-05-19 12:02:06 +05:45
Artur Neumann 774cdf5e90 unit tests for Manager::invalidateTokensOfUser
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2023-05-19 12:02:06 +05:45
Artur Neumann aae3ff68d4 adjust SettingsController tests
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2023-05-19 12:02:06 +05:45
Artur Neumann 19bb66a889 public interface to invalidate tokens of user
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2023-05-19 12:02:05 +05:45
Artur Neumann 9f8f2d27b6 invalidate existing tokens when deleting an oauth client
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2023-05-19 12:02:05 +05:45
Nextcloud bot dc3a6e79b5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-19 00:17:29 +00:00
Nextcloud bot daf1bfe19d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-18 18:46:40 +00:00
Nextcloud bot eab8807e6e Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-18 00:17:58 +00:00
Ferdinand Thiessen a01a15c62b Merge pull request #37793 from nextcloud/backport/37522/stable26
[stable26] Ungroup `placeholder` css rules to prevent browsers from removing all rules
2023-05-17 21:12:47 +02:00
Arthur Schiwon e29000193c Merge pull request #38314 from nextcloud/release/26.0.2_rc1
26.0.2 RC1
2023-05-17 19:44:13 +02:00
Arthur Schiwon dfd4f5880c Merge pull request #38317 from nextcloud/backport/38115/stable26
[stable26] Rename `numericStorageId` to `numericExternalStorageId` in PersonalMount.php
2023-05-17 19:04:36 +02:00
Arthur Schiwon 7c6b47dd27 Merge pull request #38091 from nextcloud/backport/35092/stable26
[stable26] Check return value and improve error handling on certificate manager
2023-05-17 19:04:10 +02:00
Andy Scherzinger 4bd2f33cfe Merge pull request #38307 from nextcloud/backport/37961/stable26
[stable26] SystemTags endpoint to return tags used by a user with meta data
2023-05-17 18:15:02 +02:00
Arthur Schiwon 83e0b31b62 Merge pull request #38167 from nextcloud/backport/38100/stable26
[stable26] Fix error on delete in ChunkingV2Plugin
2023-05-17 15:54:52 +02:00
Ferdinand Thiessen 25cde39f1f fix(core): Ungroup placeholder css rules to prevent browsers from removing all rules
When rules are grouped using the comma operator and one selector is invalid / unknown then the whole group is invalidated[1].
In this case `::-ms-input-placeholder` is unknown to Firefox and Chrome, so the `::placeholder` rule is never applied.
[1]: https://www.w3.org/TR/selectors-3/#grouping

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-17 15:02:32 +02:00
Arthur Schiwon d1640ac758 Merge pull request #38070 from nextcloud/backport/37480/stable26
[stable26] fix(ocp): Add deprecation version to ILogFactory::getCustomLogger
2023-05-17 13:54:05 +02:00
Arthur Schiwon cd26e67458 Merge pull request #38319 from nextcloud/backport/38101/stable26
[stable26] Fix : Share Expire After N Days width
2023-05-17 13:52:00 +02:00
Arthur Schiwon 2a87aaa4c1 Merge pull request #38255 from nextcloud/backport/37865/stable26
[stable26] add command to summarize space usage
2023-05-17 13:47:42 +02:00
Arthur Schiwon fc86b9cd85 Merge pull request #38130 from nextcloud/backport/36895/stable26
[stable26] Fix json_decode expecting a string
2023-05-17 13:45:11 +02:00
Arthur Schiwon 4e1b6ee168 Merge pull request #38009 from nextcloud/backport/37925/stable26
[stable26] fix: change maintenance mode info wording
2023-05-17 13:43:36 +02:00
Arthur Schiwon 02dbc04533 Merge pull request #37849 from nextcloud/backport/37834/stable26
[stable26] Fix TypeError in Profiler
2023-05-17 13:42:51 +02:00
Arthur Schiwon c24bd06825 Merge pull request #37785 from nextcloud/backport/36217/stable26
[stable26] Handle reminders where calendar name is null
2023-05-17 13:41:44 +02:00
Arthur Schiwon 8cdbbbec94 Merge pull request #37708 from nextcloud/backport/37697/stable26
[stable26] Fix button text
2023-05-17 13:38:37 +02:00
Arthur Schiwon f341d631d1 Merge pull request #37601 from nextcloud/backport/37526/stable26
[stable26] fix(dav): Use an icon with correct color for calendar user settings section
2023-05-17 13:37:52 +02:00
Arthur Schiwon 0c3439e151 Merge pull request #37304 from nextcloud/backport/37006/stable26
[stable26] also unmark deleted ldap user when checking the ldap entry
2023-05-17 13:36:46 +02:00
Christoph Wurst fed6aa0329 Merge pull request #38248 from nextcloud/fix/read-only-system-addres-book-acls-stable26
[stable26] fix(carddav): Mark system address book as read-only
2023-05-17 13:13:40 +02:00
Joas Schilling 413611acac Merge pull request #38331 from nextcloud/backport/38316/stable26
[stable26] chore(deps): Bump @nextcloud/vue from 7.11.5 to 7.11.6
2023-05-17 07:16:33 +02:00
Christopher Ng 89ca08e1fd chore(deps): Bump @nextcloud/vue from 7.11.5 to 7.11.6
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit b4caff393c)
2023-05-16 17:23:42 -07:00
Nextcloud bot 64a1444ff7 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-17 00:17:44 +00:00
Simon L 342e5e6ed9 Merge pull request #38318 from nextcloud/backport/38303/stable26
[stable26] fix(search): fix load more
2023-05-16 22:36:06 +02:00
Jérôme Herbinet 3921e67413 Finally no with seams better to be relevant with other fields
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-05-16 19:26:42 +00:00
John Molakvoæ 6da7e66dc1 fix(search): fix load more
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-16 19:25:52 +00:00
Jérôme Herbinet d8904a3279 Fix : Share Expire After N Days width
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2023-05-16 18:02:21 +00:00
Daniel 3a56082ec5 Rename numericStorageId to numericExternalStorageId in PersonalMount.php
so that it doesn't override `numericStorageId` in the `MountPoint` baseclass

fixes https://github.com/nextcloud/server/issues/37473
fixes https://github.com/nextcloud/server/issues/37414

Signed-off-by: Daniel <7558512+DerGenaue@users.noreply.github.com>
2023-05-16 17:18:31 +00:00
Joas Schilling 5ea5e7b339 Merge pull request #38189 from nextcloud/backport/38170/stable26
[stable26] fix(workflowengine): Fix multiple UI issues in workflow engine admin settings
2023-05-16 18:36:32 +02:00
Arthur Schiwon a84d9eb545 26.0.2 RC1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-16 18:04:00 +02:00
Kate 554d0b17c6 Merge pull request #38304 from nextcloud/backport/38143/stable26
[stable26] Fix generated avatars cache
2023-05-16 17:08:50 +02:00
Joas Schilling bac0941aa0 chore(assets): Recompile JS
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-16 14:11:16 +02:00
Joas Schilling eea84febf7 fix(workflowengine): Fix multiple UI issues in workflow engine admin settings
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-16 14:08:45 +02:00
Arthur Schiwon 298af3cf0a refactor: remove where specification from SELECT getter
- search constraints are now fully in control of
  SystemTagsInFilesDetector::detectAssignedSystemTagsIn(), avoids
  duplication of a WHERE statement

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-16 12:47:15 +02:00
Arthur Schiwon f2b5a079db refactor: remove SystemTag logic from Folder into QuerySearchHelper
- adds OC\SystemTag\SystemTagsInFilesDetector where the search logic is
  moved to

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-16 12:47:09 +02:00
Arthur Schiwon f50ce8b3bd chore: polish SystemTagsInUseCollection
- DI SystemTagManager
- add some comments and doc
- catch NoUserException
- add return type hints

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-16 12:47:01 +02:00
Arthur Schiwon b1c8fc38a2 fix: improve naming of new systemtags endpoint to systemtags-assigned
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-16 12:46:55 +02:00
Arthur Schiwon c0dbde5fba feat: specify media type via url path: systemtags-current/$mediaType
- only the media part of the mime type can be search, but not the full
  mime type. It can be added, should it become necessary.
- thus fixes previously hardcoded selector for image/ types
- also fixes a return type hint
- adds a return type hint

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-16 12:46:50 +02:00
Arthur Schiwon 2ea872d156 PoC: SystemTags endpoint to return tags used by a user with meta data
Target case is photos app: when visiting the tags category, all systemtags
of the whole cloud are retrieved. In subequent steps the next tag is
requested until the browser view is filled with tag tiles (i.e. previews
are requested just as well).

With this approach, we incorpoate the dav search and look for user related
tags that are used by them, and already returns the statistics (number of
files tagged with the respective tag) as well as a file id for the purpose
to load the preview. This defaults to the file with the highest id.

Call:
curl -s -u 'user:password' \
  'https://my.nc.srv/remote.php/dav/systemtags-current' \
  -X PROPFIND -H 'Accept: text/plain' \
  -H 'Accept-Language: en-US,en;q=0.5'  -H 'Depth: 1' \
  -H 'Content-Type: text/plain;charset=UTF-8' \
  --data @/home/doe/request-systemtag-props.xml

With request-systemtag-props.xml:
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
        <d:prop xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns">
                <oc:id/>
                <oc:display-name/>
                <oc:user-visible/>
                <oc:user-assignable/>
                <oc:can-assign/>
                <nc:files-assigned/>
                <nc:reference-fileid/>
        </d:prop>
</d:propfind>

Example output:
  …
  <d:response>
    <d:href>/master/remote.php/dav/systemtags/84</d:href>
    <d:propstat>
      <d:prop>
        <oc:id>84</oc:id>
        <oc:display-name>Computer</oc:display-name>
        <oc:user-visible>true</oc:user-visible>
        <oc:user-assignable>true</oc:user-assignable>
        <oc:can-assign>true</oc:can-assign>
        <nc:files-assigned>42</nc:files-assigned>
        <nc:reference-fileid>924022</nc:reference-fileid>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  <d:response>
    <d:href>/remote.php/dav/systemtags/97</d:href>
    <d:propstat>
      <d:prop>
        <oc:id>97</oc:id>
        <oc:display-name>Bear</oc:display-name>
        <oc:user-visible>true</oc:user-visible>
        <oc:user-assignable>true</oc:user-assignable>
        <oc:can-assign>true</oc:can-assign>
        <nc:files-assigned>1</nc:files-assigned>
        <nc:reference-fileid>923422</nc:reference-fileid>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  …

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-16 12:46:37 +02:00
Simon L 45ecabf7a1 adjust patch
Signed-off-by: Simon L <szaimen@e.mail.de>

Signed-off-by: Simon L. <szaimen@e.mail.de>
2023-05-16 11:56:41 +02:00
jld3103 9ae9f03d83 Clear generated avatar caches
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-05-16 09:52:00 +00:00
jld3103 2374aea9dd Properly clear cached avatars
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-05-16 09:52:00 +00:00
Joas Schilling 7cc7984ab7 Merge pull request #38275 from nextcloud/backport/38274/stable26
[stable26] fix(middleware): Also abort the request when reaching max delay in af…
2023-05-16 11:31:10 +02:00
Côme Chilliet ffa4906170 Merge pull request #38289 from nextcloud/backport/38196/stable26
[stable26] Get rid of more int casts in file size manipulations
2023-05-16 09:27:11 +02:00
Joas Schilling 8c539100ec Merge pull request #38263 from nextcloud/bugfix/38229/stable26
[stable26] fix(deps): Bump @nextcloud/vue to 7.11.5
2023-05-16 08:30:38 +02:00
Joas Schilling 958a023d80 Merge pull request #38212 from nextcloud/automated/noid/stable26-update-psalm-baseline
[stable26] Update psalm-baseline.xml
2023-05-16 07:10:02 +02:00
Joas Schilling e05da15f5b Merge pull request #38268 from nextcloud/backport/38267/stable26
[stable26] fix(lostpassword): Also rate limit the setPassword endpoint
2023-05-16 06:35:29 +02:00
Joas Schilling 97972fc184 fix(CI): Adjust expected CI result
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-16 06:33:31 +02:00
Nextcloud bot f7fdaf8935 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-16 02:28:37 +00:00
nextcloud-command 2dff36f490 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-05-16 02:27:38 +00:00
Robin Appelman de77a03c24 Merge pull request #38281 from nextcloud/session-auth-check-username-26
[26] check the username when doing external storage session auth
2023-05-15 23:48:37 +02:00
Simon L edfcac73b5 Merge pull request #38257 from nextcloud/backport/38242/stable26
[stable26] Fix incosistent scrolling in Firefox
2023-05-15 21:37:39 +02:00
Julius Härtl cbdc10a195 Merge pull request #37872 from nextcloud/backport/37853/stable26 2023-05-15 21:26:22 +02:00
Côme Chilliet 988c03a0a5 Fix return types in phpdoc
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-15 17:28:31 +02:00
Côme Chilliet d618b8061c Get rid of more int casts in file size manipulations
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-15 17:26:18 +02:00
Louis 315a1da12c Merge pull request #38254 from nextcloud/backport/38224/stable26
[stable26] Check if version has entity before trying to access it
2023-05-15 17:16:28 +02:00
Robin Appelman cd2ebbff08 check the username when doing external storage session auth
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-15 17:02:58 +02:00
Joas Schilling 94211721a6 fix(middleware): Also abort the request when reaching max delay in afterController
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-15 16:24:12 +02:00
Joas Schilling 156cc8d16b fix(tests): Adjust unit tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-15 16:14:15 +02:00
Simon L dd4f1da28b Fix incosistent scrolling in Firefox
Signed-off-by: Simon L <szaimen@e.mail.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-15 14:04:19 +00:00
Joas Schilling e4b987142c fix(lostpassword): Also rate limit the setPassword endpoint
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-15 15:57:25 +02:00
Joas Schilling cde60b1ce7 chore(assets): Recompile JS
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-15 14:05:13 +02:00
Joas Schilling fa50ce385f fix(deps): Bump @nextcloud/vue to 7.11.5
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-15 14:03:22 +02:00
Arthur Schiwon 2408b71aa9 Read mtime of version.php only once
- in most cases it would read again in \OC_Util::loadVersion anyway
- remove some unused use statements

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-15 13:55:24 +02:00
Arthur Schiwon bc6f7af091 add the server roots and version info hash to apcu prefix
fixes collissions when more than one instance is running on the same
system

For the memcaches we use a more complex prefix, where version and
instance ID are incorporated. We do not have this data at hand at this
point of time. But we can get the mtime of the version.php file
relatively cheap.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-15 13:55:22 +02:00
Côme Chilliet 256f48a48c Merge pull request #38238 from nextcloud/backport/37709/stable26
[stable26] fix: Check for wrapped retriable exceptions
2023-05-15 12:15:04 +02:00
Robin Appelman 3368206e13 add option to list all files instead of limiting
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-15 10:06:01 +00:00
Robin Appelman 8f08556241 add command to summarize space usage
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-15 10:06:01 +00:00
Git'Fellow 7e7223af55 Check if version has entity before trying to access it
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-05-15 09:36:24 +00:00
Côme Chilliet 8d1c1403cc Merge pull request #38204 from nextcloud/backport/36893/stable26
[stable26] Make sure to never trigger files hooks on a null path
2023-05-15 11:24:33 +02:00
Christoph Wurst 68f0547284 fix(carddav): Mark system address book as read-only
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-15 10:32:49 +02:00
Nextcloud bot e0f9137b8a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-15 02:28:32 +00:00
Nextcloud bot 7ac2877931 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-14 02:27:48 +00:00
Julius Härtl 27bd9e2ade fix: Check for wrapped retriable exceptions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-13 22:23:04 +00:00
Nextcloud bot 79f342531c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-13 02:28:05 +00:00
Robin Appelman 2a465e935b Merge pull request #37873 from nextcloud/backport/37062/stable26
[stable26] Check free space only if source exists and is dir
2023-05-12 20:25:54 +02:00
Git'Fellow e41eb529b8 Add function_exists() check
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-05-12 19:19:05 +02:00
Git'Fellow 2ef8e76adb Fix free space problems
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-05-12 19:19:04 +02:00
John Molakvoæ b40e943076 Merge pull request #38208 from nextcloud/fix/foo-stable26-38194 2023-05-12 17:45:23 +02:00
Nextcloud bot 52fd9748fa Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-12 02:28:21 +00:00
John Molakvoæ d8392fc62f fix: prevent malicious url in unsupported browser redirect
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-05-11 18:10:58 +02:00
Côme Chilliet 4d215828c9 Make sure to never trigger files hooks on a null path
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-11 14:43:04 +00:00
Côme Chilliet f1bfd7fd48 Merge pull request #38154 from nextcloud/backport/37944/stable26
[stable26] Do not stop at the first PHP error/warning in files:scan
2023-05-11 15:13:05 +02:00
Lorenzo Tanganelli 4944975a14 fix error on delete in ChunkingV2Plugin
Signed-off-by: Lorenzo Tanganelli <lorenzo.tanganelli@hotmail.it>
2023-05-10 06:51:51 +00:00
Julius Härtl b7602cad74 Merge pull request #38098 from nextcloud/backport/38063/stable26 2023-05-10 08:34:45 +02:00
Louis 1229beb55c Merge pull request #38153 from nextcloud/backport/38125/stable26
[stable26] Check if version entity is not null before delete
2023-05-10 07:11:17 +02:00
Nextcloud bot 7083668f7d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-10 02:31:35 +00:00
Côme Chilliet f664d42bb0 Add an error counter
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-09 16:02:50 +00:00
Côme Chilliet 1b56b30fcd Only show error stack trace on very verbose level
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-09 16:02:50 +00:00
Côme Chilliet 38815e50fc Do not stop at the first PHP error/warning in files:scan
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-09 16:02:50 +00:00
Git'Fellow 07b82d7864 Check if version entity is not null before delete
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-05-09 15:30:04 +00:00
Joas Schilling 9260ef5c29 Merge pull request #37549 from nextcloud/backport/37520/stable26
[stable26] fix DBAL exception handling in setValues
2023-05-09 14:29:03 +02:00
John Molakvoæ 8914b50722 fix(theming): replace elementColor dark value with better contrast #8c8c8c
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-09 12:36:11 +02:00
John Molakvoæ 1c3832477f fix(theming): do not show the image default background on user theming if disabled
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-05-09 12:27:22 +02:00
John Molakvoæ 76dbb06433 fix(theming): remove unnecessary color-primary-element-default-hover variable
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-05-09 12:27:22 +02:00
John Molakvoæ 45d28c3323 fix(theming): replace color-primary-text-dark with color-primary-element-text-dark
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-05-09 12:27:21 +02:00
John Molakvoæ c90ffa906e fix(theming): ensure image background is not defined if admin disabled it
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-05-09 12:27:21 +02:00
John Molakvoæ b6a5e353bf fix(theming): calc primary element from current main background
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-05-09 12:27:19 +02:00
Julius Härtl 018b701d33 Merge pull request #38128 from nextcloud/backport/36774/stable26 2023-05-09 12:08:21 +02:00
Nextcloud bot 1952cc8b4a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-09 02:19:56 +00:00
Ilya Apasov b4fab4cfa4 Update Checker.php
Signed-off-by: Ilya Apasov <apasov@users.noreply.github.com>
2023-05-08 19:33:02 +00:00
Julius Härtl 6520fa1ac9 tests: Adapt node related unit tests mocks to required root view
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-08 15:21:52 +00:00
Julius Härtl 51549f407b fix: Use proper path when creating node instances
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-08 15:21:52 +00:00
Nextcloud bot fc5247892b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-08 02:28:20 +00:00
Nextcloud bot 6f11379f36 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-07 02:28:27 +00:00
Nextcloud bot 3e615da596 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-06 02:27:52 +00:00
Ferdinand Thiessen 769242d644 Merge pull request #38079 from nextcloud/stable26-fix-weather-aria-label
[stable26] Fix weather app aria label
2023-05-05 16:55:24 +02:00
Ferdinand Thiessen fc33f73b3b Merge pull request #38076 from nextcloud/stable26-skip-content-buttons
[stable26] Fix "skip content"-buttons on small screen sizes
2023-05-05 15:58:31 +02:00
Julius Härtl d05ca978b8 Merge pull request #38078 from nextcloud/stable26-profile-button-visibility 2023-05-05 12:23:24 +02:00
Nextcloud bot 39470e9e0d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-05 02:28:19 +00:00
Simon L db876019c4 Merge pull request #38081 from nextcloud/backport/37148/stable26
[stable26] increase imaginary timeouts as for big files the processing could take very long
2023-05-05 00:37:58 +02:00
nextcloud-command 8a7e11a681 Compile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-04 20:59:09 +00:00
Ferdinand Thiessen 96e625482a fix(settings): Increase "Edit your profile visibility button" contrast
Before this the contrast of the button was too low in terms of accessibility.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-04 20:57:23 +00:00
Ferdinand Thiessen 8d5bf3fa49 fix(core): Show skip content buttons on lowres displays correctly
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-04 20:54:19 +00:00
Git'Fellow 22f02a46d1 Fix conflicts
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-05-04 22:35:31 +02:00
Jan Messer 364f3f5f26 [BUGFIX] throw exception instead of error if unable to create file handler (only exceptions are catch)
Signed-off-by: Jan Messer <jan@mtec-studios.ch>
2023-05-04 20:33:02 +00:00
Jan Messer 6c90e3f780 [BUGFIX] check return value and improve error handling
With S3 primary storage there was a problem with getting the CA bundle from the storage without having the CA bundle for the connection which causes that the CertificateManager was throwing an Error.
This commit improves the handling in CertificateManager and log unexpected behaviors.

Signed-off-by: Jan Messer <jan@mtec-studios.ch>
2023-05-04 20:33:02 +00:00
Simon L 7f61d9b92d increase imaginary timeouts as for big files the processing could take very long
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-05-04 15:01:27 +00:00
Ferdinand Thiessen aa1d8d6142 fix(weather_status): Override the default NcActions aria-label
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-05-04 16:47:34 +02:00
Christoph Wurst 2b470443a4 fix(ocp): Add deprecation version to ILogFactory::getCustomLogger
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-04 09:53:06 -03:00
Christoph Wurst 32f9b8b30e Merge pull request #38054 from nextcloud/backport/38016/stable26
[stable26] fix: add workaround for oci and limit queries
2023-05-04 11:15:30 +02:00
Ferdinand Thiessen f6109c9ea9 Merge pull request #38049 from nextcloud/backport/38045/stable26
[stable26] Fix app overflow menu on bright color theme
2023-05-04 10:54:17 +02:00
Nextcloud bot 850ca6acb6 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-04 02:28:17 +00:00
Daniel Kesselberg c9d2716c09 fix: add workaround for oci and limit queries
DBAL uses a helper column "doctrine_rownum" for top-n queries

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-05-03 21:14:33 +00:00
nextcloud-command 390a8a6bfd Compile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-03 18:16:56 +00:00
Ferdinand Thiessen fcf9d571f0 fix(AppMenu): On bright color theme the app icons in the overflow menu must be inverted
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-05-03 17:52:54 +00:00
max-nextcloud 0ee02afb22 Merge pull request #38043 from nextcloud/backport/37787/stable26
[stable26] fix: catch ManuallyLockedException and use app context
2023-05-03 16:35:37 +02:00
Louis ab134a359d Merge pull request #38040 from nextcloud/backport/37958/stable26
[stable26] Mutualize expireDate handling when creating and updating a share
2023-05-03 15:58:17 +02:00
Joas Schilling bb81b11194 Merge pull request #38037 from nextcloud/backport/33106/stable26
[stable26] Update expire_date column of table comments
2023-05-03 14:46:24 +02:00
Max be025b01ca fix: catch ManuallyLockedException and use app context
The files_lock app may throw ManuallyLockedExceptions
when attempting to revert a file that is currently opened.
This would prevent the user from rolling back a opened file.

Text and Richdocuments handle changes of the file while editing.
Allow reverting files even when they are locked by these apps
and let the apps handle the conflict.

Signed-off-by: Max <max@nextcloud.com>
2023-05-03 11:38:00 +00:00
Louis Chemineau 54e5c06f6e Mutualize expireDate handling when creating and updating a share
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-05-03 09:14:14 +00:00
Arthur Schiwon 511bfab6f5 Merge pull request #38005 from nextcloud/backport/37525/stable26
[stable26] add command for getting fileinfo for debugging
2023-05-03 10:38:31 +02:00
Vitor Mattos 77bcc6f26e Cover expire_date with unit tests
Signed-off-by: Vitor Mattos <vitor@php.rio>
2023-05-03 08:36:27 +00:00
Vitor Mattos f13aa71076 Update expire_date column of table comments
Signed-off-by: Vitor Mattos <vitor@php.rio>
2023-05-03 08:36:27 +00:00
Nextcloud bot eabc74e708 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-03 02:28:08 +00:00
Simon L bceeb31051 Merge pull request #38027 from nextcloud/backport/37903/stable26
[stable26] Fix multiple LDAP configuration support by fixing AccessFactory
2023-05-03 00:55:31 +02:00
Côme Chilliet 77f1ba9225 Add comment about Manager instance not being shared
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-02 15:56:35 +00:00
Côme Chilliet d47a81a38a Adapt Sync job tests to the constructor change
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-02 15:56:35 +00:00
Côme Chilliet c7accb30c1 Fix multiple LDAP configuration support by fixing AccessFactory
It must not reuse the same OCA\User_LDAP\User\Manager instance for
 several Access instances.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-02 15:56:34 +00:00
Nextcloud bot 83d060a233 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-02 02:27:54 +00:00
Daniel Kesselberg 6a04405167 fix: change maintenance mode info wording
In maintenance mode the database is accessible and it's possible to execute other commands then maintenance:mode

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-05-01 17:43:35 +00:00
Robin Appelman 2d4815f7ae validate that folder size sums to children
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-01 14:03:19 +00:00
Robin Appelman f465779e4a add command for getting fileinfo for debugging
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-01 14:03:19 +00:00
Nextcloud bot 77f1cc658a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-01 02:29:33 +00:00
Nextcloud bot efffc83fef Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-30 02:29:27 +00:00
Nextcloud bot a820d259a3 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-29 02:28:37 +00:00
Simon L 79b24abd1b Merge pull request #37973 from nextcloud/automated/noid/stable26-fix-npm-audit
[stable26] Fix npm audit
2023-04-28 20:55:53 +02:00
nextcloud-command ca04ae19fd chore(deps): fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2023-04-28 17:11:44 +00:00
Nextcloud bot 1ec8097d72 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-28 02:28:47 +00:00
Louis ef9c22578a Merge pull request #37957 from nextcloud/backport/37948/stable26
[stable26] Do not show Tags action when systemtag is disabled
2023-04-27 18:25:39 +02:00
Joas Schilling dba57673bd Merge pull request #37941 from nextcloud/backport/37935/stable26
[stable26] fix(settings): Fix title of profile scope options
2023-04-27 17:52:20 +02:00
Louis Chemineau 5bc4a0b594 Do not show Tags action when systemtag is disabled
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-27 14:01:24 +00:00
Simon L 2a64c4fc39 Merge pull request #37875 from nextcloud/backport/37820/stable26
[stable26] ignore errors while trying to update parent storage_mtime
2023-04-27 09:43:03 +02:00
Joas Schilling 00845e12cd Merge pull request #37845 from nextcloud/bump/guzzle-psr7/stable26
[stable26] sec(deps): Update guzzlehttp/psr7
2023-04-27 09:38:44 +02:00
Joas Schilling 039d208614 chore(assets): Recompile JS
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-27 09:30:52 +02:00
Louis 2d45ce2807 Merge pull request #37939 from nextcloud/backport/stable26-37806
[stable26] Backport: Fix profile view edit button overlapping status text
2023-04-27 09:30:47 +02:00
Joas Schilling 2f39b65c36 fix(settings): Fix title of profile scope options
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-27 09:20:21 +02:00
Nextcloud bot f3aa4a1c30 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-27 02:28:44 +00:00
Ferdinand Thiessen 32aab7ed2b Merge pull request #37833 from nextcloud/backport/37807/stable26
[stable26] Fix background color of external devices with errors on dark color theme
2023-04-26 23:00:29 +02:00
nextcloud-command 35d891b99a Compile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-04-26 20:50:41 +00:00
Ferdinand Thiessen 019e2969cd fix(core): Fix profile view edit button overlapping status text
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-04-26 22:39:40 +02:00
Louis 748f960273 Merge pull request #37900 from nextcloud/backport/stable26/artonge/fix/dont_override_stored_credentials_with_saml
[stable26] Do not override stored credentials when login in with SAML
2023-04-26 19:08:05 +02:00
Joas Schilling 9bcd9e7d3f sec(deps): Update guzzlehttp/psr7
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-26 15:44:29 +02:00
Arthur Schiwon 0804f96a6b Merge pull request #37922 from nextcloud/backport/37909/stable26
[stable26] Update crl after revoke shifts.csr
2023-04-26 09:02:59 +02:00
Nextcloud bot a5b1587d9b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-26 02:28:19 +00:00
Vitor Mattos 6d689b8db5 Update crl after revoke shifts.csr
Signed-off-by: Vitor Mattos <vitor@php.rio>
2023-04-25 14:17:45 +00:00
Louis 7fdc049844 Merge pull request #37911 from nextcloud/backport/37780/stable26
[stable26] Trap focus in dialogs
2023-04-25 11:02:05 +02:00
Simon L 909f8f1c84 Merge pull request #37907 from nextcloud/stable26-make-grid-toggle-sticky
[stable26] make grid toggle sticky
2023-04-25 10:40:55 +02:00
Louis b98bb1beec Merge pull request #37768 from nextcloud/backport/37764/stable26
[stable26] Really disable versions features when S3 versioning is enabled
2023-04-25 10:30:43 +02:00
Christopher Ng c02a34fe7f Trap focus in dialogs
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 79310bd545)
2023-04-25 09:59:14 +02:00
Christopher Ng 58773c5a69 Add focus-trap
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 87ae9bbc12)
2023-04-25 09:54:59 +02:00
Louis Chemineau a395cde8aa Test StorePasswordListener
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-25 07:49:59 +00:00
Louis Chemineau e29f21bead Do not override stored credentials when login in with SAML
When login in with SAML, the password from `$event->getPassword()` is `null`.

This PR makes sure that this `null` value won't be used to override the stored password even though it is different.

This PR also allow for the password and user to be updated even though they were not set before.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-25 07:49:59 +00:00
Louis Chemineau ac6d249973 Really disable versions features when S3 versioning is enabled
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-25 07:49:52 +00:00
John Molakvoæ c263b15201 Merge pull request #37910 from nextcloud/backport/37804/stable26
[stable26] Bump @nextcloud/vue from 7.8.0 to 7.10.0
2023-04-25 09:05:25 +02:00
Nextcloud bot 06a63c1b5a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-25 02:22:55 +00:00
Christopher Ng 9dc8e75bf2 Bump @nextcloud/vue from 7.8.0 to 7.10.0
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-04-24 16:14:15 -07:00
Daniel Kesselberg 22e6b11081 fix: make grid view button sticky
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-04-24 21:17:21 +02:00
Julius Härtl b7d39421ad Merge pull request #37743 from nextcloud/backport/36690/stable26 2023-04-24 12:27:23 +02:00
Joas Schilling 6c67fd5b06 Merge pull request #37836 from nextcloud/backport/37826/stable26
[stable26] fix(files): Don't throw an error when guests access the controller
2023-04-24 10:16:19 +02:00
Nextcloud bot e0ca3fbe28 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-24 02:29:21 +00:00
Nextcloud bot 02bbd788ea Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-23 02:28:52 +00:00
Nextcloud bot 3371919436 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-22 02:28:22 +00:00
Robin Appelman a7b4d7bdc2 ignore errors while trying to update parent storage_mtime
in the worst case this should only cause an extra rescan later

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-21 17:41:47 +00:00
John Molakvoæ 5ce0410391 Merge pull request #37740 from nextcloud/revert-37718-revert-37701-backport/37617/stable26
[stable26] handle not being able to write file for notify self-test
2023-04-21 10:01:38 +02:00
Nextcloud bot 768b5de324 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-21 02:28:50 +00:00
Côme Chilliet bec51730f5 Fix TypeError in Profiler
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-20 16:04:21 +00:00
Arthur Schiwon e141530289 Merge pull request #37812 from nextcloud/backport/stable26-fix-event-moving
[stable26] fix event move issue
2023-04-20 17:56:23 +02:00
Joas Schilling 1e96f074e0 fix(files): Don't throw an error when guests access the controller
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-20 14:38:07 +02:00
Ferdinand Thiessen 9f8d509edd fix(files_external): Background color of external devices with errors should respect color theme
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-04-20 07:09:53 +00:00
Nextcloud bot e7377a4f2b Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-20 02:29:23 +00:00
John Molakvoæ 8cfcb8e2a2 Merge pull request #37782 from nextcloud/release/26.0.1
26.0.1
2023-04-19 17:38:07 +02:00
Maximilian Martin 8e8a660a09 fix event move issue
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
2023-04-19 10:15:53 +02:00
Nextcloud bot 9b0ea1a913 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-19 02:28:30 +00:00
Thomas Citharel 0d18fc5d71 Handle reminders where calendar name is null
This adds an interface change, but that's not a public API.

We're handling this in the providers and not in ReminderService because
the fallback is translated with the user's language.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-04-18 07:09:39 +00:00
John Molakvoæ 2123ccfd84 26.0.1
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-04-18 09:04:11 +02:00
Nextcloud bot e0a6006c11 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-18 02:37:27 +00:00
Rsplwe dbc7d3ae7c Update lib/private/Files/ObjectStore/S3.php
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Rsplwe <i@rsplwe.com>
2023-04-17 22:23:20 +00:00
Rsplwe a69ae912fa s3: get remaining truncation part
Signed-off-by: Rsplwe <i@rsplwe.com>
2023-04-17 22:23:19 +00:00
Rsplwe 5108e7b68f Adjust the value of 'maxparts' to 1000
Signed-off-by: Rsplwe <i@rsplwe.com>
2023-04-17 22:23:19 +00:00
Nextcloud bot bfe01be0c5 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-17 02:27:44 +00:00
Nextcloud bot cfa59aba17 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-16 02:28:04 +00:00
Nextcloud bot 6632f8a499 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-15 02:27:40 +00:00
Julius Härtl 75fc65e0e6 fix: Check return type on rollback
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-14 18:12:12 +00:00
Robin Appelman 1334011469 don't re-get fileinfo for versioned file if it's not shared
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-14 18:12:12 +00:00
Julius Härtl ce4269925b tests(files_versions): Tear down fs to clear mount cache before testing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-14 18:12:12 +00:00
Julius Härtl 6fed53dee8 fix: Make sure that rollback hook is triggered on all version backends
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-14 18:12:12 +00:00
John Molakvoæ 705d9d1402 Revert "Revert "[stable26] handle not being able to write file for notify self-test"" 2023-04-14 18:35:55 +02:00
John Molakvoæ 3c3c28ea94 Merge pull request #37718 from nextcloud/revert-37701-backport/37617/stable26
Revert "[stable26] handle not being able to write file for notify self-test"
2023-04-14 14:05:54 +02:00
Nextcloud bot 7ab85aee0d Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-14 02:19:52 +00:00
John Molakvoæ 3d0cfd1f2d Revert "[stable26] handle not being able to write file for notify self-test" 2023-04-13 18:56:03 +02:00
Robin Appelman 6b6c00a304 Merge pull request #37701 from nextcloud/backport/37617/stable26
[stable26] handle not being able to write file for notify self-test
2023-04-13 13:26:25 +02:00
Christopher Ng b474e85d15 Fix button text
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-04-13 08:06:47 +00:00
John Molakvoæ 099e3be0db Merge pull request #37698 from nextcloud/release/26.0.1_rc1
26.0.1 RC1
2023-04-13 10:06:40 +02:00
John Molakvoæ 836c63c5d9 Merge pull request #37705 from nextcloud/backport/37704/stable26
[stable26] fix(translation): Fix several issues with the translations api
2023-04-13 10:06:21 +02:00
Joas Schilling 35b083449a feat(translation): Allow guests to use translations as well
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-13 09:09:44 +02:00
Joas Schilling 5a502c6973 fix(translation): Use 400 as status code to be distinguishable from server errors
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-13 09:09:43 +02:00
Joas Schilling 98e90ebd24 fix(translation): Properly set the numbers as HTTP status code
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-13 09:09:43 +02:00
Joas Schilling e9cb759c97 fix(translation): Translate error messages on translations API
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-13 09:09:42 +02:00
John Molakvoæ f95c76d82e Merge pull request #37508 from nextcloud/backport/37486/stable26
[stable26] fix default_language doc
2023-04-13 08:19:32 +02:00
Robin Appelman e1418880e9 handle not being able to write file for notify self-test
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-13 06:18:36 +00:00
John Molakvoæ 426aa8ae8d Merge pull request #37687 from nextcloud/backport/37626/stable26
[stable26] fix(dav): add string comparison for diff
2023-04-13 08:18:16 +02:00
John Molakvoæ e1840c6ce1 26.0.1 RC1
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-04-13 08:03:23 +02:00
Nextcloud bot 75f14714e1 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-13 02:27:58 +00:00
Maxence Lange d66a1ba6f1 Merge pull request #37689 from nextcloud/backport/37680/stable26
[stable26] app type extended_authentication
2023-04-12 14:26:53 -01:00
Maxence Lange 90c53df248 app type extended_authentication
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-04-12 14:34:27 +00:00
Anna Larch 29547e1505 fix(dav): add string comparison for diff
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-04-12 11:28:15 +00:00
Arthur Schiwon 5f3e5e3ce3 Merge pull request #37684 from nextcloud/backport/37678/stable26
[stable26] doc(auth): Warn about disabled token passwords and LDAP logout
2023-04-12 12:46:17 +02:00
Christoph Wurst 5fe65a7d59 doc(auth): Warn about disabled token passwords and LDAP logout
Auth tokens store the user's login password by default. If the password
changes externally (on LDAP), all connected clients stop syncing after 5
minutes max when the password is verified the next time. A web login
revivess those app passwords.

If storing the password is disabled, the tokens continue to work after
password change. But that also means the clients are not logged out the
same way. This can be fine for some setups and problematic for others.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-04-12 07:54:53 +00:00
Nextcloud bot 65aaf76760 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-12 02:28:41 +00:00
John Molakvoæ b841013870 Merge pull request #37666 from nextcloud/backport/37625/stable26 2023-04-11 09:11:50 +02:00
Julius Härtl bf564185d1 fix: Always create user directory when transfering files to new users
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-11 06:06:47 +00:00
Nextcloud bot 14408ffc4f Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-11 02:28:32 +00:00
Nextcloud bot a12b43914a Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-10 02:31:03 +00:00
Nextcloud bot d9924148d2 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-09 02:27:46 +00:00
Nextcloud bot f3d26f1c98 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-08 02:27:56 +00:00
John Molakvoæ fbb202e033 Merge pull request #37565 from nextcloud/automated/noid/stable26-update-psalm-baseline 2023-04-07 08:13:46 +02:00
nextcloud-command e1fcb73a8c Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-04-07 04:13:21 +00:00
Nextcloud bot c44474ce13 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-07 02:28:39 +00:00
Louis ca302e9bfe Merge pull request #37571 from nextcloud/backport/37146/stable26
[stable26] Migrate metadata JSON column to new value TEXT column
2023-04-06 17:25:06 +02:00
Louis Chemineau 138702c60c Migrate metadata as JSON to value as STRING
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-06 11:26:35 +00:00
Robin Appelman 76350d8a4d Merge pull request #37394 from nextcloud/backport/36810/stable26
[stable26] do onetime user setup before getting any mount from providers
2023-04-06 13:10:29 +02:00
Robin Appelman 3fcb4169b5 Merge pull request #37558 from nextcloud/backport/36097/stable26
[stable26] extend path-prefix optimizer to remove all cases of path_hash= when encountering a path prefix filter
2023-04-06 13:07:59 +02:00
Robin Appelman 8ce285c9ab Merge pull request #37537 from nextcloud/backport/35961/stable26
[stable26] clear encrypted flag when moving away from encrypted storage
2023-04-06 13:07:11 +02:00
Nextcloud bot ae8a9f2267 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-06 02:28:53 +00:00
Louis 4551d81e3e Merge pull request #37589 from nextcloud/artonge/backport/stable26/fix/files_versions_cypress_tests
[stable26] Fix cypress tests for files_versions
2023-04-05 19:07:56 +02:00
Thomas Citharel 1bf2ef2084 fix(dav): Use an icon with correct color for calendar user settings section
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-04-05 14:22:03 +00:00
Simon L 89895effee Merge pull request #37286 from nextcloud/backport/37269/stable26
[stable26] fix: add important to css hidden files class
2023-04-05 14:32:20 +02:00
Louis Chemineau e607effded Only upload logs and data on failure
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:46 +02:00
Louis Chemineau f7cebe2cca Prevent expiration from delete file in cypress tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:46 +02:00
Louis Chemineau f057682da4 Upload data dir archive in cypress tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:46 +02:00
Louis Chemineau 9d9934fd84 Use random names in files_version e2e tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:45 +02:00
Louis Chemineau cb0ba3e008 Do not stop docker in cypress workflow
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:45 +02:00
Louis Chemineau dcd727ec9c Fix condition to extrac NC logs in cypress workflow
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:45 +02:00
Louis Chemineau 1903bd47d3 Increase wait time
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:45 +02:00
Louis Chemineau 28b3cb795f Extract logs only for e2e testing
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:45 +02:00
Louis Chemineau 63f872c516 Try to chain cypress commands
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:45 +02:00
Louis Chemineau b1ae27f5b0 Add comments about why we wait in files_versions' cypress tests
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:45 +02:00
Louis Chemineau eba8d7bbb1 Upload NC logs during cypress workflow
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:45 +02:00
Louis Chemineau ca53eef317 Increase wait to ensure versions are created
In files_versions cypress tests, we wait for 1000ms between each versions uploads to make sure that the server properly create a version. Under 1s the serve does not create a version.

This commit increases the wait time as it might help to ensure that the time span is enough between two uploads.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-05 11:51:44 +02:00
Nextcloud bot 435d7447e6 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-05 02:30:34 +00:00
Joas Schilling 003d799663 Merge pull request #37576 from nextcloud/backport/37572/stable26
[stable26] fix(initial-state): Log an error when initial-state can not be JSON e…
2023-04-04 17:21:36 +02:00
Joas Schilling cbec7528de fix(initial-state): Log an error when initial-state can not be JSON encoded
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-04 12:13:03 +00:00
Joas Schilling 0395b796e2 Merge pull request #37523 from nextcloud/backport/37497/stable26
[stable26] Improve handling of profile fields
2023-04-04 09:10:05 +02:00
Nextcloud bot 0dbc7a8f3a Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-04 02:28:38 +00:00
Christopher Ng 82bbcca720 Improve handling of profile fields
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 7bc8b543be)
2023-04-03 15:52:22 -07:00
Joas Schilling e9c1ad0bab Merge pull request #37551 from nextcloud/backport/37542/stable26
[stable26] feat(security): Allow to opt-out of ratelimit protection, e.g. for te…
2023-04-03 18:08:02 +02:00
Robin Appelman 747ed3900d extend path-prefix optimizer to remove all cases of path_hash= when encountering a path prefix filter
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-03 14:55:05 +00:00
Arthur Schiwon ca0a258035 Merge pull request #37488 from nextcloud/backport/37448/stable26
[stable26] hide shared files located in group folder's trash bin
2023-04-03 15:40:24 +02:00
Julius Härtl 0905e5333c Merge pull request #37545 from nextcloud/backport/37417/stable26 2023-04-03 14:44:44 +02:00
Joas Schilling 96204fe6e9 feat(security): Allow to opt-out of ratelimit protection, e.g. for testing on CI
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-03 12:31:54 +00:00
MichaIng 3765a03123 Merge pull request #37533 from nextcloud/backport/37344/stable26
[stable26] [master] [stable25] Quota value as float for 32-bit systems
2023-04-03 11:42:54 +02:00
Arthur Schiwon 7f3af46690 fix DBAL exception handling in setValues
This seems to be a left over after abstracting DBAL. Nowadays,
IQueryBuilder::executeStatement() only throws a \OCP\DB\Exception, where
previously original DBAL exceptions where thrown. These are now wrapped,
the orignal classes are now mapped to a reason.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-04-03 09:41:16 +00:00
Julius Härtl d838844d66 fix: Avoid scrolling the #content wrapper container
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-03 07:31:48 +00:00
Julius Härtl 1845187314 Merge pull request #37439 from nextcloud/backport/37168/stable26
[stable26] fix(files_sharing): Allow file actions other than download for hide download shares
2023-04-03 08:53:01 +02:00
Nextcloud bot dae56e3864 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-02 02:27:16 +00:00
Robin Appelman 86b05a7c12 add test for unmarking encrypted file on cross storage move
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-01 16:49:37 +00:00
Robin Appelman 40748731f1 clear encrypted flag when moving away from encrypted storage
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-01 16:49:37 +00:00
Côme Chilliet 599e85b341 Remove useless coalescing operator on non-null return value
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-01 13:12:05 +00:00
Côme Chilliet a0beacde69 Fix quota typing for 32bits after forward port from 25
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-04-01 13:12:05 +00:00
Côme Chilliet eaeb6b2c85 Silence a warning from psalm with explanation
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-01 13:12:05 +00:00
Côme Chilliet 741553eb93 Adapt types of subclasses
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-01 13:12:05 +00:00
Côme Chilliet 3044f63743 Make it clear that file sizes may be float on 32bits
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-01 13:12:05 +00:00
Vincent Petry cb6227e68f Remove quota value type for 32-bit systems
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2023-04-01 13:12:04 +00:00
Nextcloud bot 26876d5acf Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-04-01 02:27:35 +00:00
Julia Kirschenheuter 5cc53beea0 Merge pull request #37485 from nextcloud/fix/36916-The_list_of_contacts_represents_a_list,_but_it_was_not_marked_as_such-stable26
[stable26] Change contactsmenu structure to a list
2023-03-31 09:30:38 +02:00
Simon L d5360c86b2 Merge pull request #37482 from nextcloud/backport/37378/stable26
[stable26] fix the avatar generation on Alpine Linux
2023-03-31 09:07:22 +02:00
Arthur Schiwon 992b65e4a6 fix default_language doc
Since commit 0228bc6e66 the browser
language always is preferred.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-03-31 07:03:42 +00:00
Julia Kirschenheuter 70a713b8c4 Merge pull request #37389 from nextcloud/backport/37211/stable26
[stable26] Create `<h3>` headings for profile page. Replace `<label>` which have…
2023-03-31 08:40:30 +02:00
Nextcloud bot 01c0294270 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-31 02:28:14 +00:00
Arthur Schiwon 6b4644ba1a hide shared files located in group folder's trash bin
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-03-30 17:02:26 +02:00
julia.kirschenheuter bd5c8057f2 Create <h3> headings for profile page. Replace <label> which have no conncted <input> with <h3> heading
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2023-03-30 15:40:11 +02:00
julia.kirschenheuter 1ad362aae6 Change contactsmenu structure to a list
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2023-03-30 14:52:24 +02:00
Simon L 95b3b5dcc2 another approach to fixing the avatar generation
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 12:31:43 +00:00
Julia Kirschenheuter 3e6e075358 Merge pull request #37471 from nextcloud/backport/37435/stable26
[stable26] Add label for logo link
2023-03-30 09:50:56 +02:00
Julia Kirschenheuter 32942381ba Merge pull request #37463 from nextcloud/backport/37423/stable26
[stable26] Replace custom tooltips with native ones of entries in contacts menu.
2023-03-30 09:29:34 +02:00
Nextcloud bot 50cfdbe5a6 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-30 02:27:44 +00:00
Christopher Ng f943853c3d Add label for logo link
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-03-30 00:32:30 +00:00
julia.kirschenheuter 4f54c5db54 Replace custom tooltips with native ones of entries in contacts menu.
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2023-03-29 16:20:17 +02:00
Julia Kirschenheuter 25ff7c91e5 Merge pull request #37449 from nextcloud/fix/36917-The_statuses_list_was_implemented_semantically_incorrectly
Fix/36917 the statuses list was implemented semantically incorrectly
2023-03-29 09:22:05 +02:00
Joas Schilling 779d8a058d Merge pull request #37441 from nextcloud/backport/37437/stable26
[stable26] fix(docs): Fix RST parsing of the sample config
2023-03-29 09:16:19 +02:00
Nextcloud bot 677f404162 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-29 02:27:56 +00:00
julia.kirschenheuter 863a8b79bb Fix list structure
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2023-03-28 15:03:15 +02:00
Louis d63f20f4a4 Merge pull request #37431 from nextcloud/backport/stable26/Jerome-Herbinet/patch-15
Backport/stable26/jerome herbinet/patch 15
2023-03-28 11:08:25 +02:00
Joas Schilling 5c70c6f98a Merge pull request #37440 from nextcloud/backport/37198/stable26
[stable26] fix(references): Do not log errors on 404 responses of opengraph image fetching
2023-03-28 09:33:15 +02:00
Joas Schilling 48abf11fc2 fix(docs): Fix RST parsing of the sample config
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-28 07:15:48 +00:00
Julius Härtl 7a0c2d879d fix(references): Do not log errors on 404 responses of opengraph image fetching
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-28 08:18:30 +02:00
Julius Härtl b7aad07df5 fix(files_sharing): Allow file actions other than download for hide download shares
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-28 08:15:49 +02:00
Nextcloud bot 0133e4209f Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-28 02:19:33 +00:00
Jérôme Herbinet f0603d337f npm run sass
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2023-03-27 18:18:52 +02:00
Jérôme Herbinet af43bafc86 Fix 2FA blocks' width
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>

Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2023-03-27 18:14:45 +02:00
Simon L 02f1ebab09 Merge pull request #37391 from nextcloud/backport/37340/stable26
[stable26] fix(mailer): remove value comparison for smtp_authtype as there is only one option
2023-03-27 12:31:31 +02:00
Nextcloud bot 56f6fc01e8 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-27 10:18:24 +00:00
Louis 452dc386a2 Merge pull request #37368 from nextcloud/backport/36636/stable26
[stable26] fix OC_Image: Prevent E_WARNING from getimagesize*
2023-03-27 11:49:19 +02:00
Louis 69a55f91fb Merge pull request #37318 from nextcloud/backport/36701/stable26
[stable26] Add parent index on filecache
2023-03-27 11:48:39 +02:00
Julius Härtl 4843bc771d Merge pull request #37217 from nextcloud/backport/37192/stable26 2023-03-27 11:23:29 +02:00
Robin Appelman 9d58c51d46 do onetime user setup before getting any mount from providers
this fixes a race condition where wrappers weren't properly applied if when a mount provider creates the storage instance one mountpoint creation instead of lazily

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-03-24 16:10:29 +00:00
Anna Larch 3cd5568798 fix(mailer): check if authentication is neccessary
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-03-24 14:45:22 +00:00
Julia Kirschenheuter a854274875 Merge pull request #37338 from nextcloud/fix/36908-set_aria-hidden-for-default-shipped_widgets-icons-stable26
[stable26] Fix/36908 set aria hidden for default shipped widgets icons
2023-03-24 12:34:21 +01:00
Julia Kirschenheuter 161e6acd8e Merge pull request #37273 from nextcloud/backport/37174/stable26
[stable26] Set `<h1>` headings for navigation through files app
2023-03-24 11:47:33 +01:00
Julia Kirschenheuter 0a0c741067 Merge pull request #37275 from nextcloud/backport/37244/stable26
[stable26] Replace custom tooltips with native ones and add description to all e…
2023-03-24 11:21:18 +01:00
Louis 8a8f6e6039 Merge pull request #37264 from nextcloud/backport/37152/stable26
[stable26] Use native tooltip for version's date
2023-03-24 10:59:27 +01:00
Louis Chemineau 356c109c68 Use native tooltip for versions
Signed-off-by: Louis Chemineau <louis@chmn.me>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-03-24 09:42:38 +01:00
julia.kirschenheuter 9291267915 Replace custom tooltips with native ones and add description to all elements which have title
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2023-03-24 09:06:08 +01:00
julia.kirschenheuter f555663a8e Set <h1> headings for navigation through files app
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2023-03-24 09:01:38 +01:00
Nextcloud bot f063670828 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-24 02:27:15 +00:00
Marcel Klehr ac0eab19b6 fix OC_Image: Prevent E_WARNING from getimagesize*
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-03-23 14:27:30 +00:00
Nextcloud bot 1eb2edce76 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-23 02:27:14 +00:00
Simon L 387b4045b1 Merge pull request #37052 from nextcloud/backport/37048/stable26
[stable26] update wording for disabled web updater
2023-03-22 18:03:54 +01:00
Louis Chemineau 88fa9cb4ea Add parent index on filecache
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-03-22 14:50:40 +00:00
Simon L 896c891318 address review
Co-authored-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2023-03-22 15:11:16 +01:00
Joas Schilling 3fb8c35344 Merge pull request #37336 from nextcloud/backport/37334/stable26
[stable26] fix(security): Mark recording_servers key appconfig as private as it …
2023-03-22 12:26:42 +01:00
julia.kirschenheuter 9df19366c9 Fix description for icons in dashboard widgets
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
(cherry picked from commit b111c180a5)
2023-03-22 10:51:39 +01:00
Joas Schilling da95d3389d fix(security): Mark recording_servers key appconfig as private as it contains a secret
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-22 09:40:21 +00:00
Nextcloud bot 3dd1e741fb Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-22 02:43:48 +00:00
Ember 'n0emis' Keske 339680c6a1 Don't try to hash a nonexisting password
Allows to log-in via a passwordless authentication provider, eg SSO

Signed-off-by: Ember 'n0emis' Keske <git@n0emis.eu>
2023-03-21 19:00:59 +01:00
Arthur Schiwon 62cfd3b4c9 Merge pull request #37312 from nextcloud/release/26.0.0
26.0.0
2023-03-21 10:19:37 +01:00
Nextcloud bot 2ea7537ca6 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-21 02:27:29 +00:00
Arthur Schiwon e480563a54 26.0.0
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-03-20 19:28:10 +01:00
Arthur Schiwon 2db99590b9 Merge pull request #37310 from nextcloud/bugfix/37277/caldav-sync-stable26
[stable26] fix(session): Fix DAVx5 sync problems by partial reverting session ch…
2023-03-20 19:27:00 +01:00
Joas Schilling c6f424bddd fix(session): Fix DAVx5 sync problems by partial reverting session changes
Temporary disabled the short cut again to solve issues with CalDAV/CardDAV
clients like DAVx5 that use cookies and need a session. See
https://github.com/nextcloud/server/issues/37277#issuecomment-1476366147
and the other comments for further information.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-20 17:20:23 +01:00
Robin Appelman 8d9ec16eaf also unmark deleted ldap user when checking the ldap entry
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-03-20 15:27:22 +00:00
Nextcloud bot 164021dee4 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-20 02:27:29 +00:00
Nextcloud bot bdf17e5252 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-19 02:27:37 +00:00
Nextcloud bot 5ece6f29c3 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-18 02:27:33 +00:00
Anna Larch 3f5a5458c2 fix: add important to css hidden files class
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-03-17 13:51:06 +00:00
Nextcloud bot a6e89e0410 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-17 02:27:25 +00:00
Arthur Schiwon 335b871810 Merge pull request #37202 from nextcloud/release/26.0.0_rc3
26.0.0 RC3
2023-03-16 12:48:19 +01:00
Arthur Schiwon 106fb14183 Merge pull request #37031 from nextcloud/dependabot/npm_and_yarn/stable26/nextcloud/webpack-vue-config-516d77c
chore(deps-dev): Bump @nextcloud/webpack-vue-config to `5.5.0`
2023-03-16 12:12:26 +01:00
Arthur Schiwon 17a29c865b Merge pull request #37251 from nextcloud/automated/noid/stable26-update-psalm-baseline
[stable26] Update psalm-baseline.xml
2023-03-16 11:10:20 +01:00
Arthur Schiwon 0b4cc1b83f Merge pull request #37247 from nextcloud/backport/37010/stable26
[stable26] Fix Cache-Control header of non-versioned assets
2023-03-16 11:09:36 +01:00
Arthur Schiwon 45ecf37248 Merge pull request #37235 from nextcloud/backport/37227/stable26
[stable26] chore: use local variable for remote address
2023-03-16 10:38:24 +01:00
Arthur Schiwon 221bf33245 Merge pull request #37253 from nextcloud/backport/37252/stable26
[stable26] fix(workflow): Check tag attribute
2023-03-16 10:30:23 +01:00
Arthur Schiwon 6b54bfb7b2 Merge pull request #37246 from nextcloud/backport/37242/stable26
[stable26] Reduce list
2023-03-16 10:23:29 +01:00
dependabot[bot] c2bdb02144 chore(deps-dev): Bump @nextcloud/webpack-vue-config
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from `53df7bb` to `516d77c`.
- [Release notes](https://github.com/nextcloud/webpack-vue-config/releases)
- [Commits](https://github.com/nextcloud/webpack-vue-config/compare/53df7bbe61e4a6d960c1d13e63597ce361f3795d...516d77c7012711a741baee53be745168c0456605)

---
updated-dependencies:
- dependency-name: "@nextcloud/webpack-vue-config"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-03-16 09:13:43 +00:00
Joas Schilling ce8ec36184 fix(workflow): Check tag attribute
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-16 08:47:29 +01:00
nextcloud-command 3094e70350 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-03-16 04:55:12 +00:00
Nextcloud bot 5ac1b3533b Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 02:28:18 +00:00
Nicolas Guichard 4bcb38c0b2 Fix Cache-Control header of non-versioned assets
Non-cache-busted assets such as /dist/core-main.js also matched the
regex meant for cache-busted assets (note the ? at the end of the
regex).
The FilesMatch directive for cache-busted assets coming after the
non-cache-busted version all assets actually got the immutable flag
in their Cache-Control header. This caused client-side errors on
updates.

Query strings are not actually passed to FilesMatch directives so we
need another way to tell cache-busted/versionned assets apart from
non-versioned assets, here using If/Else directives.

Signed-off-by: Nicolas Guichard <nicolas@guichard.eu>
2023-03-15 22:35:18 +00:00
Joas Schilling 78e591d0d4 Reduce list
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-15 21:50:04 +00:00
Côme Chilliet 4c161a70a4 Merge pull request #37233 from nextcloud/backport/37197/stable26
[stable26] Do not send a pagination control with size = 0 if cookie is empty
2023-03-15 18:16:24 +01:00
Joas Schilling ae34be566e Merge pull request #37240 from nextcloud/backport/37239/stable26
[stable26] Extend list
2023-03-15 17:20:24 +01:00
Joas Schilling dc3c44a84f Extend list
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-15 16:19:40 +00:00
Daniel Kesselberg d6a3fe7e83 chore(tests): add tests for handleLoginFailed
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-03-15 14:22:36 +00:00
Daniel Kesselberg a086db37cd chore: use local variable for remote address
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-03-15 14:22:36 +00:00
Côme Chilliet d62643b43e Do not send a pagination control with size = 0 if cookie is empty
It only makes sense to send a pagination control with size 0 with a
 cookie to abandon a paged search.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-03-15 13:47:21 +00:00
Arthur Schiwon 826766d3bd Merge pull request #37212 from nextcloud/backport/37029/stable26
[stable26] Add chunking in SystemTagObjectMapper::getTagIdsForObjects
2023-03-15 14:45:25 +01:00
Arthur Schiwon dd3f6516c5 Merge pull request #37072 from nextcloud/backport/36883/stable26
[stable26] dispatch BeforeUserLoggedInEvent
2023-03-15 14:44:58 +01:00
Joas Schilling 259530ed5a Merge pull request #37218 from nextcloud/backport/36852/stable26
[stable26] fix(user_status): Fix the user status automation on the day availablity rules are adjusted
2023-03-15 12:11:45 +01:00
Joas Schilling 15d7fb35f4 Merge pull request #37224 from nextcloud/backport/37221/stable26
[stable26] Save some CI time
2023-03-15 10:26:58 +01:00
Joas Schilling 333d6bcc45 Save some CI time
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-15 09:30:38 +01:00
Nextcloud bot bcc9ee4011 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-15 02:26:49 +00:00
Joas Schilling 6f8d75bd24 fix(CI): Add unit test for nextcloud/server#37167
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-14 16:39:01 +00:00
Joas Schilling a9cf423321 fix(user_status): Fix the user status automation on the day availability rules are adjusted
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-14 16:39:01 +00:00
Joas Schilling 3d6a864210 Merge pull request #37199 from nextcloud/backport/37167/stable26
[stable26] fix(dav): Handle no next potential toggle in availability detection
2023-03-14 17:21:35 +01:00
Côme Chilliet e7c6ff1709 Add chunking in SystemTagObjectMapper::getTagIdsForObjects
This avoids crashing on Oracle with more than 1000 objects

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-03-14 14:25:05 +01:00
Nextcloud bot ee38128f3d Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-14 02:27:20 +00:00
Arthur Schiwon 05b6ff5e7b 26.0.0 RC3
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-03-13 20:37:59 +01:00
Thomas Citharel bddab7d302 fix(dav): Handle no next potential toggle in availability detection
Fixes:  min(): Array must contain at least one element at /var/www/nc/nextcloud/apps/dav/lib/BackgroundJob/UserStatusAutomation.php#142
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-03-13 19:24:58 +01:00
Nextcloud bot 958f9c9147 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-13 02:28:58 +00:00
Nextcloud bot ac2a53a4bd Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-12 02:27:53 +00:00
Nextcloud bot 0b2ad6cefc Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-11 02:28:08 +00:00
Simon L 71b74992e5 Merge pull request #37163 from nextcloud/backport/37126/stable26
[stable26] fix white scrollbar corner in dark mode
2023-03-10 16:18:57 +01:00
Simon L c18e5fe8a9 Merge pull request #37157 from nextcloud/backport/37070/stable26
[stable26] add a check for disk_free_space in Config.php
2023-03-10 16:17:44 +01:00
Simon L 226c601d1d Merge pull request #37155 from nextcloud/backport/37140/stable26
[stable26] imaginary - fix autorotate for heic and improve the logic
2023-03-10 16:16:57 +01:00
Arthur Schiwon cf73f6e8bf Merge pull request #37161 from nextcloud/backport/37116/stable26
[stable26] postgresql installation - add quotes around user names
2023-03-10 09:46:59 +01:00
Simon L 5f6579fb6a fix white scrollbar corner in dark mode
Signed-off-by: Simon L <szaimen@e.mail.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-03-10 02:32:21 +00:00
Nextcloud bot 6a120bfda1 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-10 02:27:25 +00:00
Simon L df8b19aea3 postgresql - add quotes around user names
fix https://github.com/nextcloud/server/issues/37114

Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-10 02:04:00 +00:00
Simon L 703043a024 add a check for disk_free_space in Config.php
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 23:24:38 +00:00
Simon L 865fb8092b imaginary - fix autorotate and improve the logic
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 22:25:57 +00:00
Arthur Schiwon 51c76884bc Merge pull request #37078 from nextcloud/release/26.0.0_rc2
26.0.0 RC2
2023-03-09 17:38:27 +01:00
Arthur Schiwon e3c7bcc61d Merge pull request #37119 from nextcloud/backport/36640/stable26
[stable26] Create headings for apps, users, settings pages
2023-03-09 17:37:28 +01:00
Arthur Schiwon 92b8a5ef1e Merge pull request #37057 from nextcloud/backport/36904/stable26
[stable26] fix(files): Fix controller setup for guests
2023-03-09 17:30:42 +01:00
Arthur Schiwon 72cf710ec8 Merge pull request #37141 from nextcloud/backport/37139/stable26
[stable26] Share type sciencemesh
2023-03-09 17:29:54 +01:00
Arthur Schiwon 2b404e2a04 Merge pull request #37151 from nextcloud/backport/27034/stable26
[stable26] Use MultipartUpload for uploading chunks to s3
2023-03-09 17:25:17 +01:00
Julius Härtl ae911a21d2 tests(integration): Fix catching error only on object store
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-09 15:31:26 +01:00
Julius Härtl a7e5e7e4a1 chore: Bump bundles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-09 15:31:22 +01:00
Julius Härtl 609badf6a2 chore(psalm): Make psalm aware of sabre/uri
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-09 15:31:17 +01:00
Julius Härtl 2664036b57 feat(s3): Use multipart upload for chunked uploading
This allows to stream file chunks directly to S3 during upload.

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-09 15:31:12 +01:00
Joas Schilling 442bce3e0b fix(files): Fix controller setup for guests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-09 12:21:07 +00:00
Arthur Schiwon 5943d0a715 Merge pull request #37066 from nextcloud/backport/34835/stable26
[stable26] Run WebDAV integration tests against S3
2023-03-09 13:16:59 +01:00
julia.kirschenheuter f5ab3123df Create headings for settings pages
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
2023-03-09 13:14:48 +01:00
Arthur Schiwon d29551a46d Merge pull request #37064 from nextcloud/backport/36772/stable26
[stable26] Add label and switch ocdialog close button to button element
2023-03-09 13:05:20 +01:00
Julius Härtl ffb1a39bba Merge pull request #37073 from nextcloud/backport/37026/stable26
[stable26] fix: Avoid log spam on 404 routes not using GET
2023-03-09 12:44:40 +01:00
Christopher Ng 0446703202 Add label and switch ocdialog close button to button element
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-03-09 09:09:24 +01:00
Nextcloud bot 89b396da95 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-09 02:29:24 +00:00
Louis Chemineau c4c02afb62 Compile assets
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-03-08 17:48:40 +00:00
Michiel de Jong b2c8be171d Add SHARE_TYPE_SCIENCEMESH
Signed-off-by: Michiel de Jong <michiel@unhosted.org>
2023-03-08 17:48:39 +00:00
Joas Schilling b9c4112f47 Merge pull request #37122 from nextcloud/backport/37121/stable26
[stable26] fix(docs): Fix URL to docs of deprecated function humanFileSize
2023-03-08 13:35:17 +01:00
nextcloud-command 82a3b6a311 Compile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2023-03-08 11:06:47 +00:00
Joas Schilling 62866bb097 fix(docs): Fix URL to docs of deprecated function humanFileSize
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-08 10:53:00 +00:00
Nextcloud bot f30c7834d8 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-08 02:28:55 +00:00
Arthur Schiwon 69ca730bd1 26.0.0 RC2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-03-07 19:53:16 +01:00
Simon L f7fa2fd974 Merge pull request #37074 from nextcloud/backport/37069/stable26
[stable26] fix(CI): Fix acceptance test password field selector after @nextcloud…
2023-03-07 15:57:09 +01:00
Joas Schilling 4edfeab4a7 fix(CI): Fix acceptance test password field selector after @nextcloud/vue lib update
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-07 09:56:33 +00:00
Julius Härtl a5607754cf fix: Avoid log spam on 404 routes not using GET
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-07 09:56:12 +00:00
Maxence Lange 0cd9ca5be2 dispatch BeforeUserLoggedInEvent
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-03-07 09:20:45 +00:00
Julius Härtl bc759977d2 Merge pull request #37068 from nextcloud/ci/profiler-26
[stable26] ci(performance): Use proper profiler branch for 26
2023-03-07 10:07:54 +01:00
Julius Härtl 54a93e9252 ci(performance): Use proper profiler branch for 26
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-07 08:57:49 +01:00
Julius Härtl 4ca6c3af7a fix: Use proper path for quota fetching
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-07 07:21:20 +00:00
Julius Härtl cab4f8eca3 fix: Recalculate storage statistics on updating the quota
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-07 07:21:20 +00:00
Julius Härtl 8477b1e408 Run webdav related integration tests on github actions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-07 07:21:20 +00:00
Nextcloud bot 0a518bd5ff Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-07 02:26:43 +00:00
Arthur Schiwon f1ced06cd5 Merge pull request #37042 from nextcloud/backport/37028/stable26
[stable26] Add distraction free backgrounds for Nextcloud 26
2023-03-06 17:37:18 +01:00
Nextcloud bot b21ef4881f Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-06 02:27:12 +00:00
Nextcloud bot 5323b8caf1 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-05 02:27:59 +00:00
Simon L e88e3b5e4f update wording for disabled web updater
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-04 18:02:15 +00:00
Nextcloud bot 1ca288f0a4 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-04 02:27:30 +00:00
Jan C. Borchardt 126db69108 Add distraction free backgrounds for Nextcloud 26
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2023-03-03 15:02:20 +00:00
Joas Schilling 3d7ae18660 Merge pull request #37038 from nextcloud/backport/37023/stable26
[stable26] chore(security): Bump "Expires" of well-known/security.txt
2023-03-03 12:12:39 +01:00
Joas Schilling 0d51e1d3b5 chore(security): Bump "Expires" of well-known/security.txt
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-03 10:53:40 +00:00
Joas Schilling 7b7909f767 Merge pull request #37024 from nextcloud/test-with-26-apps-on-stable26
[stable26] Test against matching Talk version on stable branch
2023-03-03 11:19:23 +01:00
Joas Schilling b846f10e7b chore(CI): Test against matching Talk version on stable26 branch
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-03 10:12:31 +01:00
13645 changed files with 610314 additions and 906471 deletions
+15
View File
@@ -0,0 +1,15 @@
codecov:
branch: master
ci:
- drone.nextcloud.com
- !scrutinizer-ci.com
coverage:
precision: 2
round: down
range: "70...100"
status:
project: off
patch: off
comment: off
+38 -82
View File
@@ -1,91 +1,47 @@
FROM ubuntu:noble
FROM ubuntu:focal
ARG DEBIAN_FRONTEND=noninteractive
# PHP
RUN apt-get update -y && \
apt install -y apache2 vim software-properties-common sudo nano gnupg2 wget curl git \
lsb-release ca-certificates apt-transport-https && \
add-apt-repository ppa:ondrej/php -y && \
apt-get update -y
RUN apt-get update -y
RUN apt-get install --no-install-recommends -y \
php8.4 \
php8.4-common \
php8.4-gd \
php8.4-zip \
php8.4-curl \
php8.4-xml \
php8.4-xmlrpc \
php8.4-mbstring \
php8.4-sqlite \
php8.4-xdebug \
php8.4-pgsql \
php8.4-intl \
php8.4-imagick \
php8.4-gmp \
php8.4-apcu \
php8.4-bcmath \
php8.4-redis \
php8.4-soap \
php8.4-imap \
php8.4-opcache \
php8.4-cli \
php8.4-dev \
libmagickcore-6.q16-7-extra \
php7.4 \
php7.4-gd \
php7.4-zip \
php7.4-curl \
php7.4-xml \
php7.4-mbstring \
php7.4-sqlite \
php7.4-xdebug \
php7.4-pgsql \
php7.4-intl \
php7.4-imagick \
php7.4-gmp \
php7.4-apcu \
php7.4-bcmath \
libmagickcore-6.q16-3-extra \
curl \
vim \
lsof \
make \
unzip
nodejs \
npm
# Composer
RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \
curl -sS https://composer.github.io/installer.sig -o /tmp/composer-setup.sig && \
php -r "if (hash_file('sha384', '/tmp/composer-setup.php') !== trim(file_get_contents('/tmp/composer-setup.sig'))) { echo 'Composer installation failed, invalid hash'; exit(1); }" && \
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
rm /tmp/composer-setup.php /tmp/composer-setup.sig
RUN echo "xdebug.remote_enable = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_autostart = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_enable = 1" >> /etc/php/8.4/cli/conf.d/20-xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php/8.4/cli/conf.d/20-xdebug.ini && \
echo "apc.enable_cli=1" >> /etc/php/8.4/cli/conf.d/20-apcu.ini
# Autostart XDebug for apache
RUN { \
echo "xdebug.mode=debug"; \
echo "xdebug.start_with_request=yes"; \
} >> /etc/php/8.4/apache2/conf.d/20-xdebug.ini
# Increase PHP memory limit to 512mb
RUN sed -i 's/memory_limit = .*/memory_limit = 512M/' /etc/php/8.4/apache2/php.ini
# Docker CLI only (for controlling host Docker via socket)
RUN install -m 0755 -d /etc/apt/keyrings && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
chmod a+r /etc/apt/keyrings/docker.asc && \
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update -y && \
apt-get install -y docker-ce-cli && \
ln -s /var/run/docker-host.sock /var/run/docker.sock
# Dedicated DevContainer user runs Apache
ENV APACHE_RUN_USER=devcontainer
ENV APACHE_RUN_GROUP=devcontainer
# Delete any existing user/group with UID/GID 1000 first
RUN (getent passwd 1000 && userdel -r $(getent passwd 1000 | cut -d: -f1)) || true && \
(getent group 1000 && groupdel $(getent group 1000 | cut -d: -f1)) || true && \
groupadd -g 1000 ${APACHE_RUN_GROUP} && \
useradd -u 1000 -g 1000 -ms /bin/bash ${APACHE_RUN_USER} && \
adduser ${APACHE_RUN_USER} sudo && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
sed -ri "s/^export APACHE_RUN_USER=.*$/export APACHE_RUN_USER=${APACHE_RUN_USER}/" "/etc/apache2/envvars" && \
sed -ri "s/^export APACHE_RUN_GROUP=.*$/export APACHE_RUN_GROUP=${APACHE_RUN_GROUP}/" "/etc/apache2/envvars"
USER devcontainer
# NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 22'
WORKDIR /var/www/html
# Docker
RUN apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
RUN apt-get update -y
RUN apt-get install -y docker-ce docker-ce-cli containerd.io
RUN ln -s /var/run/docker-host.sock /var/run/docker.sock
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-76
View File
@@ -1,76 +0,0 @@
<!--
- SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Nextcloud DevContainer
## Usage
Make sure you have the [VSCode DevContainer](https://code.visualstudio.com/docs/devcontainers/containers) extensions installed. If you open the project, VSCode will ask you if you want to open it inside of the DevContainer. If that's not the case, use <kbd>F1</kbd>&rarr;*Dev Containers: Open Folder in Container*.
Alternatively open the project directly in [GitHub Codespaces](https://github.com/codespaces/new?hide_repo_select=true&ref=master&repo=60243197&skip_quickstart=true).
That's already it. Everything else will be configured automatically by the Containers startup routine.
## Credentials
On first start the Container installs and configures Nextcloud with the following credentials:
**Nextcloud Admin Login**
Username: `admin` <br>
Password: `admin`
**Postgres credentials**
Username: `postgres` <br>
Password: `postgres` <br>
Database: `postgres`
## Services
The following services will be started:
| Service | Local port | Description |
|---------|------------|-------------|
| Nextcloud (served via Apache) | `80` | The main application |
| Mailhog | `8025` | SMTP email delivery for testing |
| Adminer | `8080` | Database viewer. Use credentials from above and connect to `localhost` to get access to the NC database |
## Permissions
The container runs with the user `devcontainer` who is also running the Apache2 process. All mounted source files have
proper permissions so that this user can access everything which is inside the current workspace. If you need to
get root permissions for whatever reason, use `sudo su` or `sudo <command>` (for example `sudo service apache2 restart`).
Everything else (like building the application, adjusting files, ...) should be done as `devcontainer` user.
## NodeJs and NVM
The container comes with [`nvm`](https://github.com/nvm-sh/nvm) and Node 16 installed. This should be sufficient to
build Nextcloud Core sources via `make`. If you need a different Node Version (for example for
app development), you can easily switch between different versions by running:
```bash
# Install and use Node 14
nvm install 14
nvm use 14
# Check version
node -v
# Switch back to Node 16
nvm use 16
# Check version
node -v
```
Note that `nvm` is only installed for the user `devcontainer` and won't work out of the box for
any other user.
## Debugging
The Apache webserver is already configured to automatically try to connect to a debugger process
listening on port `9003`. To start the VSCode debugger process, use the delivered debug profile `Listen for XDebug`.
After you started the VSCode debugger, just navigate to the appropriate Nextcloud URL to get your
debug hits.
+1 -8
View File
@@ -1,9 +1,5 @@
<?php
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
$codespaceName = getenv('CODESPACE_NAME');
$codespaceDomain = getenv('GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN');
@@ -18,9 +14,6 @@ $CONFIG = [
];
if(is_string($codespaceName) && !empty($codespaceName) && is_string($codespaceDomain) && !empty($codespaceDomain)) {
$host = $codespaceName . '-80.' . $codespaceDomain;
$CONFIG['overwritehost'] = $host;
$CONFIG['overwrite.cli.url'] = 'https://' . $host;
$CONFIG['overwritehost'] = $codespaceName . '-80.' . $codespaceDomain;
$CONFIG['overwriteprotocol'] = 'https';
$CONFIG['trusted_domains'] = [ $host ];
}
+11 -17
View File
@@ -3,26 +3,20 @@
"dockerComposeFile": "docker-compose.yml",
"service": "nextclouddev",
"postCreateCommand": ".devcontainer/setup.sh",
"postStartCommand": ".devcontainer/postStart.sh",
"forwardPorts": [
80,
8080,
8025
],
"customizations": {
"vscode": {
"extensions": [
"felixfbecker.php-debug",
"felixfbecker.php-intellisense",
"ms-azuretools.vscode-docker",
"xdebug.php-debug",
"donjayamanne.githistory"
],
"settings": {
"php.suggest.basic": false
}
}
},
"workspaceFolder": "/var/www/html",
"remoteUser": "devcontainer"
"runArgs": [
"--privileged"
],
"extensions": [
"felixfbecker.php-debug",
"felixfbecker.php-intellisense",
"ms-azuretools.vscode-docker"
],
"settings": {
"php.suggest.basic": false,
}
}
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
+2 -10
View File
@@ -1,13 +1,11 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
version: '3'
services:
nextclouddev:
build: .
volumes:
- .:/workspace:cached
- /var/run/docker.sock:/var/run/docker-host.sock
- ..:/var/www/html
command: /var/www/html/.devcontainer/entrypoint.sh
command: /bin/sh -c "while sleep 1000; do :; done"
ports:
- 80:80
- 8080:8080
@@ -18,9 +16,6 @@ services:
restart: always
environment:
POSTGRES_PASSWORD: postgres
PGDATA: /data/postgres
volumes:
- db:/data/postgres
network_mode: service:nextclouddev
adminer:
@@ -32,6 +27,3 @@ services:
image: mailhog/mailhog
restart: always
network_mode: service:nextclouddev
volumes:
db:
-8
View File
@@ -1,8 +0,0 @@
#!/bin/bash
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
#
sudo service apache2 start
while sleep 1000; do :; done
-14
View File
@@ -1,14 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-13
View File
@@ -1,13 +0,0 @@
#!/bin/bash
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# Set git safe.directory
git config --global --add safe.directory /var/www/html
git config --global --add safe.directory /var/www/html/3rdparty
# Ensure devcontainer user has access to docker socket
if [ -S /var/run/docker.sock ]; then
sudo chmod 666 /var/run/docker.sock
fi
-25
View File
@@ -1,33 +1,8 @@
#!/bin/bash
#
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
#
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" >/dev/null 2>&1 && pwd )"
cd $DIR/
git submodule update --init
# Codespace config
cp .devcontainer/codespace.config.php config/codespace.config.php
# VSCode debugger profile
mkdir -p .vscode && cp .devcontainer/launch.json .vscode/launch.json
# Onetime installation setup
if [[ ! $(sudo -u ${APACHE_RUN_USER} php occ status) =~ installed:[[:space:]]*true ]]; then
echo "Running NC installation"
sudo -u ${APACHE_RUN_USER} php occ maintenance:install \
--verbose \
--database=pgsql \
--database-name=postgres \
--database-host=127.0.0.1 \
--database-port=5432 \
--database-user=postgres \
--database-pass=postgres \
--admin-user admin \
--admin-pass admin
fi
sudo service apache2 restart
+2001
View File
File diff suppressed because it is too large Load Diff
+4 -15
View File
@@ -1,8 +1,5 @@
# https://editorconfig.org
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
root = true
[*]
@@ -13,6 +10,10 @@ indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true
[*.feature]
indent_size = 2
indent_style = space
[*.yml]
indent_size = 2
indent_style = space
@@ -22,15 +23,3 @@ trim_trailing_whitespace = false
[*.svg]
insert_final_newline = false
[package*.json]
indent_size = 2
indent_style = space
[build/psalm-baseline.xml]
indent_size = 2
indent_style = space
[config/*config.php]
indent_size = 2
indent_style = space
-3
View File
@@ -1,3 +0,0 @@
watch_file lib/versioncheck.php
watch_file package.json
use flake
+12
View File
@@ -0,0 +1,12 @@
# Ignoring folders for eslint
node_modules/
3rdparty/
**/vendor/
**/l10n/
**/js/*
*.config.js
tests/lib/
apps-extra
# TODO: remove when comments files is not using handlebar templates anymore
apps/comments/src/templates.js
+35
View File
@@ -0,0 +1,35 @@
module.exports = {
globals: {
__webpack_nonce__: true,
_: true,
$: true,
moment: true,
escapeHTML: true,
oc_userconfig: true,
dayNames: true,
firstDay: true,
'cypress/globals': true,
},
plugins: [
'cypress',
],
extends: [
'@nextcloud',
'plugin:cypress/recommended',
],
rules: {
'no-tabs': 'warn',
// TODO: make sure we fix this as this is bad vue coding style.
// Use proper sync modifier
'vue/no-mutating-props': 'warn',
'vue/custom-event-name-casing': ['error', 'kebab-case', {
// allows custom xxxx:xxx events formats
ignores: ['/^[a-z]+(?:-[a-z]+)*:[a-z]+(?:-[a-z]+)*$/u'],
}],
},
settings: {
jsdoc: {
mode: 'typescript',
},
},
}
-25
View File
@@ -1,25 +0,0 @@
# .git-blame-ignore-revs
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
# Format control structures
caff1023ea72bb2ea94130e18a2a6e2ccf819e5f
# Update to coding-standard 1.1.1
aa5f037af71c915424c6dcfd5ad2dc82797dc0d6
# Update to coding-standard 1.2.3
af6de04e9e141466dc229e444ff3f146f4a34765
0bd284cb81b6866338aaaa67aa1d81ef9bfbb2ab
8af7ecb2576071f170ecbb0aa2311b26581e40e2
# Update to coding-standard 1.3.1
9836e9b16484582d309c8437ab46d82e34956941
# Automated refactorings
49dd79eabb2b8902559a7a4e8f8fcad54f46b604
# @nextcloud/vue import paths
b06f5ba4c47450f355a8903c1a93ac68e8c6cfc2
# Update to coding-standard 1.4.0
5981b7eb512aa411f51cad541d01c5c6e93476f0
# Migrate `and` `or` operators to logical `&&` `||` operators
660f3f6fd1ae5539b8f74bfa48859d1b9f1e6abf
# Migrate to ESLint v9 enforced code style
91f3b6b4ee60e0f8bb6e21f92d5bc52e4cebe657
-3
View File
@@ -1,6 +1,3 @@
# SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
/dist/* binary
/package-lock.json merge=binary
/core/css/*.css* binary
/.devcontainer/*.sh text eol=lf
+11 -106
View File
@@ -1,111 +1,16 @@
# Fallback owners for code review - ensure all PRs have someone assigned for review.
# (the last match will used so this is only used if there is no more specific code owner below)
# Backend
# is the first and gets everything to make things easier from matching syntax
* @nextcloud/server-backend
# Frontend
# this will override the backend code owners if needed
/__mocks__ @nextcloud/server-frontend
/__tests__ @nextcloud/server-frontend
/dist @nextcloud/server-frontend
/cypress @nextcloud/server-frontend
**/css @nextcloud/server-frontend
**/js @nextcloud/server-frontend
**/src @nextcloud/server-frontend
*.js @nextcloud/server-frontend
*.cjs @nextcloud/server-frontend
*.mjs @nextcloud/server-frontend
*.ts @nextcloud/server-frontend
# dependency management
package.json @nextcloud/server-dependabot @nextcloud/server-frontend
package-lock.json @nextcloud/server-dependabot
# App maintainers
/apps/admin_audit/appinfo/info.xml @luka-nextcloud @blizzz
/apps/cloud_federation_api/appinfo/info.xml @nfebe @mejo-
/apps/comments/appinfo/info.xml @edward-ly @sorbaugh
/apps/contactsinteraction/appinfo/info.xml @kesselb @SebastianKrupinski
/apps/contactsinteraction/lib @kesselb @SebastianKrupinski
/apps/contactsinteraction/tests @kesselb @SebastianKrupinski
/apps/dashboard/appinfo/info.xml @julien-nc @juliusknorr
/apps/dav/lib/CalDAV @ChristophWurst @SebastianKrupinski @tcitworld
/apps/dav/lib/CardDAV @hamza221 @SebastianKrupinski
/apps/dav/tests/unit/CalDAV @ChristophWurst @SebastianKrupinski @tcitworld
/apps/dav/tests/unit/CardDAV @hamza221 @SebastianKrupinski
/apps/encryption/appinfo/info.xml @come-nc @icewind1991
/apps/federatedfilesharing/appinfo/info.xml @icewind1991 @danxuliu
/apps/federation/appinfo/info.xml @nfebe @sorbaugh
/apps/files/appinfo/info.xml @skjnldsv @ArtificialOwl @come-nc @artonge @icewind1991 @szaimen @susnux @nfebe
/apps/files_external/appinfo/info.xml @icewind1991 @artonge
/apps/files_reminders/appinfo/info.xml @skjnldsv @sorbaugh
/apps/files_sharing/appinfo/info.xml @skjnldsv @come-nc
/apps/files_trashbin/appinfo/info.xml @icewind1991 @sorbaugh
/apps/files_versions/appinfo/info.xml @artonge @icewind1991
/apps/oauth2/appinfo/info.xml @julien-nc @ChristophWurst
/apps/provisioning_api/appinfo/info.xml @provokateurin @nickvergessen
/apps/settings/appinfo/info.xml @JuliaKirschenheuter @sorbaugh
/apps/sharebymail/appinfo/info.xml @Altahrim @skjnldsv
/apps/systemtags/appinfo/info.xml @Antreesy @marcelklehr
/apps/theming/appinfo/info.xml @skjnldsv @juliusknorr
/apps/twofactor_backupcodes/appinfo/info.xml @miaulalala @ChristophWurst
/apps/updatenotification/appinfo/info.xml @JuliaKirschenheuter @sorbaugh
/apps/user_ldap/appinfo/info.xml @come-nc @blizzz
/apps/user_status/appinfo/info.xml @Antreesy @nickvergessen
/apps/weather_status/appinfo/info.xml @julien-nc @juliusknorr
/apps/webhook_listeners/appinfo/info.xml @come-nc @julien-nc
/apps/workflowengine/appinfo/info.xml @blizzz @juliusknorr
# Files frontend expertise
/apps/files/src* @skjnldsv @nextcloud/server-frontend
/apps/files_external/src* @skjnldsv @nextcloud/server-frontend
/apps/files_reminders/src* @skjnldsv @nextcloud/server-frontend
/apps/files_sharing/src/actions* @skjnldsv @nextcloud/server-frontend
/apps/files_trashbin/src* @skjnldsv @nextcloud/server-frontend
# Security team
/build/psalm-baseline-security.xml @nickvergessen @nextcloud/server-backend
/resources/codesigning @mgallien @miaulalala @nickvergessen
/resources/config/ca-bundle.crt @miaulalala @nickvergessen
*/Activity/* @nickvergessen
*/Notifications/* @nickvergessen
/apps/dav/lib/CalDAV @ChristophWurst @miaulalala @tcitworld
/apps/dav/lib/CardDAV @ChristophWurst @miaulalala @tcitworld
# Two-Factor Authentication
# https://github.com/nextcloud/wg-two-factor-authentication#members
**/TwoFactorAuth @ChristophWurst @miaulalala @nickvergessen
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen
*/TwoFactorAuth/* @ChristophWurst @miaulalala @nickvergessen
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen
# Limit login to IP
# Watch login routes for https://github.com/nextcloud/limit_login_to_ip
/core/routes.php @Altahrim @nextcloud/server-backend
/lib/private/Profiler @CarlSchwan
/lib/public/Profiler @CarlSchwan
# OpenAPI
openapi*.json @provokateurin @nextcloud/server-backend
ResponseDefinitions.php @provokateurin @nextcloud/server-backend
# Talk team
/lib/private/Comments @nickvergessen @nextcloud/talk-backend
/lib/private/Federation @nickvergessen @nextcloud/talk-backend @nextcloud/server-backend
/lib/private/Talk @nickvergessen @nextcloud/talk-backend
/lib/public/Comments @nickvergessen @nextcloud/talk-backend
/lib/public/Federation @nickvergessen @nextcloud/talk-backend @nextcloud/server-backend
/lib/public/OCM @nickvergessen @nextcloud/talk-backend @nextcloud/server-backend
/lib/public/Talk @nickvergessen @nextcloud/talk-backend
/lib/public/UserStatus @nickvergessen @nextcloud/talk-backend
*/Notifications/* @nickvergessen @nextcloud/talk-backend
# Groupware team
/build/integration/dav_features/caldav.feature @ChristophWurst @SebastianKrupinski @tcitworld
/build/integration/dav_features/carddav.feature @hamza221 @SebastianKrupinski
/lib/private/Calendar @ChristophWurst @SebastianKrupinski @tcitworld
/lib/private/Contacts @hamza221 @SebastianKrupinski
/lib/public/Calendar @ChristophWurst @SebastianKrupinski @tcitworld
/lib/public/Contacts @hamza221 @SebastianKrupinski
# Desktop client teamn
/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php @nextcloud/desktop
# Personal interest
*/Activity/* @nickvergessen @nextcloud/server-backend
/apps/workflowengine/lib @nickvergessen @blizzz
# Security team
resources/config/ca-bundle.crt @ChristophWurst @julien-nc @miaulalala @nickvergessen
+6 -17
View File
@@ -1,10 +1,6 @@
<!--
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
## Submitting issues
If you have questions about how to install or use Nextcloud, please direct these to our [forum][forum]. We are also available on [IRC][irc] (unofficial).
If you have questions about how to install or use Nextcloud, please direct these to our [forum][forum]. We are also available on [IRC][irc].
### Short version
@@ -25,7 +21,7 @@ Help us to maximize the effort we can spend fixing issues and adding new feature
[templates]: ./ISSUE_TEMPLATE
[forum]: https://help.nextcloud.com/
[irc]: https://web.libera.chat/#nextcloud
[irc]: https://webchat.freenode.net/?channels=nextcloud
## Contributing to Source Code
@@ -33,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.
@@ -48,16 +37,16 @@ In some areas unit testing is hard (aka almost impossible) as of today - in thes
### Sign your work
We use the Developer Certificate of Origin (DCO) as an additional safeguard
We use the Developer Certificate of Origin (DCO) as a additional safeguard
for the Nextcloud project. This is a well established and widely used
mechanism to assure contributors have confirmed their right to license
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
-2
View File
@@ -1,3 +1 @@
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
custom: https://nextcloud.com/include/
+30 -34
View File
@@ -1,10 +1,7 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
name: "🐛 Bug report: Nextcloud Server"
name: "Bug report: Nextcloud Server"
description: "Submit a report and help us improve Nextcloud Server"
title: "[Bug]: "
labels: ["bug", "0. Needs triage"]
type: "Bug"
body:
- type: markdown
attributes:
@@ -12,14 +9,6 @@ body:
### 👍 Thank you for contributing to our project!
Please note this is a **free and open-source** project. Most people take on their own time to help you, so please, be patient.
You can obtain [Enterprise support](https://nextcloud.com/support/) if you run Nextcloud Server in a mission critical environment.
- type: markdown
attributes:
value: |
### 🚨 SECURITY INFO
If you are reporting a security concern, please report it via [our HackerOne page](https://hackerone.com/nextcloud) instead and review our [security policy](https://nextcloud.com/security/).
This allows us to coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
It also may qualify your report for a bug bounty reward.
Thank you for helping make Nextcloud more secure!
- type: checkboxes
id: before-posting
attributes:
@@ -28,10 +17,12 @@ body:
options:
- label: This is a **bug**, not a question or a configuration/webserver/proxy issue.
required: true
- label: This issue is **not** already reported on [Github](https://github.com/nextcloud/server/issues?q=is%3Aopen+is%3Aissue+label%3Abug) OR [Nextcloud Community Forum](https://help.nextcloud.com/) _(I've searched it)_.
- label: This issue is **not** already reported on Github _(I've searched it)_.
required: true
- label: Nextcloud Server **is** up to date. See [Maintenance and Release Schedule](https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule) for supported versions.
required: true
- label: Nextcloud Server **is** running on 64bit capable CPU, PHP and OS.
required: true
- label: I agree to follow Nextcloud's [Code of Conduct](https://nextcloud.com/contribute/code-of-conduct/).
required: true
- type: textarea
@@ -49,7 +40,7 @@ body:
label: Steps to reproduce
description: |
Describe the steps to reproduce the bug.
The better your description is _(go 'here', click 'there'...)_ the fastest you'll get an _(accurate)_ answer.
The better your description is _(go 'here', click 'there'...)_ the fastest you'll get an _(accurate)_ answer.
value: |
1.
2.
@@ -64,18 +55,21 @@ body:
validations:
required: true
- type: dropdown
id: nextcloud-version
id: install-method
attributes:
label: Nextcloud Server version
label: Installation method
description: |
Select Nextcloud Server version.
_Versions not listed here are not maintained and not supported anymore_
Select installation method you've used.
_Describe the method in the "Additional info" section if you chose "Other"._
options:
- "32"
- "33"
- "master"
validations:
required: true
- "Official All-in-One appliance"
- "Community Web installer on a VPS or web space"
- "Community Manual installation with Archive"
- "Community Docker image"
- "Community NextcloudPi appliance"
- "Community SNAP package"
- "Community VM appliance"
- "Other Community project"
- type: dropdown
id: system
attributes:
@@ -95,10 +89,9 @@ body:
Select PHP engine version serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "PHP 8.5"
- "PHP 8.4"
- "PHP 8.3"
- "PHP 8.2"
- "PHP 7.3"
- "PHP 7.4"
- "PHP 8.0"
- "PHP 8.1"
- "Other"
- type: dropdown
@@ -111,6 +104,7 @@ body:
options:
- "Apache (supported)"
- "Nginx"
- "Lighttpd"
- "Other"
- type: dropdown
id: database
@@ -133,8 +127,8 @@ body:
description: |
Select if bug is present after an update or on a fresh install.
options:
- "Updated from a MINOR version (ex. 32.0.1 to 32.0.2)"
- "Upgraded to a MAJOR version (ex. 31 to 32)"
- "Updated from a minor version (ex. 22.2.3 to 22.2.4)"
- "Updated to a major version (ex. 22.2.3 to 23.0.1)"
- "Fresh Nextcloud Server install"
- type: dropdown
id: encryption
@@ -169,7 +163,7 @@ body:
./occ config:list system
```
> NOTE: This will be automatically formatted into code for better readability.
render: json
render: shell
- type: textarea
id: apps
attributes:
@@ -184,6 +178,8 @@ body:
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
validations:
required: true
- type: textarea
id: nextcloud-signingstatus
attributes:
@@ -192,7 +188,7 @@ body:
Provide Nextcloud Signing status.
First, login as Admin user into your Nextcloud, then access this URL:
```shell
https://yournextcloud.tld/index.php/settings/integrity/failed
https://yournextcloud.tld/index.php/settings/integrity/failed
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
@@ -201,10 +197,10 @@ body:
attributes:
label: Nextcloud Logs
description: |
Provide relevant Nextcloud log entries (e.g. from the time period you reproduced the problem).
Copy full individual entries from `data/nextcloud.log` or use `Copy raw entry` from `/settings/admin/logging` section:
Provide Nextcloud logs lines.
Copy all contents from `data/nextcloud.log` or a RAW from `/settings/admin/logging` section:
> NOTE: This will be automatically formatted into code for better readability.
render: json
render: shell
- type: textarea
id: additional-info
attributes:
+28 -25
View File
@@ -2,44 +2,47 @@
name: 🚀 Feature request
about: Suggest an idea for this project
labels: enhancement, 0. Needs triage
type: "Enhancement"
---
<!--
Have a security concern? Please report potential security issues via our HackerOne program (https://hackerone.com/nextcloud) instead of filing a public GitHub issue. See our security policy: https://nextcloud.com/security/
Thanks for reporting issues back to Nextcloud!
Note: This is the **issue tracker of Nextcloud**, please do NOT use this to get answers to your questions or get help for fixing your installation. This is a place to report bugs to developers, after your server has been debugged. You can find help debugging your system on our home user forums: https://help.nextcloud.com or, if you use Nextcloud in a large organization, ask our engineers on https://portal.nextcloud.com. See also https://nextcloud.com/support for support options.
Nextcloud is an open source project backed by Nextcloud GmbH. Most of our volunteers are home users and thus primarily care about issues that affect home users. Our paid engineers prioritize issues of our customers. If you are neither a home user nor a customer, consider paying somebody to fix your issue, do it yourself or become a customer.
Guidelines for submitting issues:
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to https://github.com/nextcloud and type any word in the top search/command bar. You probably see something like "We couldnt find any repositories matching ..." then click "Issues" in the left navigation.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on search syntax within github: https://help.github.com/articles/searching-issues
* This repository https://github.com/nextcloud/server/issues is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* SECURITY: Report any potential security bug to us via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our GitHub Organization (https://github.com/nextcloud/)
-->
<!--
Thanks for taking the time to suggest improvements to Nextcloud! Use this form to request features or propose enhancements.
Guidelines:
<!--- Please keep this note for other contributors -->
* Please search existing issues first; your idea may already have been discussed or implemented.
* This repository (https://github.com/nextcloud/server/issues) is only for issues within the Nextcloud Server code. This includes shipped apps such as Files, DAV, Encryption, External Storage, Sharing, Deleted Files, Versions, Federation, and LDAP.
* Issues for other components should be reported in their respective repositories in the Nextcloud GitHub organization: https://github.com/nextcloud/
* Nextcloud is an open source project backed by Nextcloud GmbH. Many contributors are volunteers and primarily focus on issues affecting home users. Paid engineers prioritize customer-reported issues and critical defects.
* This is the development issue tracker. Please do NOT use it for support questions or help diagnosing your installation.
- For community/user help: https://help.nextcloud.com
- For professional / large deployment support options: https://nextcloud.com/support
-->
### How to use GitHub
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are interested into the same feature.
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
* Subscribe to receive notifications on status change and new comments.
<!-- Please keep the note below for other contributors -->
> [!TIP]
> ### Help move this idea forward
> * Use the 👍 reaction to show support for this feature.
> * Avoid commenting unless you have relevant information to add; unnecessary comments create noise for subscribers.
> * Subscribe to receive notifications about status changes and new comments.
---
<!-- DO NOT EDIT ABOVE THIS LINE -->
**Is your feature request related to a problem? Please describe.**
<!-- Provide a clear and concise description of the problem. For example: “I'm always frustrated when …” -->
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
<!-- Provide a clear and concise description of what you want to happen. -->
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
<!-- Provide a clear and concise description of any alternative solutions or features you've considered. -->
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
<!-- Add any other context or screenshots related to the feature request here. -->
Add any other context or screenshots about the feature request here.
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
+1 -5
View File
@@ -1,9 +1,5 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
blank_issues_enabled: false
contact_links:
- name: 🚨 Report a security or privacy issue
url: https://hackerone.com/nextcloud
about: Report security and privacy related issues privately to the Nextcloud team, so we can coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
- name: ❓ Community Support and Help
url: https://help.nextcloud.com/
about: Configuration, webserver/proxy or performance issues and other questions
-7
View File
@@ -1,7 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
name: "CodeQL config"
paths-ignore:
- dist
-2
View File
@@ -1,5 +1,3 @@
# SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
firstPRMergeComment: >
Thanks for your first pull request and welcome to the community!
Feel free to keep them coming! If you are looking for issues to tackle then have a look at this selection: https://github.com/nextcloud/server/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
+80 -159
View File
@@ -1,32 +1,39 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
version: 2
updates:
# GitHub Actions
- package-ecosystem: "github-actions"
# Linting and coding style
- package-ecosystem: composer
directory: "/"
schedule:
interval: monthly
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
groups:
github-actions:
patterns:
- "*"
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Main composer (linting, testing, openapi)
- package-ecosystem: composer
directories:
- "/"
- "/vendor-bin/behat"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
- "/vendor-bin/rector"
# Main master npm
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 10
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
# Testing master npm
- package-ecosystem: npm
directory: "/build"
schedule:
interval: weekly
day: saturday
@@ -36,175 +43,89 @@ updates:
- "3. to review"
- "feature: dependencies"
# Main master npm frontend dependencies
- package-ecosystem: npm
directories:
- "/"
- "/build/frontend"
- "/build/frontend-legacy"
# Testing master composer
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
groups:
vite:
patterns:
- "vite"
- "@nextcloud/vite-config"
vitest:
patterns:
- "vitest"
- "@vitest/*"
# Latest stable release
# Composer dependencies for linting and testing
- package-ecosystem: composer
target-branch: stable33
directories:
- "/"
- "/vendor-bin/behat"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
- "/vendor-bin/rector"
schedule:
interval: weekly
day: saturday
time: "03:30"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# frontend dependencies
# Main stableXX npm
- package-ecosystem: npm
target-branch: stable33
directories:
- "/"
- "/build/frontend"
- "/build/frontend-legacy"
schedule:
interval: weekly
day: saturday
time: "03:30"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
groups:
vite:
patterns:
- "vite"
- "@nextcloud/vite-config"
vitest:
patterns:
- "vitest"
- "@vitest/*"
ignore:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
# Older stable releases
# Composer dependencies for linting and testing
- package-ecosystem: composer
target-branch: stable32
directories:
- "/"
- "/vendor-bin/behat"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:30"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# frontend dependencies
- package-ecosystem: npm
target-branch: stable32
directory: "/"
schedule:
interval: weekly
day: saturday
time: "04:30"
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
target-branch: stable24
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# no major updates on stable branches
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major"]
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Composer dependencies for linting and testing
- package-ecosystem: composer
target-branch: stable31
directories:
- "/"
- "/build/integration"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# frontend dependencies
- package-ecosystem: npm
target-branch: stable31
directory: "/"
schedule:
interval: weekly
day: saturday
time: "04:00"
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
target-branch: stable25
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# no major updates on stable branches
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major"]
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# Testing StableXX composer
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable24
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: 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"]
-7
View File
@@ -1,8 +1,3 @@
<!--
- 🚨 SECURITY INFO
-
- Before sending a pull request that fixes a security issue please report it via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/). This allows us to coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
-->
* Resolves: # <!-- related github issue -->
@@ -21,5 +16,3 @@
- [ ] Screenshots before/after for front-end changes
- [ ] Documentation ([manuals](https://github.com/nextcloud/documentation/) or wiki) has been updated or is not required
- [ ] [Backports requested](https://github.com/nextcloud/backportbot/#usage) where applicable (ex: critical bugfixes)
- [ ] [Labels added](https://github.com/nextcloud/server/labels) where applicable (ex: bug/enhancement, `3. to review`, feature component)
- [ ] [Milestone added](https://github.com/nextcloud/server/milestones) for target branch/version (ex: 32.x for `stable32`)
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-128
View File
@@ -1,128 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
- build/autoloaderchecker.sh
autoloader:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.2']
name: PHP checkers
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check auto loaders
run: bash ./build/autoloaderchecker.sh
autocheckers:
runs-on: ubuntu-latest-low
strategy:
matrix:
php-versions: ['8.2']
name: Translation and Files checkers
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- 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
- name: Check that all shipped apps are linted by psalm
run: sh ./build/psalm-checker.sh
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, autoloader, autocheckers]
if: always()
name: autocheckers-summary
steps:
- name: Summary status
run: if ${{ needs.autocheckers.result != 'success' || (needs.changes.outputs.src != 'false' && needs.autoloader.result != 'success') }}; then exit 1; fi
+11 -23
View File
@@ -2,9 +2,6 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block merges for EOL
@@ -23,27 +20,18 @@ jobs:
# Only run on stableXX branches
if: startsWith( github.base_ref, 'stable')
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
steps:
- name: Set server major version environment
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const regex = /^stable(\d+)$/
const baseRef = context.payload.pull_request.base.ref
const match = baseRef.match(regex)
if (match) {
console.log('Setting server_major to ' + match[1]);
core.exportVariable('server_major', match[1]);
console.log('Setting current_day to ' + (new Date()).toISOString().substr(0, 10));
core.exportVariable('current_day', (new Date()).toISOString().substr(0, 10));
}
- name: Download updater config
run: curl https://raw.githubusercontent.com/nextcloud/updater_server/production/config/config.php --output config.php
- name: Checking if server ${{ env.server_major }} is EOL
if: ${{ env.server_major != '' }}
- name: Set server major version environment
run: |
curl -s https://raw.githubusercontent.com/nextcloud-releases/updater_server/production/config/major_versions.json \
| jq '.["${{ env.server_major }}"]["eol"] // "9999-99-99" | . >= "${{ env.current_day }}"' \
| grep -q true
# retrieve version number from branch reference
server_major=$(echo "${{ github.base_ref }}" | sed -En 's/stable//p')
echo "server_major=$server_major" >> $GITHUB_ENV
- name: Checking if ${{ env.server_major }} is EOL
run: |
php -r 'echo json_encode(require_once "config.php");' | jq --arg version "${{ env.server_major }}" '.stable[$version]["100"].eol // .beta[$version]["100"].eol' | grep --silent -i 'false'
+3 -28
View File
@@ -2,9 +2,6 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block merges during freezes
@@ -25,33 +22,11 @@ jobs:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
steps:
- name: Register server reference to fallback to master branch
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping freeze check');
}
}
- name: Download version.php from ${{ env.server_ref }}
if: ${{ env.server_ref != '' }}
run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ env.server_ref }}/version.php' --output version.php
- name: Download version.php from ${{ github.base_ref }}
run: curl https://raw.githubusercontent.com/nextcloud/server/${{ github.base_ref }}/version.php --output version.php
- name: Run check
if: ${{ env.server_ref != '' }}
run: cat version.php | grep 'OC_VersionString' | grep -i -v 'RC'
@@ -1,79 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block merging with outdated 3rdparty/
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-outdated-3rdparty-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-outdated-3rdparty:
name: Block merging with outdated 3rdparty/
runs-on: ubuntu-latest-low
steps:
- name: Check requirement
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '3rdparty'
- 'version.php'
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: 3rdparty commit hash on current branch
id: actual
run: |
echo "commit=$(git submodule status | grep ' 3rdparty' | egrep -o '[a-f0-9]{40}')" >> "$GITHUB_OUTPUT"
- name: Register server reference to fallback to master branch
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping outdated 3rdparty check');
}
}
- name: Last 3rdparty commit on target branch
if: ${{ env.server_ref != '' }}
id: target
run: |
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty refs/heads/${{ env.server_ref }} | awk '{ print $1}')" >> "$GITHUB_OUTPUT"
- name: Compare if 3rdparty commits are different
if: ${{ env.server_ref != '' }}
run: |
echo '3rdparty/ seems to not point to the last commit of the dedicated branch:'
echo 'Branch has: ${{ steps.actual.outputs.commit }}'
echo '${{ env.server_ref }} has: ${{ steps.target.outputs.commit }}'
- name: Fail if 3rdparty commits are different
if: ${{ env.server_ref != '' && steps.changes.outputs.src != 'false' && steps.actual.outputs.commit != steps.target.outputs.commit }}
run: |
exit 1
@@ -1,36 +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
#
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: webiny/action-conventional-commits@faccb24fc2550dd15c0390d944379d2d8ed9690e # v1.3.1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-49
View File
@@ -1,49 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
name: "CodeQL Advanced"
on:
push:
branches: [ "master", "stable*" ]
pull_request:
branches: [ "master", "stable*" ]
schedule:
- cron: '28 18 * * 1'
jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
strategy:
fail-fast: false
matrix:
include:
- language: actions
build-mode: none
- language: javascript-typescript
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@b20883b0cd1f46c72ae0ba6d1090936928f9fa30 # v4.32.0
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql-config.yml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@b20883b0cd1f46c72ae0ba6d1090936928f9fa30 # v4.32.0
with:
category: "/language:${{matrix.language}}"
+29 -134
View File
@@ -1,19 +1,8 @@
# 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
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Compile Command
on:
issue_comment:
types: [created]
permissions:
contents: read
jobs:
init:
runs-on: ubuntu-latest
@@ -26,46 +15,23 @@ 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: Get repository from pull request comment
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
id: get-repository
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const pull = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number
});
const repositoryName = pull.data.head?.repo?.full_name
console.log(repositoryName)
return repositoryName
- name: Disabled on forks
if: ${{ fromJSON(steps.get-repository.outputs.result) != github.repository }}
run: |
echo 'Can not execute /compile on forks'
exit 1
- 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@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '+1'
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
@@ -73,150 +39,79 @@ 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
uses: xt0rted/pull-request-comment-branch@e8b8daa837e8ea7331c0003c9c316a64c6d8b0b1 # v3.0.0
uses: xt0rted/pull-request-comment-branch@d97294d304604fa98a2600a6e2f916a84b596dc7 # v1
id: comment-branch
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
process:
runs-on: ubuntu-latest
needs: init
steps:
- name: Restore cached git repository
uses: buildjet/cache@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
with:
path: .git
key: git-repo
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
with:
# Needed to allow force push later
persist-credentials: true
token: ${{ secrets.COMMAND_BOT_PAT }}
fetch-depth: 0
ref: ${{ needs.init.outputs.head_ref }}
- name: Setup git
run: |
git config --local user.email 'nextcloud-command@users.noreply.github.com'
git config --local user.name 'nextcloud-command'
git config --local user.email "nextcloud-command@users.noreply.github.com"
git config --local user.name "nextcloud-command"
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: package-engines-versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
fallbackNode: '^12'
fallbackNpm: '^6'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
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 }}'
# Start the rebase
git rebase 'origin/${{ needs.init.outputs.base_ref }}' || {
# Handle rebase conflicts in a loop
while [ -d .git/rebase-merge ] || [ -d .git/rebase-apply ]; do
echo "Handling rebase conflict..."
# Remove and checkout /dist and /js folders from the base branch
if [ -d "dist" ]; then
rm -rf dist
git checkout origin/${{ needs.init.outputs.base_ref }} -- dist/ 2>/dev/null || echo "No dist folder in base branch"
fi
if [ -d "js" ]; then
rm -rf js
git checkout origin/${{ needs.init.outputs.base_ref }} -- js/ 2>/dev/null || echo "No js folder in base branch"
fi
# Stage all changes
git add .
# Check if there are any changes after resolving conflicts
if git diff --cached --quiet; then
echo "No changes after conflict resolution, skipping commit"
git rebase --skip
else
echo "Changes found, continuing rebase without editing commit message"
git -c core.editor=true rebase --continue
fi
# Break if rebase is complete
if [ ! -d .git/rebase-merge ] && [ ! -d .git/rebase-apply ]; then
break
fi
done
}
run: npm i -g npm@"${{ steps.package-engines-versions.outputs.npmVersion }}"
- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: |
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'
git push origin ${{ needs.init.outputs.head_ref }}
- name: Commit fixup
if: ${{ contains(needs.init.outputs.arg1, 'fixup') }}
- 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') }}
env:
HEAD_REF: ${{ needs.init.outputs.head_ref }}
run: git push origin "$HEAD_REF"
- name: Force push
if: ${{ contains(needs.init.outputs.arg1, 'rebase') || contains(needs.init.outputs.arg1, 'amend') }}
env:
HEAD_REF: ${{ needs.init.outputs.head_ref }}
run: git push --force-with-lease origin "$HEAD_REF"
git push --force origin ${{ needs.init.outputs.head_ref }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
reactions: "-1"
-100
View File
@@ -1,100 +0,0 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update 3rdparty command
on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/update-3rdparty`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/update-3rdparty')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '+1'
- name: Disabled on forks
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
run: |
echo 'Can not execute /update-3rdparty on forks'
exit 1
- name: Init branch
uses: xt0rted/pull-request-comment-branch@e8b8daa837e8ea7331c0003c9c316a64c6d8b0b1 # v1
id: comment-branch
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Register server reference to fallback to master branch
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping pull 3rdparty command');
}
}
- name: Setup git
run: |
git config --local user.email 'nextcloud-command@users.noreply.github.com'
git config --local user.name 'nextcloud-command'
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
if: ${{ env.server_ref == '' }}
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
- name: Pull 3rdparty
if: ${{ env.server_ref != '' }}
run: git submodule foreach 'if [ "$sm_path" == "3rdparty" ]; then git pull origin '"'"'${{ env.server_ref }}'"'"'; fi'
- name: Commit and push changes
if: ${{ env.server_ref != '' }}
run: |
git add 3rdparty
git commit -s -m 'Update submodule 3rdparty to latest ${{ env.server_ref }}'
git push
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
+51
View File
@@ -0,0 +1,51 @@
# 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: Rebase command
on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/rebase`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "+1"
- name: Checkout the latest code
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "-1"
+47 -131
View File
@@ -1,32 +1,18 @@
# 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
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Cypress
on: pull_request
concurrency:
group: cypress-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
pull_request:
push:
branches:
- main
- master
- stable*
env:
# Adjust APP_NAME if your repository name is different
APP_NAME: ${{ github.event.repository.name }}
# This represents the server branch to checkout.
# Usually it's the base branch of the PR, but for pushes it's the branch itself.
# e.g. 'main', 'stable27' or 'feature/my-feature'
# n.b. server will use head_ref, as we want to test the PR branch.
BRANCH: ${{ github.base_ref || github.ref_name }}
permissions:
contents: read
# Server requires head_ref instead of base_ref, as we want to test the PR branch
BRANCH: ${{ github.head_ref || github.ref_name }}
jobs:
init:
@@ -35,49 +21,34 @@ jobs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
env:
# We'll install cypress in the cypress job
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Disabled on forks
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
run: |
echo 'Can not run cypress on forks'
exit 1
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
# We need to checkout submodules for 3rdparty
submodules: true
- name: Checkout app
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
with:
files: 'composer.json'
files: "composer.json"
- name: Install composer dependencies
if: steps.check_composer.outputs.files_exists == 'true'
run: composer install --no-dev
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
fallbackNode: "^14"
fallbackNpm: "^7"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install node dependencies & build app
run: |
@@ -85,7 +56,7 @@ jobs:
TESTING=true npm run build --if-present
- name: Save context
uses: buildjet/cache/save@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
uses: buildjet/cache/save@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
key: cypress-context-${{ github.run_id }}
path: ./
@@ -98,88 +69,38 @@ jobs:
fail-fast: false
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: ['setup', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# Hack as strategy.job-total includes the "setup" and GitHub does not allow math expressions
# Always align this number with the total of e2e runners (max. index + 1)
total-containers: [10]
services:
mysql:
# Only start mysql if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-mysql-8.4:latest' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '3306/tcp'
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
mariadb:
# Only start mariadb if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'mariadb:11.4' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '3306/tcp'
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mariadb-admin ping" --health-interval 5s --health-timeout 2s --health-retries 5
postgres:
# Only start postgres if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-postgres-17:latest' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '5432/tcp'
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --mount type=tmpfs,destination=/var/lib/postgresql/data --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
oracle:
# Only start oracle if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/gvenzl/oracle-free:23' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '1521'
env:
ORACLE_PASSWORD: oracle
options: --health-cmd healthcheck.sh --health-interval 20s --health-timeout 10s --health-retries 10
# Please increase the number or runners as your tests suite grows
containers: ["component", 1, 2]
name: runner ${{ matrix.containers }}
steps:
- name: Restore context
uses: buildjet/cache/restore@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
uses: buildjet/cache/restore@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
fail-on-cache-miss: true
key: cypress-context-${{ github.run_id }}
path: ./
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
with:
node-version: ${{ needs.init.outputs.nodeVersion }}
- name: Set up npm ${{ needs.init.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.init.outputs.npmVersion }}'
- name: Install cypress
run: ./node_modules/cypress/bin/cypress install
run: npm i -g npm@"${{ needs.init.outputs.npmVersion }}"
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@0f330ebf0d60f87608ed72f1d6232e5644aa3171 # v7.1.1
uses: cypress-io/github-action@db1693016f23ccf9043f4b2428f9b04e5d502a73 # v5.8.1
with:
# We already installed the dependencies in the init job
install: false
record: true
parallel: true
# cypress run type
component: ${{ matrix.containers == 'component' }}
group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run E2E' || '' }}
group: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }}
# cypress env
ci-build-id: ${{ matrix.use-cypress-cloud && format('{0}-{1}', github.sha, github.run_number) || '' }}
tag: ${{ matrix.use-cypress-cloud && github.event_name || '' }}
ci-build-id: ${{ github.sha }}-${{ github.run_number }}
tag: ${{ github.event_name }}
env:
# Needs to be prefixed with CYPRESS_
CYPRESS_BRANCH: ${{ env.BRANCH }}
@@ -189,43 +110,38 @@ jobs:
TESTING: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
SPLIT: ${{ matrix.total-containers }}
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
SPLIT_RANDOM_SEED: ${{ github.run_id }}
SETUP_TESTING: ${{ matrix.containers == 'setup' && 'true' || '' }}
- name: Upload snapshots and videos
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
- name: Upload snapshots
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
if: always()
with:
name: snapshots_${{ matrix.containers }}
path: |
cypress/snapshots
cypress/videos
path: cypress/snapshots
- name: Show logs
- name: Extract NC logs
if: failure() && matrix.containers != 'component'
run: |
for id in $(docker ps -aq); do
docker container inspect "$id" --format '=== Logs for container {{.Name}} ==='
docker logs "$id" >> nextcloud.log
done
echo '=== Nextcloud server logs ==='
docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} cat data/nextcloud.log
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
if: failure() && matrix.containers != 'component'
with:
name: nc_logs_${{ matrix.containers }}
path: nextcloud.log
- name: Create data dir archive
if: failure() && matrix.containers != 'component'
run: docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} tar -cvjf - data > data.tar
run: docker exec nextcloud-cypress-tests-server tar -cvjf - data > data.tar
- name: Upload data archive
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
- name: Upload data dir archive
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
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()
+10 -28
View File
@@ -2,14 +2,11 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Auto approve Dependabot PRs
name: Dependabot
on:
pull_request_target: # zizmor: ignore[dangerous-triggers]
pull_request_target:
branches:
- main
- master
@@ -24,35 +21,20 @@ concurrency:
jobs:
auto-approve-merge:
if: github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'renovate[bot]'
runs-on: ubuntu-latest-low
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
# for alexwilson/enable-github-automerge-action to approve PRs
contents: write
steps:
- name: Disabled on forks
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
run: |
echo 'Can not approve PRs from forks'
exit 1
- uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
id: branchname
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# GitHub actions bot approve
- uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
# Github actions bot approve
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Enable GitHub auto merge
- name: Auto merge
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
target: minor
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
-142
View File
@@ -1,142 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external FTP
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-ftp-${{ 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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-ftp:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.4']
ftpd: ['proftpd', 'vsftpd', 'pure-ftpd']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.ftpd }}
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up ftpd
run: |
sudo mkdir /tmp/ftp
sudo chmod -R 0777 /tmp/ftp
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then echo '$6$Q7V2n3q2GRVv5YeQ$/AhLu07H76Asojy7bxGXMY1caKLAbp5Vt82LOZYMkD/8uDzyMAEXwk0c1Bdz1DkBsk2Vh/9SF130mOPavRGMo.' > /tmp/secret.txt; fi
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then echo 'FTP_ROOT=/home/test' > $GITHUB_ENV; fi
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@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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' }}
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','user' => 'test','password' => 'test', 'root' => '${{ env.FTP_ROOT }}'];" > apps/files_external/tests/config.ftp.php
- name: smoketest ftp
run: |
php -r 'var_dump(file_put_contents("ftp://test:test@localhost${{ env.FTP_ROOT }}/ftp.txt", "asd"));'
php -r 'var_dump(file_get_contents("ftp://test:test@localhost${{ env.FTP_ROOT }}/ftp.txt"));'
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 \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-ftp
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-files-external-ftp
- name: ftpd logs
if: always()
run: |
docker logs ftp
ftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-ftp]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-ftp.result != 'success' }}; then exit 1; fi
-225
View File
@@ -1,225 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external S3
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-s3-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.4']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3-minio
services:
minio:
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- '9000:9000'
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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, 'minio' => true, 'secret' => 'actually-not-secret', 'passwordsalt' => 'actually-not-secret', 'hostname' => 'localhost','key' => '$OBJECT_STORE_KEY','secret' => '$OBJECT_STORE_SECRET', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: Wait for S3
run: |
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 -- \
--group S3 \
--log-junit junit.xml \
apps/files_external/tests/Storage \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-files-external-s3
- name: Nextcloud logs
if: always()
run: |
cat data/nextcloud.log
- 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.2', '8.4']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3-localstack
services:
localstack:
env:
SERVICES: s3
DEBUG: 1
image: localstack/localstack@sha256:9d4253786e0effe974d77fe3c390358391a56090a4fff83b4600d8a64404d95d # v4.5.0
ports:
- "4566:4566"
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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, 'localstack' => true, 'hostname' => 'localhost','key' => 'ignored','secret' => 'ignored', 'bucket' => 'bucket', 'port' => 4566, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: PHPUnit
run: |
composer run test:files_external -- \
--group S3 \
--log-junit junit.xml \
apps/files_external/tests/Storage \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
-132
View File
@@ -1,132 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external sFTP
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-sftp:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.4']
sftpd: ['openssh']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.sftpd }}
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
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@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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' }}
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 \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-sftp
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
@@ -1,128 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Samba Kerberos SSO
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-smb-kerberos-${{ 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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-smb-kerberos:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
name: smb-kerberos-sso
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Checkout user_saml
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/user_saml
path: apps/user_saml
- name: Install user_saml
run: |
cd apps/user_saml
composer i
cd ../..
- name: Pull images
run: |
docker pull ghcr.io/icewind1991/samba-krb-test-dc
docker pull ghcr.io/icewind1991/samba-krb-test-apache-gssapi:8.4
docker pull ghcr.io/icewind1991/samba-krb-test-client
docker tag ghcr.io/icewind1991/samba-krb-test-dc icewind1991/samba-krb-test-dc
docker tag ghcr.io/icewind1991/samba-krb-test-apache-gssapi:8.4 icewind1991/samba-krb-test-apache-gssapi
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 DC
if: always()
run: |
docker logs dc
echo "------------"
docker exec dc cat /var/log/samba/log.samba
- name: Show logs Apache
if: always()
run: |
docker logs apache
- name: Show logs
if: always()
run: |
FILEPATH=$(docker exec --user 33 apache ./occ log:file | grep "Log file:" | cut -d' ' -f3)
echo "$FILEPATH:"
docker exec --user 33 apache cat $FILEPATH
smb-kerberos-sso-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
-138
View File
@@ -1,138 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external SMB
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-smb:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-smb
services:
samba:
image: ghcr.io/servercontainers/samba:smbd-only-a3.18.0-s4.18.2-r0
env:
ACCOUNT_test: test
UID_test: 1000
SAMBA_VOLUME_CONFIG_test: "[public]; path=/tmp; valid users = test; guest ok = no; read only = no; browseable = yes"
options: >-
--health-cmd=true
ports:
- 445:445
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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, 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 -- \
apps/files_external/tests/Storage/SmbTest.php \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-smb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
-130
View File
@@ -1,130 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external WebDAV
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-webdav-apache:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4']
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 # zizmor: ignore[unpinned-images]
ports:
- 8081:80
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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 -- \
apps/files_external/tests/Storage/WebdavTest.php \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-webdav
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
-119
View File
@@ -1,119 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external generic
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-generic:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-generic
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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 -- \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-generic
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
+2 -5
View File
@@ -2,9 +2,6 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block fixup and squash commits
@@ -27,10 +24,10 @@ jobs:
pull-requests: write
name: Block fixup and squash commits
runs-on: ubuntu-latest-low
runs-on: ubuntu-latest
steps:
- name: Run check
uses: skjnldsv/block-fixup-merge-action@c138ea99e45e186567b64cf065ce90f7158c236a # v2
uses: skjnldsv/block-fixup-merge-action@42d26e1b536ce61e5cf467d65fb76caf4aa85acf # v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
+82
View File
@@ -0,0 +1,82 @@
name: FTP
on:
push:
branches:
- master
- stable*
paths:
- 'apps/files_external/**'
pull_request:
paths:
- 'apps/files_external/**'
env:
APP_NAME: files_external
jobs:
ftp-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']
ftpd: ['proftpd', 'vsftpd', 'pure-ftpd']
name: php${{ matrix.php-versions }}-${{ matrix.ftpd }}
steps:
- name: Checkout server
uses: actions/checkout@v3
with:
submodules: true
- name: Set up ftpd
run: |
sudo mkdir /tmp/ftp
sudo chown -R 0777 /tmp/ftp
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then docker run --name ftp -d --net host -e FTP_USERNAME=test -e FTP_PASSWORD=test -v /tmp/ftp:/home/test hauptmedia/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/ftp2:/home/test -v /tmp/ftp2:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
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: smoketest ftp
run: |
php -r 'var_dump(file_put_contents("ftp://test:test@localhost/ftp.txt", "asd"));'
php -r 'var_dump(file_get_contents("ftp://test:test@localhost/ftp.txt"));'
php -r 'var_dump(mkdir("ftp://test:test@localhost/asdads"));'
ls -l /tmp/ftp
- name: PHPUnit
run: |
echo "<?php return ['run' => true,'host' => 'localhost','user' => 'test','password' => 'test', 'root' => ''];" > apps/${{ env.APP_NAME }}/tests/config.ftp.php
phpunit --configuration tests/phpunit-autotest-external.xml apps/files_external/tests/Storage/FtpTest.php
- name: ftpd logs
if: always()
run: |
docker logs ftp
ftp-summary:
runs-on: ubuntu-latest
needs: ftp-tests
if: always()
steps:
- name: Summary status
run: if ${{ needs.ftp-tests.result != 'success' }}; then exit 1; fi
@@ -1,104 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Generate changelog on release
on:
release:
types: [published]
permissions:
contents: write
jobs:
changelog_generate:
runs-on: ubuntu-latest
# Only allowed to be run on nextcloud-releases repositories
if: ${{ github.repository_owner == 'nextcloud-releases' }}
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
with:
require: write
- name: Checkout github_helper
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/github_helper
path: github_helper
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
path: server
fetch-depth: 0
- name: Get previous tag
shell: bash
run: |
cd server
# Print all tags
git log --decorate --oneline | egrep 'tag: ' | sed -r 's/^.+tag: ([^,\)]+)[,\)].+$/\1/g'
# Get the current tag
TAGS=$(git log --decorate --oneline | egrep 'tag: ' | sed -r 's/^.+tag: ([^,\)]+)[,\)].+$/\1/g')
CURRENT_TAG=$(echo "$TAGS" | head -n 1)
# If current tag is the first beta, we use the previous major RC1
if echo "$CURRENT_TAG" | grep -q 'beta1'; then
MAJOR=$(echo "$CURRENT_TAG" | sed -E 's/^v([0-9]+).*/\1/')
PREV=$((MAJOR - 1))
PREVIOUS_TAG="v${PREV}.0.0rc1"
# Get the previous tag - filter pre-releases only if current tag is stable
elif echo "$CURRENT_TAG" | grep -q 'rc\|beta\|alpha'; then
# Current tag is pre-release, don't filter
PREVIOUS_TAG=$(echo "$TAGS" | sed -n '2p')
else
# Current tag is stable, filter out pre-releases
PREVIOUS_TAG=$(echo "$TAGS" | grep -v 'rc\|beta\|alpha' | sed -n '2p')
fi
echo "CURRENT_TAG=$CURRENT_TAG" >> $GITHUB_ENV
echo "PREVIOUS_TAG=$PREVIOUS_TAG" >> $GITHUB_ENV
# Since this action only runs on nextcloud-releases, ignoring is okay
- name: Verify current tag # zizmor: ignore[template-injection]
run: |
if [ "${{ github.ref_name }}" != "${{ env.CURRENT_TAG }}" ]; then
echo "Current tag does not match the release tag. Exiting."
exit 1
fi
- name: Set up php 8.2
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: 8.2
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set credentials
run: |
echo '{"username": "github-actions"}' > github_helper/credentials.json
# Since this action only runs on nextcloud-releases, ignoring is okay
- name: Generate changelog between ${{ env.PREVIOUS_TAG }} and ${{ github.ref_name }} # zizmor: ignore[template-injection]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd github_helper/changelog
composer install
php index.php generate:changelog --no-bots --format=forum server ${{ env.PREVIOUS_TAG }} ${{ github.ref_name }} > changelog.md
# Since this action only runs on nextcloud-releases, ignoring is okay
- name: Set changelog to release # zizmor: ignore[template-injection]
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd server
gh release edit ${{ github.ref_name }} --notes-file "../github_helper/changelog/changelog.md" --title "${{ github.ref_name }}"
-129
View File
@@ -1,129 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: DAV integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-caldav-${{ 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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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-caldav:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
endpoint: ['old', 'new']
service: ['CalDAV', 'CardDAV']
name: ${{ matrix.service }} (${{ matrix.endpoint }} endpoint) php${{ matrix.php-versions }}
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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: Set up Python
uses: LizardByte/actions/actions/setup_python@09a6e10dc8175f2933c20bdf35fde0a193a9c00e # v2026.129.194351
with:
python-version: '2.7'
- name: Set up CalDAVTester
run: |
git clone --depth=1 https://github.com/apple/ccs-caldavtester.git CalDAVTester
git clone --depth=1 https://github.com/apple/ccs-pycalendar.git pycalendar
- name: Set up Nextcloud
run: |
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 admin
# disable the trashbin, so recurrent deletion of the same object works
./occ config:app:set dav calendarRetentionObligation --value=0
# Prepare users
OC_PASS=user01 ./occ user:add --password-from-env user01
OC_PASS=user02 ./occ user:add --password-from-env user02
# Prepare calendars
./occ dav:create-calendar user01 calendar
./occ dav:create-calendar user01 shared
./occ dav:create-calendar user02 calendar
# Prepare address books
./occ dav:create-addressbook user01 addressbook
./occ dav:create-addressbook user02 addressbook
- name: Run Nextcloud
run: |
php -S localhost:8888 &
- name: Run CalDAVTester
run: |
cp "apps/dav/tests/testsuits/caldavtest/serverinfo-${{ matrix.endpoint }}${{ matrix.endpoint == 'old' && (matrix.service == 'CardDAV' && '-carddav' || '-caldav') || '' }}-endpoint.xml" "apps/dav/tests/testsuits/caldavtest/serverinfo.xml"
pushd CalDAVTester
PYTHONPATH="../pycalendar/src" python testcaldav.py --print-details-onfail --basedir "../apps/dav/tests/testsuits/caldavtest" -o cdt.txt \
"${{ matrix.service }}/current-user-principal.xml" \
"${{ matrix.service }}/sync-report.xml" \
${{ matrix.endpoint == 'new' && format('{0}/sharing-{1}.xml', matrix.service, matrix.service == 'CalDAV' && 'calendars' || 'addressbooks') || ';' }}
popd
- name: Print Nextcloud logs
if: always()
run: |
cat data/nextcloud.log
caldav-integration-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-caldav]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-caldav.result != 'success' }}; then exit 1; fi
-116
View File
@@ -1,116 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Litmus integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-litmus-${{ 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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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-litmus:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
endpoint: ['webdav', 'dav']
name: Litmus WebDAV ${{ matrix.endpoint }}
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install \
--verbose \
--database=sqlite \
--database-name=nextcloud \
--database-user=root \
--database-pass=rootpassword \
--admin-user admin \
--admin-pass admin
./occ config:system:set trusted_domains 2 --value=host.docker.internal:8080
- name: Run Nextcloud
run: |
php -S 0.0.0.0:8080 &
- name: Run Litmus test
run: |
docker run \
--rm \
--add-host=host.docker.internal:host-gateway \
ghcr.io/nextcloud/continuous-integration-litmus-php8.3:latest \
bash -c '\
cd /tmp/litmus/litmus-0.13;
make URL=http://host.docker.internal:8080/remote.php/${{ matrix.endpoint }}${{ matrix.endpoint == 'dav' && '/files/admin' || ''}} CREDS="admin admin" TESTS="basic copymove props largefile" check;
status=$?;
cat debug.log;
exit $status;'
- name: Print Nextcloud logs
if: always()
run: cat data/nextcloud.log
integration-litmus-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-litmus]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-litmus.result != 'success' }}; then exit 1; fi
@@ -1,133 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: S3 primary storage integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-s3-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'build/integration/**'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
integration-s3-primary:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
key: ['objectstore', 'objectstore_multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
minio:
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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: |
composer install
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
-184
View File
@@ -1,184 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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'
- 'core/shipped.json'
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'
- 'file_conversions'
- 'files_reminders'
- 'openldap_features'
- 'openldap_numerical_features'
- 'ldap_features'
- 'remoteapi_features'
- 'routing_features'
- 'setup_features'
- 'sharees_features'
- 'sharing_features'
- 'theming_features'
- 'videoverification_features'
php-versions: ['8.4']
spreed-versions: ['main']
activity-versions: ['master']
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
openldap:
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-8 # zizmor: ignore[unpinned-images]
ports:
- 389:389
- 636:636
env:
SLAPD_DOMAIN: nextcloud.ci
SLAPD_ORGANIZATION: Nextcloud
SLAPD_PASSWORD: admin
SLAPD_ADDITIONAL_MODULES: memberof
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Checkout Talk app
if: ${{ matrix.test-suite == 'videoverification_features' }}
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/spreed
path: apps/spreed
ref: ${{ matrix.spreed-versions }}
- name: Checkout Activity app
if: ${{ matrix.test-suite == 'sharing_features' }}
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/activity
path: apps/activity
ref: ${{ matrix.activity-versions }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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 dependencies
run: |
composer install
- 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 $(./occ log:file |grep "Log file"|cut -d" " -f3)
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
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
@@ -0,0 +1,39 @@
# 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
#
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Lint eslint
on:
pull_request:
paths-ignore:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
permissions:
contents: read
jobs:
lint:
permissions:
contents: none
runs-on: ubuntu-latest
name: eslint
steps:
- run: 'echo "No eslint required"'
+15 -61
View File
@@ -3,12 +3,17 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
name: Lint eslint
on: pull_request
on:
pull_request:
push:
branches:
- master
- stable*
permissions:
contents: read
@@ -18,83 +23,32 @@ concurrency:
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/src/**'
- '**/appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
lint:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
name: NPM lint
name: eslint
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
fallbackNode: '^12'
fallbackNpm: '^6'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: npm ci
- name: Lint
run: npm run lint
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, lint]
if: always()
# This is the summary, we just avoid to rename it so that branch protection rules still match
name: eslint
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
+3 -48
View File
@@ -2,9 +2,6 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Lint php-cs
@@ -18,29 +15,6 @@ concurrency:
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
lint:
runs-on: ubuntu-latest
@@ -48,16 +22,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
with:
php-version: 8.2
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
php-version: 8.0
coverage: none
ini-file: development
env:
@@ -68,18 +38,3 @@ jobs:
- name: Lint
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, lint]
if: always()
# This is the summary, we just avoid to rename it so that branch protection rules still match
name: php-cs
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
+14 -40
View File
@@ -2,13 +2,16 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Lint php
on: pull_request
on:
pull_request:
push:
branches:
- main
- master
- stable*
permissions:
contents: read
@@ -18,51 +21,22 @@ concurrency:
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
lint:
php-lint:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: [ '8.2', '8.3', '8.4', '8.5' ]
php-versions: [ "8.0", "8.1", "8.2" ]
name: php-lint
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
@@ -74,8 +48,8 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, lint]
runs-on: ubuntu-latest
needs: php-lint
if: always()
@@ -83,4 +57,4 @@ jobs:
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi
-53
View File
@@ -1,53 +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
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Lint stylelint
on: pull_request
permissions:
contents: read
concurrency:
group: lint-stylelint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
name: stylelint
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
run: npm ci
- name: Lint
run: npm run stylelint
@@ -1,99 +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
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Node handlebars tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: node-tests-handlebars-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/__tests__/**'
- '**/__mocks__/**'
- 'apps/*/src/**'
- 'apps/*/appinfo/info.xml'
- 'core/src/**'
- 'package.json'
- '**/package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
handlebars:
runs-on: ubuntu-latest
needs: [changes]
if: needs.changes.outputs.src != 'false'
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
run: npm ci
- name: Run compile
run: ./build/compile-handlebars-templates.sh
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, handlebars]
if: always()
name: test-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.handlebars.result != 'success' }}; then exit 1; fi
-109
View File
@@ -1,109 +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
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Node tests
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: node-tests-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/__tests__/**'
- '**/__mocks__/**'
- 'apps/*/src/**'
- 'apps/*/appinfo/info.xml'
- 'core/src/**'
- 'package.json'
- '**/package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
test:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
# - name: Test
# run: npm run test --if-present
- name: Test and process coverage
run: npm run test:coverage
- name: Collect coverage
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./coverage/lcov.info,./coverage/legacy/lcov.info
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, test]
if: always()
name: node-test-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.test.result != 'success' }}; then exit 1; fi
+95
View File
@@ -0,0 +1,95 @@
name: Node
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
versions:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@v1.1
id: versions
with:
fallbackNode: '^12'
fallbackNpm: '^6'
test:
runs-on: ubuntu-latest
needs: versions
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@v2
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ needs.versions.outputs.npmVersion }}"
- name: Install dependencies
run: npm ci
- name: Test
run: npm run test
jsunit:
runs-on: ubuntu-latest
needs: versions
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@v2
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ needs.versions.outputs.npmVersion }}"
- name: Install dependencies
run: npm ci
- name: Test
run: ./autotest-js.sh
handlebars:
runs-on: ubuntu-latest
needs: versions
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@v2
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ needs.versions.outputs.npmVersion }}"
- name: Install dependencies
run: npm ci
- name: Run compile
run: ./build/compile-handlebars-templates.sh
+25 -71
View File
@@ -2,13 +2,26 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Node
on: pull_request
on:
pull_request:
paths:
- '.github/workflows/**'
- 'src/**'
- 'apps/**/appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
push:
branches:
- main
- master
- stable*
permissions:
contents: read
@@ -18,79 +31,35 @@ concurrency:
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/src/**'
- '**/appinfo/info.xml'
- 'core/css/*'
- 'core/img/**'
- 'package.json'
- '**/package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
- 'version.php'
build:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
name: NPM build
name: node
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
fallbackNode: '^12'
fallbackNpm: '^6'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
# This does not work on server as we have some git dependencies that "npm-package-lock-add-resolved" cannot handle
# - name: Validate package-lock.json # See https://github.com/npm/cli/issues/4460
# run: |
# npm i -g npm-package-lock-add-resolved@1.1.4
# npm-package-lock-add-resolved
# git --no-pager diff --exit-code
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: |
npm ci
npm run build --if-present
- name: Check build changes
- name: Check webpack build changes
run: |
bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)"
@@ -100,18 +69,3 @@ jobs:
git status
git --no-pager diff
exit 1 # make it red to grab attention
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, build]
if: always()
# This is the summary, we just avoid to rename it so that branch protection rules still match
name: node
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.build.result != 'success' }}; then exit 1; fi
-85
View File
@@ -1,85 +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
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Npm audit fix and compile
on:
workflow_dispatch:
schedule:
# At 2:30 on Sundays
- cron: '30 2 * * 0'
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches:
- ${{ github.event.repository.default_branch }}
- 'stable33'
- 'stable32'
- 'stable31'
name: npm-audit-fix-${{ matrix.branches }}
steps:
- name: Checkout
id: checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
continue-on-error: true
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Fix npm audit
id: npm-audit
uses: nextcloud-libraries/npm-audit-action@1b1728b2b4a7a78d69de65608efcf4db0e3e42d0 # v0.2.0
- name: Run npm ci and npm run build
if: steps.checkout.outcome == 'success'
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
npm run build --if-present
- name: Create Pull Request
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(deps): Fix npm audit'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/${{ matrix.branches }}-fix-npm-audit
title: '[${{ matrix.branches }}] Fix npm audit'
body: ${{ steps.npm-audit.outputs.markdown }}
labels: |
dependencies
3. to review
-145
View File
@@ -1,145 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Object storage azure
on:
pull_request:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
azure-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.3']
include:
- php-versions: '8.4'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-azure
services:
azurite:
image: mcr.microsoft.com/azure-storage/azurite@sha256:0a47e12e3693483cef5c71f35468b91d751611f172d2f97414e9c69113b106d9 # v3.34.0
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 # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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
- name: PHPUnit
env:
OBJECT_STORE: azure
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bmV4dGNsb3Vk
run: composer run test -- --group PRIMARY-azure --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-azure
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
-151
View File
@@ -1,151 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Object storage S3
on:
pull_request:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
s3-primary-tests-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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
- 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 --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
-141
View File
@@ -1,141 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Object storage Swift
on:
pull_request:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
swift-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-swift
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
swift:
image: ghcr.io/cscfi/docker-keystone-swift@sha256:e8b1ec21120ab9adc6ac6a2b98785fd273676439a8633fe898e37f2aea7e0712
ports:
- 5000:5000
- 8080:8080
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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
- name: PHPUnit
env:
OBJECT_STORE: swift
OBJECT_STORE_SECRET: veryfast
run: composer run test -- --group PRIMARY-swift --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-swift
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
+86
View File
@@ -0,0 +1,86 @@
name: PHPUnit
on: pull_request
permissions:
contents: read
concurrency:
group: phpunit-oci-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
phpunit-oci:
runs-on: ubuntu-20.04
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
matrix:
php-versions: ['8.0', '8.1', '8.2']
services:
oracle:
image: ghcr.io/gvenzl/oracle-xe:11
# Provide passwords and other environment variables to container
env:
ORACLE_RANDOM_PASSWORD: true
APP_USER: autotest
APP_USER_PASSWORD: owncloud
# Forward Oracle port
ports:
- 1521:1521/tcp
# Provide healthcheck script options for startup
options: >-
--health-cmd healthcheck.sh
--health-interval 10s
--health-timeout 5s
--health-retries 10
steps:
- name: Checkout server
uses: actions/checkout@v3
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: ctype, curl, dom, fileinfo, gd, imagick, intl, json, mbstring, oci8, openssl, pcntl, pdo_sqlite, posix, sqlite, xml, zip
tools: phpunit:9
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
mkdir data
./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
working-directory: tests
run: phpunit --configuration phpunit-autotest.xml --group DB,SLOWDB
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: phpunit-oci
if: always()
name: phpunit-oci-summary
steps:
- name: Summary status
run: if ${{ needs.phpunit-oci.result != 'success' }}; then exit 1; fi
-48
View File
@@ -1,48 +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
#
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2024 Arthur Schiwon <blizzz@arthur-schiwon.de>
# SPDX-License-Identifier: MIT
name: OpenAPI
on: pull_request
permissions:
contents: read
concurrency:
group: openapi-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
openapi:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: '8.2'
extensions: ctype, curl, dom, fileinfo, gd, json, libxml, mbstring, openssl, pcntl, pdo, posix, session, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: OpenAPI checker
run: build/openapi-checker.sh
+15 -35
View File
@@ -1,52 +1,33 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Performance testing
on:
pull_request:
permissions:
contents: read
concurrency:
group: performance-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
performance-testing:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
permissions:
pull-requests: write
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
php-versions: ['8.0']
name: performance-${{ matrix.php-versions }}
steps:
- name: Disabled on forks
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
run: |
echo 'Can not run performance tests on forks'
exit 1
- name: Checkout server before PR
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@v3
with:
persist-credentials: false
submodules: true
ref: ${{ github.event.pull_request.base.ref }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -57,13 +38,12 @@ jobs:
php -S localhost:8080 &
- name: Apply blueprint
uses: icewind1991/blueprint@00504403f76cb2a09efd0d16793575055e6f63cb # v0.1.2
uses: icewind1991/blueprint@v0.1.2
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
@@ -72,20 +52,20 @@ 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: stable26
- name: Apply PR # zizmor: ignore[template-injection]
- name: Apply PR
run: |
git remote add pr '${{ github.event.pull_request.head.repo.clone_url }}'
git fetch pr '${{ github.event.pull_request.head.ref }}'
git checkout -b 'pr/${{ github.event.pull_request.head.ref }}'
git remote add pr ${{ github.event.pull_request.head.repo.clone_url }}
git fetch pr ${{ github.event.pull_request.head.ref }}
git checkout -b pr/${{ github.event.pull_request.head.ref }}
git submodule update
./occ upgrade
- 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
@@ -99,14 +79,14 @@ jobs:
- name: Upload profiles
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
uses: actions/upload-artifact@v2
with:
name: profiles
path: |
before.json
after.json
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v7
- uses: actions/github-script@v5
if: failure() && steps.compare.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}
+29 -27
View File
@@ -1,14 +1,6 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit 32bits
name: PHPUnit
on:
pull_request:
paths:
- "version.php"
- ".github/workflows/phpunit-32bits.yml"
- "tests/phpunit-autotest.xml"
- "lib/private/Snowflake/*"
workflow_dispatch:
schedule:
- cron: "15 1 * * 1-6"
@@ -26,34 +18,44 @@ jobs:
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
container: shivammathur/node:latest-i386
strategy:
fail-fast: false
matrix:
php-versions: ["8.4"]
php-versions: ['8.0']
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@v3
with:
persist-credentials: false
submodules: true
- name: Set up dependencies
uses: docker://ghcr.io/nextcloud/continuous-integration-php8.4-32bit:latest
- name: Install tools
run: |
sudo apt-get update
sudo apt-get install -y ffmpeg imagemagick libmagickcore-6.q16-3-extra
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9c77701ae57b0c47f6732beebfbdec76e4e5c90a #debian bookworm fix
with:
args: /bin/sh -c "
git config --global --add safe.directory /github/workspace &&
composer install --no-interaction"
php-version: ${{ matrix.php-versions }}
extensions: ctype, curl, dom, fileinfo, gd, imagick, intl, json, mbstring, openssl, pdo_sqlite, posix, sqlite, xml, zip, apcu
tools: phpunit:9
coverage: none
ini-values:
apc.enabled=on,
apc.enable_cli=on
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
uses: docker://ghcr.io/nextcloud/continuous-integration-php8.4-32bit:latest
with:
args: /bin/sh -c "
mkdir data &&
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=autotest --database-pass=rootpassword --admin-user admin --admin-pass admin &&
php -f tests/enable_all.php"
env:
DB_PORT: 4444
run: |
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=autotest --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
- name: PHPUnit
uses: docker://ghcr.io/nextcloud/continuous-integration-php8.4-32bit:latest
with:
args: /bin/sh -c "composer run test -- --exclude-group PRIMARY-azure,PRIMARY-s3,PRIMARY-swift,Memcached,Redis,RoutingWeirdness"
working-directory: tests
run: phpunit --configuration phpunit-autotest.xml --exclude-group PRIMARY-azure,PRIMARY-s3,PRIMARY-swift,Memcached,Redis,RoutingWeirdness
-158
View File
@@ -1,158 +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
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
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
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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:
fail-fast: false
matrix:
php-versions: ['8.2']
mariadb-versions: ['10.6']
include:
- php-versions: '8.3'
mariadb-versions: '10.11'
coverage: ${{ github.event_name != 'pull_request' }}
- php-versions: '8.4'
mariadb-versions: '11.4'
- php-versions: '8.5'
mariadb-versions: '11.8'
name: MariaDB ${{ matrix.mariadb-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
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="${{ matrix.mariadb-versions <= 10.4 && 'mysqladmin' || 'mariadb-admin'}} ping" --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
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 MariaDB 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
- name: PHPUnit
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-mariadb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-mariadb
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
-135
View File
@@ -1,135 +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
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4', '8.5']
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 # zizmor: ignore[unpinned-images]
ports:
- 11212:11212/tcp
- 11212:11212/udp
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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
- name: PHPUnit memcached tests
run: composer run test -- --group Memcache --group Memcached --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-memcached
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
@@ -1,193 +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
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit sharding
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-mysql-sharding-${{ 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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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:
fail-fast: false
matrix:
php-versions: ['8.2']
mysql-versions: ['8.4']
name: Sharding - MySQL ${{ matrix.mysql-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
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 10
shard1:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5001:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard2:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5002:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard3:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5003:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard4:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5004:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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
SHARDING: 1
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
- name: PHPUnit
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
-163
View File
@@ -1,163 +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
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
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
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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:
fail-fast: false
matrix:
php-versions: ['8.2']
mysql-versions: ['8.0']
include:
- mysql-versions: '8.0'
php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
- mysql-versions: '8.4'
php-versions: '8.4'
- mysql-versions: '8.4'
php-versions: '8.5'
name: MySQL ${{ matrix.mysql-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
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 10
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
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
- name: PHPUnit
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
-141
View File
@@ -1,141 +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
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
#
# 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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'resources/**'
- '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:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4', '8.5']
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 # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
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
- name: PHPUnit nodb testsuite
run: composer run test -- --exclude-group DB --exclude-group SLOWDB --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.nodb.xml' || '' }}
- name: Upload nodb code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.nodb.xml
flags: phpunit-nodb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
@@ -1,125 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit primary object store
on:
pull_request:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-object-store-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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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'
object-store-primary-tests-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
key: ['s3', 's3-multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: ${{ matrix.key }}
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
- 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: |
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
object-store-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes,object-store-primary-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.object-store-primary-tests-minio.result != 'success' }}; then exit 1; fi
-162
View File
@@ -1,162 +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
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit OCI
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-oci-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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-oci:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
include:
- oracle-versions: '18'
php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
- oracle-versions: '21'
php-versions: '8.3'
- oracle-versions: '23'
php-versions: '8.4'
- oracle-versions: '23'
php-versions: '8.5'
name: Oracle ${{ matrix.oracle-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
oracle:
image: ghcr.io/gvenzl/oracle-${{ matrix.oracle-versions < 23 && 'xe' || 'free' }}:${{ matrix.oracle-versions }}
# Provide passwords and other environment variables to container
env:
ORACLE_PASSWORD: oracle
# Forward Oracle port
ports:
- 1521:1521
# Provide healthcheck script options for startup
options: >-
--health-cmd healthcheck.sh
--health-interval 20s
--health-timeout 10s
--health-retries 10
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
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' }}
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=oci --database-name=${{ matrix.oracle-versions < 23 && 'XE' || 'FREE' }} --database-host=127.0.0.1 --database-port=1521 --database-user=system --database-pass=oracle --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-oci
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-oci
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-oci]
if: always()
name: phpunit-oci-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-oci.result != 'success' }}; then exit 1; fi
-162
View File
@@ -1,162 +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
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit PostgreSQL
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
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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:
fail-fast: false
matrix:
php-versions: ['8.2']
# To keep the matrix smaller we ignore PostgreSQL versions in between as we already test the minimum and the maximum
postgres-versions: ['14']
include:
- php-versions: '8.3'
postgres-versions: '18'
coverage: ${{ github.event_name != 'pull_request' }}
- php-versions: '8.4'
postgres-versions: '18'
- php-versions: '8.5'
postgres-versions: '18'
name: PostgreSQL ${{ matrix.postgres-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
postgres:
image: ghcr.io/nextcloud/continuous-integration-postgres-${{ matrix.postgres-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --mount type=tmpfs,destination=/var/lib/postgresql --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
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
- name: PHPUnit database tests
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-postgres
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
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
-147
View File
@@ -1,147 +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
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
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
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
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:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4', '8.5']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: SQLite (PHP ${{ matrix.php-versions }})
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
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
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: |
sudo apt-get update
sudo apt-get install -y ghostscript
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
- name: Nextcloud debug information
run: ./occ app:list && echo "======= System config =======" && ./occ config:list system
- name: PHPUnit database tests
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }} tests/lib/Preview/PostscriptTest.php
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-sqlite
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-sqlite
- name: Print logs
if: always()
run: |
gs --version
cat /etc/ImageMagick-6/policy.xml
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
-55
View File
@@ -1,55 +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
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2023 Marcel Klehr <mklehr@gmx.net>
# SPDX-FileCopyrightText: 2023 Joas Schilling <213943+nickvergessen@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Daniel Kesselberg <mail@danielkesselberg.de>
# SPDX-FileCopyrightText: 2023 Florian Steffens <florian.steffens@nextcloud.com>
# SPDX-License-Identifier: MIT
name: 'Ask for feedback on PRs'
on:
schedule:
- cron: '30 1 * * *'
permissions:
contents: read
pull-requests: write
jobs:
pr-feedback:
if: ${{ github.repository_owner == 'nextcloud' }}
runs-on: ubuntu-latest
steps:
- name: The get-github-handles-from-website action
uses: marcelklehr/get-github-handles-from-website-action@06b2239db0a48fe1484ba0bfd966a3ab81a08308 # v1.0.1
id: scrape
with:
website: 'https://nextcloud.com/team/'
- name: Get blocklist
id: blocklist
run: |
blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
- uses: nextcloud/pr-feedback-action@f0cab224dea8e1f282f9451de322f323c78fc7a5 # main
with:
feedback-message: |
Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
Thank you for contributing to Nextcloud and we hope to hear from you soon!
(If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).)
days-before-feedback: 14
start-date: '2025-06-12'
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}'
exempt-bots: true
-45
View File
@@ -1,45 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
name: Rector
on:
pull_request:
permissions:
contents: read
concurrency:
group: rector-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
strict:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
with:
php-version: '8.2'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Rector
run: composer run rector:strict
- name: Show changes
if: always()
run: git diff --exit-code -- . ':!lib/composer'
-27
View File
@@ -1,27 +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
# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. <https://fsfe.org>
#
# SPDX-License-Identifier: CC0-1.0
name: REUSE Compliance Check
on: [pull_request]
permissions:
contents: read
jobs:
reuse-compliance-check:
runs-on: ubuntu-latest-low
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: REUSE Compliance Check
uses: fsfe/reuse-action@676e2d560c9a403aa252096d99fcab3e1132b0f5 # v6.0.0
+132
View File
@@ -0,0 +1,132 @@
name: S3 External storage
on:
push:
branches:
- master
- stable*
paths:
- 'apps/files_external/**'
pull_request:
paths:
- 'apps/files_external/**'
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@v3
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
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
phpunit --configuration tests/phpunit-autotest-external.xml apps/files_external/tests/Storage/Amazons3Test.php
phpunit --configuration tests/phpunit-autotest-external.xml 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@v3
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
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
phpunit --configuration tests/phpunit-autotest-external.xml apps/files_external/tests/Storage/Amazons3Test.php
phpunit --configuration tests/phpunit-autotest-external.xml 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,84 @@
name: S3 primary storage integration tests
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
s3-primary-integration-tests-minio:
runs-on: ubuntu-20.04
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@v3
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
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
+78
View File
@@ -0,0 +1,78 @@
name: S3 primary storage
on:
pull_request:
push:
branches:
- master
- stable*
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@v3
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit:9
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- 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
./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
working-directory: tests
run: phpunit --configuration phpunit-autotest.xml --group DB,SLOWDB
- 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
+74
View File
@@ -0,0 +1,74 @@
name: Samba Kerberos SSO
on:
push:
branches:
- master
- stable*
paths:
- 'apps/files_external/**'
- '.github/workflows/smb-kerberos.yml'
pull_request:
paths:
- 'apps/files_external/**'
- '.github/workflows/smb-kerberos.yml'
jobs:
smb-kerberos-tests:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
name: smb-kerberos-sso
steps:
- name: Checkout server
uses: actions/checkout@v3
with:
submodules: true
- name: Pull images
run: |
docker pull icewind1991/samba-krb-test-dc
docker pull icewind1991/samba-krb-test-apache
docker pull icewind1991/samba-krb-test-client
- name: Setup AD-DC
run: |
cp apps/files_external/tests/*.sh .
mkdir data
sudo chown -R 33 data apps config
DC_IP=$(./start-dc.sh)
./start-apache.sh $DC_IP $PWD
echo "DC_IP=$DC_IP" >> $GITHUB_ENV
- name: Set up Nextcloud
run: |
docker exec --user 33 apache ./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
docker exec --user 33 apache ./occ config:system:set trusted_domains 1 --value 'httpd.domain.test'
# setup user_saml
docker exec --user 33 apache ./occ app:enable user_saml --force
docker exec --user 33 apache ./occ config:app:set user_saml type --value 'environment-variable'
docker exec --user 33 apache ./occ saml:config:create
docker exec --user 33 apache ./occ saml:config:set 1 --general-uid_mapping=REMOTE_USER
# setup external storage
docker exec --user 33 apache ./occ app:enable files_external --force
docker exec --user 33 apache ./occ files_external:create smb smb smb::kerberosapache
docker exec --user 33 apache ./occ files_external:config 1 host krb.domain.test
docker exec --user 33 apache ./occ files_external:config 1 share netlogon
docker exec --user 33 apache ./occ files_external:list
- name: Test SSO
run: |
mkdir /tmp/shared/cookies
chmod 0777 /tmp/shared/cookies
echo "SAML login"
./client-cmd.sh ${{ env.DC_IP }} curl -c /shared/cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/index.php/apps/user_saml/saml/login
echo "Check we are logged in"
CONTENT=$(./client-cmd.sh ${{ env.DC_IP }} curl -b /shared/cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/remote.php/webdav/smb/test.txt)
CONTENT=$(echo $CONTENT | head -n 1 | tr -d '[:space:]')
[[ $CONTENT == "testfile" ]]
- name: Show logs
if: failure()
run: |
docker exec --user 33 apache ./occ log:file
FILEPATH=$(docker exec --user 33 apache ./occ log:file | grep "Log file:" | cut -d' ' -f3)
docker exec --user 33 apache cat $FILEPATH
+2 -6
View File
@@ -1,5 +1,3 @@
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Close stale issues
on:
@@ -7,9 +5,6 @@ on:
schedule:
- cron: "0 0 * * *"
permissions:
contents: read
jobs:
stale:
runs-on: ubuntu-latest
@@ -20,7 +15,7 @@ jobs:
issues: write
steps:
- uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v9
- uses: actions/stale@v5
with:
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
stale-issue-message: >
@@ -30,6 +25,7 @@ jobs:
for your contributions.
stale-issue-label: 'stale'
only-labels: 'needs info'
labels-to-remove-when-unstale: 'needs info,stale'
exempt-issue-labels: '1. to develop,2. developing,3. to review,4. to release,security'
days-before-stale: 30
days-before-close: 14
+25 -104
View File
@@ -1,44 +1,29 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Psalm static code analysis
on:
pull_request:
push:
branches:
- main
- master
- stable*
paths:
- '.github/workflows/static-code-analysis.yml'
- '**.php'
permissions:
contents: read
concurrency:
group: static-code-analysis-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
static-code-analysis:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
uses: actions/checkout@v3
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
php-version: '8.0'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -47,69 +32,60 @@ jobs:
run: composer i
- name: Psalm
run: composer run psalm -- --threads=1 --monochrome --no-progress --output-format=github --update-baseline
run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --update-baseline --report=results.sarif
- name: Show potential changes in Psalm baseline
if: always()
run: git diff --exit-code -- . ':!lib/composer'
run: git diff -- . ':!lib/composer'
- name: Upload Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
static-code-analysis-security:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
permissions:
security-events: write
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
uses: actions/checkout@v3
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
uses: shivammathur/setup-php@master
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
php-version: '8.0'
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Composer install
run: composer i
- name: Psalm taint analysis
run: composer run psalm:security -- --threads=1 --monochrome --no-progress --output-format=github --update-baseline --report=results.sarif
- name: Show potential changes in Psalm baseline
if: always()
run: git diff --exit-code -- . ':!lib/composer'
run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --report=results.sarif --taint-analysis
- name: Upload Security Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@b20883b0cd1f46c72ae0ba6d1090936928f9fa30 # v3
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
static-code-analysis-ocp:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
uses: actions/checkout@v3
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
php-version: '8.0'
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -118,63 +94,8 @@ jobs:
run: composer i
- name: Psalm
run: composer run psalm:ocp -- --threads=1 --monochrome --no-progress --output-format=github --update-baseline
run: composer run psalm:ci -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline
- name: Show potential changes in Psalm baseline
if: always()
run: git diff --exit-code -- . ':!lib/composer'
static-code-analysis-ncu:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm:ncu -- --threads=1 --monochrome --no-progress --output-format=github
static-code-analysis-strict:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm:strict -- --threads=1 --monochrome --no-progress --output-format=github
run: git diff -- . ':!lib/composer'
+7 -14
View File
@@ -1,14 +1,9 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update CA certificate bundle
on:
workflow_dispatch:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
- cron: "5 4 * * *"
jobs:
update-ca-certificate-bundle:
@@ -17,14 +12,13 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable33', 'stable32', 'stable31', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
branches: ["master", "stable25", "stable24", "stable23", "stable22"]
name: update-ca-certificate-bundle-${{ matrix.branches }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/checkout@v3
with:
persist-credentials: false
ref: ${{ matrix.branches }}
submodules: true
@@ -32,18 +26,17 @@ 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@c0f553fe549906ede9cf27b5156039d195d2ece0
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update CA certificate bundle'
commit-message: Update CA certificate bundle
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: 'automated/noid/${{ matrix.branches }}-update-ca-cert-bundle'
title: '[${{ matrix.branches }}] fix(security): Update CA certificate bundle'
branch: automated/noid/${{ matrix.branches }}-update-ca-cert-bundle
title: "[${{ matrix.branches }}] Update ca-cert bundle"
body: |
Auto-generated update of CA certificate bundle from [https://curl.se/docs/caextract.html](https://curl.se/docs/caextract.html)
labels: |
dependencies
3. to review
reviewers: ChristophWurst, miaulalala, nickvergessen
@@ -1,52 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update code signing revocation list
on:
workflow_dispatch:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
jobs:
update-code-signing-crl:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable33', 'stable32', 'stable31', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-code-signing-crl-${{ matrix.branches }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
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@c0f553fe549906ede9cf27b5156039d195d2ece0
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
@@ -1,128 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update min supported desktop version
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
permissions:
contents: read
jobs:
update-minimum-supported-desktop-version:
runs-on: ubuntu-latest-low
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Download desktop client version file from 5 years ago
id: download
run: |
# Create a temporary directory for the downloaded file
mkdir -p tmp
# Download the version file from the provided URL
VERSION_FILE_URL="https://github.com/nextcloud/desktop/raw/@%7B5.years.ago%7D/VERSION.cmake"
# Download the file using curl
curl -s -L "$VERSION_FILE_URL" -o tmp/VERSION.cmake
if [ ! -f "tmp/VERSION.cmake" ]; then
echo "Failed to download VERSION.cmake file"
exit 1
fi
echo "VERSION_FILE=tmp/VERSION.cmake" >> $GITHUB_OUTPUT
echo "Downloaded version file to tmp/VERSION.cmake"
- name: Extract version info
id: extract-version
run: |
# Path to the downloaded version file
VERSION_FILE="${{ steps.download.outputs.VERSION_FILE }}"
# Extract major, minor, patch versions
MAJOR=$(grep "VERSION_MAJOR" $VERSION_FILE | grep -o '[0-9]\+')
MINOR=$(grep "VERSION_MINOR" $VERSION_FILE | grep -o '[0-9]\+')
PATCH=$(grep "VERSION_PATCH" $VERSION_FILE | grep -o '[0-9]\+')
# Construct the version string
VERSION="$MAJOR.$MINOR.$PATCH"
# Validate format: xx.xx.xx where each x is a digit
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Error: Extracted version '$VERSION' does not match required format (xx.xx.xx)"
exit 1
fi
rm -rf tmp
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted Version: $VERSION"
- name: Update files with new version ${{ steps.extract-version.outputs.VERSION }}
id: update-files
run: |
VERSION="${{ steps.extract-version.outputs.VERSION }}"
# Define the files to update
DAV_FILE="apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php"
CONFIG_FILE="config/config.sample.php"
# Check if files exist
if [ ! -f "$DAV_FILE" ]; then
echo "Error: DAV file not found at $DAV_FILE"
exit 1
fi
if [ ! -f "$CONFIG_FILE" ]; then
echo "Error: Config file not found at $CONFIG_FILE"
exit 1
fi
# Update the DAV file - replace the version in the specific line
sed -i "s/\('minimum\.supported\.desktop\.version', '\)[0-9]\+\.[0-9]\+\.[0-9]\+'/\1$VERSION'/g" "$DAV_FILE"
echo "Updated $DAV_FILE"
# Update the config sample file
PREV_VERSION=$(grep "'minimum.supported.desktop.version'" "$CONFIG_FILE" | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
sed -i "s/Defaults to \`\`$PREV_VERSION\`\`/Defaults to \`\`$VERSION\`\`/" "$CONFIG_FILE"
sed -i "s/'minimum\.supported\.desktop\.version' => '[0-9]\+\.[0-9]\+\.[0-9]\+'/'minimum.supported.desktop.version' => '$VERSION'/g" "$CONFIG_FILE"
echo "Updated $CONFIG_FILE"
# Check if any changes were made
if [ -n "$(git diff "$DAV_FILE" "$CONFIG_FILE")" ]; then
echo "CHANGES_MADE=true" >> $GITHUB_OUTPUT
echo "Changes were made to the files"
git diff "$DAV_FILE" "$CONFIG_FILE"
else
echo "CHANGES_MADE=false" >> $GITHUB_OUTPUT
echo "No changes were needed (versions might already be up to date)"
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0
if: steps.update-files.outputs.CHANGES_MADE == 'true'
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore: Update minimum supported desktop version"
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: "automated/noid/${{ matrix.branches }}-update-min-supported-desktop-version"
title: "chore: Update minimum supported desktop version to ${{ steps.extract-version.outputs.VERSION }}"
base: "master"
body: |
Auto-generated update of the minimum supported desktop version using last supported version.
https://github.com/nextcloud/desktop/blob/@%7B5.years.ago%7D/VERSION.cmake
labels: |
client: 💻 desktop
automated
3. to review
reviewers: '@nextcloud/desktop'
@@ -0,0 +1,67 @@
name: Update Psalm baseline
on:
workflow_dispatch:
schedule:
- cron: "5 4 * * *"
jobs:
update-psalm-baseline:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
branches: ["master", "stable25", "stable24", "stable23"]
name: update-psalm-baseline-${{ matrix.branches }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Set up php
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer install
- name: Psalm
run: composer run psalm -- --monochrome --no-progress --output-format=text --update-baseline
continue-on-error: true
- name: Psalm OCP
run: composer run psalm -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline
continue-on-error: true
- name: Reset composer
run: |
git clean -f lib/composer
git checkout composer.json composer.lock lib/composer
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: Update psalm baseline
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/${{ matrix.branches }}-update-psalm-baseline
title: "[${{ matrix.branches }}] Update psalm-baseline.xml"
body: |
Auto-generated update psalm-baseline.xml with fixed psalm warnings
labels: |
automated pr
3. to review
team-reviewers: server-backend
@@ -1,69 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update PRs titles on stable branches
on:
pull_request:
types: [opened, edited]
branches:
- "stable*"
concurrency:
group: stable-pr-title-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
update-pr-title:
runs-on: ubuntu-latest-low
permissions:
pull-requests: write
contents: read
steps:
- name: Wait for potential title edits
run: sleep 15
- name: Get PR details and update title
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
});
const baseBranch = pr.base.ref;
const currentTitle = pr.title;
// Check if this is a stable branch
// Should not happen as we only trigger on stable* branches 🤷‍♀️
if (!baseBranch.startsWith('stable')) {
console.log(`Not a stable branch: ${baseBranch}`);
return;
}
const prefix = `[${baseBranch}]`;
// Check if title already has the correct prefix and no other stable tags
const correctTagRegex = new RegExp(`^\\[${baseBranch}\\]\\s*`);
const hasOtherStableTags = /\[stable[\d.]*\]/.test(currentTitle.replace(correctTagRegex, ''));
if (correctTagRegex.test(currentTitle) && !hasOtherStableTags) {
console.log(`Title already has correct prefix only: ${currentTitle}`);
return;
}
// Remove all stable tags and add the correct one
const cleanTitle = currentTitle.replace(/\[stable[\d.]*\]\s*/g, '').trim();
const newTitle = `${prefix} ${cleanTitle}`;
console.log(`Updating title from: "${currentTitle}" to: "${newTitle}"`);
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
title: newTitle,
});
+9 -21
View File
@@ -1,7 +1,3 @@
# SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2011-2016 ownCloud contributors
# SPDX-FileCopyrightText: 2010 ownCloud contributors
# SPDX-License-Identifier: AGPL-3.0-only
# the default generated dir + db file
/data
/config/config.php
@@ -11,7 +7,7 @@
/apps/inc.php
/assets
/.htaccess
node_modules/
/node_modules
/translationfiles
/translationtool.phar
@@ -28,14 +24,12 @@ node_modules/
!/apps/sharebymail
!/apps/encryption
!/apps/files_external
!/apps/files_reminders
!/apps/files_sharing
!/apps/files_trashbin
!/apps/files_versions
!/apps/lookup_server_connector
!/apps/user_ldap
!/apps/oauth2
!/apps/profile
!/apps/provisioning_api
!/apps/settings
!/apps/systemtags
@@ -46,7 +40,6 @@ node_modules/
!/apps/twofactor_backupcodes
!/apps/user_status
!/apps/weather_status
!/apps/webhook_listeners
!/apps/workflowengine
/apps/files_external/3rdparty/irodsphp/PHPUnitTest
/apps/files_external/3rdparty/irodsphp/web
@@ -55,14 +48,15 @@ node_modules/
/apps/files_external/3rdparty/irodsphp/prods/test*
/apps/files_external/tests/config.*.php
# apps modules
/apps/*/node_modules
# ignore themes except the example and the README
/themes/*
!/themes/example
!/themes/README
# Love to people that develop the updater
/updater
# just sane ignores
.*.sw[po]
*.bak
@@ -102,7 +96,6 @@ nbproject
# vscode
.vscode
*.code-workspace
# geany
*.geany
@@ -127,11 +120,13 @@ nbproject
# Tests
/tests/phpunit.xml
# Node Modules
/build/node_modules/
# nodejs
/build/bin
/build/lib/
/build/integration/output/
/build/integration/phpserver.log
/build/jsdocs/
/npm-debug.log
/PhantomJS_*
@@ -144,8 +139,6 @@ Vagrantfile
# Tests - auto-generated files
/data-autotest
/results.sarif
/tests/.phpunit.cache
/tests/.phpunit.result.cache
/tests/coverage*
/tests/css
@@ -160,22 +153,17 @@ Vagrantfile
/config/config-autotest-backup.php
/config/autoconfig.php
clover.xml
/coverage
# Tests - dependencies
tests/acceptance/vendor/
composer.phar
/lib/composer/bin
/lib/composer/bamarni
/vendor-bin/**/vendor
./.htaccess
core/js/mimetypelist.js
# Tests - cypress
cypress/downloads
cypress/snapshots
cypress/videos
/.direnv
-3
View File
@@ -1,6 +1,3 @@
# SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2016 ownCloud, Inc.
# SPDX-License-Identifier: AGPL-3.0-only
[submodule "3rdparty"]
path = 3rdparty
url = https://github.com/nextcloud/3rdparty.git
+83 -177
View File
@@ -1,200 +1,106 @@
<IfModule mod_headers.c>
<IfModule mod_setenvif.c>
<IfModule mod_fcgid.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
<IfModule mod_proxy_fcgi.c>
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
<IfModule mod_lsapi.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
<IfModule mod_setenvif.c>
<IfModule mod_fcgid.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
<IfModule mod_env.c>
# Add security and privacy related headers
# Avoid doubled headers by unsetting headers in "onsuccess" table,
# then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
<If "%{REQUEST_URI} =~ m#/login$#">
# Only on the login page we need any Origin or Referer header set.
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "same-origin"
</If>
<Else>
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "no-referrer"
</Else>
Header onsuccess unset X-Content-Type-Options
Header always set X-Content-Type-Options "nosniff"
Header onsuccess unset X-Frame-Options
Header always set X-Frame-Options "SAMEORIGIN"
Header onsuccess unset X-Permitted-Cross-Domain-Policies
Header always set X-Permitted-Cross-Domain-Policies "none"
Header onsuccess unset X-Robots-Tag
Header always set X-Robots-Tag "noindex, nofollow"
SetEnv modHeadersAvailable true
<IfModule mod_proxy_fcgi.c>
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
<IfModule mod_lsapi.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
</IfModule>
# Add cache control for static resources
<FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|webp|ico|wasm|tflite)$">
<If "%{QUERY_STRING} =~ /(^|&)v=/">
Header set Cache-Control "max-age=15778463, immutable"
</If>
<Else>
Header set Cache-Control "max-age=15778463"
</Else>
</FilesMatch>
<IfModule mod_env.c>
# Add security and privacy related headers
# Let browsers cache OTF and WOFF files for a week
<FilesMatch "\.(otf|woff2?)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# Avoid doubled headers by unsetting headers in "onsuccess" table,
# then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "no-referrer"
Header onsuccess unset X-Content-Type-Options
Header always set X-Content-Type-Options "nosniff"
Header onsuccess unset X-Frame-Options
Header always set X-Frame-Options "SAMEORIGIN"
Header onsuccess unset X-Permitted-Cross-Domain-Policies
Header always set X-Permitted-Cross-Domain-Policies "none"
Header onsuccess unset X-Robots-Tag
Header always set X-Robots-Tag "noindex, nofollow"
Header onsuccess unset X-XSS-Protection
Header always set X-XSS-Protection "1; mode=block"
SetEnv modHeadersAvailable true
</IfModule>
# Add cache control for static resources
<FilesMatch "\.(css|js|svg|gif|png|jpg|ico|wasm|tflite)$">
<If "%{QUERY_STRING} =~ /(^|&)v=/">
Header set Cache-Control "max-age=15778463, immutable"
</If>
<Else>
Header set Cache-Control "max-age=15778463"
</Else>
</FilesMatch>
# Let browsers cache WOFF files for a week
<FilesMatch "\.woff2?$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
</IfModule>
# PHP 7.x
<IfModule mod_php7.c>
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
# PHP 8+
<IfModule mod_php.c>
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz
AddType application/wasm wasm
AddEncoding gzip svgz
# Serve ESM javascript files (.mjs) with correct mime type
AddType text/javascript js mjs
AddType image/svg+xml svg svgz
AddType application/wasm wasm
AddEncoding gzip svgz
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
DirectoryIndex index.php index.html
</IfModule>
<IfModule pagespeed_module>
ModPagespeed Off
ModPagespeed Off
</IfModule>
#############
#### Rewrites
#############
<IfModule mod_rewrite.c>
RewriteEngine on
##
## Rule: Workaround for WebDAV with apache+php-cgi
##
## Context:
## - Sets the environment variable `HTTP_AUTHORIZATION` to the value of the `Authorization` request header
## - Always executed before and along with other rules (no `L` used)
## - XXX: *May* be replaced with an equivalent SetEnvIf in theory
## - XXX: SetEnvIf approach is already in use above for mod_proxy_cgi / mod_lsapi / mod_fcgid
##
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
##
## Rule: Workaround for WebDAV with MS DavClnt
##
## Context:
## - DavClnt attempts an OPTIONS request against `/` instead of the specified endpoint
## - Redirects the client to the endpoint rather than the login page (which confuses DavClnt)
##
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
##
## Rule: Map the RFC 8615 / RFC 6764 compliant well-known URI for CardDAV to our Remote DAV endpoint
##
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
##
## Rule: Map the RFC 8615 / RFC 6764 compliant well-known URI for CalDAV to our Remote DAV endpoint
##
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
##
## Rule: Map /remote* --> /remote.php* including the query string
##
## Context:
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
## - XXX: Is this even used anymore? Seems a relic from <NC12
##
RewriteRule ^remote/(.*) remote.php [QSA,L]
##
## Rule: Prevent access to non-public files
##
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
##
## Rule: Maps most RFC 8615 compliant well-known URIs to our main frontend controller (/index.php) by default
##
## Context:
## - Intentionally excludes URIs used for HTTPS certificate verifications
## - RFC 8555 / ACME HTTP Challenges (acme-challenge)
## - File-based Validations (pki-validation)
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
## - XXX: Sometimes we are using `/index.php` and other times `index.php` as our replacement URI; this may be incorrect
##
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
##
## Rule: Map the ocm-provider handling to our main frontend controller (/index.php)
##
## Context:
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
## - XXX: Sometimes we are using `/index.php` and other times `index.php` as our replacement URI; this may be incorrect
##
RewriteRule ^ocm-provider/?$ index.php [QSA,L]
##
## Rule: Prevent access to more non-public files
##
## Context:
## - XXX It may make sense to merge some of these with the others (i.e. the ones that don't need to be last)
##
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 mod_setenvif.c>
SetEnvIfNoCase Transfer-Encoding "chunked" proxy-sendcl=1
</IfModule>
# Apache disabled the sending of the server-side content-length header
# in their 2.4.59 patch updated which breaks some use-cases in Nextcloud.
# Setting ap_trust_cgilike_cl allows to bring back the usual behaviour.
# See https://bz.apache.org/bugzilla/show_bug.cgi?id=68973
<IfModule mod_env.c>
SetEnv ap_trust_cgilike_cl
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
RewriteRule ^ocm-provider/?$ index.php [QSA,L]
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
AddDefaultCharset utf-8

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