Compare commits

..

1072 Commits

Author SHA1 Message Date
C Montero-Luque 119cd08c93 7.0.11 2015-10-30 12:47:18 -04:00
C Montero-Luque 912e346229 7.0.11 RC2 2015-10-28 10:39:53 -04:00
Thomas Müller 65ba58d2a4 Merge pull request #20062 from owncloud/stable7-add-warning-for-php7
[stable7] Stop processing if PHP 7 is used
2015-10-26 22:03:45 +01:00
Lukas Reschke 48a2e343e0 Stop processing if PHP 7 is used
PHP 7 is only compatible with ownCloud 8.2.0
2015-10-26 17:40:26 +01:00
C Montero-Luque df9b8cdd7f 7.0.11 RC1 2015-10-21 17:43:21 -04:00
Morris Jobke cdcb6c3dc7 Merge pull request #18858 from owncloud/memcached-fix-stable7
[stable7] Fallback to complete Memcached flush if getAllKeys fails
2015-10-09 13:18:54 +02:00
Thomas Müller 89b0a6796d Merge pull request #19626 from owncloud/stable7-backport-13771
[stable7] generate valid human readable text for 0 - fixed #9342
2015-10-08 17:23:02 +02:00
Thomas Müller 75d4dac8ed generate valid human readable text for 0 - fixed #9342 2015-10-07 15:51:30 +02:00
Morris Jobke 7b6602e0db Merge pull request #19448 from owncloud/stable7-backport-19441
[stable7][upgrade] switch to debug logging on upgrade
2015-10-02 12:39:26 +02:00
Thomas Müller fd8ddf6d27 Merge pull request #19493 from owncloud/stable7-fix-php5.3
PHP 5.3 compliance
2015-10-01 11:56:41 +02:00
Thomas Müller 754d4f68a7 Fix #19492 2015-10-01 10:51:44 +02:00
Morris Jobke f4c7b3051d [upgrade] switch to debug logging on upgrade
* resets afterwards
* adds output about the previous log level
2015-09-29 16:36:55 +02:00
Morris Jobke 9d270bcc46 Merge pull request #17954 from owncloud/backport-17464-stable7
fix uncaught exception on not permitted file types when setting avata…
2015-09-28 11:52:23 +02:00
Morris Jobke 0f2ea52861 Merge pull request #18705 from owncloud/stable7-dav-copy-fix
[stable7] Check for file existence before doing a DAV copy
2015-09-28 11:51:06 +02:00
C Montero-Luque 4b6474edf1 7.0.10 2015-09-10 10:23:53 -04:00
Morris Jobke a2658515b3 Merge pull request #18898 from owncloud/revert-18385-stable7-fix-repair-emit
Revert "[stable7] forward repair events to updater"
2015-09-08 14:28:37 +02:00
Lukas Reschke bc5368f9be Revert "[stable7] forward repair events to updater" 2015-09-08 14:20:32 +02:00
Morris Jobke cde3efb63c Merge pull request #18845 from owncloud/app-upgrade-routenotfound-stable7
[stable7] Always add to $loadedApps
2015-09-07 00:24:32 +02:00
Robin McCorkell 3bc4c92d76 Fallback to complete Memcached flush if getAllKeys fails
Newer Memcached's do not support the underlying protocol commands that
getAllKeys() is implemented with. We should fallback to clearing
everything in that case, as causing (temporary) performance problems for
other applications on the server is better than having stale cached data.
2015-09-06 20:42:23 +01:00
Robin McCorkell 0f4c90acbc Always add to $loadedApps 2015-09-05 11:45:33 +01:00
Thomas Müller 7438c463d4 Merge pull request #18793 from owncloud/LukasReschke-patch-1
[stable7] Use PHP 5.3 syntax
2015-09-03 09:13:57 +02:00
Lukas Reschke c50a378c3b [stable7] Use PHP 5.3 syntax 2015-09-03 08:49:23 +02:00
C Montero-Luque 30303822e3 7.0.9 2015-09-02 10:52:28 +02:00
Vincent Petry 5849a2de8c Check for file existence before doing a DAV copy
Partial backport of f39fcbc250 from 8.1
2015-08-31 15:18:14 +02:00
Morris Jobke 0f89d4f9ef Merge pull request #18602 from owncloud/stable7-backport-17083
[stable7] take share target into account when updating recipient etags
2015-08-29 12:48:54 +02:00
Vincent Petry f7e0370f32 Unit test for etag update on custom share folder 2015-08-27 14:50:26 +02:00
Robin Appelman 9c60922311 take share target into account when updating recipient etags 2015-08-27 14:50:18 +02:00
C Montero-Luque c67435189e 7.0.9 RC1 2015-08-27 11:35:00 +02:00
Morris Jobke 6bcffdc889 Merge pull request #18561 from owncloud/ext-objectstore-stable7
[stable7] Prevent objectstore being set from client side
2015-08-25 18:33:42 +02:00
Robin McCorkell b05e178bbf Prevent objectstore being set from client side 2015-08-25 16:29:12 +01:00
Thomas Müller 3b3ce91d46 Merge pull request #18385 from owncloud/stable7-fix-repair-emit
[stable7] forward repair events to updater
2015-08-19 09:31:19 +02:00
Morris Jobke 2ce22eeefb forward repair events to updater
* fixes #17313
* already in stable8+: 22bc37cb82 - #13513
2015-08-18 13:15:27 +02:00
Morris Jobke b1f8c5cfac Merge pull request #18180 from owncloud/backport-18159-stable7
Backport 18159 stable7
2015-08-16 14:40:41 +02:00
michag86 164865e813 Update installer.php 2015-08-10 18:43:28 +02:00
michag86 f0e62145d3 Check if archive contains a directory named like appid 2015-08-10 18:43:24 +02:00
Frank Karlitschek ebe5c05764 7.0.8 2015-08-07 20:18:58 -04:00
C Montero-Luque 1287036801 7.0.8 RC1 2015-08-03 08:55:49 -04:00
Arthur Schiwon d44a6563a7 fix uncaught exception on not permitted file types when setting avatar, fixes #17232 2015-07-29 13:15:53 +02:00
C Montero-Luque e8cc365310 7.0.8 beta 1 2015-07-22 22:28:57 -04:00
Morris Jobke 3feccc9562 Merge pull request #17765 from owncloud/backport-17723-stable7
Backport of #17723 to stable7
2015-07-21 00:05:22 +02:00
Morris Jobke 6dfb2afa29 Merge pull request #17368 from owncloud/fix_16740_7.0
[stable7] owner is stored as 'uid_owner', not as 'owner' in the oc_share table
2015-07-20 23:14:46 +02:00
Arthur Schiwon a1815cf275 Backport of #17723 to stable7
fix runtime caching in ldap's user manager, fixes #17631
2015-07-20 23:09:47 +02:00
Joas Schilling 5c4e6b1c3e Merge pull request #17406 from owncloud/stable7-backport-17095
[stable7] Proper error handling
2015-07-16 11:56:10 +02:00
Thomas Müller 374dd3cbcb Merge pull request #17630 from owncloud/stable7-rescanversionsonlyonce
[stable7] Only rescan versions once in trashbin
2015-07-14 14:04:26 +02:00
Vincent Petry 895285ab59 Only rescan versions once in trashbin
Whenever versions need to be rescanned, only do it once per PHP request.
Happens whenever multiple files need to be expired.
2015-07-14 06:39:06 +02:00
Morris Jobke f4aa78c75f Merge pull request #17416 from owncloud/issue-17260-NaN-when-creating-new-user-and-group
Return correct user count when the group has none
2015-07-09 22:47:47 +02:00
Joas Schilling 0dfc47c02d Return correct user count when the group has none 2015-07-06 13:32:11 +02:00
Morris Jobke fba6ac5050 [updater] mark failure in red 2015-07-06 10:58:22 +02:00
Morris Jobke 917002f3ec [updater] propagate error case properly
* add $success to the updateEnd hook
* add new return code for a update failure
* add exception class to failure hook message
2015-07-06 10:58:12 +02:00
Morris Jobke 8df392738c Added error message on initMountpoints exception 2015-07-06 10:53:25 +02:00
C Montero-Luque 4df15bf573 7.0.7 2015-07-03 06:17:54 -04:00
Bjoern Schiessle 5fadc7e3c6 owner is stored as 'uid_owner', not as 'owner' in the oc_share table 2015-07-03 10:43:16 +02:00
C. Montero Luque 84b1253def Merge pull request #17208 from owncloud/stable7-fix-16812
[Stable7] Oracle workaround for adding a column with not-null default value
2015-07-02 15:26:00 -04:00
Morris Jobke 065bcf4790 Merge pull request #17319 from owncloud/stable7-clean-ocsid
[stable7] Delete OCS ID from DB if none is specified
2015-07-02 14:39:43 +02:00
Morris Jobke d8f88aa413 Merge pull request #17314 from owncloud/stable7-remove-ocs-ids
[stable7] Remove OCS IDs
2015-07-02 14:39:35 +02:00
Lukas Reschke a1da45a172 Bump versions 2015-07-02 09:27:36 +02:00
Lukas Reschke 6170aa5cc3 Delete OCS ID from DB if none is specified
If no OCS ID is specified in appinfo.xml and an app update is triggered and a OCS ID is stored in the DB we should clean the value.

Ref https://github.com/owncloud/activity/issues/320#issuecomment-117937748
2015-07-02 09:26:37 +02:00
Lukas Reschke 552bcf1dcf [stable7] Remove OCS IDs
While making the AppStore ready for 8.1 I also deleted some dummy entries which means that these IDs do not resolve anymore. We should remove them to prevent errors such as https://github.com/owncloud/core/issues/17307

Ref https://github.com/owncloud/activity/issues/320#issuecomment-117691867
2015-07-02 08:54:57 +02:00
C Montero-Luque f29af9c23b 7.0.7RC1 2015-06-30 18:49:26 -04:00
Morris Jobke 4448c06f14 Merge pull request #17234 from owncloud/oc-version-to-app-store-stable7
Add oc version to app store requests in stable7
2015-06-29 16:35:24 +02:00
Joas Schilling f5f92447e5 Add oc version to app store requests in stable7 2015-06-29 16:01:57 +02:00
Victor Dubiniuk ed1565e18c Oracle-specific workaround for adding a column with not-null default value 2015-06-27 00:03:27 +03:00
Frank Karlitschek c1bed643a0 Merge pull request #17180 from owncloud/stable7-backport-17026
[stable7] [config.sample.php] set correct default value for skeletondirectory
2015-06-25 14:56:25 -04:00
Morris Jobke 3c02cbe5dd [config.sample.php] set correct default value for skeletondirectory 2015-06-25 17:08:55 +02:00
Morris Jobke e2a9c7a911 Merge pull request #17116 from owncloud/stable7-17115
[stable7] [sharing] handle shares of users that aren't available anymore
2015-06-24 17:38:47 +02:00
Morris Jobke 81ceb00632 [sharing] handle shares of users that aren't available anymore
* properly handle the case where an abandoned share is left and
  simply skip it
2015-06-23 18:18:26 +02:00
C Montero-Luque e5237a2cfe version 7.0.7 beta 2015-06-23 11:56:31 -04:00
Morris Jobke e2b486eab6 Merge pull request #17034 from owncloud/backport-16890-stable7
Backport of #16890 to stable7
2015-06-23 16:32:21 +02:00
Joas Schilling b1fc1b2e4c Merge pull request #17096 from owncloud/stable7-fix-deleted-users
[Stable7] fix deleted users during upgrade migration
2015-06-23 14:51:31 +02:00
Lukas Reschke 063b8ea31d Merge pull request #16581 from owncloud/stable7-cors-no-cookie-auth
Disallow cookie auth for cors requests stable7
2015-06-23 13:37:50 +02:00
Thomas Müller 6fdd1d094f Merge pull request #17020 from owncloud/stable7-proper-repair-step-info
Proper repair step info during upgrade on cli
2015-06-23 13:37:38 +02:00
Morris Jobke e6bf1ca7b3 skip users that are not available anymore during sharing upgrade 2015-06-23 11:34:30 +02:00
Morris Jobke 6ee4fe56db Merge pull request #17073 from owncloud/appframework-type-cast-stable7
[stable7] Allow multiple whitespace in type hints in AppFramework
2015-06-22 15:46:51 +02:00
Robin McCorkell 28ea652e19 AppFramework annotation whitespace unit test 2015-06-22 12:18:03 +01:00
Robin McCorkell 8592c0efb7 Allow multiple whitespace in type hints in AppFramework
Type hints such as `@param bool     $doSomething` will now correctly get
parsed, allowing for alignment of docblock parameters if the app developer so
wishes.
2015-06-22 12:18:02 +01:00
Thomas Müller 1e0febe467 Merge pull request #17021 from owncloud/stable7-verify-path
[stable7] Verify if path exists
2015-06-19 15:47:12 +02:00
Arthur Schiwon 0766a679b4 Backport of #16890 to stable7
the user is gone, userExists will not bring him back. But the user's folder needs to be deleted anyway

delete user test to take getHome into account to ensure it is also deleted subsequently

Conflicts:
	apps/user_ldap/tests/user_ldap.php
2015-06-18 22:14:59 +02:00
Lukas Reschke ff2de8439a Verify if path exists
We need to check if the path exists and throw an error instead of handling this situation ungraciously.
2015-06-18 17:28:09 +02:00
Morris Jobke d48ab2b051 Proper repair step info during upgrade on cli 2015-06-18 16:49:20 +02:00
Morris Jobke f2b7eb85c8 Merge pull request #16991 from owncloud/stable7-verify-if-path-exists
[stable7] Verify if path exists
2015-06-17 16:59:24 +02:00
Lukas Reschke 1fc8afef1e Throw nicer error message instead 500 2015-06-17 15:41:21 +02:00
Lukas Reschke f4bc29a1e7 Verify if path exists
We need to verify if the specified path exists to gracefully prevent errors.
2015-06-17 15:08:39 +02:00
Morris Jobke 448ee4e7a9 Merge pull request #16969 from owncloud/stable7-backport-15549
[Stable7] don't update identical values
2015-06-17 10:22:44 +02:00
Jens-Christian Fischer 07ef143fde clarify the duplication of the $params array 2015-06-16 16:30:24 +02:00
Jens-Christian Fischer 4eb90cf3dc don't update identical values
The UPDATE oc_filecache statement blindly overwrites identical data.
Databases like Postgres that create a new row on an update
and mark the old one as dead will suffer from the previous
behaviour, as millions of "new" rows are created in the database.

This patch changes the WHERE clause to test for identical
values and not updating if the values in the DB are identical
to the ones being passed.
2015-06-16 16:30:19 +02:00
Thomas Müller 99d03daf65 Merge pull request #16864 from owncloud/backport-concatenation-7
[stable7] Don't use command concatenation
2015-06-11 09:42:49 +02:00
Morris Jobke 532a919a0c Merge pull request #16863 from owncloud/stable7-backport-16840
[stable7] Disable video preview if previews are disabled
2015-06-10 15:53:18 +02:00
Lukas Reschke b0314907c0 Don't use command concatenation
Possibly fixes https://github.com/owncloud/core/issues/16853
2015-06-10 15:19:18 +02:00
Morris Jobke 7ca01a65dd Disable video preview if previews are disabled 2015-06-10 15:00:30 +02:00
Morris Jobke 429fb87386 Merge pull request #16759 from owncloud/backport-16748-stable7
Backport stable7: port detection needs to take care of now thrown exceptions when LDAP …
2015-06-10 09:14:17 +02:00
Morris Jobke e5ff9f0b6b Merge pull request #16682 from owncloud/stable7-check-for-arry
Check if array
2015-06-10 07:36:31 +02:00
Morris Jobke fe92dd7381 Merge pull request #16707 from owncloud/stable7-fix-ie8-ie9
[stable7] Add min-height to login page for IE8 and IE9
2015-06-10 07:35:47 +02:00
blizzz 02bffbe670 Merge pull request #16773 from owncloud/fix-16582
return name instead of false, as it is on oc8 and master, so groups a…
2015-06-09 23:52:25 +02:00
Arthur Schiwon fda8d66697 return name instead of false, as it is on oc8 and master, so groups are displayed in files_external 2015-06-05 22:06:50 +02:00
Arthur Schiwon ef16f4ba57 port detection needs to take care of now thrown exceptions when LDAP server is not available 2015-06-05 13:20:46 +02:00
Frank Karlitschek 59b3c2fde3 7.0.6 2015-06-03 20:41:01 -04:00
Morris Jobke c72de30ccb Add min-height to login page for IE8 and IE9 2015-06-03 10:48:15 +02:00
Lukas Reschke a88df5c6ec Check if array
The great library that we use apparently uses mixed types for everything because 🙈

Fixes https://github.com/owncloud/core/issues/16679
2015-06-02 12:39:01 +02:00
Frank Karlitschek 54642984b1 7.0.6RC2 2015-06-01 18:54:41 -04:00
Thomas Müller 1c19fd15e0 Merge pull request #16666 from owncloud/fix-code
Fix compatibility with 5.3 again
2015-06-01 17:50:07 +02:00
Lukas Reschke 9b05d22b0c Fix compatibility with 5.4 again
Fixes https://github.com/owncloud/core/issues/16665
2015-06-01 17:24:58 +02:00
Lukas Reschke 200e9d9497 Disallow semicolons in passed commands 2015-06-01 17:06:21 +02:00
Lukas Reschke 5fa749cd96 Ensure that passed argument is always a string
Some code paths called the `normalizePath` functionality with types other than a string which resulted in unexpected behaviour.

Thus the function is now manually casting the type to a string and I corrected the usage in list.php as well.
2015-06-01 17:06:16 +02:00
Lukas Reschke a15710afad Clean application identifier before processing 2015-06-01 17:06:10 +02:00
Lukas Reschke 7071cf15c2 Revert custom patch that can cause problems 2015-06-01 17:06:05 +02:00
Morris Jobke 97dbd04e0a Merge pull request #16635 from owncloud/stable7-fix-themes-readme
[stable7] Fix themes README
2015-05-30 13:05:51 +02:00
Morris Jobke ba93c3d18b Fix themes README
Fixes #16617
2015-05-30 12:12:02 +02:00
Frank Karlitschek 927cae7efc 7.0.6 RC1 2015-05-29 13:58:39 -04:00
Vincent Petry b04d510053 Merge pull request #16608 from owncloud/fix_14588
[stable7] make sure to get the right list of users with access to the file when deleting a shared file
2015-05-28 16:53:55 +02:00
Bjoern Schiessle b4741cfa96 make sure to get the right list of users with access to the file, including the owner 2015-05-28 16:13:05 +02:00
Bernhard Posselt 6b4f1706b9 backport #16532 to stable7 2015-05-27 14:32:37 +02:00
Thomas Müller 55a122a9fe Merge pull request #13742 from owncloud/fix-12190-2-stable7
[backport #13740] backport #13740 to stable7
2015-05-26 16:06:21 +02:00
Morris Jobke 5014d2c60c Merge pull request #15402 from owncloud/response-setContentLengthHeader-stable7
[stable7] Add OC_Response::setContentLengthHeader() for Apache PHP SAPI workaround.
2015-05-20 10:15:58 +02:00
Morris Jobke 8a39256092 Merge pull request #15077 from owncloud/fix-smb-oc-admin-stable7
[stable7] Support constructing an SMB_OC without saved session credentials
2015-05-20 10:03:18 +02:00
Arthur Schiwon ae850d76ea add primary group users to resultset before caching 2015-05-14 01:09:57 +02:00
Morris Jobke 765526ec4c Merge pull request #15271 from owncloud/stable7-fix-ext-owncloud
[stable7] Fix bugs in ownCloud external storage
2015-05-13 09:40:20 +02:00
Thomas Müller 87052be76f Merge pull request #16291 from RealRancor/asset_pipe_note
Add note for asset pipeline and third-party apps on stable7
2015-05-13 00:52:20 +02:00
RealRancor 02ef384064 Add note for asset pipeline and third-party apps on stable7 2015-05-12 18:59:57 +02:00
Morris Jobke cf05d50654 Merge pull request #15863 from owncloud/public-reshare-webdav-stable7
[stable7] Fix webdav access for public reshare
2015-05-08 13:56:07 +02:00
Lukas Reschke f5a597b259 Merge pull request #16114 from owncloud/stable7-backport-15510-and-15465
[stable7] block cron.php and OCS API when in single user mode or maintenance mode
2015-05-08 12:13:24 +02:00
Thomas Müller 2c656b0e4c Fix singe user mode on public.php - take two 2015-05-06 12:14:34 +02:00
Thomas Müller 9c44e7bfb8 Fix single user check in case no user is logged in 2015-05-06 12:12:40 +02:00
Robin Appelman 0418b330d5 block ocs in single user mode 2015-05-06 12:10:02 +02:00
Robin Appelman 780530ec83 block webdav in single user mode 2015-05-06 12:08:58 +02:00
Robin Appelman 67c862c286 block cron when in single user mode 2015-05-06 11:51:14 +02:00
Joas Schilling 88006222a9 Disable OCS api when in maintenance mode 2015-05-06 11:50:08 +02:00
Lukas Reschke d01bfe3587 Merge pull request #15833 from owncloud/backport-files-external-fixes
Backport files external fixes
2015-05-05 12:22:35 +02:00
Robin Appelman 38644cffd4 fix subfolder reshares over webdav 2015-04-24 14:19:52 +02:00
Robin Appelman 2c10e31c8f resolve reshares in public webdav 2015-04-24 14:19:52 +02:00
Jörn Friedrich Dreyer e37f9c8351 use displayname lookup route in files_external settings 2015-04-23 14:23:17 +02:00
Jörn Friedrich Dreyer 79187fcb10 add lookup route for displaynames 2015-04-23 14:23:03 +02:00
Morris Jobke e72cd711ad Merge pull request #15332 from owncloud/dont_hide_exceptions
do not hide exception when ldap server has a hiccup
2015-04-22 22:48:29 +02:00
Arthur Schiwon 598f798c04 throw exception when LDAP Connection was lost 2015-04-22 15:22:11 +02:00
Jörn Friedrich Dreyer 919241cdda fix filesystem and encryption tests 2015-04-22 11:34:17 +02:00
Jörn Friedrich Dreyer f7db588e62 throw exception when backends don't provide a user instead of creating legacy local storages 2015-04-22 11:34:17 +02:00
Morris Jobke a2cc658f37 throw exception if setup is incomplete 2015-04-22 11:34:14 +02:00
Morris Jobke f830150acc more robust share dialog 2015-04-22 11:33:05 +02:00
Jörn Friedrich Dreyer 77a601c3fe fix_tests 2015-04-22 11:33:05 +02:00
Jörn Friedrich Dreyer 24037218dd do not disclose information, show generic error on login page 2015-04-22 11:33:05 +02:00
Jörn Friedrich Dreyer caae0e6f47 do not hide exception when ldap server has a hiccup 2015-04-22 11:32:58 +02:00
Arthur Schiwon 07988cf77c Fixes returns of group memberships and counting if all members have the specific groups as primary set. 2015-04-14 14:56:36 +02:00
Arthur Schiwon f3bd266787 Backport of #13740
inlcude AD primary group in user filter, if a group is selected. fixes #12190

fix counting of users in primary group

💄

adept to OC 7

and escape the search term

Conflicts:
	apps/user_ldap/lib/connection.php
2015-04-14 14:56:01 +02:00
Morris Jobke 03c9657607 Merge pull request #15559 from owncloud/backport-15541-stable7
[stable7] Add "Reply-To" support for sharing notifications
2015-04-13 08:50:22 +02:00
Lukas Reschke e6c2382a19 Add "Reply-To" support for sharing notifications
Very hacky backport of https://github.com/owncloud/core/pull/15541 - I changed the code path to use OC_Mail instead the OCP pendant since I didn't want to modify the public API. (OCP\Util::sendMail() is anyways deprecated with 8.1)
2015-04-12 23:03:32 +02:00
Morris Jobke 43b2f3c2dc Merge pull request #15435 from owncloud/dont_return_empty_groups
don't return null for not existing group id's
2015-04-10 14:23:38 +02:00
Jörn Friedrich Dreyer 1ae73f0e99 don't return null for not existing group id's 2015-04-07 13:47:10 +02:00
Andreas Fischer 3f23ae4a16 Add OC_Response::setContentLengthHeader() for Apache PHP SAPI workaround.
Do not send Content-Length headers with a value larger than PHP_INT_MAX
(2147483647) on Apache PHP SAPI 32-bit. PHP will eat them and send 2147483647
instead.

When X-Sendfile is enabled, Apache will send a correct Content-Length header,
even for files larger than 2147483647 bytes. When X-Sendfile is not enabled,
ownCloud will not send a Content-Length header. This prevents progress bars
from working, but allows the actual transfer to work properly.
2015-04-04 11:53:32 +02:00
Thomas Müller a4c0f259a5 Merge pull request #15370 from owncloud/stable7-backport-15353
Cron has to be executed with the correct user - fixes 13912 and others
2015-04-02 09:22:01 +02:00
Thomas Müller 6ebe04f8d4 Cron has to be executed with the correct user - fixes 13912 and others 2015-04-01 18:30:20 +02:00
Robin McCorkell 1c5a86a115 Fix bugs in ownCloud external storage 2015-03-27 12:31:20 +00:00
Morris Jobke 57d6c49a62 Merge pull request #15251 from owncloud/use_default_share_folder_oc7
always fall back to default share folder
2015-03-27 09:56:46 +01:00
Lukas Reschke 423311c7e8 Merge pull request #14498 from owncloud/kill-substr-mssql-stable7
[stable7] Remove hacky Substring support for MSSQL
2015-03-26 23:00:33 +01:00
Bjoern Schiessle 0cdeeec82b always fall back to default share folder 2015-03-26 22:46:43 +01:00
Morris Jobke 32bd2d15e3 Merge pull request #15072 from owncloud/fix_group_share
also call generateTarget for group shares
2015-03-26 22:24:42 +01:00
Morris Jobke ef1ddfc5db Merge pull request #14861 from owncloud/stable7-fix-sizepropagationwithshare
[stable7] Fix size propagation over shared storage boundary
2015-03-26 20:14:00 +01:00
Thomas Müller 529d45c5b2 Merge pull request #15161 from owncloud/stable7-fixcronconfig
[stable7] Fix config API usage in cron.php
2015-03-24 20:22:30 +01:00
Morris Jobke 0c72c99f04 Merge pull request #14889 from owncloud/backport-14849-stable7
[stable7] support paged results against 389ds.
2015-03-24 20:11:34 +01:00
Vincent Petry 2bb6a920e3 Fix config API usage in cron.php 2015-03-24 18:19:43 +01:00
Morris Jobke 1325649b4b Merge pull request #15141 from owncloud/backport-15123-stable7
[backport] [stable7] offset needs to be considered in computed limit
2015-03-24 11:12:16 +01:00
Arthur Schiwon bf7e2c756f offset needs to be considered in computed limit 2015-03-24 10:22:49 +01:00
Robin McCorkell 467da3c519 Support constructing an SMB_OC without saved session credentials
Conflicts:
	apps/files_external/lib/smb_oc.php
2015-03-20 16:07:19 +00:00
Bjoern Schiessle df2f85ee01 also call generateTarget for group share to add the correct prefix if share_folder is defined in config.php 2015-03-20 15:51:25 +01:00
Thomas Müller 9e52b174b1 Merge pull request #14902 from owncloud/tempmanager-fix-backport
Check directory handle before we use it
2015-03-16 09:44:52 +01:00
Robin McCorkell 03ca380815 Check directory handle before we use it 2015-03-15 18:28:01 +00:00
Arthur Schiwon db763760f1 support paged results against 389ds. 2015-03-13 23:03:47 +01:00
Robin Appelman 0ca1500330 also clear statcache in mapped local 2015-03-13 11:53:50 +01:00
Robin Appelman 92cbeefa34 Clear statcache before getting the mtime from local storage backends 2015-03-13 11:53:21 +01:00
Vincent Petry b62d20f2ee Uglify unit test to make them work on stable7 2015-03-13 11:36:31 +01:00
Vincent Petry 4f9c750a0a Add unit test for size propagation across share boundaries 2015-03-13 11:09:41 +01:00
Vincent Petry a529b2bf86 Fix size propagation over shared storage boundary 2015-03-13 11:09:36 +01:00
Thomas Müller 27ec925132 Merge pull request #14846 from owncloud/fix-14843-stable7
cron shall not operate in case we are in maintenance mode - fixes #14843
2015-03-13 09:25:18 +01:00
Thomas Müller c716776a90 cron shall not operate in case we are in maintenance mode - fixes #14843 2015-03-12 21:08:00 +01:00
Morris Jobke b588692ef4 Merge pull request #14637 from owncloud/backport-13341
[Stable7] Read version and product name from update template
2015-03-11 20:16:01 +01:00
Morris Jobke 5544509283 Merge pull request #14182 from RealRancor/update_office_preview
[stable7] Fix libre/openoffice preview on multi-user instances
2015-03-11 17:55:00 +01:00
Morris Jobke 39492eb020 Merge pull request #14707 from owncloud/ldap-reset-paged-search-on-null-limit-stable7
LDAP: reset paged search on null limit [stable7]
2015-03-09 08:15:18 +01:00
Arthur Schiwon 24eb2bcab5 set up paged search when limit is 0 2015-03-05 13:22:52 +01:00
Frank Karlitschek 8b83580af7 bump release 2015-03-02 22:45:17 +01:00
Frank Karlitschek 02757ad08e Merge pull request #14688 from owncloud/stable7-trashbin-selected-delete
[stable7] Fix deleting selected files in the trashbin
2015-03-04 08:54:56 -05:00
Robin Appelman 3bf505b566 Fix deleting selected files in the trashbin 2015-03-04 12:48:52 +01:00
Morris Jobke 1dea188fea Merge pull request #14642 from owncloud/issue/13751-only-variables-passed-by-reference
[Stable7] Fix "Only variables should be passed by reference" in stable7 template
2015-03-02 16:10:49 +01:00
Joas Schilling 86e4177914 Fix "Only variables should be passed by reference" in stable7 template 2015-03-02 14:31:38 +01:00
Vincent Petry ec71e0b4e6 Read version and product name from update template
During upgrade, the config settings aren't always available due to
base.php changes. This fix makes the update info page read the product
name and version from the update template, which already had them.
2015-03-02 11:39:23 +01:00
Lukas Reschke 51017e43a0 Remove hacky Substring support for MSSQL
Substring() is not required for the core functionality and this allows us to get rid of a huge hack...
2015-02-25 14:08:44 +01:00
Thomas Müller eb778eb2b0 Merge pull request #14425 from owncloud/backport-12313
[stable7] The class name is Movie NOT Movies
2015-02-23 15:12:57 +01:00
Olivier Paroz 45ad072c62 The class name is Movie NOT Movies
Conflicts:
	config/config.sample.php
	lib/private/preview.php
2015-02-23 11:02:46 +01:00
Frank Karlitschek 3ac33c865b 7.0.5 2015-02-16 04:56:33 +01:00
Lukas Reschke 431638742c Merge pull request #14040 from owncloud/stable7-app-upgrade-order
[Stable7] app upgrade order fix
2015-02-17 14:48:09 +01:00
Thomas Müller 7b432cbbf7 Merge pull request #12327 from owncloud/stable7l10nbport
backport some strings to stable7
2015-02-17 14:08:45 +01:00
Thomas Müller 01cede4511 Merge pull request #14254 from owncloud/console-execution-time-stable7
[backport-14243-stable7] console commands shall not be limited with respect to execution time
2015-02-16 19:44:07 +01:00
Thomas Müller 73954c44c6 console commands shall not be limited with respect to execution time - fixes #14156 2015-02-16 16:22:16 +01:00
Lukas Reschke e345ae7b53 Merge pull request #13988 from owncloud/group-share-collition-wrong-type-in-post-hook-stable7
[stable7] Do not overwrite the shareType so the post hook is still correct
2015-02-16 14:41:52 +01:00
RealRancor 9fd53ef84f Removed anchor in config.sample.php 2015-02-13 15:28:35 +01:00
RealRancor 6a46ede8b7 Fix libre/openoffice preview on multi-user instances 2015-02-12 23:20:54 +01:00
Jörn Friedrich Dreyer 3e5a1ad76b Merge pull request #14147 from owncloud/no-whitespace-from-themes-stable7
catch any whitespaces which might get written to the output buffer while...
2015-02-12 17:07:34 +01:00
Thomas Müller a45c606b96 catch any whitespaces which might get written to the output buffer while loading a theme 2015-02-12 11:28:59 +01:00
Thomas Müller fcad7252bd Merge pull request #14078 from owncloud/stable7-preview-hint
Add hint for troubleshooting MS Word previews
2015-02-11 21:17:59 +01:00
RealRancor c11edb9138 Add hint for troubleshooting MS Word previews 2015-02-11 01:14:58 +01:00
Vincent Petry 61852536fe Fix "other" app update stack 2015-02-10 11:58:25 +01:00
Arthur Schiwon d9d7774cc1 on ownCloud upgrade: upgrade all apps in order, load important ones 2015-02-10 11:58:23 +01:00
Joas Schilling 63e5282c41 Add a test for the post_shared hook shareType
Conflicts:
	tests/lib/share/share.php
2015-02-09 16:27:44 +01:00
Joas Schilling 0c3204c7a6 Do not overwrite the shareType so the post hook is still correct
Conflicts:
	lib/private/share/share.php
2015-02-09 16:26:29 +01:00
RealRancor c2a72ce6b0 external user app: Add note to enable it first 2015-02-07 20:12:15 +01:00
Lukas Reschke cbf8dd439c Normalize before processing 2015-02-06 15:09:31 +01:00
Frank Karlitschek c658ec658a 7.0.5 RC1 2015-02-06 02:46:00 +01:00
Morris Jobke 9db5323a92 Merge pull request #13927 from owncloud/fix_ghost_directories
fix creation of ghost directories
2015-02-06 00:07:43 +01:00
Bjoern Schiessle c58501ee87 for password protected link shares the password is stored in shareWith, so we need to set this manually to null for the hooks 2015-02-05 17:11:27 +01:00
Thomas Müller 3e9d8cce10 Merge pull request #13759 from owncloud/fix-12035
fix LDAP update routine to OC 7
2015-02-05 17:05:32 +01:00
Morris Jobke 6897be7a93 Merge pull request #13888 from owncloud/upload_to_root_of_mountpoint_stable7
detect root of mountpoint also if the trailing slash is missed
2015-02-04 16:21:34 +01:00
Björn Schießle f0b0e462ea Merge pull request #13796 from owncloud/issue/13490-stable7-backport
[stable7] use uid provided by setupfs hook to mount server2server shares
2015-02-04 14:59:44 +01:00
Bjoern Schiessle 2b83afdd7e detect root of mountpoint also if the trailing slash is missed 2015-02-04 14:53:17 +01:00
Morris Jobke a81b4c54d8 Merge pull request #13880 from owncloud/backport-10398-stable7
[backport #10398] Give a better error message for external shares with self-signed ssl cer...
2015-02-04 14:09:25 +01:00
Robin Appelman 7975b74816 Give a better error message for external shares with self-signed ssl certificates 2015-02-04 12:19:08 +01:00
Thomas Müller 361b70e4d7 Merge pull request #13803 from owncloud/revert-close-cursor-stable7
Revert "Close cursor early in calculateFolderSize" for now
2015-01-30 23:23:44 +01:00
Morris Jobke 8305ae6b09 Merge pull request #13798 from owncloud/update-sabre-dav-stable7
Update sabre dav to 1.8.12 on stable7
2015-01-30 16:10:34 +01:00
Joas Schilling 91fc933432 Revert "Close cursor early in calculateFolderSize"
This reverts commit 234f33e01e.
2015-01-30 15:35:54 +01:00
Joas Schilling ed60bdeac9 Update sabre dav to 1.8.12 on stable7 2015-01-30 14:43:41 +01:00
Joas Schilling bd14af5806 use uid provided by setupfs hook to mount server2server shares
otherwise mount will fail for public link shares

backport of 66f0db30b2
2015-01-30 12:57:03 +01:00
Vincent Petry 234f33e01e Close cursor early in calculateFolderSize
This method triggers additional queries in $this->update() so to avoid
potential database locks or delays, we close the cursor as soon as it is not needed any more
2015-01-29 14:53:44 +01:00
Arthur Schiwon 441f807bce fix update routine 2015-01-29 12:51:12 +01:00
Morris Jobke 80560e70b7 Merge pull request #13470 from owncloud/stable7-share-fixfindshareforuserwithmultiplegroups
[stable7] Fix getItemSharedWithUser for groups
2015-01-23 12:59:39 +01:00
Georg Ehrke 56c51d481c add config-option for an image's maximum filesize when generating previews 2015-01-22 23:23:36 +01:00
Georg Ehrke 2d2e024cfa remove insane debug-log from OC_Image 2015-01-22 23:21:40 +01:00
Morris Jobke 491c714f54 Fix undefined offset 1 for wrong user mail address
* fixes Undefined offset: 1 at lib/private/mail.php#143
2015-01-22 17:26:13 +01:00
Robin Appelman 8459b9f6fb Add unit test 2015-01-22 16:18:36 +01:00
Robin Appelman 153ff1b766 Remove duplicated slashes from the requested url 2015-01-22 16:18:32 +01:00
Morris Jobke 11efe732f9 Merge pull request #13555 from owncloud/issue/13482-stable7
Stable7 Backport Set the debugoutput channel to error_log instead of echoing it
2015-01-21 16:31:04 +01:00
Joas Schilling f03a1868ab Set the debugoutput channel to error_log instead of echoing it 2015-01-21 15:34:58 +01:00
Arthur Schiwon 1c000b799b this must be larger then (>), since buggy behaviour occurs when the parameter is a small number 2015-01-21 14:38:47 +01:00
Vincent Petry 18d46dfdeb Fix getItemSharedWithUser for groups
Fixed SQL query for whenever a user has more than one group.
Added missing $owner where clause for group lookup.
Added unit tests for the group cases.

Backport of 40931a8b0d from master
2015-01-20 22:07:21 +01:00
Thomas Müller 9d761fcaee Merge pull request #13422 from owncloud/user-mgnt-init-fix
Increase initial user count to 50
2015-01-19 15:08:16 +01:00
Carla Schroder 5f70ed188b Note in config.sample.php that certain previews are not available in ms windows 2015-01-17 09:27:27 +01:00
Morris Jobke 616fd4b54a Increase initial user count to 50
* fix initial user count if you have a big screen (or a portrait screen)
2015-01-16 18:04:29 +01:00
Thomas Müller 6d87922cea Merge pull request #13384 from owncloud/stable7-fix-13317-backport
Fix backport of #13317
2015-01-15 17:27:09 +01:00
Robin Appelman 0753514e5b Fix test 2015-01-15 14:24:54 +01:00
Robin Appelman 7ef006e1c9 php <5.4 style array 2015-01-15 14:02:36 +01:00
Robin Appelman 5a58d142e5 Proper constant for stable7 2015-01-15 14:02:11 +01:00
Robin Appelman db51d9aacb Add View::getMount() for stable7 2015-01-15 14:01:52 +01:00
Vincent Petry d534f262aa Use source storage permissions when scanning shared storage 2015-01-15 11:15:39 +01:00
Robin Appelman 0f04bfc319 Return valid fileinfo objects for part files 2015-01-15 00:22:38 +01:00
Morris Jobke 4d42485bf5 drop useless "!!! No reuse of etag" - fixes #13187
Backport of 9b49b52fc6 from master
2015-01-13 13:47:09 +01:00
Arthur Schiwon 713f2b3a52 fix retrieval of user groups
Conflicts:
	apps/user_ldap/lib/connection.php
2015-01-13 10:19:50 +01:00
Morris Jobke 0d39a63b05 Merge pull request #13186 from owncloud/no-session-for-formfactor-stable7
no need to store the form factor in the session - it's computation is ra...
2015-01-09 18:19:26 +01:00
Jan-Christoph Borchardt bd1bf9e9ac replace outdated 'shared' people icon with regular share icon as fallback 2015-01-09 17:58:45 +01:00
Thomas Müller 6552fec113 no need to store the form factor in the session - it's computation is rather cheep
Conflicts:
	lib/private/template.php
2015-01-09 10:19:28 +01:00
Morris Jobke d5190b5481 Merge pull request #12735 from owncloud/temp-handling-stable7
[stable7] Cleanup handling of temporary files
2015-01-08 18:35:00 +01:00
Robin Appelman 06bc987bd9 Use the TempManager to handle temporary files
Conflicts:
	lib/private/helper.php
2015-01-08 16:22:14 +01:00
Robin Appelman 344606b2c8 Add \OC\TempManager to handle creating and cleaning temporary files
Conflicts:
	lib/private/server.php
	lib/public/iservercontainer.php
2015-01-08 16:22:14 +01:00
Vincent Petry a5574e885c Fix source path when share is a mount point
Whenever an external storage mount point is shared directly, its path is
empty which causes a leading slash to appear in the source path.

This fix removes the bogus leading slash in such situation.

Backport of 01c83158bb from master
2015-01-08 16:07:44 +01:00
Robin Appelman bf1f9df590 Prevent leaking db connection info in the stacktrace 2015-01-07 09:48:25 +01:00
Morris Jobke 2fd2b182e7 Check for version before mounting a public link
* ownCloud 7.0.0 is needed - version of merge of server <-> server
  sharing - https://github.com/owncloud/core/pull/8399
* adjust error message
2015-01-05 13:23:53 +01:00
Byron Marohn 8778af681c Added error check to lib/private/image.php
This checks that imagecreatetruecolor actually creates an image, rather than returning FALSE.
Without this check, subsequent loop might create billions of ERROR-level log messages.

Signed-off-by: Byron Marohn <combustible@live.com>
2015-01-02 08:48:59 +01:00
blizzz fb63e75743 Merge pull request #12643 from owncloud/ldap-user-cleanup-stable7
LDAP User Cleanup - stable7
2014-12-19 19:04:50 +01:00
Morris Jobke 4c0af1b2a2 Merge pull request #12332 from owncloud/langbport2
more strings to backport
2014-12-19 14:14:03 +01:00
Morris Jobke 9c38baac9e show spinner on file upload in IE8, 9 2014-12-19 02:04:35 +01:00
Arthur Schiwon dd18f963d4 and don't forget to adjust tests 2014-12-18 12:22:34 +01:00
Arthur Schiwon 5d46dfd2b4 PHPdoc fixes, no code change 2014-12-17 16:08:01 +01:00
Arthur Schiwon 1d54735d5d forgotten file 2014-12-17 13:52:09 +01:00
Arthur Schiwon cb5f9d2164 add ldap:check-user to check user existance on the fly 2014-12-17 13:37:53 +01:00
Jan-Christoph Borchardt a26ddb33a2 Merge pull request #12798 from cyberb/stable7
fixes #12434 (stable7)
2014-12-16 14:35:11 +01:00
Arthur Schiwon dd8ba68e07 LDAP User Cleanup
background job for user clean up

adjust user backend for clean up

register background job

remove dead code

dependency injection

make Helper non-static for proper testing

check whether it is OK to run clean up job. Do not forget to pass arguments.

use correct method to get the config from server

methods can be private, proper indirect testing is given

no automatic user deletion

make limit readable for test purposes

make method less complex

add first tests

let preferences accept limit and offset for getUsersForValue

DI via constructor does not work for background jobs

after detecting, now we have retrieving deleted users and their details

we need this method to be public for now

finalize export method, add missing getter

clean up namespaces and get rid of unnecessary files

helper is not static anymore

cleanup according to scrutinizer

add cli tool to show deleted users

uses are necessary after recent namespace change

also remove user from mappings table on deletion

add occ command to delete users

fix use statement

improve output

big fixes / improvements

PHP doc

return true in userExists early for cleaning up deleted users

bump version

control state and interval with one config.php setting, now ldapUserCleanupInterval. 0 will disable it. enabled by default.

improve doc

rename cli method to be consistent with  others

introduce ldapUserCleanupInterval in sample config

don't show last login as unix epoche start when no  login happend

less log output

consistent namespace for OfflineUser

rename GarbageCollector to DeletedUsersIndex and move it to user subdir

fix unit tests

add tests for deleteUser

more test adjustements
2014-12-15 12:56:16 +01:00
Morris Jobke bfe4ee6e47 Merge pull request #12825 from d1saster/stable7-fixpcre
make regex in controllermethodreflector.php compatible with PCRE 6.x
2014-12-14 10:51:56 +01:00
Morris Jobke a429fa74d9 Merge pull request #12655 from owncloud/fix-appstore-link
fix broken link on app management page for apps without ocsid
2014-12-13 11:54:30 +01:00
Morris Jobke f0a0e44d2e fix broken link on app management page for apps without ocsid - fix #9574, fix #10461 2014-12-13 08:39:38 +01:00
Philipp Knechtges 533e8e14b6 make regex in controllermethodreflector.php compatible with PCRE 6.x
The syntax ?<...> seems to be only supported from PCRE 7.0 on. For
backwards-compability ?P<...> is used.
2014-12-13 02:16:37 +01:00
Vincent Petry 60099b91c4 Merge pull request #12624 from nazar-pc/stable7
Backport of #11524 into stable7
2014-12-12 11:34:40 +01:00
Georg Ehrke 5fd1d54607 remove ugly hack and don't use OC\Preview\Image for tiffs and svgs 2014-12-12 08:30:17 +01:00
Vincent Petry 0eb3496ab6 Return real mime type on PROPFIND
Return the real (insecure) mime type on PROPFIND
2014-12-12 08:29:44 +01:00
Robin Appelman bd06b4cf42 Ensure user mountpoints are setup when using getUserFolder 2014-12-12 08:29:15 +01:00
Vincent Petry 72c0cc2267 Do not remove dir entry if it has the same name as the parent
This fixes an issue when a subdir has the same name as its parent, it
would get exluded from the list.
2014-12-11 23:57:17 +01:00
Boris Rybalkin 43b6676d0e fixes #12434 2014-12-11 18:44:50 +00:00
Morris Jobke 36e7d3b7da Merge pull request #12663 from zinks-/l10n-fr-backport
Patched french translation (backported from master)
2014-12-10 08:59:11 +01:00
Morris Jobke 7a60651037 Merge pull request #12656 from owncloud/stable7-fix-12164
Wipe cache if there is no response from feed
2014-12-10 08:26:02 +01:00
Robin Appelman 50705cfaf8 Add js unit test 2014-12-10 08:24:35 +01:00
Robin Appelman 3720ba9318 Dont show the delete button for selected files if one of the selected files is not deletable 2014-12-10 08:24:31 +01:00
Robin Appelman a05fc9dc73 Check if files are deletable before trying to delete them 2014-12-10 08:24:27 +01:00
Morris Jobke cf0a12f999 fix placeholder fake in IE8 & 9 that brokes group listing in user management - fixes #12525 2014-12-10 08:23:26 +01:00
Volkan Gezer 5fcc3401e2 translated saved message in files external 2014-12-10 08:23:03 +01:00
Victor Dubiniuk 60b2dd6ab4 Skip headers that can not be split 2014-12-10 08:22:06 +01:00
Morris Jobke ed96f8c628 remove duplicate loaded personal.js - fixes #12674 2014-12-10 08:21:40 +01:00
Frank Karlitschek 77bcc5b2f3 7.0.4 2014-12-08 19:27:21 +01:00
Arthur Schiwon 1b1951a64f add doc 2014-12-08 19:18:28 +01:00
Arthur Schiwon a33dcd359a preserve an asterisk at the start when escaping a search term 2014-12-08 19:18:24 +01:00
Lukas Reschke 55ebf024a7 Create config if it does not exists
The codepath that is executed when executing ownCloud via CLI is different than via browser. Specifically, the config is created by the user session already in `OC_Util::getInstanceId()` by a call to `setValue`. That said, this seems to be quite a bad side-effect, but for the sake of "not breaking whatever might break if we touch this" let's keep it that way for now.

When executing the autoconfig via `php -f index.php` the said session was not setup and thus no `config/config.php` file was created resulting in an installation error.

To reproduce this try to setup ownCloud via `php -f index.php` with and without that patch. (ensure to delete all existing configs before and don't access ownCloud with a browser in the meantime)

Fixes itself.
2014-12-07 22:34:55 +01:00
Victor Dubiniuk 21f467dd36 Wipe cache if there is no response from feed 2014-12-06 15:19:34 +03:00
Thomas Imbreckx 26e504e096 Patched french translation (backported from master) 2014-12-05 19:14:08 +01:00
Lukas Reschke 5d56eba398 Add test for IPv6 without port 2014-12-05 11:29:04 +01:00
Lukas Reschke 0b80c5e18e Add workaround for older instances
To be removed with oCAdd workaround for older instances

To be removed with oC99
2014-12-05 11:29:00 +01:00
Lukas Reschke be26cccd8a Trim port from domain
Depending on the used environment the port might be appended to the host header resulting in an inaccessible instance when initially setting up on a system with a different HTTP or HTTPS port. (for example test:500)

To test this setup ownCloud under a different port with and without this patch. (heads-up: localhost is always white-listed, so use a different domain)
2014-12-05 11:28:56 +01:00
Frank Karlitschek 71bd33da98 7.0.4 RC2 2014-12-05 04:24:13 +01:00
Björn Schießle 3c673717b0 Merge pull request #12623 from owncloud/fix-s2s-oc7
password column needs to allow null (oc7 backport)
2014-12-04 22:24:57 +01:00
blizzz 01a176f2a3 Merge pull request #12309 from owncloud/ldap-cache-user-count
LDAP: cache total  user count
2014-12-04 19:08:20 +01:00
blizzz af1c47d1e8 Merge pull request #12493 from owncloud/ldap_search_perf
LDAP search behaviour modifications
2014-12-04 18:58:18 +01:00
Vincent Petry 913ad8634f Merge pull request #11524 from nazar-pc/patch-1
Page size calculation based on real page height
2014-12-04 17:07:41 +01:00
Bjoern Schiessle 79711c32b7 password column needs to allow null otherwise Oracle will break for empty passwords 2014-12-04 16:18:16 +01:00
Arthur Schiwon ddd832c2dc trim search string before passing it on 2014-12-04 15:29:16 +01:00
Thomas Müller d30059d76c Merge pull request #12528 from owncloud/backport-12419
Allow read-only configuration
2014-12-03 17:48:25 +01:00
Morris Jobke 5fe7781452 add proper description what database is supported by CE and EE 2014-12-03 13:14:58 +01:00
Frank Karlitschek 8fc4f67f14 7.0.4 RC1 2014-12-01 21:42:19 +01:00
Lukas Reschke f5d9513957 Allow read-only configuration
Workaround required for IIS setups running ownCloud to prevent dataloss.

Long-term solution would be to move some configuration settings to the database

Conflicts:
	lib/base.php
	settings/admin.php
2014-12-01 17:26:21 +01:00
Vincent Petry 3917383cef Merge pull request #11747 from owncloud/storeCredentialsOnlyInSessionIfRequired
Store credentials only in session if required
2014-12-01 11:07:57 +01:00
Thomas Müller 46a4af1dc2 Merge pull request #12496 from owncloud/check-xml-writer-for-7
Check for XMLWriter class
2014-12-01 10:53:50 +01:00
Lukas Reschke 2954169512 Adjust sample config 2014-11-28 19:20:11 +01:00
Lukas Reschke b122b285c9 Disable MSSQL for new CE installations
Since automatic schema migrations are not yet possible let's disable this for now.

Conflicts:
	lib/private/setup.php
2014-11-28 19:19:48 +01:00
Lukas Reschke 85b7ee349b Check for XMLWriter class
Backport of https://github.com/owncloud/core/pull/12321
2014-11-28 15:43:08 +01:00
Arthur Schiwon 7484c2f0d8 LDAP search filter creation changes:
1. do not prepend * wildcard to search terms. Will result in faster search, but
you don't find "foobar"  when looking for "bar"
2. advanced behaviour when search string contains a space and multiple search
attributes are present. The search string is split into single words. The
resulting filter requires that each word at least appears once in any search
attribute. This is supposed to return better results in big LDAPs.
2014-11-28 13:31:57 +01:00
Arthur Schiwon 2944f952dc add ldap-search command to occ 2014-11-28 12:32:38 +01:00
Carla Schroder 9b414d81d8 Markup corrections 2014-11-28 10:20:12 +01:00
Carla Schroder 5ac96c0a87 Add notes that SQLite is CE only 2014-11-28 10:20:08 +01:00
Georg Ehrke a60e113fa8 delete old previews 2014-11-27 12:09:56 +01:00
Carla Schroder 392e36d4e4 added comment that App Store is disabled for EE 2014-11-26 17:56:51 +01:00
Lukas Reschke 8b3728ed9b Don't show favicon to prevent iteration through subfolders
The codepath for generating the favicons iterates through subnodes and if one of those nodes is unavailable is throwing a 503 exception. Since these favicons don't have any use except of "making a tool for developers looking nicer" I consider it feasible to remove them.
2014-11-26 17:07:24 +01:00
Miguel Prokop b96b601017 Consolidate if statement, and update unit test 2014-11-26 13:04:20 +01:00
Miguel Prokop cdf37a061b fix calculation of expiration date if there is a default expiration date set (but not forced) and the user does not want the link to expire. 2014-11-26 13:03:45 +01:00
Morris Jobke b1f838814d Merge pull request #12397 from owncloud/fix-undefined-appitem
[stable7] fixes undefined appitem - fixes #12396
2014-11-26 11:18:15 +01:00
Morris Jobke 161e58b1a2 Merge pull request #12415 from owncloud/port-12262
Backport #12262
2014-11-25 15:45:27 +01:00
Lukas Reschke d815638f7b Try to read the file only instead of trying to touch
The permissions are already catched properly on the installation so we just have to check whether the file is readable to prevent fatal errors from happening.

Fixes https://github.com/owncloud/core/issues/12135

Conflicts:
	lib/private/config.php
2014-11-25 14:40:52 +01:00
Bjoern Schiessle 384d1892aa use login name to verify password 2014-11-25 14:09:22 +01:00
Lukas Reschke 32a90911b0 The "dir" key is used within the public sharing template to indicate in which directory the user currently is when sharing a directory with subdirectories. This is needed by the JS scripts.
However, when not accessing a directory then "dir" was set to the relative path of the file (from the user's home directory), meaning that for every public shared file the sharee can see the path.
(For example if you share the file "foo.txt" from "finances/topsecret/" the sharee would still see the path "finances/topsecret/" from the shared HTML template)

This is not the excpected behaviour and can be considered a privacy problem, this patch addresses this by setting "dir" to an empty key.

Port of https://github.com/owncloud/core/pull/12262, approved with https://github.com/owncloud/core/pull/12262#issuecomment-64394040
2014-11-25 13:52:44 +01:00
Morris Jobke 6967512c5f fixes undefined appitem - fixes #12396 2014-11-25 09:06:49 +01:00
Morris Jobke 8ea0187ecd Merge pull request #12373 from owncloud/backport_preview_fixes_stable7
Backport preview fixes stable7
2014-11-24 13:28:00 +01:00
Lukas Reschke abc7f143da Use / as redirect location if webroot is set to an empty value
If the webroot has been set to an empty value or ownCloud has been installed at the root location (`/``) there is a fair chance that the redirect for password resets does not work at all.

This means that while the password is getting resetted the user is not redirected to the login page.

I'm aware that it might be better to just set the webroot to `/` in those cases but this patch is better in the regard that it cannot break stuff.

Thanks to @PVince81 for helping me debugging this. (I'm a moron and assumed it couldn't be THAT easy)

Reported by @cdamken
2014-11-24 11:12:01 +01:00
Georg Ehrke d7779f9209 delete all children's previews when deleting a folder
add phpdoc

Conflicts:
	lib/private/preview.php
2014-11-23 21:45:01 +01:00
Georg Ehrke 4c5aa43079 add y to with-aspect naming schema 2014-11-23 21:43:21 +01:00
Volkan Gezer 11ca5588ea more strings to backport 2014-11-20 16:51:10 +01:00
Vincent Petry 3ff1f879e0 Merge pull request #12131 from owncloud/stable7-enc-recoverykeywithextstoragefix
[stable7] Fix file upload to ext storage when recovery key is enabled
2014-11-20 16:43:20 +01:00
Lukas Reschke 74b68e10e4 Only store user credentials when SMB_OC storage is enabled 2014-11-20 16:05:42 +01:00
Lukas Reschke ec853da5ad Backport \OC\Security\Crypto to ownCloud 7
Conflicts:
	lib/repair/repairconfig.php
2014-11-20 16:05:42 +01:00
Volkan Gezer c494887d98 backport some strings to stable7 2014-11-20 15:13:37 +01:00
Vincent Petry f64c6c9c9c Show warning when invalid user was passed
Sometimes there are bugs that cause setupFS() to be called for
non-existing users. Instead of failing hard and breaking the instance,
this fix simply logs a warning.

Backport c941c3fa51 from master
2014-11-20 13:46:19 +01:00
Arthur Schiwon 56fabf8adf cache total user count 2014-11-19 20:27:20 +01:00
Craig Morrissey 42ada6cb15 adjust autocomplete behavior for sharing menu 2014-11-19 17:01:13 +01:00
Joas Schilling 54607a2142 Merge pull request #12288 from owncloud/backport-mapper-fixes
Backport mapper fixes
2014-11-19 16:29:30 +01:00
Joas Schilling 6a6b645b83 Merge pull request #12291 from owncloud/issue/10991-stable7-backport
Issue/10991 stable7 backport
2014-11-19 16:19:06 +01:00
Clark Tomlinson 2f1270278d fixing cache routes
Conflicts:
	tests/lib/cache/file.php
	tests/lib/cache/usercache.php
2014-11-19 11:07:55 +01:00
Lukas Reschke f235e8b803 Fix mapping of relative paths 2014-11-19 10:21:14 +01:00
Joas Schilling baf8d8433f Use md5() of the original name instead of uniqid() for slugifying
Previously we used uniqid() here.
However this means that the behaviour is not reproducable, so
when uploading files into a "empty" folder, the folders name is
different.

If there would be a md5() hash collition, the deduplicate check
will spot this and append an index later, so this should not be
a problem.

Fix #6722
2014-11-19 10:17:36 +01:00
Joas Schilling f5bd8e4947 Fix code layout before fixing the function 2014-11-19 10:17:30 +01:00
Bjoern Schiessle d49e3d0ceb use the new base class for share/share.php tests 2014-11-19 10:07:03 +01:00
Joas Schilling bc76998cd2 Simple fix for the wrong Mapper reset 2014-11-19 10:06:15 +01:00
Joas Schilling f371f14fc2 Back to OC_Util::generateRandomBytes() 2014-11-19 10:06:14 +01:00
Joas Schilling 4e1799759c Correctly restore previous root mount point after testing
Conflicts:
	tests/lib/cache/file.php
	tests/lib/cache/usercache.php
2014-11-19 10:06:13 +01:00
Joas Schilling 122f3ff594 Correctly refresh the apps list after removing the mock 2014-11-19 10:06:12 +01:00
Joas Schilling a19fd8880d Fix Files\Storage\Home::testRoot() 2014-11-19 10:06:11 +01:00
Joas Schilling e3a9a19d95 Make it possible to cleanPath() absolute Windows paths 2014-11-19 10:06:10 +01:00
Joas Schilling 75e8d2ad6e Fix single run of encryption tests and usages of uniqid() and fopen()
Conflicts:
	apps/files_encryption/tests/crypt.php
	apps/files_encryption/tests/helper.php
	apps/files_encryption/tests/hooks.php
	apps/files_encryption/tests/keymanager.php
	apps/files_encryption/tests/proxy.php
	apps/files_encryption/tests/share.php
	apps/files_encryption/tests/stream.php
	apps/files_encryption/tests/trashbin.php
	apps/files_encryption/tests/webdav.php
2014-11-19 10:06:09 +01:00
Joas Schilling 2dc688dcdf Skip some more tests on Windows which just can not work at all
Conflicts:
	tests/lib/archive/tar.php
	tests/lib/files/storage/local.php
	tests/lib/files/view.php
2014-11-19 10:06:08 +01:00
Joas Schilling ce79974888 Windows does not support CHMOD, therefor we can not test not writable folders
Conflicts:
	tests/lib/tempmanager.php
2014-11-19 10:06:07 +01:00
Joas Schilling 060a40ad43 Test LargeFileHelperGetFileSize also with ascii only characters
And skip the UTF8 names on Windows as they are not supported
2014-11-19 10:06:06 +01:00
Joas Schilling ce3e5a8538 Do not use uniqid in Group and User tests as it is not unique on windows 2014-11-19 10:06:05 +01:00
Joas Schilling 9384fa65b5 Testcase base class 2014-11-19 10:06:04 +01:00
Bjoern Schiessle e6e0573756 only users can have a display name different from the id 2014-11-18 17:29:00 +01:00
Bjoern Schiessle fcde4c70a2 make sure that we only find the shares from the correct share type if users and groups with the same ID exists 2014-11-18 17:27:10 +01:00
Bjoern Schiessle b7cf8fac34 make sure that we don't find the wrong shares if a user and a group have the same ID 2014-11-18 17:26:55 +01:00
Morris Jobke 0271e7539d Merge pull request #12154 from owncloud/ignore-port-for-trusted-domain
Ignore port for trusted domains
2014-11-18 10:53:22 +01:00
Morris Jobke 3acd98f331 add newline 2014-11-18 10:48:38 +01:00
Lukas Reschke 74a625155d Merge pull request #12223 from owncloud/fix-unit-tests-s7
Backport #12181
2014-11-17 13:48:56 +01:00
Michael Roitzsch 643835e2b3 file size on non-(Linux/BSD/Windows)-installations
Determining the file size using the exec() method is implemented for Linux, BSD, and Windows. However, on systems matching neither platform name (like SunOS), the fall-through path will return a file size result constituting a zero size instead of an invalid null return value.
2014-11-17 13:42:23 +01:00
Lukas Reschke a843129a06 Backport #12181
This should fix the stable7 unit tests again since the last CI update.
2014-11-17 12:48:13 +01:00
Vincent Petry 0ab77083c6 Fix file upload to ext storage when recovery key is enabled
Fixes an issue when uploading files to external storage when recovery
keys are enabled

The Util class only works with real users, so instantiating it with the
virtual recovery key user or public key user can cause issues.
2014-11-17 11:38:40 +01:00
Lukas Reschke 32401b42f1 Check if app is enabled for user
Fixes https://github.com/owncloud/core/issues/12188 for AppFramework apps
2014-11-15 14:40:48 +01:00
Clark Tomlinson 4fbd6023f0 Hiding add to your own cloud if server2server sharing is not enabled 2014-11-13 22:45:00 +01:00
michag86 b35a5b5a85 cleanup group admin(s) on deleteGroup 2014-11-13 22:40:12 +01:00
michag86 135479cae2 removal of wrong/double implemented check
Check already implemented in core/settings/ajax/changedisplayname.php
2014-11-13 18:32:13 +01:00
michag86 29fd95967b fix for issue #10880 2014-11-13 18:30:16 +01:00
Lukas Reschke c8a48272c5 Add repair steps for legacy config files
Remove all ports from the trusted domains
2014-11-13 13:34:11 +01:00
Lukas Reschke 2b3b4272f8 Merge pull request #12109 from owncloud/add-preupdate-before-upgrade
Run preupdate before an update
2014-11-13 12:07:10 +01:00
Lukas Reschke 786007c78c Ignore port for trusted domains
This lead to a lot of confusion in the past and did not really offer any value. Let's remove the port check therefore. (it's anyways not really a part of the domain)

Fixes https://github.com/owncloud/core/issues/12150 and https://github.com/owncloud/core/issues/12123 and also a problem reported by @DeepDiver1975.
2014-11-13 11:15:47 +01:00
Andreas Fischer 1e5a39ea6c user_ldap: Reimplement convertSID2Str() without BCMath dependency.
Also explicitly format sub-id integers as unsigned, which is required for
32-bit systems.
2014-11-12 19:47:44 +01:00
Vincent Petry d859d1b6c7 Fix root path handling for WebDAV ext storage
Added missing cleanPath() call that converts "/" to "" when calling
SabreDAV. This is needed because SabreDAV will discard its base URL when
passing "/".
2014-11-12 12:09:15 +01:00
Lukas Reschke 778efcb054 Run preupdate before an update
The update routine tries to test the database migration before actually performing the update.

However, this will fail hard if the schema has changed (for example an unique key has been added). App developers can convert the DB in preupdate.php, however it is not called before and therefore the update fails.

This actually breaks ownCloud updates from ownCloud 6 to ownCloud 7 when the files_antivirus app is enabled.
2014-11-11 20:22:23 +01:00
Morris Jobke f52662ab26 Fix infinite loop if count and limit is 0
* otherwise it will always think it hits the limit and need another round to fetch additional results
2014-11-11 13:39:48 +01:00
Arthur Schiwon fea444b941 dont fail with 500 if configured display name attribute is not set 2014-11-11 13:28:48 +01:00
Frank Karlitschek 27c29c0c58 updating 7.0.3 2014-11-10 17:09:50 +01:00
Thomas Müller afc4224aff Merge pull request #12083 from owncloud/fix-occ-upgrade
Ensure there is a connection object within \OC_DB::enableCaching()
2014-11-10 17:01:53 +01:00
Thomas Müller 042bfabf64 Ensure there is a connection object within \OC_DB::enableCaching() 2014-11-10 16:17:08 +01:00
Morris Jobke e9ebbcb47e Login Name -> Username in user management 2014-11-10 11:17:18 +01:00
Lukas Reschke 35a71cc9a5 Use proper array key
Fixes https://github.com/owncloud/core/issues/12047
2014-11-08 15:47:40 +01:00
Frank Karlitschek ddccbb9530 7.0.3 2014-11-07 20:26:18 +01:00
Craig Morrissey 5ef6c4e03d logging changes 2014-11-07 12:44:18 -05:00
Vincent Petry b6c868ec88 Merge pull request #11994 from owncloud/stable7-sabre-convertstoragenotavailableexception
[stable7] Convert StorageNotAvailableException to SabreDAV exception
2014-11-07 16:25:27 +01:00
Morris Jobke 32625aff30 JS unit tests fix - use toBeUndefined() instead of toEqual(null) 2014-11-07 14:31:39 +01:00
Frank Karlitschek 2fb1ed84f2 7.0.3 RC3 2014-11-06 14:45:41 +01:00
Bjoern Schiessle 9255da9856 check if the provided password is really the current log-in password 2014-11-06 14:35:48 +01:00
Vincent Petry 2db69a5328 Convert StorageNotAvailableException to SabreDAV exception
Convert \OCP\Files\StorageNotAvailableException to
\Sabre\DAV\Exception\ServiceUnavailable for every file/directory
operation happening inside of SabreDAV.

This is necessary to avoid having the exception bubble up to remote.php
which would return an exception page instead of an appropriate response.

Conflicts:
	lib/private/connector/sabre/directory.php
	lib/private/connector/sabre/file.php
2014-11-06 11:23:20 +01:00
Morris Jobke 4c46a2f162 Merge pull request #11964 from canepan/patch-1
Fixed a typo in translation
2014-11-06 09:49:30 +01:00
Bernhard Posselt 6d7a5bf943 fix typo in content type 2014-11-05 14:35:11 +01:00
Lukas Reschke 8d87a2c4a6 Support HTML in logo claim 2014-11-05 13:55:15 +01:00
Thomas Müller 42197e2ce3 Merge pull request #11944 from owncloud/stable7backportl10n
backport some strings to stable7
2014-11-05 13:50:19 +01:00
Thomas Müller 61c802935b adjust strings - fixed #11930 2014-11-05 13:44:30 +01:00
canepan b6334a2da5 Fixed a typo in translation 2014-11-05 11:51:37 +01:00
Vincent Petry acc547c5ff Merge pull request #11950 from owncloud/stable7-s2s-fixcertcheckwhennocertfile
[stable7] Check for cert bundle existence before using it
2014-11-04 20:52:41 +01:00
Vincent Petry b509fdb30f Store curl error message directly 2014-11-04 20:06:17 +01:00
Vincent Petry 3f35822e24 Check for cert bundle existence before using it 2014-11-04 16:49:25 +01:00
Volkan Gezer d5316623dc backport some strings to stable7 2014-11-04 14:36:44 +01:00
Vincent Petry 8339aeab9a Only rescan trash folder when checking deleted versions
This fix prevents the file scanner to rescan the WHOLE storage and reset
the etags by mistake.

Backport of 97a51c46ed from master
2014-11-04 14:17:32 +01:00
Morris Jobke f718e88aa1 fix config.sample.php linebreak 2014-11-04 09:23:56 +01:00
Vincent Petry 38783b1ca3 Capitalize Checks in admin page 2014-11-03 15:46:40 +01:00
Jörn Friedrich Dreyer 56fade9a04 add driver options to config samples 2014-11-03 14:22:57 +01:00
Jörn Friedrich Dreyer 70e68280b8 allow passing driver options, fixes #11718 2014-11-03 14:22:27 +01:00
Bjoern Schiessle 840f5487aa don't move versions if only the mount point was renamed 2014-11-03 13:32:19 +01:00
Lukas Reschke 920e991c82 Fix typo 2014-11-03 13:31:58 +01:00
Bjoern Schiessle 67c3ab92cf get the source path and owner in a pre hook and the target path and owner in a
post hook
2014-11-03 13:31:45 +01:00
Lukas Reschke 3bc748d43f Merge pull request #11614 from owncloud/fix_files_external_s3_storage_id_migration
fix files_external storage id migration
2014-10-31 10:22:20 +01:00
Arthur Schiwon aeb9e172a9 on xp'ed mode and switching configurations: save raw mode instead of toggling filter mode in tabs since their status is unknown and dealt with by the Wizard. Fixes #11848
Backport of 8a48b088ed from master
2014-10-31 08:39:36 +01:00
Lukas Reschke 1025c30885 Fix stupid copy paste fail
...
2014-10-30 16:09:52 +01:00
Morris Jobke 4aae60a375 update 3rdparty to match it's stable7 branch 2014-10-30 13:44:43 +01:00
Morris Jobke 05a15a9669 Merge pull request #11865 from owncloud/stable7-fix-enc-sharingtests
Properly register sharing hooks and proxies
2014-10-30 13:39:45 +01:00
Vincent Petry 43e01439d6 Properly register sharing hooks and proxies
This will fix failing tests when shares weren't cleant up on delete due
to missing hooks.

Added login for user1 in setUp().
2014-10-30 12:17:02 +01:00
Morris Jobke 2261db62f5 fix style of generated documentation 2014-10-29 20:39:18 +01:00
Jörn Friedrich Dreyer 496b62f2eb test files external amazon s3 storage id migration 2014-10-27 13:01:48 +01:00
Jörn Friedrich Dreyer b5ab3d7fc0 fix files_external storage id migration 2014-10-27 13:01:36 +01:00
Frank Karlitschek 321a631d92 7.0.3RC1 2014-10-23 21:26:04 +02:00
Vincent Petry a1ded6e9d7 Added encryption test when moving file as non-owner 2014-10-29 16:11:15 +01:00
Vincent Petry 68dd41a4c9 Fix warning with unset extension check 2014-10-29 16:11:11 +01:00
Vincent Petry 0d02aa7910 Fix moving share keys as non-owner to subdir
This fix gathers the share keys BEFORE a file is moved to make sure that
findShareKeys() is able to find all relevant keys when the file still
exists.

After the move/copy operation the keys are moved/copied to the target
dir.

Also: refactored preRename and preCopy into a single function to avoid
duplicate code.
2014-10-29 16:11:06 +01:00
Lukas Reschke 77a533a29d Close session for search
Make search non-blocking.
2014-10-29 15:29:35 +01:00
Lukas Reschke 84e942f121 Close session for avatar get
This somehow blocked the "Users" UI for me when having a lot of users. - Shouldn't hurt here.
2014-10-29 15:08:01 +01:00
Lukas Reschke 96c092ce14 Show login again instead of JSON if CSRF check fails
Previously a JSON error page was shown to the user in-case the CSRF token was not valid. This was confusing and prevented people from login.

With this at least the login page is shown again and not a JSON error message. I consider this as sufficient since adding a new error page just for this sake would uneededly make lib/base.php even more cluttered and this is a edge-case which optimally should anyways not happen that often.

This can be tested by opening the login page, then clearing the cookies, and trying to login.
2014-10-29 14:38:24 +01:00
Lukas Reschke ec3f92e102 Merge pull request #11802 from owncloud/backport-10958
Backport #10958
2014-10-28 14:23:58 +01:00
Thomas Müller 15e357fa94 Merge pull request #11800 from owncloud/backport-MakeSupportedDBsConfigurable
Make supported DBs configurable within config.php
2014-10-28 10:05:32 +01:00
Vincent Petry 3ba1441c2d Properly catch 503 storage not available in getQuotaInfo
When doing a PROPFIND on the root and one of the mount points is not
available, the returned quota attributes will now be zero.

This fix prevents the expected exception to make the whole call fail.

Backport of 21d825ed6c from master
2014-10-28 09:53:24 +01:00
Robin Appelman 9c24dbbac7 Introduce cross-db ILIKE
adding ILIKE to AdapterSQLSrv

add test case for ILIKE with wildcard

Make sqlite LIKE case sensitive on default

Implement ILIKE for sqlite

Use ILIKE in cache search

Fix ILIKE without wildcards for oracle
2014-10-27 23:00:49 +01:00
Lukas Reschke 9b908c3d05 Make supported DBs configurable within config.php
This commit will make the supported DBs for installation configurable within config.php. By default the following databases are tested: "sqlite", "mysql", "pgsql". The reason behind this is that there might be instances where we want to prevent SQLite to be used by mistake.

To test this play around with the new configuration parameter "supportedDatabases".

Conflicts:
	lib/private/util.php
2014-10-27 22:27:57 +01:00
Lukas Reschke dbfe5ef28a Make files non executable
There is not much sense in having these files marked executable, we should avoid that.
2014-10-24 14:16:37 +02:00
Vincent Petry a3c33585e1 Merge pull request #11719 from owncloud/stable7-fix-s3-regression
[stable7] Fix S3 connection regression
2014-10-23 12:36:35 +02:00
Vincent Petry 6a8c41754f Fix S3 connection 2014-10-22 21:48:22 +02:00
Arthur Schiwon 3399930355 Backport of #11702
set up FS by username, not login name\!

better variable name
2014-10-22 17:58:09 +02:00
Vincent Petry 09d80ac9fc Lazy initialize external storages
Backport of 075e8d8e86 from master
2014-10-22 14:50:22 +02:00
Jörn Friedrich Dreyer 6995b96589 guess mimetype on touch
Conflicts:
	apps/files_external/lib/amazons3.php
2014-10-22 12:35:59 +02:00
Vincent Petry 5624968d1e Merge pull request #11691 from owncloud/fix_pub_link_creation
fix target creation for public links
2014-10-22 11:06:12 +02:00
Bjoern Schiessle a5d6e6eb28 if it is not a folder share the path already points to the correct file 2014-10-21 16:20:28 +02:00
Bjoern Schiessle 098b4e9e81 always use the correct share type 2014-10-21 16:19:54 +02:00
Lukas Reschke d0b3fe2414 Merge pull request #11673 from owncloud/backport-11593
Backport #11593
2014-10-20 20:09:27 +02:00
Vincent Petry 3e02e79154 Add proper setup and teardown
Properly restore REQUEST_URI and SCRIPT_NAME after test runs
2014-10-20 19:15:50 +02:00
Lukas Reschke 841998bdcb Add "$_SERVER['REQUEST_URI']" to fix the unit tests
Let's hope that works
2014-10-20 19:15:45 +02:00
Lukas Reschke ff93c5859b Refer to relative path instead of absolute path
There is no need to refer to the absolute path here if we can use the relative one.

Conflicts:
	lib/private/templatelayout.php

Conflicts:
	lib/private/templatelayout.php
2014-10-20 19:15:23 +02:00
Lukas Reschke 7ffe80cf25 Add unit tests for convertToRelativePath 2014-10-20 19:09:47 +02:00
Arthur Schiwon 86daab2800 backport of #11494
fix retrievel of group members and cache group members

fix changed variable name

with several backends, more than limit can be returned

make performance less bad. Still far from good, but at least it works

add one simple cache test

adjust group manager tests
2014-10-18 00:17:43 +02:00
macjohnny 174ab07a4b backport of #9104
Update manager.php

add caching to getUserGroupIds

Update manager.php

added description and blank lines in getUserGroupIds

Update manager.php

defined $uid in getUserGroupIds

Update manager.php

Update manager.php

Update manager.php

clean up function getUserGroupIds

clean up of function getUserGroupIds and improved caching mechanism of cachedUserGroupIds

modified caching mechanism in getUserGroupIds

removed cachedUserGroupIds, instead changed indexing in getUserGroups to groupId

adapted tests for a groupId indexed group array
2014-10-17 21:14:01 +02:00
Vincent Petry 9998861402 Encapsulate require_once to avoid name space bleedind
The script required by require_once might use variable names like $app
which will conflict with the code that follows.

This fix encapsulates require_once into its own function to avoid such
issues.
2014-10-17 15:03:53 +02:00
Thomas Müller 5b6ba39734 fixing usage of EncryptionException 2014-10-17 14:18:46 +02:00
Thomas Müller fb9c2b5362 Merge pull request #11610 from owncloud/fix-svg-s7
Fix SVG icons
2014-10-17 12:02:03 +02:00
Bjoern Schiessle a93e424738 set password field placeholder back if passward was disabled 2014-10-17 11:34:26 +02:00
Morris Jobke d27db8cc61 fix the RST syntax of config.sample.php 2014-10-17 10:13:37 +02:00
Jörn Friedrich Dreyer 0c6a58a883 Merge pull request #11550 from owncloud/fix_flickering_users
fix flickering users in files external
2014-10-17 09:50:06 +02:00
Morris Jobke d2b766ddee read config.sample.php options and whitespace fixes 2014-10-17 00:37:02 +02:00
Carla Schroder da10518278 commented out instanceid and passwordsalt 2014-10-17 00:36:53 +02:00
Carla Schroder 9ed35a377f some small tweaks 2014-10-17 00:36:49 +02:00
Carla Schroder c8c182b36e small corrections to config.sample.php 2014-10-17 00:36:38 +02:00
Lukas Reschke f2dadc7104 Add a try catch block
This function might also be called before ownCloud is setup which results in a PHP fatal error. We therefore should gracefully catch errors in there.
2014-10-16 22:28:12 +02:00
Arthur Schiwon ada93bab0c backport of #11478
add checkbox for experienced users to server tab

must be empty not auto

sets user filters to raw mode when marking user as experienced

Objectlasses, Groups and Attributes are now loaded only in assisted mode and only once

user and group counts are only upated on demand in experienced mode

confirmation before switching to assisted mode when admin is experienced

rename internal var name to avoid collision

more beautiful white spaces

smaller corrections to make scruitinizer happier, no effective changes

bump version

fix triggering of group update counts. improves the basic code which is also responsible for user counts. i did not find regressions, please doublecheck

remove debug output

coding style, no effective code changes

always abort running ajax request when the method is fired up again

show a spinner next to test filter button when the test is running

show Spinner when stuff is being saved

show busy cursor and lock tabs on save

instead of dis/enabling tabs on save, cancel tab change. avoids noisy ui

remove debug output

rephrase xp'ed user mode label

left-align checkbox on server tab
2014-10-16 16:24:04 +02:00
Jörn Friedrich Dreyer b3acb2a1e7 Merge pull request #10732 from owncloud/make_skeleton_compatible_with_objectstore_minimal_stable7
make skeleton compatible with objectstore
2014-10-16 16:05:56 +02:00
Thomas Müller af72528570 include the apps' versions hash to invalidate the cached assets 2014-10-16 15:55:33 +02:00
Lukas Reschke 5f69b2095a Add app version to JS and CSS
This leads to the regeneration of the hash in case a single application is updated.

Fixes https://github.com/owncloud/core/issues/11374
2014-10-16 15:55:27 +02:00
Bjoern Schiessle 6e3a7ea140 strip whitespace from the beginning and end of the display name to avoid empty display names 2014-10-16 14:55:07 +02:00
Lukas Reschke 38c817c7dd Merge pull request #11613 from owncloud/external-share-self-signed-stable7
[stable7] Use certificate bundle from files_external for external shares
2014-10-16 14:33:32 +02:00
Jörn Friedrich Dreyer 61873e4e21 throw exception in writeBack, the returned boolean is checked nowhere 2014-10-16 14:10:28 +02:00
Jörn Friedrich Dreyer 6d4d5400d7 make tests compatible with hook based skeleton generation 2014-10-16 14:10:28 +02:00
Jörn Friedrich Dreyer 92d069ab6c make skeleton compatible with objectstore
suspend encryption proxy when copying skeleton
2014-10-16 14:10:15 +02:00
Robin Appelman d0101668ce Use certificate bundle from files_external for external shares 2014-10-16 13:42:42 +02:00
Lukas Reschke 73a5e3810f Remove insane comment 2014-10-16 12:40:09 +02:00
Lukas Reschke 6d81789a66 Fix SVG icons
FIXME: Ugly hack to prevent SVG of being returned if the SVG
provider is not enabled.
This is required because the preview system is designed in a
bad way and relies on opt-in with asterisks (i.e. image/*)
which will lead to the fact that a SVG will also match the image
provider.

Conflicts:
	lib/private/preview.php
2014-10-16 12:31:40 +02:00
Frank Karlitschek e1e501b17f 7.0.3 RC1 2014-10-16 08:26:55 +02:00
Lukas Reschke f53ecea372 Add darwin to if block
Otherwise it would fall into the 'win' else block because strpos($os, 'win') does also match 'darwin' what is the `php_uname` for OS X.
2014-10-15 22:26:03 +02:00
Lukas Reschke 15b39a6566 Merge pull request #11520 from owncloud/make-trash-objectstore-compatible
make trashbin compatible with objectstore
2014-10-15 22:24:59 +02:00
Lukas Reschke 508ef23486 Use rawurlencode since this seems to be expected by cURL
Fixes https://github.com/owncloud/core/pull/11501#issuecomment-58794405

Conflicts:
	tests/lib/largefilehelpergetfilesize.php
2014-10-15 20:00:51 +02:00
Robin Appelman ff8d755702 Merge pull request #11567 from owncloud/cache-updater-refactor-stable7
[stable7] Refactor cache updater to work outside of the users home
2014-10-15 17:00:01 +02:00
Clark Tomlinson 9159598d32 Adding test helper to test private methods 2014-10-15 14:43:09 +02:00
Vincent Petry 361d6892c9 Allow specifying protocol in ext storage OC config
Allow specifying a protocol in the host field when mounting another
ownCloud instance. Note that this was already possible with the WebDAV
config but this bug made it inconsistent.
2014-10-15 14:17:49 +02:00
Vincent Petry 149b55f8ae Use body element when animating scroll in public page
In the public page the scroll container is the window instead of a div.
The $(window) object doesn't support animating the scroll property, so
the $('body') element is used instead.

Backport of 704ffaa6a3 from master
2014-10-15 10:53:25 +02:00
Thomas Müller e7a46ed9e7 Merge pull request #11408 from owncloud/refactor-mailsettings-controller
Refactor MailSettings controller
2014-10-14 15:34:13 +02:00
Robin Appelman ad06cd4b1f Remove explicit propagate calls 2014-10-14 14:38:31 +02:00
Robin Appelman f03142f3d6 remove unstable test 2014-10-14 14:38:25 +02:00
Robin Appelman 0497136d29 Update cache before post hooks 2014-10-14 14:38:11 +02:00
Robin Appelman c7f26fa969 Fix warning in homecache 2014-10-14 14:37:37 +02:00
Robin Appelman ad6e281586 Fix unit test 2014-10-14 14:37:31 +02:00
Robin Appelman 595d43ab35 Improve unit tests for Cache\Updater 2014-10-14 14:37:22 +02:00
Robin Appelman 45738b6b7a Refactor Cache\Updater to work outside of the users home 2014-10-14 14:37:10 +02:00
Joas Schilling ba33fd6a07 Set overwritemailurl* configs on setup
Correctly use overwritemailurl value when generating absolute urls in CLI

Fix #11500

Rename the config to *cli

Add overwrite.cli.url to the sample config

Revert separator fix, fixes unit test

Backport of 0407bc0978 from master
2014-10-14 09:20:23 +02:00
Thomas Müller 19585f9c3b fixing typos 2014-10-14 04:49:29 +02:00
Lukas Reschke da150afcc5 Close session when loading apps
Otherwise the session is blocked while all remote apps are loaded. This can be very annoying especially when apps.owncloud.com is down or not reachable.
2014-10-13 18:00:38 +02:00
Jörn Friedrich Dreyer 496b68e2ad fix flickering users 2014-10-13 17:51:38 +02:00
Vincent Petry d6a380613f Retrieve storage numeric id earlier when still available
The numeric id is only available before the storage entry is deleted, so
get it at that time.

Backport of d485c0098d from master
2014-10-13 17:37:33 +02:00
Vincent Petry c38454a5b2 Revert "Set overwrite.cli.url configs on setup"
This reverts commit 48a1e69f5e.

This was backported too quickly.
2014-10-13 17:30:53 +02:00
Bjoern Schiessle e4fa642e54 improved unit tests 2014-10-13 17:27:02 +02:00
Bjoern Schiessle 697f461ded always take unencrypted size 2014-10-13 17:26:38 +02:00
Joas Schilling 48a1e69f5e Set overwrite.cli.url configs on setup
Correctly use overwrite.cli.url value when generating absolute urls in CLI

Fix #11500

Backport and squash of the following from master, in order:
- f0fcaff9b957f1e6c04f9bfd9b8e0eb84f78bbf8
- 923de0afd9a7e717a5e1d25747caf4840633db25
- a487ce76e86940c94801da6157bcf70ed4005c1f
- bd3ebdbd135b30946fdf55b41b5e96497d0c3e4a
2014-10-13 17:21:33 +02:00
Bjoern Schiessle d71fae51f8 distinguish between file dependent shares and other shares 2014-10-13 17:01:19 +02:00
Vincent Petry 372676ee17 Fixed array detection on public download
When downloading a folder called "0001" PHP should fallback to parsing
it as string and properly detect that it is not a JSON array.

Backport of 6cbabdf217 from master
2014-10-13 16:56:37 +02:00
Lukas Reschke 686a43ccf3 force loading of encryption app 2014-10-13 11:52:16 +02:00
Jörn Friedrich Dreyer 3ce828b4b7 make trashbin compatible with objectstore, replace glob with search in cache, make unknown free space work like unlimited free space 2014-10-10 18:26:43 +02:00
Vincent Petry b297ddf349 Log warning when no uid was found for user
In some incomplete setups (like mine) it can happen that the uid
attribute of users is missing.

To be able to find out that something is wrong, a debug message is now
logged when it has not been found.

Backport of 59f9107dd9 from master
2014-10-10 17:59:05 +02:00
Bjoern Schiessle ecc7161611 make sure that we always delete oldest first 2014-10-10 17:31:27 +02:00
Bjoern Schiessle f4c91f0e82 try to get path from filesystem 2014-10-10 15:58:13 +02:00
Bjoern Schiessle 5a37703b3f fix performance issues 2014-10-10 15:58:00 +02:00
Vincent Petry 088879c4ec Prevent button click when enter key is pressed in LDAP wizard
Pressing enter in the LDAP wizard will trigger a click on the first
button. In the main page it would trigger the delete dialog, which is
quite inconvenient.

Added a type attribute to suppress this behavior.

Backport of bb424802c8 from master
2014-10-10 14:58:06 +02:00
Lukas Reschke 7097201eab Merge pull request #11503 from owncloud/stable7-9753
Stable7 9753
2014-10-10 13:02:28 +02:00
Lukas Reschke b089b85753 Refactor MailSettings controller
- Do not store the password (fixes https://github.com/owncloud/core/issues/11385)
- Refactor to AppFramework
- Add unit tests
2014-10-10 12:34:43 +02:00
Tony Zelenoff 34c1760e9f Urlencode file name before passing it to cURL
Large file helper use cURL to determine file sizes. Thus filenames must be
urlencoded in case special symbols like '#' can cause BadRequest errors.

Signed-off-by: Tony Zelenoff <antonz@parallels.com>

Backport of 2d03019c91 from master
2014-10-10 10:58:26 +02:00
Vincent Petry 140f3a7aa9 Merge pull request #11505 from owncloud/stable7-ext-updateetagmount
Stable7 ext updateetagmount
2014-10-10 09:54:33 +02:00
Morris Jobke f1a99ebb6d Additional changes to config.sample.php and typo fixes 2014-10-10 01:51:57 +02:00
Morris Jobke bd205c58c7 apply @carlaschroder's changes from owncloud/documentation#594 2014-10-10 01:50:56 +02:00
Vincent Petry a036cc56c4 Added PHP docs for etag propagator 2014-10-09 18:20:25 +02:00
Robin Appelman 1203580848 More phpdoc 2014-10-09 18:20:20 +02:00
Robin Appelman f534574b30 Hookup the etag propagator 2014-10-09 18:20:15 +02:00
Robin Appelman a11a75faba Add EtagPropagator to handle etag changes when external storages are changed 2014-10-09 18:20:11 +02:00
Robin Appelman 0d8d5cb3e6 Fix add/remove mountpoint hooks 2014-10-09 18:20:07 +02:00
Robin Appelman 4858b5e94a Expose getAppKeys trough \OCP\IConfig 2014-10-09 18:19:59 +02:00
Vincent Petry 3d68d172af Added failing unit tests for mount config hooks 2014-10-09 18:18:50 +02:00
Vincent Petry fe652258be Added filesystem hooks for mount/unmount ext storage 2014-10-09 18:18:46 +02:00
Vincent Petry 24dbdd2b8e Clear enabled apps cache after loading authentication app
Since getEnabledApps() depends on an authentication app to be loaded,
especially in the case of LDAP, the cache from getEnabledApps() is now
cleared to make sure that subsequent calls will properly return apps
that were enabled for groups.
This is because getEnabledApps() uses the inGroups() function from the
group manager provided by LDAP or any other authentication app.

Backport of 36d22825e0 from master
2014-10-09 17:19:34 +02:00
Lukas Reschke f8675f60e8 Add beforeeach and aftereach 2014-10-09 18:04:56 +03:00
Lukas Reschke d6ee378564 Add support for keys in the info.xml
This allows to have links to different doc base URLs
2014-10-09 17:00:06 +02:00
Lukas Reschke 335ad56ff8 Add unittest for filePath 2014-10-09 17:59:58 +03:00
Robin Appelman 7479a6ebf9 Remove special case for css in OC.filePath 2014-10-09 17:59:35 +03:00
Arthur Schiwon f0c4347330 Backport of #10527
properly cancel a Paginated Results operation in order to avoid protocol errors, fixes #10526

abandon ongoing paged search before starting a new one

abandond paged search only if PHP supports them

init a new paged search on read operations to satisfy OpenLDAP

make scrutinizer happy, very minor changes
2014-10-09 14:29:00 +02:00
Bjoern Schiessle d222d2b73f check if I can create a file at the location 2014-10-09 13:30:11 +02:00
MTRichards 5b6f866756 Updated info.xml app description
Made description consistent with other apps
2014-10-08 22:34:10 -04:00
MTRichards cdeb7cb9b3 Updated info.xml app description
Updated description
2014-10-08 22:33:02 -04:00
MTRichards a7398bcfa8 Updated info.xml app description
Updated app description
2014-10-08 22:28:11 -04:00
MTRichards f4e1e5f414 Updated info.xml app description
Backported to stable 7
2014-10-08 22:15:33 -04:00
MTRichards c9875e3959 Updated info.xml app description
Updated documentation. Removed doc links as this has two packages, need to not hard link.
2014-10-08 22:14:07 -04:00
MTRichards a3c6b7a662 Updated info.xml app description
Backporting to stable 7. Removed doc links as this is packaged in 2 different setups, links are different.
2014-10-08 22:10:32 -04:00
Morris Jobke 063d2032a7 style fixes in config.sample.php 2014-10-08 23:27:57 +02:00
Morris Jobke 47c05e048f Fixes in config.sample.php
* owncloud -> ownCloud
* add default value
* proper comment style
* fix line wrapping and minor typo
* remove duplication
* add Vincents proposals
* drop master config switches while backporting
2014-10-08 23:24:34 +02:00
Morris Jobke c83a17e6c8 re-arrange the config options and sort them in a semantical way
Conflicts:
	config/config.sample.php
2014-10-08 23:21:58 +02:00
Morris Jobke 3e7bc72281 unify style of config.sample.php
* use ' instead of " for config option
* place default parameters where useful into sample
* use proper comment block
* limit line size to 80 characters
2014-10-08 23:20:31 +02:00
brumsoel 251e4d78b8 Fix file size comparator return value 2014-10-08 23:09:01 +02:00
Vincent Petry 6b89f4b44d Merge pull request #11375 from owncloud/fix_files_external_amazon_s3_stat_call
Fix files external amazon s3
2014-10-08 18:49:41 +02:00
Bjoern Schiessle a766f5b633 improved visual feedback if user enabled recovery key 2014-10-08 16:20:21 +02:00
Bjoern Schiessle 7ee3ad411c improved visual feedback if recovery key password gets changed 2014-10-08 16:19:28 +02:00
Bjoern Schiessle bdfd3ca2bf improved visual feedback if recovery key gets enabled/disabled 2014-10-08 16:18:59 +02:00
Bjoern Schiessle 4dcd1ed34f make sure that the notification gets shown again after a second try 2014-10-08 16:13:35 +02:00
michag86 a045f8cd3a restrict $div to local scope 2014-10-07 16:30:21 +02:00
michag86 4e74983676 variable for found avatar div 2014-10-07 16:30:21 +02:00
michag86 aedd64b5a6 fix for issue #10483 2014-10-07 16:30:21 +02:00
Vincent Petry b6e81b517f Merge pull request #11457 from owncloud/stable7-fix-rename-position
fix position of rename field, fix #10867
2014-10-07 16:00:41 +02:00
Jan-Christoph Borchardt 77b5e2e661 fix position of rename field, fix #10867 2014-10-07 14:58:01 +02:00
Jan-Christoph Borchardt 9411a6ea53 reduce bottom padding in filelist, fix perceived glitching, fix #11213 2014-10-07 14:52:22 +02:00
Victor Dubiniuk e0d1fa554f Add CssImportFilter. More elegant fix for documents#348 2014-10-07 14:33:42 +02:00
Jan-Christoph Borchardt 532f65116a fix position and style of sort indicator 2014-10-07 14:23:27 +02:00
Bjoern Schiessle 30398370b8 we also encrypt/decrypt files in the versions folder for previews and if encryption is enabled/disabled 2014-10-06 13:11:09 +02:00
Jörn Friedrich Dreyer 413bd5406c extract batchDelete(), better comments 2014-10-06 11:08:21 +02:00
André Gaul 056b97834d files_extern: remove empty Body and ContentLength in Amazon S3 mount
fixes #10501

Conflicts:
	apps/files_external/lib/amazons3.php
2014-10-02 12:00:50 +02:00
Lukas Reschke 1f5f278501 Merge pull request #11299 from owncloud/barkport-10934
[stable7] Don't complain about non-writable datadirs before we're installed
2014-10-02 10:38:15 +02:00
Jörn Friedrich Dreyer 2b91e628f5 fix amazon s3 issues
folder size and mtime is always unknown in s3

more s3 fixes

make rescanDelay of root dir configurable, add on the fly update of legacy storage ids, !isset -> empty when checking strings

reduce number of http calls on remove and rmdir

fix typo
2014-10-01 14:38:50 +02:00
Jörn Friedrich Dreyer c8dab5829c make some storage tests explain what went wrong 2014-10-01 14:38:50 +02:00
Jörn Friedrich Dreyer 8089e0f9b8 strict comparison 2014-10-01 14:38:50 +02:00
Jörn Friedrich Dreyer 7fd925e96d log exceptions when listing files 2014-10-01 13:17:28 +02:00
Robin Appelman 3a4ac2caa1 Skip test for unsuported feature for amazon s3 2014-10-01 13:15:20 +02:00
Robin Appelman 67b9edeeb7 Fix copy overwrite for amazon s3 2014-10-01 13:15:13 +02:00
Robin Appelman 25d003a52d Fix amazon s3 rename overwrite 2014-10-01 13:15:06 +02:00
Robin Appelman a47f965b87 Fix AmazonS3 rmdir on the root 2014-10-01 13:14:56 +02:00
Lukas Reschke 0484939fe0 Redirect only to absolute URL
We do not want to redirect to other domains using the "?redirect_url=" feature. Please notice, that the ownCloud project does not consider open redirectors as security issue.
2014-10-01 12:49:54 +02:00
Lukas Reschke 69296befa6 Use SVG previews for public sharing
Fixes https://github.com/owncloud/core/pull/11367#issuecomment-57306037 and https://github.com/owncloud/core/issues/9218
2014-10-01 11:16:10 +02:00
Lukas Reschke bc5c608e4e Add flock to config
This adds a file lock to the config in hope that this prevents race conditions as reported in https://github.com/owncloud/core/issues/11070

Testplan:

- [ ] Delete config.php and make it read-only => Error is thrown that it is not writeable
- [ ] Installation still works
- [ ] Changing config settings works (i.e. using the SMTP config switches in the administration menu)
- [ ] Your PC didn't blow up
- [ ] Installing the news app and the "Disable AppCode checker" app did not destroy your installation

Only skip the main config

Otherwise read only additional configs might not be processed

Test on tmpdir
2014-10-01 11:14:15 +02:00
Bjoern Schiessle 02374e595a don't clean up the test environment if a data provider was finished 2014-09-30 12:50:21 +02:00
Lukas Reschke f788dffce8 Try to create datadirectory to test whether the .htaccess works
Fixes https://github.com/owncloud/core/pull/11299#issuecomment-56968588 and also https://github.com/owncloud/core/issues/10628 together with https://github.com/owncloud/core/pull/11299#issuecomment-56968588 when backported.
2014-09-30 10:24:52 +02:00
Robin Appelman d102cb4ffa Don't test for htaccess if we cant write into the datadir anyway 2014-09-30 10:24:52 +02:00
Robin Appelman 83a06950f4 Check for writable datadir during setup 2014-09-30 10:24:52 +02:00
Robin Appelman 6c09c0e082 Don't complain about non-writable datadirs before we're installed
Conflicts:
	lib/private/util.php
2014-09-30 10:24:52 +02:00
Robin Appelman 2376d69115 Inject config into checkserver and cleanup tests
Conflicts:
	lib/private/util.php
2014-09-30 10:24:52 +02:00
Lukas Reschke 7eb0d6866c Close the session for preview generation
Without closing the session every preview image generation is locking the session which makes the webinterface unresponsive.
2014-09-29 22:03:58 +02:00
Arthur Schiwon 5ddacaed7f dn needs to be fetched to be able to detect memberOf support 2014-09-29 15:17:34 +02:00
Dan Bartram bd74ab2886 Clear up confusion of log_rotate_size config value
Remove the second comment which could be confused with suggesting an invalid value: `// 100 MiB`.

To keep the easily readable example value, it has been moved into the comment header for the config item.
2014-09-29 09:39:55 +02:00
Frank Karlitschek 424cc31fd6 increase version 2014-09-28 13:19:53 +02:00
Björn Schießle d388ef5c0a Merge pull request #11363 from owncloud/sharing_group_shares_stable7
Sharing group shares stable7
2014-10-01 23:35:33 +02:00
Thomas Müller 7d389b26f9 catch and log exception in OC_Helper::cleanTmp() 2014-10-01 15:57:30 +02:00
Bjoern Schiessle 9254073786 some small fixed, suggested by scrutinizer 2014-10-01 15:13:48 +02:00
Bjoern Schiessle bb703006da throw a exception if we can't handle the provided path 2014-10-01 15:13:48 +02:00
Bjoern Schiessle 1371fecf26 on unshare only unshare childrens if there is no other parent available 2014-10-01 15:13:48 +02:00
Bjoern Schiessle 1e5c786392 only create a new share entry, if the user needs a different target name than the group share 2014-10-01 15:13:48 +02:00
Bjoern Schiessle 6d85cf2a0b for group shares we don't need a extra db entry of groupTarget equals itemTarget 2014-10-01 15:13:48 +02:00
Bjoern Schiessle 3b1715c3fc for group shares only the parent has the up-to-date permission. Make sure that we always use this permission, except if the user permission is '0' because in this case the user unshared the group share from self 2014-10-01 15:13:48 +02:00
Bjoern Schiessle 6d747e9721 call \OCP\Share::getItemsSharedWithUser() to get exclude list, this way all checks are executed, e.g. to check if the share is really visible 2014-10-01 15:13:48 +02:00
Bjoern Schiessle c5db1ef3cc always select permissions, used in getItems() 2014-10-01 15:13:48 +02:00
Bjoern Schiessle 27a630b0bc some small fixes 2014-10-01 15:13:48 +02:00
Bjoern Schiessle e25593db4e clear share table after each test run 2014-10-01 15:13:47 +02:00
Bjoern Schiessle 7edf912ef8 only add a new row if it isn't a unique share, otherwise update the existing row 2014-10-01 15:13:47 +02:00
Bjoern Schiessle aab44694ad fix unit tests 2014-10-01 15:13:47 +02:00
Bjoern Schiessle 98268078c0 mark exclude list as deprecated. It neither used by the files app nor by the
calendar or contacts app. It doesn't make sense to build a exclude list by the
share API, the apps knows best which are valid targets.
2014-10-01 15:13:47 +02:00
Bjoern Schiessle df97d8299a fix add user to group to work with grouped shares 2014-10-01 15:13:47 +02:00
Bjoern Schiessle 97dba2e022 generateTarget() will always find a unique target 2014-10-01 15:13:47 +02:00
Bjoern Schiessle b52154b306 unit tests for grouping of shares pointing to the same source 2014-10-01 15:13:47 +02:00
Bjoern Schiessle 64a9315b4a group shares and combine permissions 2014-10-01 15:13:47 +02:00
Lukas Reschke 3fb55d9d2e Merge pull request #11364 from owncloud/fix_unit_test_oc7
make sure that the users file system is initialized before we emit the post hook
2014-10-01 15:07:16 +02:00
Bjoern Schiessle 094f5bcc78 make sure that we re-load the file system after the quota was set 2014-10-01 09:42:50 +02:00
Bjoern Schiessle 79f5346105 make sure that the users file system is initialized before we emit the post hook 2014-09-30 13:14:04 +02:00
Vincent Petry 5c0139fdff Prevent monkey clicking on labels
Clicking on labels while the spinner is there will not trigger the
hidden checkbox any more.
2014-09-27 10:42:00 +02:00
Lukas Reschke c1c70b306e Add ID to markup to have the checkboxes in the right position 2014-09-27 10:41:51 +02:00
Vincent Petry 4d261d9e15 Added spinners in share dropdown
Added spinners for the following actions:
- adding user
- removing user
- changing password
- toggling allowing upload
- setting a password
2014-09-27 10:41:45 +02:00
Jan-Christoph Borchardt 257dbe61e2 for whitelabeled edition, show branding name (e.g. 'ownCloud') instead of appname in header bar 2014-09-27 10:29:20 +02:00
Robin Appelman d660aab116 Fix dav permissions for folders without create permissions 2014-09-26 09:24:24 +02:00
Robin Appelman e37f44e56a Expose creatable permissions trough fileinfo 2014-09-26 09:24:23 +02:00
Robin Appelman bdc26c6749 Don't keep the full info of all children in memory 2014-09-25 20:04:02 +02:00
Lukas Reschke 6d8fdcd7d2 Clarify possible preview providers for type Office
a

Conflicts:
	lib/private/preview.php
2014-09-25 00:00:40 +02:00
Morris Jobke 0044c3bb6b Merge pull request #11245 from owncloud/backport-11211
Add a configuration switch for enabled preview mimetypes
2014-09-24 23:57:23 +02:00
Robin Appelman 1ec756d125 Show a proper error message when trying to scan the filesystem for a non existing user 2014-09-24 23:21:26 +02:00
Thomas Müller c31990e936 Updating 3rdparty - contains updated tar archive and getid3 2014-09-24 14:30:00 +02:00
Jan-Christoph Borchardt 4e850128e6 fix filepicker home icon being partly hidden, fix #10169 2014-09-24 02:14:20 +02:00
Lukas Reschke 00bb0e122f Check for blacklisted characters
Fixes https://github.com/owncloud/core/issues/11264

(This should in future get moved to the mountpoint class - but that is something for @icewind1991 ;-))
2014-09-24 00:38:18 +02:00
Vincent Petry 2013404e0a Moved WebDAV and internet checks to client side JS
- Added setup checks in JavaScript
- Moved isWebDAVWorking to JS using SetupChecks
- Moved internet connection checks to an ajax call that goes through the
  server

Backport of e65ceb08fc from master
2014-09-23 16:58:19 +02:00
Lukas Reschke 734112a5c1 Merge branch 'stable7' into backport-11211
Conflicts:
	config/config.sample.php
2014-09-23 14:48:16 +02:00
Remco Brenninkmeijer fbcd80ac08 Previous commit was not based on master, retry. Removed broken tar cutter, double extensions are not possible in temp files. Added tar support. Fixed extension switch. 2014-09-23 14:45:56 +02:00
Thomas Müller 435b9c3028 using flush() here is pointless as we render the layout into a memory buffer and actually transmit the data later 2014-09-23 13:41:45 +02:00
Thomas Müller 838c849a5a remove post setup check
Backport of 21412559df from master
2014-09-23 13:00:55 +02:00
Vincent Petry 85d7492398 Fix share key finding algorithm in various cases
Instead of inaccurate pattern matching, use the list of users who we
know have access to the file to build the list of share keys.

This covers the following cases:

- Move/copy files into a subfolder within a share
- Unsharing from a user
- Deleting files directlry / moving share keys to trashbin

Backport of 1e631754d7 from master
2014-09-23 12:54:07 +02:00
Victor Dubiniuk a6eb638380 Use non-empty defaults 2014-09-23 12:53:11 +02:00
Lukas Reschke cb3bc5ad31 Do only follow HTTP and HTTPS redirects
We do not want to follow redirects to other protocols since they might allow an adversary to bypass network restrictions. (i.e. a redirect to ftp:// might be used to access files of a FTP server which might be in a secure zone and not be reachable from the net but from the ownCloud server)

Get final redirect manually using get_headers()

Migrate to HTTPHelper class and add unit tests

Conflicts:
	apps/files/ajax/newfile.php
	lib/private/files/storage/dav.php
	lib/private/server.php
	lib/private/util.php
	lib/public/iservercontainer.php
2014-09-23 11:51:18 +02:00
Lukas Reschke d9384cd959 Append port to trusted domain in case it's not 80 or 443
Ref https://github.com/owncloud/core/pull/10584#issuecomment-54677059

Backport of 2590a4dc85 from master
2014-09-23 11:20:52 +02:00
Bjoern Schiessle bd7f6c9e18 first check if a private key exists, if not it is always a recovery szenario 2014-09-23 10:42:56 +02:00
Lukas Reschke bb69eebde4 Add a configuration switch for enabled preview mimetypes
Backport of https://github.com/owncloud/core/pull/11211 to stable7
2014-09-23 10:42:45 +02:00
Vincent Petry cb39c55073 WebDAV now throws 403 when deletion did not work
Assume a permission issue whenever a file could not be deleted.

This is because some storages are not able to return permissions, so a
permission denied situation can only be triggered during direct
deletion.
2014-09-23 00:50:28 +02:00
Morris Jobke 33737f9526 Merge pull request #11230 from owncloud/fix-failing-mountconfig-tests-stable7
Load apps in test situations
2014-09-23 00:45:35 +02:00
Victor Dubiniuk b3ddd39438 Log unsuccessful temp file creation and return false 2014-09-22 18:57:03 +03:00
Vincent Petry 2b297567b5 Added extra check to avoid deleting key folders
Whenever a delete operation is called twice in a row, it could happen
that the first call already deleted the file.

The second call would return an empty $ownerPath because the file does
not exist. That empty $ownerPath would run the key deletion operation on
the wrong path.

This fix adds checks in many places to make sure we don't use $ownerPath
when it's empty or null.

Backport of 8aca127e52 from master
2014-09-22 17:06:46 +02:00
Thomas Müller d6276beac0 date printed in the admin section regarding last execution time is already displayed in the users timezone - no need to append UTC 2014-09-22 16:58:17 +02:00
Vincent Petry 03bb3d2bdc Reenable file proxy when renaming between mount points
When moving a folder into another mount point, $renamedFiles is empty
because that goes over a different mechanism.

In such case, this fix makes sure that the file proxy is reenable to
avoid breaking the subsequent files that are being moved.
2014-09-22 16:30:37 +02:00
Jörn Friedrich Dreyer 44c7562c7b in quota wrapper use === instead of ! for better readability and as in other wrappers 2014-09-22 16:26:20 +02:00
Jörn Friedrich Dreyer e556698db7 return boolean in Ciose::stream_seek 2014-09-22 16:26:14 +02:00
Jörn Friedrich Dreyer 2bdf5a8b1a return boolean in OC::stream_seek 2014-09-22 16:26:01 +02:00
Jörn Friedrich Dreyer dfc6bfe131 add seek and tell to streamwrapper test 2014-09-22 16:25:50 +02:00
Robin McCorkell c0d1b6bfb2 Load apps in test situations 2014-09-22 15:39:16 +02:00
Vincent Petry 387638e317 Use afterBind to send fileId header for files and directories
afterBind is called for both files and directories and is now used to
send the OC-FileId headers.
2014-09-22 14:12:52 +02:00
Morris Jobke 2d3ea08e19 update 3rdparty submodule to its stable7 commit 2014-09-22 13:05:36 +02:00
voxsim 3ebd0b8983 Backport of #9225
fix in displayNamesInGroup: when specified limit N, we did complex search only in the first N users

change logic in displayNamesInGroup and add some unit tests

add more logic in displayNamesInGroup for big user bases

1. remove sizeof($filteredUsers) > 0 as condition
2. use count instead of sizeof. Latter is an alias to first one, practically we stick to count everywhere. Having it consistent helps with readability.
3. move whitespace so we have $groupUsers[] = $filteredUser; instead of $groupUsers []= $filteredUser;
2014-09-22 12:21:34 +02:00
Robin Appelman 984b6a28ac Also setup the filesystem when matching routes 2014-09-22 10:34:40 +02:00
Robin Appelman 744b20bc0d Remove unneeded file initialization in encryption, already handled in a hook 2014-09-22 10:34:37 +02:00
Robin Appelman 8905e77d60 Don't automatically setup the filesystem the moment we load OC\Files\FileSystem 2014-09-22 10:34:32 +02:00
Vincent Petry c16c680e32 Add select2 cache for complete group list
To avoid making a server request every time the dropdown opens, the
whole list of groups are cached (from the last request):

Whenever the user types in a search term it will still send server
requests.
2014-09-22 10:14:25 +02:00
Jan-Christoph Borchardt 13cee302f7 fit select2 to ownCloud input style 2014-09-22 10:14:22 +02:00
Vincent Petry 2aaad09062 Fixed select2 for admin and apps page
Added explicit escaping.
Now internally using a pipe symbol as separator for select2, to make it
possible to use group names containing commas.
2014-09-22 10:14:18 +02:00
Vincent Petry 996c68aa2e Added select2 on the apps page
Moved setupGroupsSelect() from admin.js to a common settings.js
as OC.Settings.setupGoupsSelect().

Now using select2 as well on the apps page.
2014-09-22 10:14:15 +02:00
Vincent Petry 7f030eedde Remove excludegroup.php
The ajax call is now using ajax/appconfig.php instead
2014-09-22 10:14:11 +02:00
Vincent Petry 2e93300313 Load select2 on admin page 2014-09-22 10:14:08 +02:00
Vincent Petry a385a367b0 Now using select2 for the groups excluded from sharing 2014-09-22 10:14:05 +02:00
Vincent Petry 97b83b9098 Move select2 from files_external to core
Backport of 412da87e65 from master
2014-09-22 10:13:46 +02:00
Bjoern Schiessle ce69e83b33 make sure that we really catch the files folder only 2014-09-22 10:00:47 +02:00
Bjoern Schiessle a2e9056832 create backup from all keys before recovery 2014-09-22 10:00:37 +02:00
Thomas Müller 260229b027 Merge pull request #11202 from owncloud/stable_l10n_backport
backport server2server strings
2014-09-22 09:16:34 +02:00
Thomas Müller 0c014409e6 Merge pull request #11201 from owncloud/fix-button-text
fix button text l10n
2014-09-22 09:16:00 +02:00
Georg Ehrke 2068eaf16b make sure preview prop is instanceof OC_Image before using it in showPreview 2014-09-22 00:48:01 +02:00
Georg Ehrke 645e7a0c9e delete old previews 2014-09-21 22:49:22 +02:00
Volkan Gezer 0afd79a22c backport server2server strings 2014-09-21 17:34:39 +02:00
Volkan Gezer 6946962609 fix button text l10n 2014-09-21 17:32:37 +02:00
Morris Jobke f8ecef2917 Merge pull request #11195 from owncloud/stable_l10n_backport
backport stable translations
2014-09-21 11:16:08 +02:00
Thomas Müller 6c544b95e8 adding 'smallint unsigned' to type mapping for sqlite 2014-09-21 11:14:14 +02:00
Volkan Gezer 5637a581d2 backport stable translations 2014-09-20 18:50:17 +02:00
Robin McCorkell 83b9a89569 Merge pull request #11190 from owncloud/fix-unit-test-sort-order-stable7
Don't rely on the sorting the database gives us for tests
2014-09-20 12:09:50 +01:00
Robin Appelman 8580e2a697 Don't rely on the sorting the database gives us for tests 2014-09-20 09:17:18 +02:00
Lukas Reschke 7f45226b8e Prevent updates between multiple major versions
Ref https://github.com/owncloud/core/issues/11078
2014-09-19 17:00:50 +02:00
Lukas Reschke 37632e428d Move BasicAuth check to "isLoggedIn()"
Ensures that Basic Auth works properly for APIs and removes the need for some even uglier lines of code.
2014-09-19 13:41:55 +02:00
Volkan Gezer 7930440b31 update encryption doc link
I don't know how we missed to update this :/

update ldap doc link
2014-09-18 18:20:20 +02:00
Lukas Reschke 749c519759 Move basic auth check
At the previous point not all apps were initialized. Now the basic auth check happens together at the same location as all others.

Fixes https://github.com/owncloud/core/issues/11129
2014-09-18 14:41:43 +02:00
Vincent Petry 35cb14c95f Add timeout to user and group deletion notification
Added timeout in DeleteHandler to auto-delete after a delay.

Fixed issue where OC.Notification.hide() was called twice in a row when
deleting multiple entries, causing the second notification to disappear.
Fixed issue where "undo" click event handler was registered multiple
times when calling setNotifications() twice.
Added JS unit tests for the DeleteHandler class.

Refix undo users, groups feature

Timeout is now cleared in cancel().

Fixed click handler name for "undo" to be able to work with multiple
DeleteHandler instances (in our case one for users and one for groups)
so that there is no conflict.

Backport of 0d9f24a0ef from master
2014-09-18 10:22:10 +02:00
Lukas Reschke 28f462095d Make 404 page easier to understand
Fixes https://github.com/owncloud/core/issues/11133
2014-09-18 09:10:56 +02:00
Frank Karlitschek 19a7aa081e version bump 2014-09-13 22:56:07 +02:00
Thomas Müller 82ccb04182 adding unit test to truncate the table 2014-09-17 14:28:31 +02:00
Andreas Fischer ebbd40385a Use Doctrine Platform to generate SQL query for table truncation. 2014-09-17 14:28:31 +02:00
Vincent Petry 03f9b14a23 Merge pull request #11053 from owncloud/baskport-11041-stable7
content size checks are not valid for LOCK
2014-09-16 16:46:47 +02:00
Lukas Reschke 8ed1762dfb Reword the description
The old one was just horrible wrong.
2014-09-16 16:01:35 +02:00
Thomas Müller 76ff7ab007 Disable database migrations for MSSQL - scripts have to be applied manually 2014-09-16 14:03:24 +02:00
Bjoern Schiessle 9bf1a18512 also expire file if timestamp = limit, happens if trashbin_retention_obligation is set to zero 2014-09-16 13:58:56 +02:00
kondou 86400ea4c8 Preserve transparency when loading from a file
Fix #7148 - again :)
2014-09-16 08:34:18 +02:00
Lukas Reschke ff6deb809a Use secure mimetype for content delivery
Adds some hardening against potential CSP bypassed.
2014-09-15 12:50:35 +02:00
Vincent Petry 7f1416e62a Remove passing by reference to allow for proper GC
The garbage collector in PHP 5.3.10 does not properly release the file
handle when calling fclose() due to the fact that it is passed by
reference.
This has the side-effect of preventing file locks to be released as well
when the files_locking app is enabled.

This fix removes the useless passing by reference and now the file
handle and file lock are freed properly.
2014-09-15 11:58:18 +02:00
Joas Schilling a23396452f Set overwritewebroot when installing owncloud to avoid problems
Backport of 249558966e to stable7
2014-09-15 11:06:47 +02:00
Arthur Schiwon 1981d220c5 if only one attribute is requested, the returned array has 0 as key instead of attribute name. fixes #10888 2014-09-15 11:01:21 +02:00
Lukas Reschke 572720fb7a Do not double decode values
Fixes https://github.com/owncloud/core/issues/11012
2014-09-15 07:59:04 +02:00
Thomas Müller 0732131cd9 content size checks are not valid for LOCK 2014-09-12 22:06:28 +02:00
Thomas Müller 2ffcff228c content size checks are not valid for LOCK 2014-09-12 21:53:28 +02:00
Jan-Christoph Borchardt bec08955b2 fix nojavascript message alignment 2014-09-11 23:06:45 +02:00
Johan Björk f040529e6d Converted an array to PHP5.3 compatible version 2014-09-11 18:01:11 +02:00
Johan Björk 5ac620cb04 Fixes #8326: deletion of directories on S3 2014-09-11 18:01:01 +02:00
Jan-Christoph Borchardt e26a5ff715 fix folder icon alignment, fix #10866 2014-09-11 17:07:52 +02:00
Jan-Christoph Borchardt b7c7ec26c7 fix svg of calendar filetype icon 2014-09-11 17:07:46 +02:00
Jan-Christoph Borchardt 7f1e32764d fix size of toggle icon, make container square 2014-09-11 17:07:40 +02:00
Jan-Christoph Borchardt 3f5cefb07f improve style of checkmark icon, less bold, fitting ownCloud style 2014-09-11 17:07:34 +02:00
Jörn Friedrich Dreyer 463ad5a50d repair search lucene before installing 2014-09-11 14:24:11 +02:00
Lukas Reschke ec9517f98b Add X-UA-Compatible to all templates
Replaces https://github.com/owncloud/core/pull/10850
2014-09-11 12:39:45 +02:00
Vincent Petry 36680a5a81 Merge pull request #10998 from owncloud/use-section-in-form
Use section in first element in user_ldap
2014-09-11 12:07:31 +02:00
Lukas Reschke 04597aedcb Use section in first element 2014-09-10 18:47:29 +02:00
Vincent Petry 1a9e08ae4d Merge pull request #10973 from owncloud/stable7-issue/10847
[Stable7] Use correct language package so the subject is correctly translated
2014-09-10 14:57:32 +02:00
Vincent Petry dedb47390b Do not load extra user backends when an upgrade is due
Whenever an upgrade is due, do not load extra user backends

Backport of d6bfd90bf8 from master
2014-09-10 10:42:56 +02:00
Lukas Reschke 95eb9bf8ae Merge pull request #10884 from owncloud/stable7_backport_issue_10674
Backport issue 10764
2014-09-10 10:31:26 +02:00
Joas Schilling cc0a855103 Use correct language package so the subject is correctly translated
Fix #10847

Conflicts:
	lib/private/share/mailnotifications.php
2014-09-09 23:44:15 +03:00
Joas Schilling 19dd866c7e Fix broken new lines in plain text mail template 2014-09-09 23:40:56 +03:00
Bernhard Posselt 8e89c51e87 more sugar for including lists of templates 2014-09-09 19:40:56 +02:00
Bernhard Posselt 2a859f84a8 append .html since componets always use html files 2014-09-09 19:40:39 +02:00
Bernhard Posselt 8869dcf1af add template functions for html imports 2014-09-09 19:40:18 +02:00
Bernhard Posselt ca121d8438 add shortcut functions for style and script 2014-09-09 19:40:02 +02:00
Jörn Friedrich Dreyer f5bac5fb2d make objectstore tests check fileid on rename 2014-09-09 10:27:34 +02:00
Jörn Friedrich Dreyer c52f66cc73 Keep fileid on move in objectstore, fixes #10848 2014-09-09 10:27:21 +02:00
Jörn Friedrich Dreyer 5e5d9e0a80 allow . in dbname on web install 2014-09-09 09:43:58 +02:00
Lukas Reschke b98c22d39b Don't show warning when has_internet_connection is set to false
Revert

Add disabled
2014-09-09 09:20:03 +02:00
Jan-Christoph Borchardt b609d36e3c also add no-JavaScript notice to log in and sharing pages because they do not work without JS either 2014-09-08 22:01:56 +02:00
Jan-Christoph Borchardt a7968604d8 fix styling and wording of no-JavaScript message 2014-09-08 22:01:49 +02:00
Clark Tomlinson 9b99c81a9d Using countUsers method to return true count of users 2014-09-08 18:52:14 +02:00
Lukas Reschke 96bb1f7f45 Check for admin user instead of subadmin 2014-09-08 18:25:23 +02:00
Vincent Petry 85cde16feb Catch exceptions when moving files
When moving files on storages that don't expose permissions, the storage
itself might throw an exception when the permission is denied.

This fix ensures that exceptions are caught and forwarded to the client
instead of just hanging.

Backport of e43c9b84c4 from master
2014-09-08 16:26:01 +02:00
Oliver Kohl D.Sc 1e4431ba01 Update cron.php 2014-09-08 09:54:23 +02:00
Oliver Kohl D.Sc 994f36e498 CRON call ends in null exception
[error] 4461#0: *186285 FastCGI sent in stderr: "PHP message
: PHP Fatal error:  Call to a member function execute() on null in /var/www/ownc
loud/cron.php on line 125" while reading response header from upstream, client:
217.13.183.252, server: cloud.mycloud.com, request: "GET /cron.php HTTP/1.1", upstre
am: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "cloud.mycloud.com", referrer: "
https://cloud.mycloud.com/"
2014-09-08 09:54:18 +02:00
Lukas Reschke 640abbe099 Move trusted domain check to init()
handleRequest() is not called from remote.php or public.php which made these files party available but all included apps in there produced errors.

As the expected behaviour is anyways that a trusted domain warning is shown I moved this to init()

Fixes https://github.com/owncloud/core/issues/10064
2014-09-05 18:20:40 +02:00
Jörn Friedrich Dreyer 1f2550e3da add / to url to match route 2014-09-05 16:55:36 +02:00
Vincent Petry cfca88f20e Scroll to new file/folder after adding
When creating a new file from the menu, the list now scrolls to that
file.
2014-09-05 16:55:36 +02:00
Vincent Petry 8e77ca6201 Fixed scrollto for search results
Now passing the "scrollto" URL argument to the file list class which
will also automatically scroll and highlight the matching element.

This code is triggered by the search box when in a different folder and
also by the activity app.
2014-09-05 16:55:36 +02:00
Lukas Reschke 41d8157937 Add isAppstoreEnabled instead of hijacking the URL 2014-09-05 15:14:29 +02:00
Lukas Reschke 6534304196 Remove different URL for EE
This can now be achieved by setting `appstoreenabled` to `false` in config.php
2014-09-05 15:14:19 +02:00
Jesus Macias 7bd4f6cac5 Backport issue 10764 2014-09-05 13:23:09 +02:00
Vincent Petry 69cc2044f0 Added permission check for drag and drop
When dropping files onto a read-only folder, a notification
is now shown instead of attempting to upload.

This for both the drag for upload and drag from inside the file list
cases.

Backport of f1bfe35cda from master
2014-09-05 12:21:42 +02:00
Jörn Friedrich Dreyer eb682a3022 Merge pull request #10878 from owncloud/remove_leftover
remove a left over that uselessly fetches all users
2014-09-05 11:59:12 +02:00
Arthur Schiwon e638a9a444 remove a left over that uselessly fetches all users 2014-09-05 10:27:34 +02:00
Vincent Petry f268eee86c Added unit tests for cache of enabled apps 2014-09-04 18:02:58 +02:00
Vincent Petry 28e1480d1c Added test for needUpgrade for core 2014-09-04 18:02:54 +02:00
Vincent Petry 81c4043d61 Fix upgrade process when apps enabled for specific groups
Fix issue where the currently logged user was causing side-effects when
upgrading.
Now setting incognito mode (no user) on update to make sure the whole
apps list is taken into account with getEnabledApps() or isEnabled().
2014-09-04 18:02:49 +02:00
Lukas Reschke bd5796a0d1 Merge pull request #10558 from owncloud/ajaxify_user_list_for_files_external_stable7
Ajaxify user list for files external stable7
2014-09-04 13:16:52 +02:00
pdessauw 919d19c906 Highlight every uploaded files and scroll down to the last one
Backport of 0d078e48ce from master
2014-09-04 10:45:41 +02:00
Vincent Petry 459c78106d Merge pull request #10823 from oparoz/patch-1
Typo in whichOpenOffice test
2014-09-04 10:20:50 +02:00
Olivier Paroz 444e21ab15 Typ in whichOpenOffice test 2014-09-02 22:11:49 +02:00
Raghu Nayyar b59d58fdc1 Merge pull request #10789 from owncloud/fix-z-index
fix z-index of navigation sidebar for mobile devices
2014-09-03 01:03:51 +05:30
Volkan Gezer b26dd3c76b russian translation backport. closes #10759 2014-09-02 17:53:52 +02:00
Morris Jobke 3d35c7edcc fix z-index of navigation sidebar for mobile devices 2014-08-31 19:41:58 +02:00
Morris Jobke 6eb1f7a474 update public interface for getUserFolder 2014-08-31 13:27:53 +02:00
Morris Jobke f3f1d1ee73 Add optional user ID parameter for getUseFolder 2014-08-31 13:27:53 +02:00
Arthur Schiwon 11b2835cc3 retrieve local users, groups and group members in a sorted way 2014-08-31 11:56:54 +02:00
Jörn Friedrich Dreyer 8b86df308b allow empty hostname and dots in service name for oracle autosetup 2014-08-29 17:11:38 +02:00
Arthur Schiwon 98ac45fa78 Backport of #9214
Wizad: email attribute detection

remove Access as hard dependency, inject it instead

add unit test for mail detection

write log message, if original value was changed

undo falsely changed log file

trigger email detection by Wizard upon any user filter filter change. before it happenend only upon user automatic list filter creation, but not on manual editing

adjust static method vars as well
2014-08-29 15:02:08 +02:00
Robin McCorkell 617636d5a7 Add missing 'personal' mount configuration option 2014-08-29 13:12:36 +01:00
Jan-Christoph Borchardt 4d9fd199ef user mgmt: move 'Show storage location' and 'Show last log in' to settings area 2014-08-29 12:53:17 +02:00
Stephane V cc820eb824 Adds 2 checkboxes at the top of userlist in the settings, to display/hide optional columns
This fixes #9367.
2014-08-29 12:53:11 +02:00
Jan-Christoph Borchardt 135d40203c define min height/width for icon classes to make sure they show 2014-08-29 12:51:57 +02:00
Jan-Christoph Borchardt 30cc4b9293 allow horizontal scrollbar for personal and admin settings 2014-08-29 10:33:43 +02:00
raghunayyar 04e14ab5a6 Enhancement: Adds input styles to input type dates too. 2014-08-28 17:56:24 +02:00
Arthur Schiwon a133833fb9 fix wizard test, adjust to changed parameters of the tested method, introduced by 9caa354cfc 2014-08-28 11:39:16 +02:00
Arthur Schiwon 2b001adce0 backport of #8623
set result entry identifier earlier, i.e. before a continue for the same level can happen. otherwise  will always get the same value and we end up in an infinite loop

add unit test to make sure the infinite loop never comes back

Conflicts:
	apps/user_ldap/tests/wizard.php
2014-08-28 11:38:31 +02:00
Lukas Reschke 5a8db83c48 Escape error messages 2014-08-28 09:37:11 +02:00
Frank Karlitschek a3dcbe5bce 7.0.2 2014-08-26 12:03:37 +02:00
Lukas Reschke dac8dead07 Redirect user after clicking on link
Use DI
2014-08-25 22:15:54 +02:00
Lukas Reschke 09ab1f16c0 Expose setSystemValue 2014-08-25 22:15:54 +02:00
Lukas Reschke 0a2e471163 Add a trusted domain wizard
Adds a little button to the trusted domain warning, if an admin clicks on the warning he will be redirected to ownCloud and asked whether he want to trust this domain.

By far not the cleanest code, or clean at all, but does the job and I don't see a reason to make a lot of changes for this little improvement.
2014-08-25 22:15:54 +02:00
Vincent Petry a70fe184e7 Do not load apps when an upgrade is due
This makes it still possible to update from the command line, but
disables custom commands from apps
2014-08-25 16:21:03 +02:00
kondou e552573bed Warn user on resetting passwords via occ when encryption is enabled 2014-08-25 15:30:55 +02:00
Robin Appelman ffdcab6cd5 Stream downloads from Swift object stores without downloading it first 2014-08-25 13:24:25 +02:00
Vincent Petry c38fcb520a Fix share dropdown when links are not allowed
When links are not allowed, the email field does not exist and
autocomplete returns null. This causes Javascript errors.

The fix prevents entering the bogus block when links aren't allowed, as
it doesn't make sense to enter it in such cases anyway.

Backport of 98d06094e7 from master
2014-08-21 15:31:43 +02:00
Jörn Friedrich Dreyer af17de9467 fix deletion of shares 2014-08-21 15:12:06 +02:00
Vincent Petry 6c1e19b386 Do not close container/slider when clicking on single select field 2014-08-21 08:40:26 +02:00
Arthur Schiwon 2307a5a6b5 it does not affect gravity on planet earth, but only for tipsy 2014-08-21 08:40:17 +02:00
Arthur Schiwon a3a97cf1f5 make singleselect check for gravity wish, and make it south for default quota 2014-08-21 08:40:09 +02:00
Morris Jobke 4e4b299ceb replace spaces with tabs in apps.js 2014-08-21 08:39:59 +02:00
Vincent Petry e9497182ba Fix default quota settings field
The default quota settings field is initially hidden which makes it
impossible for singleSelect() to make its width measurements.

This fix uses the app navigation slide "show" event to defer the
singleSelect() initialization on the default quota field.

Refactored setQuota() into UserList._updateQuota().
Refactored duplicate event handler code into UserList.onQuotaSelect().
2014-08-21 08:39:01 +02:00
Vincent Petry 02ac579eae Use global apps slide toggle logic
Remove local app settings slide logic and make it use the global one
triggered by the "data-apps-slide-toggle" attribute.
2014-08-21 08:38:55 +02:00
Vincent Petry b94c88266b Trigger events when app-settings visibility changes 2014-08-21 08:38:49 +02:00
Frank Karlitschek 1f52e975fa 7.0.2 RC1 2014-08-21 05:36:33 +02:00
Jörn Friedrich Dreyer a3c6d20ccb use S3Client::encodeKey(), fixes #8325 2014-08-20 22:27:44 +02:00
Jörn Friedrich Dreyer 9caff0be96 add unit test for #8325 2014-08-20 22:27:40 +02:00
Vincent Petry c6e87acb96 Return whole file if range request cannot be granted due to encryption
Whenenver range headers are set and encryption is enabled, it is not
possible to automatically fseek() to the proper position.

To avoid returning corrupt/invalid data or causing a decryption error,
the range headers are stripped so that the SabreDAV code in httpGet()
returns the whole file.

Backport of cc8c1d8e07 from master
2014-08-20 21:56:09 +02:00
Jörn Friedrich Dreyer 992bd6dbf2 replace chosen with select2 to provide ajaxified user and group selection for files_external, fixes #7499
remove minified select2 js

show avatars for users, simpler results

remove unneeded users and groups from settings template

fix css, escape user and group names
2014-08-20 19:25:23 +02:00
Jörn Friedrich Dreyer f74bf923ca add select2 to app specific thirdparty 2014-08-20 19:25:10 +02:00
Arthur Schiwon 899035bfd3 backport of #10340
better check whether string resembles a DN, fixes #9887

adjust login test to code changes

unify tests
2014-08-20 17:45:04 +02:00
Joas Schilling e311535ae1 Ensure that filename is prefixed with a slash 2014-08-20 11:18:46 +02:00
Joas Schilling b1b745c052 Do not filemtime() on "." directory. Use empty string instead
Fix #9928
2014-08-20 11:18:43 +02:00
Joas Schilling a9ce0edecb Remove doubled slash between folder and path 2014-08-20 11:18:40 +02:00
Jan-Christoph Borchardt dce2e5e3b7 remove obsolete 'Download preparing' message for zip downloads, fix #3755 2014-08-19 22:53:17 +02:00
Jan-Christoph Borchardt 80d3f30ada fix multiselect bar offset on shared page 2014-08-19 17:12:07 +02:00
Robin Appelman 7842014a68 fix undefined variable 2014-08-19 14:05:26 +02:00
Robin Appelman 2facba644e only set core version at the end 2014-08-19 14:05:19 +02:00
Robin Appelman 75236b0ee6 Set maintaince mode when updating an app from the app store 2014-08-19 14:05:06 +02:00
Robin Appelman 4d2ab79392 Also set the app version when updating from app store 2014-08-19 14:04:53 +02:00
Robin Appelman 322cd65b9e Send feedback from upgrading apps to the upgrade ui 2014-08-19 14:04:44 +02:00
Robin Appelman c47a32d515 Allow loading app without checking the upgrade 2014-08-19 14:04:31 +02:00
Robin Appelman d9008f8ae4 extract upgrade parts to their own methods 2014-08-19 14:04:24 +02:00
Robin Appelman 22387b8346 handle service not available exceptions in index, remote and public.php 2014-08-19 14:04:13 +02:00
Robin Appelman 9173a661bd Throw an exception when we try to load an app that needs to be upgraded 2014-08-19 14:04:04 +02:00
Robin Appelman c69215c115 Extend OC_Util::needUpgrade to also catch app upgrades 2014-08-19 14:03:50 +02:00
Vincent Petry efca0ab4d4 Hide sharing sections in files app when sharing API is disabled
Backport of 1de5ae8845 from master
2014-08-19 12:52:32 +02:00
Jörn Friedrich Dreyer c4fd3dbd2a properly encode groups as json, not ',' separated 2014-08-19 11:21:04 +02:00
Lukas Reschke 67399901dc Fix copyright 2014-08-19 10:21:50 +02:00
Bjoern Schiessle 23f4e7c1cb fix broken unit tests 2014-08-19 10:21:37 +02:00
Bjoern Schiessle 29e9cb51dc update unit tests with configurable share folder 2014-08-19 10:21:26 +02:00
Bjoern Schiessle 1519f018a4 make share folder configurable 2014-08-19 10:21:16 +02:00
Bjoern Schiessle 2b449dd4fd set incognitoMode to true, getUser should always return false during public upload 2014-08-19 10:13:24 +02:00
Jan-Christoph Borchardt be7cb7298a fix color of links in warnings, fix #10480 2014-08-18 17:18:24 +02:00
Joas Schilling 86009a564e Add a note about overwritewebroot when using system cron
If the current webroot is non-empty but the webroot from the config is,
and system cron is used, the URL generator fails to build valid URLs.
So we notify the admin to set it up correctly.

Fix #9995
2014-08-18 16:32:16 +02:00
Vincent Petry 9d5d0cca7a Added upgrade notice to avoid timeouts 2014-08-18 16:04:39 +02:00
Vincent Petry e0c62bbd64 Fixed folder icon update routine when share owner exists
Whenever a folder has a "data-share-owner" attribute, the icon is now
properly updated to a shared folder icon.

Backport of 607ea636be from master
2014-08-18 14:55:36 +02:00
Georg Ehrke f82467f845 check if array index ocsid is set before accessing it 2014-08-18 10:45:44 +02:00
Stefan Rado cac56279c2 Make skeleton directory configurable. 2014-08-18 09:46:17 +02:00
Lukas Reschke 5e8733a9f6 Fix unit test 2014-08-15 16:52:17 +02:00
Lukas Reschke e7cea79ee7 Move authentication failed logging to checkPassword
Fixes https://github.com/owncloud/core/issues/10366
2014-08-15 16:52:13 +02:00
Clark Tomlinson 1a2bae347a Merge pull request #10440 from owncloud/enforce-debug
Remove ability to trigger DEBUG mode via cookie
2014-08-15 09:13:27 -04:00
Jan-Christoph Borchardt ed6365af4a change error text color to white for better contrast, fix #10424 2014-08-15 14:21:58 +02:00
Oliver Gasser 8cd5e652de Compare upload limit against biggest file
When uploading multiple files from the web interface, compare the PHP
upload limit against the largest file, not against the sum of all files.
2014-08-15 09:42:40 +02:00
pzy 5dd950bc0a Update public.php
added tag to make facebook load a preview picture

Update public.php

add check ifMimeSupported and put the thumbsize in a variable

generate preview for all supported mimes
2014-08-15 09:17:35 +02:00
Thomas Müller e3cf107e1d in order to prevent false-positives on the code checker - exec and eval will not longer be grepped for 2014-08-14 23:20:50 +02:00
Bjoern Schiessle 4c6c22c4e3 we need the recipient as a additional parameter to know for which share the notification was send 2014-08-14 17:45:18 +02:00
Vincent Petry 35c133143a Fix issue when no apps are enabled
Properly initialize $apps array
2014-08-14 13:52:31 +02:00
Bjoern Schiessle 34e0259fa8 new unit test added 2014-08-14 11:45:30 +02:00
Bjoern Schiessle fe119300c7 no error if we try to delete a file which no longer exists 2014-08-14 11:45:13 +02:00
Bjoern Schiessle 9a83dbec76 no special action for folder named 'Shared' needed 2014-08-14 11:44:59 +02:00
Bjoern Schiessle bc1848933d add error message if user wants to rename a file which no longer exists 2014-08-14 11:44:44 +02:00
Robin Appelman e2f23b24f7 Cast file id's to int so we can compare them properly 2014-08-14 00:55:10 +02:00
Jan-Christoph Borchardt 4593d9f819 trigger lazy loading earlier, fix #9823 2014-08-14 00:54:04 +02:00
Thomas Müller 0711ab5de7 Merge pull request #10406 from owncloud/japanese-stable7
fix japanese lang code
2014-08-13 23:57:14 +02:00
Volkan Gezer 1266ebdb10 fix japanese lang code 2014-08-13 22:29:56 +02:00
Volkan Gezer 1b4793db66 Typo fix NL 2014-08-13 22:23:50 +02:00
gekmihesg eb68b0d5c6 Load authentication backends before tryBasicAuth 2014-08-13 16:09:59 +02:00
Bjoern Schiessle ca3d09c940 add unit test for aes256/aes128 2014-08-13 13:06:29 +02:00
Bjoern Schiessle f979a0c09d update existing unit tests 2014-08-13 13:06:15 +02:00
Bjoern Schiessle 09ed6b5ad4 support aes 256 2014-08-13 13:05:41 +02:00
Jörn Friedrich Dreyer 113049b8f2 Merge pull request #10365 from owncloud/check_quota_on_new_via_web_stable7
check quota when trying to download a file via new -> web
2014-08-13 11:54:02 +02:00
Jörn Friedrich Dreyer c8f81e6241 check quota when trying to download a file via new -> web 2014-08-13 10:44:52 +02:00
Bjoern Schiessle 7aa35e9f24 fix broken variable name, recoveryPasswordSupported is now recoveryEnabledForUser 2014-08-12 19:27:09 +02:00
Bjoern Schiessle 9f9c18bd74 add unit tests 2014-08-12 17:54:54 +02:00
Bjoern Schiessle 6af1a2d914 fix detection of system wide mount points 2014-08-12 17:52:40 +02:00
Jan-Christoph Borchardt 3432b2e386 Merge pull request #10271 from miicha/patch-2
Fix display of checkboxes in Pale Moon
2014-08-12 13:00:05 +02:00
Bjoern Schiessle 5b27b01525 remove 'no people found' entry 2014-08-12 10:02:01 +02:00
Tom Needham 3bcca4f344 Add scrollto to the url if sharing a file for long file lists 2014-08-11 18:25:01 +01:00
Tom Needham 8972f74ecf Fix link to files and folders in internal share emails 2014-08-11 18:25:01 +01:00
Thomas Müller 1051460afc in case $_POST['itemSourceName'] does not exist we simply default it to null 2014-08-11 17:42:37 +02:00
Jean-Louis Dupond 6907eb3eb0 Backport of #9848
Fix memberOf detection. Fixes: #9835

Fix remarks in #9848

Fix initializing in #9848
2014-08-11 17:00:38 +02:00
Thomas Müller d1658c1d2c shared files/folders are not mounted 2014-08-11 14:42:56 +02:00
miicha cb0cdd1d74 remove obsolete code comment 2014-08-11 13:36:11 +02:00
Bjoern Schiessle 5c89d9c9ee update unit test, min date should be always today + 1 2014-08-11 10:07:41 +02:00
Bjoern Schiessle 493b724935 set minDate always to today + one day 2014-08-11 10:07:30 +02:00
Jan-Christoph Borchardt b50a4e918b simplify app navigation look
* remove superfluous border as it is distinguished enough via background color
* remove superfluous border from settings entry
* fix settings entry width
2014-08-11 08:46:17 +02:00
Robin Appelman db7b245800 Add group management to the public api 2014-08-10 20:58:31 +02:00
Jan-Christoph Borchardt b3e2f6b457 remove confusing 'automatic logon rejected' message, fix #8591 2014-08-09 22:06:08 +02:00
Thomas Müller db117bd468 Merge pull request #10287 from owncloud/fix_search_in_shared_files_stable7
Fix search in shared files stable7
2014-08-08 17:37:21 +02:00
Bjoern Schiessle 8c892638f5 remove share permissions if user is excluded from sharing 2014-08-08 14:01:49 +02:00
Bjoern Schiessle a8f24ed408 only show "share with others" and "share by link" navigation bar entries if user is allowed to share files 2014-08-08 14:01:37 +02:00
Jörn Friedrich Dreyer 41fe3f2652 add test for search() in shared cache 2014-08-08 11:47:56 +02:00
Jörn Friedrich Dreyer 592a2dc82f traverse folders in php to search in shared files 2014-08-08 11:47:47 +02:00
Bjoern Schiessle 18c023da16 add logout hook to remove keys from session 2014-08-08 09:36:48 +02:00
Georg Ehrke 68ba31fd4c implement a txt preview fallback for the case that ttf is not support 2014-08-07 22:59:25 +02:00
Arthur Schiwon 0c057bf310 ldap_ prefix will be added in invokeLDAPMethod(), having it would lead to a unexisting function, fixes #9829 2014-08-07 21:41:30 +02:00
miicha 4748923dbc Fix display of checkboxes in Pale Moon
In Pale Moon (24.7.1) the checkboxes in the file list are not in the responding line on the icon but all of them are next to the "select all" checkbox.
This fix should not change anything in Firefox and chromium (on windows) but as the comment states it has to be checked on KDE/Qt.
BTW why is position absolute naccessary? For my understanding relative is exactly what you want to use in such a case...
2014-08-07 19:33:44 +02:00
Tom Needham 44ae0868fd Use human readable relative date for oc-dialog-filepickers 2014-08-07 15:17:51 +01:00
Thomas Müller 8f8923a714 we can only close the session if encryption is not used 2014-08-07 14:32:18 +02:00
Dan Jones 9ba8f5b604 fix tiny thumbnails in public preview/share mode 2014-08-07 14:31:14 +02:00
Robin Appelman 2213127094 trim leading slash 2014-08-07 13:44:49 +02:00
Robin Appelman 9598efc7cd Fix SharedCache::getPathById 2014-08-07 13:44:47 +02:00
Robin Appelman 8c56be5722 return null instead of throwing an exception 2014-08-07 13:42:25 +02:00
Robin Appelman 34963b0d89 Fix Folder::getById 2014-08-07 13:42:17 +02:00
Thomas Müller 2b9c093510 Merge pull request #10226 from owncloud/fix-lowlat-cache-autoload-stable7
Fix lowlat cache autoload stable7
2014-08-07 10:30:13 +02:00
Bernhard Posselt 3c68defac2 use id instead of resourceId 2014-08-07 10:19:07 +02:00
Bernhard Posselt 8417f55b01 dont strip the s from the resource 2014-08-07 10:19:00 +02:00
Jörn Friedrich Dreyer 1ca1e1d4d1 fix return documentation 2014-08-07 00:55:22 +02:00
Thomas Müller 5b88d3d3fc prevent PHP errors and enhance logging 2014-08-07 00:55:22 +02:00
Andreas Fischer 12c7ddc18f Add registerAutoloaderCache(). 2014-08-06 21:40:48 +02:00
Andreas Fischer cc1d95cbe5 Memcache\Factory: Remove static, use globalPrefix. 2014-08-06 21:40:38 +02:00
Andreas Fischer ef6a0254f9 InstanceId is properly injected into factory. Remove comment. 2014-08-06 21:40:22 +02:00
Thomas Müller d59b94fa4c Merge pull request #10204 from owncloud/backport-10144-stable7
Backport of #10144 to stable7
2014-08-06 15:44:52 +02:00
Bjoern Schiessle 079390c037 remove trailing slash from path 2014-08-06 15:19:10 +02:00
Bjoern Schiessle 8a038eeeef remove unused variable 2014-08-06 15:18:57 +02:00
Bjoern Schiessle 7540a58ce7 add unit test to make sure getVersions returns the correct result 2014-08-06 10:43:51 +02:00
Bjoern Schiessle 97a62f6bc4 make sure that the versions array contains the correct path 2014-08-06 10:43:38 +02:00
Joas Schilling cc531fc905 Fix isLoggedIn() check for user '0'
Fix #9972

Conflicts:
	lib/private/user/session.php
2014-08-06 10:24:05 +02:00
Joas Schilling 2e04c5e956 Fix getting group '0' from database backend
Fix #9972
2014-08-06 09:55:11 +02:00
scolebrook ec79e5470a Add ability to theme iOS and Android client URLs just like desktop URLs.
* added to personal settings page.
* fix uppercase issue
* remove escaping because it's unneeded
2014-08-06 08:56:31 +02:00
Jan-Christoph Borchardt 9b9fbc60c0 use correct app-icon class for new apps as well, fix icon size 2014-08-06 08:35:56 +02:00
Bjoern Schiessle a1656abb4c don't display share permission if resharing was disabled by the admin 2014-08-05 13:46:23 +00:00
Thomas Müller 8f8f3d1e43 close session right before the download starts - this enables parallel downloads 2014-08-05 14:55:07 +02:00
Arthur Schiwon 3ebdb3593a Hack to avoid Agent DN + Password being overwritten by some ugly browsers with stored site credentials
Conflicts:
	apps/user_ldap/css/settings.css
2014-08-05 12:17:36 +02:00
Jan-Christoph Borchardt 5bc562d2ce fix long filename display in filepicker 2014-08-05 07:47:25 +02:00
Jan-Christoph Borchardt 039b1e3715 also fix filepicker for smaller screen sizes 2014-08-05 07:47:08 +02:00
Jan-Christoph Borchardt b21a1de07a fix date display in filepicker 2014-08-05 07:47:08 +02:00
Remco Brenninkmeijer aba52ff02f Quick fix for #9119. Increase preview to keep empty message more centered and push footer down. 2014-08-05 07:46:27 +02:00
Robin Appelman 3e103f5bee Dont touch non-oc tables when doing the InnoDB repair step 2014-08-04 17:10:18 +02:00
Frank Karlitschek 5a57d2bd42 7.0.1 2014-08-04 15:43:20 +02:00
Morris Jobke ed89a746e2 Merge pull request #10122 from malditoastur/patch-1
Update ast.php
2014-08-04 11:07:57 +02:00
malditoastur 78af01393f Update ast.php
Following the thread in:

https://github.com/owncloud/core/issues/10112

I modify this file hoping to be included in next ownCloud 7.0.x version. (Please, I don't have enough github knowledgment. Sorry if i'm doing something wrong..)
2014-08-02 21:06:13 +02:00
Thomas Müller f359e3432e only if the environment variable RUN_OBJECTSTORE_TESTS is set the object store unit test will be executed 2014-07-31 22:43:45 +02:00
Frank Karlitschek c0f0e79b5e Merge branch 'stable7' of https://github.com/owncloud/core into stable7 2014-07-30 17:40:05 -04:00
Frank Karlitschek 727374a6f3 7.0.1 RC1 2014-07-30 17:39:38 -04:00
Jan-Christoph Borchardt a0f024fec2 set max width for notifications so they won't overlap the whole header 2014-07-30 21:30:08 +02:00
Jan-Christoph Borchardt 32cec6cae4 fix yellow notification style 2014-07-30 21:29:54 +02:00
Jan-Christoph Borchardt 57c954a345 fix notification preventing top bar clickability, fix #9680 2014-07-30 21:29:45 +02:00
Georg Ehrke 24c8774b7f don't preload videos on public sharing, fixes #10042 2014-07-30 21:11:23 +02:00
Georg Ehrke f68fa072c7 extract transparency fix from #8050 2014-07-30 18:37:51 +02:00
Robin Appelman 4f40cde66a Also keep maxY into account when scaling a preview while preserving aspect ratio 2014-07-30 17:31:21 +02:00
Bjoern Schiessle 19bad71da2 make sure that we always find all versions 2014-07-30 17:21:37 +02:00
Bjoern Schiessle 2e8f993299 add unit test for rename and copy operation 2014-07-30 17:21:29 +02:00
Bjoern Schiessle 5eca22d229 make the versions and encryption app aware of the copy operation 2014-07-30 17:21:19 +02:00
Jan-Christoph Borchardt 78ea700752 Merge pull request #9902 from Der-Jan/stable7
Fixed wrong brackets in apps settings
2014-07-30 17:21:38 +02:00
Bjoern Schiessle 60b1a6e75f add unit test 2014-07-30 15:32:20 +02:00
Bjoern Schiessle 0b8135dcc4 make sure that we set the expire date if a date is adefault date is set 2014-07-30 15:32:11 +02:00
Jan-Christoph Borchardt 8f9deb118a also use link icon for the folders .. 2014-07-30 13:20:08 +02:00
Thomas Müller dc41f63930 migration test for sqlite - adding type mapping for 'tinyint unsigned' 2014-07-30 11:50:26 +02:00
Morris Jobke 185e41afdd Fix template rendering for 'blank' templates 2014-07-30 10:33:55 +02:00
Thomas Müller eb665bf3c8 only call exec() if allowed to 2014-07-29 21:39:52 +02:00
Jan-Christoph Borchardt 64094c5384 use more understandable 'link' icon for public links (instead of hard to recognize globe), fix #9707 2014-07-29 20:19:53 +02:00
Michael Göhler 1cd1214b93 max icon size for app menu 2014-07-29 16:32:48 +02:00
Bjoern Schiessle d677040bdc define type in pre hook 2014-07-29 16:28:37 +02:00
Bjoern Schiessle 72459ca50a show a warning in the personal settings and admin settins if the encyption keys are not initialized 2014-07-29 16:26:51 +02:00
Bjoern Schiessle b4a379b7e3 remove share permission if user is excluded from sharing 2014-07-29 14:05:02 +02:00
Bjoern Schiessle 59aa54ddb8 update attributes for share with user list, file should always have delete permissions, this means unshare in this context, and the overview page is always a root view 2014-07-29 14:01:06 +02:00
Thomas Müller 7287789588 Merge pull request #9990 from owncloud/fix-failing-unit-test-stable7
function declaration did not match
2014-07-29 09:17:03 +02:00
Thomas Müller bfb6b7ba90 function declaration did not match 2014-07-29 07:53:44 +02:00
Thomas Müller a50c33a91f Merge pull request #9946 from owncloud/remove-mssql-bundle-stable7
remove MssqlBundle
2014-07-28 22:44:20 +02:00
Thomas Müller 53c1e3d41b function declaration did not match 2014-07-28 22:38:56 +02:00
Thomas Müller 3b760141d6 remove MssqlBundle 2014-07-28 22:21:13 +02:00
Vincent Petry 8757a99f78 Fix enforced share expiration date to be based on share time 2014-07-28 17:58:12 +02:00
Bjoern Schiessle 663e8bc5e2 adjust error code 2014-07-28 17:28:42 +02:00
Bjoern Schiessle 2e28b7fff9 add OCS api call to set expire date for link shares 2014-07-28 17:28:34 +02:00
Thomas Müller 1831ae9c9b Merge pull request #9948 from owncloud/backport-9904-stable7
Dont throw an error when calling $server->getUserFolder when logged out
2014-07-28 17:11:00 +02:00
Thomas Müller 51cbe2a0ee generate copy of sqlite database file in data directory 2014-07-28 16:55:31 +02:00
Thomas Müller 02a61c0b6a ownCloud users are exported as address book 2014-07-28 16:35:37 +02:00
Jan-Christoph Borchardt 7cd1a48222 enable input grouping also outside of log in screen 2014-07-28 15:13:04 +02:00
Morris Jobke 0cabafb513 update getID3 library & add autoload 2014-07-28 15:06:17 +02:00
Robin Appelman df0d00c8c6 Dont try to execute jobs that no longer exist 2014-07-28 13:47:40 +02:00
Jan-Christoph Borchardt 2d7379da2c improve look of search on mobile, save space in top bar 2014-07-28 13:15:43 +02:00
Vincent Petry 9cd741417a Set version AFTER a successful update
If an app upgrade failed, the core version will not be increased either
in the database. This will re-display the update page and make it
possible to redo the apps upgrade.

Note that any core repair routine must take into account that an update
might need to be redone again even though the core's DB state is already
the one of the new version.
2014-07-28 11:21:13 +02:00
Lukas Reschke 05301825e2 Verify whether the URL is valid
Required for https://github.com/owncloud/mail/pull/100#issuecomment-50266017

@karlitschek Backport for stable6 and stable7 requested.
2014-07-28 11:08:15 +02:00
Robin Appelman 87ec3fbf1d Dont throw an error when calling $server->getUserFolder when logged out
Conflicts:
	lib/private/server.php
2014-07-28 10:08:14 +02:00
Der-Jan c72f0e692b Fixed wrong brackets in apps settings 2014-07-25 16:22:31 +02:00
Björn Schießle d28b4caa2f Merge pull request #9892 from owncloud/fix_sharing_update_oc7
fix sharing update, add proper escaping (oc7 backport)
2014-07-25 11:36:36 +02:00
Bjoern Schiessle 06bcf3db8d fix sharing update, add proper escaping 2014-07-25 10:21:18 +02:00
Vincent Petry d6e61745c8 Fix preview animation on uploading
When adding/uploading files, the preview is now animated.
When loading a list of files directly the preview is displayed directly.
2014-07-25 00:00:47 +02:00
Thomas Müller f33c49e2be - adding default value for $recoveryPassword
- set password correctly in lost password
2014-07-24 15:58:30 +02:00
Thomas Müller c152ab4572 register type mappings for unknown/unsupported mysql types 2014-07-24 15:37:49 +02:00
Thomas Müller f75f1b4412 Adding test which breaks because bit and/or enum datatypes are used 2014-07-24 15:37:49 +02:00
Vincent Petry 127aa309fb Prevent cron.php to trigger apps updating 2014-07-23 22:42:41 +02:00
Thomas Müller 303e504fcb only commit in case a transaction is active 2014-07-23 21:37:30 +02:00
Robin Appelman 3c0f5d02ba Fix remote share when remote server is installed at the root 2014-07-23 17:58:39 +02:00
Remco Brenninkmeijer faf0bfb29b Backport of sorting fix from master
Changed default sorting except for names.
Show sorting icons when hovering over
Cleanup of unnecesary addition
Fixed comments from PVince81
Corrected (Netbeans?) inserted spaces
While busy cleaning, also removed extra enters
Adjusted tests for new default sorting
Sorting triangles pointing up for ascending, down for descending

Backport + squash of 1a65d09..319caa7 from master
2014-07-23 15:54:26 +02:00
Frank Karlitschek c7d7ca455a updated the 7.0.0 release with some last minute fixes 2014-07-22 15:54:34 -04:00
Thomas Müller 555fcbdd7d Merge pull request #9777 from owncloud/fix-chunked-upload-stable7
adding special handling of checkPrecondition() for chunked upload
2014-07-22 17:25:50 +02:00
Thomas Müller 69065ceecb Merge pull request #9775 from owncloud/backport-9738-stable7
Backport 9738 stable7
2014-07-22 17:24:33 +02:00
Thomas Müller 61d9967221 adding special handling of checkPrecondition() for chunked upload 2014-07-22 15:49:20 +02:00
Lukas Reschke a393670f7d Remove uneeded strip_tags
This `strip_tags` seems to be completely unneeded and will cause problems with passwords containing stripped characters. (e.g. `<` or `>`)

Needs https://github.com/owncloud/core/pull/9735 to be merged first.
2014-07-22 15:39:34 +02:00
Andreas Fischer 9be9e777c2 Extract Auth Header logic into new function handleAuthHeaders(). 2014-07-22 15:39:33 +02:00
Andreas Fischer 0e732982ae Deduplicate user/password extraction from alternative HTTP headers. 2014-07-22 15:39:33 +02:00
Frank Karlitschek 508fd15975 7.0.0 2014-07-21 18:55:21 -04:00
Joas Schilling e482ba60bc Correctly use groups parameter only when its not empty
Fix #9745

Backport of c84c1f5 from master
2014-07-21 20:45:27 +02:00
Thomas Müller bad2d4d408 perm -> permissions 2014-07-21 17:14:21 +02:00
Joas Schilling a77044da9e Do not force isAdmin as true and so the list is filtered correctly 2014-07-21 14:32:20 +02:00
Joas Schilling 9c6e87849b Fix username for subadmins and only send subadmin groups
Fix #9748
2014-07-21 14:32:20 +02:00
Vincent Petry f80f8d9cc4 Merge pull request #9723 from dupondje/stable7
Small translation fix. Fixes: #9719
2014-07-21 10:49:03 +02:00
Thomas Müller 00c0495703 Merge pull request #9749 from owncloud/backport-9672-stable7
Backport 9672 stable7
2014-07-21 00:36:23 +02:00
Vincent Petry e7f7ac38c9 Added test of OCS privatedata to trigger key duplication 2014-07-20 23:33:11 +02:00
Andreas Fischer 6094da6c76 Document why we have to check with defined() first. 2014-07-20 23:33:11 +02:00
Andreas Fischer 22c957d475 Make MySQL return "number of found rows" instead of number of "affected rows". 2014-07-20 23:33:11 +02:00
Morris Jobke 06158966f1 Merge pull request #9742 from owncloud/fix-repair-innodb-9737-stable7
check if $tables is an array
2014-07-20 21:36:52 +02:00
Arthur Schiwon 47d2e963be $.unique works only for DOM elements 2014-07-20 16:09:01 +02:00
Andreas Fischer 7403476489 Pass existing Net_SFTP object into Net_SFTP_Stream. 2014-07-20 15:16:31 +02:00
Thomas Müller 981bd7da2a check if $tables is an array 2014-07-19 20:24:34 +02:00
Lukas Reschke bab5de8e8f Merge pull request #9706 from owncloud/keep_session_in_sync_stable7
keep session in sync
2014-07-19 10:37:14 +02:00
Arthur Schiwon acf80ba7cc Backport #9576
warn and continue gracefully if bcmath is not installed

make tests deal with missing bcmath
2014-07-18 19:17:19 +02:00
Jean-Louis Dupond abe2c8ce76 Small translation fix. Fixes: #9719 2014-07-18 14:41:37 +02:00
Andreas Fischer 0b8de8087b login() must be called after getServerPublicHostKey(). 2014-07-18 13:35:23 +02:00
Jörn Friedrich Dreyer 34cb09b777 fix user session tests by making them update \OC:: as well 2014-07-18 10:46:17 +02:00
Frank Karlitschek ef202509f3 update upstore api url 2014-07-17 21:52:14 -04:00
Frank Karlitschek cce2cb578f update the appstore api url 2014-07-17 21:51:32 -04:00
Frank Karlitschek 8d851435b6 7.0.0 RC3 2014-07-17 21:18:17 -04:00
Thomas Müller b1575eda3a Merge pull request #9690 from owncloud/kill-too-long-index-stable7
Revert add-share-index
2014-07-17 20:53:59 +02:00
Thomas Müller fc6d1177b7 Revert "add share index"
This reverts commit e19b3a8794.
2014-07-17 17:19:43 +02:00
Thomas Müller a66ee26187 kill unused require of MapperTestUtility.php 2014-07-17 17:18:42 +02:00
Vincent Petry e2f2313eb5 Fixed JS and CSS issues in users page
- Renamed "delete" to "deleteEntry" to make IE8 happy.
- Added missing "svg" class for the "+" button
- Added height to "+" button but was unable to properly align it
2014-07-17 16:46:41 +02:00
Thomas Müller 7886b900f1 fixing namespace of MapperTestUtility
and rename file to be lowercase
2014-07-17 15:53:16 +02:00
Vincent Petry b020e6b308 Merge pull request #9674 from owncloud/stable7-9647
[stable7] Add unit test for multi-user configuration loading
2014-07-17 13:57:38 +02:00
Bjoern Schiessle 4de6896028 check that the file proxies are enabled after each test 2014-07-17 13:17:11 +02:00
Bjoern Schiessle f5aa292587 update keys recursively if a folder was moved 2014-07-17 13:17:06 +02:00
Jörn Friedrich Dreyer 0cde504e80 keep session in sync 2014-07-17 13:03:56 +02:00
Thomas Müller 7e3a4b59a2 Merge pull request #9695 from owncloud/revert-backport-9550-stable7
Revert backport 9550 stable7
2014-07-17 11:02:39 +02:00
Thomas Müller 36039ca0c3 Revert "files: storage: rename should check parent directories of old and new files"
This reverts commit a163b185ab.
2014-07-17 09:57:08 +02:00
Thomas Müller 8af6b723bf Revert "Fix renaming files in the root folder of a MappedLocal storage"
This reverts commit 0895324553.
2014-07-17 09:56:52 +02:00
Robin Appelman 0895324553 Fix renaming files in the root folder of a MappedLocal storage 2014-07-17 09:19:20 +02:00
Morris Jobke e0a69d4c0a fix CSS coding style 2014-07-16 18:05:35 +02:00
Stephane V 198a30d964 Fix #9590. Fix #9612.
For external storage with lots of parameter settings (>4), wrap the content of the cell to let a full view of the parameters.
The rows of the table are now always visible until the end (the trash icon is accessible).
(Note : A strange 3px margin forces me to add a class on the row added by javascript, to be able to align them with the rows rendered by the server.)
2014-07-16 18:05:35 +02:00
Tigran Mkrtchyan a163b185ab files: storage: rename should check parent directories of old and new files
as described by POSIX.1-2008
(see http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html)

Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
2014-07-16 16:09:05 +02:00
Robin McCorkell 4fa39283f6 Add unit test for multi-user configuration loading 2014-07-16 14:54:00 +01:00
Bjoern Schiessle ad249155ec introduce some encryption exceptions and catch additional error cases 2014-07-16 15:32:39 +02:00
Bjoern Schiessle ec30cc4f21 make sure that the crypt library is loaded 2014-07-16 15:32:30 +02:00
Vincent Petry ca34fb9ea0 Correctly return the owner display name for children of shares 2014-07-16 14:26:16 +02:00
Vincent Petry f40554fb2e Merge pull request #9584 from anexia-it/bug-9583
Bugfix for issue #9583
2014-07-16 11:20:35 +02:00
Bjoern Schiessle cca04f3514 make sure that 'OC_Theme' exists before checking if the method exists 2014-07-16 10:13:51 +02:00
Jörn Friedrich Dreyer 8ebe6ce7bb fix logger implementation and test 2014-07-15 20:37:07 +02:00
Jörn Friedrich Dreyer 292ce3f484 mkae getRelativePath of file search results overwriteable in subclasses 2014-07-15 20:33:59 +02:00
Jörn Friedrich Dreyer eaa5c530de return relative path 2014-07-15 20:33:50 +02:00
Jörn Friedrich Dreyer ebce1e1c41 use fileinfo object in search results 2014-07-15 20:33:37 +02:00
DeLtAfOx d3b6a6333e backport of #9628
Userlist: async load doesnt fill checked group/subadmin array

Strinct comparsion fix
2014-07-15 19:11:37 +02:00
Lukas Reschke c5c600bd7b Update info.xml 2014-07-15 17:28:43 +02:00
Vincent Petry 078637130e - Added test to trigger index id error
- re-enable encryption migration tests
- sqlite requires reconnect after schema changes

Backport of 10a2955 from master
2014-07-15 17:04:50 +02:00
libasys 3113e99c90 Update share.php
Added empty for error:
```
Undefined index: file_target at /var/www/owncloud/lib/private/share/share.php#1911
```
2014-07-15 16:56:28 +02:00
Bjoern Schiessle 9fa495cf70 throw exception if file is to large for trash bin 2014-07-15 13:57:01 +02:00
Philippe Jung 5a36841144 Backport of #9570
[Issue #9559] identifiers uid=xxx must be considered as user DN and not as owncloud users

File written by blizzz
2014-07-15 11:46:44 +02:00
Stephan Peijnik b51d54a84c Updated code to reflect changes introduced to \OC\Group\MetaData.
Now that fetchGroups() does not exist anymore and getGroups() is called
directory, the 'groups' property does not exist anymore.
Instead, we now generate that array on the fly and return it from getGroups.

Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-07-15 11:15:38 +02:00
Stephan Peijnik a4a0ebf9db Use is_null() instead of empty() when checking the return value of GroupManager::get().
Additionally, $grp was renamed to $group inside
 \OC\Group\MetaData::fetchGroups().

Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-07-15 10:56:20 +02:00
Stephan Peijnik a58f85d3ee Do not remove spaces from group IDs in \OC\Group\MetaData::generateGroupMetaData.
Change suggested by blizz in PR #9584.

Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-07-15 10:56:10 +02:00
Stephan Peijnik 3de1d2cfff Renamed $grp to $group in foreach loop.
Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-07-15 10:55:43 +02:00
Stephan Peijnik 75d45c4e49 Fix indentation.
Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-07-15 10:55:43 +02:00
Stephan Peijnik 0acb76c97f Fixes #9583
lib/private/group/metadata.php: For subadmins also return an array of groups, indexed by their GIDs.
settings/users.php: Convert array of arrays to array of GIDs before calling into OC_Group::displayNamesInGroups.

Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-07-15 10:55:32 +02:00
Thomas Müller 8e8c6c9f72 reduce share action text to the user name only 2014-07-15 09:16:11 +02:00
Arthur Schiwon 334ace9080 Backport of #9562
remove dead code

do not filter groups. but update the user count according to the filter

improve phpdoc

improve metadata runtime cache

add metadata tests

fixing PHPDoc
2014-07-15 08:31:43 +02:00
Robin Appelman 8ec00dcb66 Use the correct path when building the FileInfo for the search result 2014-07-14 21:33:07 +02:00
Thomas Müller b7d717e47c append file extension to the temporary file which contains the downloaded archive - in case of zip files fileinfo doesn't seem to return anything reliable 2014-07-14 17:06:36 +02:00
Robin Appelman 9d3336002b Remove deleted versions from the cache 2014-07-14 15:32:33 +02:00
Robin Appelman c5278a421a Dont delete versions as local files 2014-07-14 15:32:19 +02:00
Robin Appelman 36360a6e8a Expose the user manager in the public server container 2014-07-14 15:14:36 +02:00
Robin Appelman 169b328d41 Add public interfaces for User, UserManager and UserSession 2014-07-14 15:14:29 +02:00
Daniel Hansson 1a01debe68 Fix for #9422 2014-07-14 12:59:07 +02:00
Vincent Petry 1cc8be0701 Added mountType attribute and adapted Delete action text
Added mountType attribute for files/folder to indicated whether they are
regular, external or shared.

The client side then adapts the "Delete" action hint text based on this
information.

Only the mount roots must have the delete icon hint adapted.
To make this detectable on the client side, the mountType can now
be null, "shared", "shared-root", "external" or "external-root".

This also gives room to icon customization on the client side.
2014-07-14 11:54:05 +02:00
Andreas Fischer bae4579d60 Add short description explaining how SFTP ext storage class works. 2014-07-14 11:45:35 +02:00
Andreas Fischer fae2a00922 The file providing the sftp:// scheme needs to be included manually. 2014-07-14 11:45:28 +02:00
Georg Ehrke 9ebb037fc2 improve check for duplicate apps 2014-07-14 10:00:38 +02:00
Georg Ehrke 5bb42bedec add proper version comparision in OC_Installer::isUpdateAvailable 2014-07-14 10:00:33 +02:00
Frank Karlitschek e3d50804f7 7RC2 2014-07-13 22:45:11 -04:00
Vincent Petry 14ea0ea3bc Propagate file action changes to the file lists
Whenever an app needs to register an event late, it does that on the
original file actions object.

Since the file actions that the file list work on is a merged list, not
the original one, the registration event needs to be propagated there as
well.
2014-07-10 16:15:46 +02:00
Thomas Müller 66130ad336 fixing JS syntax errors
remove the group in case the last user has removed from that group

cleanup

use .filterAttr()
2014-07-10 16:13:01 +02:00
Arthur Schiwon a310415b09 increment group counters when a user is created
decrease user count in affected groups after user delete

increase/decrease everyone count on user creation/deletion

avoid global selector
2014-07-10 16:12:53 +02:00
Thomas Müller 10bac56551 adding 'groups' entry to remote apps 2014-07-10 15:47:29 +02:00
Thomas Müller 32c6afba90 fixing typos 2014-07-10 15:47:29 +02:00
Robin Appelman 31d8bce383 debounce the search function 2014-07-10 15:32:17 +02:00
Morris Jobke 2fb022fbc3 fix translations 2014-07-09 16:19:32 +02:00
Volkan Gezer 5911188211 fix apostrophe fixes #9486 2014-07-09 16:19:32 +02:00
libasys 9ccadcfe80 BugFix missing $item on 'file_target' Line 1911
I think this should be right!

Backport of e70a7af6da from master
2014-07-09 16:05:47 +02:00
Arthur Schiwon 9ee46bbe91 test class is already in preferences.php
Conflicts:
	tests/lib/preferences-singleton.php
2014-07-09 13:14:34 +02:00
Arthur Schiwon bc1ff4744b support for AD primary groups
support for primary groups

actually the problem is only known on AD, it is only needed to take care of their attributes

adjust to ADs special behaviour

this change was not intended

cache the SID value so it is not requested over and over again

theres only one, use singular

we are access

add tests for new Access methods

add tests for new Group methods

address scrutinizer findings, mostly doc

call ldap_explode_dn from ldap wrapper, enables tests without php5-ldap

PHP Doc

yo dawg, i heard you like backslashes … php doc fix

PHPDoc updated and typos fixed while reviewing
2014-07-08 21:34:38 +02:00
Vincent Petry 6043a90a71 Fix update cleanup to only affect file and folders
Fix bug in the SQL query that cleans up stray shares for removed
files/folders, which is now correctly limited to that item type instead
of also removing all other share types.

Backport of f4f52cf from master
2014-07-08 18:10:03 +02:00
Thomas Müller 0e62a7dc59 Upload abortion is now detected within the OC_Connector_Sabre_File::put()
OC_Connector_Sabre_AbortedUploadDetectionPlugin is pointless

Adding unit test testUploadAbort()
2014-07-08 17:40:08 +02:00
Thomas Müller 7a6b76f96e Adding new interface \OCP\Activity\IExtentsion
Adding method getNotificationTypes()
Adding method filterNotificationTypes()
Adding method getDefaultTypes()
Adding method translate() and getTypeIcon()
Adding method getGroupParameter()
Adding method getNavigation()
Adding method getNavigation()
Adding method isFilterValid() and getQueryForFilter()
Adding unit tests for \OC\ActivityManager
2014-07-08 16:38:18 +02:00
blizzz a78293dd3f Merge pull request #9500 from owncloud/fix9475
Avoid unnecessary writing to the DB when prefrences are not changed in fact
2014-07-08 16:30:09 +02:00
Robin Appelman 1ce9ba1ebc use case insensitive LIKE when searching for files in mysql 2014-07-08 15:49:05 +02:00
Robin Appelman 2f15ae988f Add repair step to set MySQL collation to utf8_bin
Set default collation of mysql connection to utf8_bin
Set utf_bin as default collation for new tables
2014-07-08 15:14:29 +02:00
Christopher T. Johnson c02e95ff40 Fix Signiture Does Not Match when mounting Amazon S3 external storage
For some reason the aws-sdk-php package does not caclulate the
signiture correctly when accessing an object in a bucket with a name of
'.'.

When we are at the top of a S3 bucket there is a need(?) to have a directory
name.  Per standard Unix the name picked was '.' (dot or period).  This
choice exercises the aws-sdk bug.

This fix is to add a field to the method to store the name to use instead of
'.' which at this point is hard coded to '<root>'.  We also add a private
function 'cleanKey()' which will test for the '.' name and replace it with
the variable.  Finally all calls to manipulate objects where the path is
not obviously not '.' are processed through cleanKey().

An example where we don't process through clean key would be
	'Key' => $path.'/',

Use correct relationship operator

Per feed back use === instead of ==

use '/' instead of '<root>'
2014-07-08 14:26:34 +02:00
Arthur Schiwon 03c13021db also appconfig shall not write to database if the value is unchanged 2014-07-08 12:30:38 +02:00
Morris Jobke 01c0601d39 specify CSS rule for warning & update fieldsets - fixes #9491 2014-07-08 09:45:57 +02:00
Stephane V 8bd5c6e04d Fixes #9497 2014-07-08 01:19:24 +02:00
Arthur Schiwon 76b310de9d add test cases. also split test classes in a file each, looks like only the first class is being executed 2014-07-08 00:20:46 +02:00
Arthur Schiwon ee2886331e do not write to database when the value is the same 2014-07-08 00:19:58 +02:00
Arthur Schiwon ed1c918d9e don't trigger update from checkPassword, it is already called by userExists, this is enough. 2014-07-08 00:19:17 +02:00
Robin Appelman 18f5f85160 When changing the mountpoint of an external storage, ensure the old one is removed 2014-07-07 23:25:26 +02:00
Vincent Petry 19dedf3d61 Do not show recipient for link shares in file list
In the "Shared with link" section, the share_with field can contain a
value when a password was set.

This fix prevents this value to be shown as it is not intended for the
end user.
2014-07-07 20:04:03 +02:00
Georg Ehrke efadfedbaa add ocsids to info.xml 2014-07-07 20:00:08 +02:00
Vincent Petry 60e3195600 Improved external share dialog
Changed title, label and buttons.
Removed icon.
2014-07-07 19:53:19 +02:00
Vincent Petry db72e90504 Fixed dialogs styling, reversed buttons
Default dialog button is now on the right, other one on the left.
2014-07-07 19:52:53 +02:00
Joas Schilling cf982e9818 Add comment to overwrite* configs about CLI/cron problems 2014-07-07 19:40:28 +02:00
Joas Schilling dccab5d20f Only calculate the WEBROOT from scriptName if it contains $SUBURI
If not we are most likely in CLI mode. However to be able to still
generate valid URLs, we need to use the overwrite webroot instead.

Fix #9490
2014-07-07 19:39:58 +02:00
Joas Schilling f5e4ebf2ba Only overwrite serverHost when in unit tests
The intention of the original commit 12f7cb8767
was to fix tests. But cron should always return a valid host not localhost.
2014-07-07 19:39:20 +02:00
Vincent Petry 2bfdd02c2a Fixed shared list sorting
Use Array.sort instead of underscore's sortBy() as they don't use the
same method/function signature.
2014-07-07 19:33:22 +02:00
Thomas Müller 8b97073e13 MySQL: adding repair step to convert MyIsam tables to InnoDB 2014-07-07 15:51:52 +02:00
Georg Ehrke d2fd78a0c9 fix phpDocBlock for OC_App::getAppInfo 2014-07-07 15:03:38 +02:00
Georg Ehrke 59fd9d7517 better validation: cadd extra check if appinfo/info.xml exists 2014-07-07 15:03:33 +02:00
Stephane V 5344d9beab Bug 9147 owncloud/core
Added class="date" in the latest column of the log table to get everything on one line (in the ajax request).
2014-07-07 13:58:01 +02:00
Morris Jobke 127ce3c5d9 fix loading spinner on ctrl click a app entry- fixes #9063 2014-07-07 12:19:07 +02:00
Georg Ehrke 04604dae0d improvements for uninstall button 2014-07-06 23:57:27 +02:00
Volkan Gezer 0fe1f25a9e Merge pull request #9466 from owncloud/design-fix-fieldset-legend
fix fieldset look, fix #8158
2014-07-06 16:06:25 +02:00
Morris Jobke a5d34b435f also make strengthify transparent on setup submit - fixes #9436 2014-07-05 10:31:27 +02:00
Morris Jobke 67cf1d61e1 fix size of breadcrumb separator 2014-07-04 21:37:54 +02:00
Bjoern Schiessle 5549148039 add owner as parameter for delShareKey 2014-07-04 19:00:28 +02:00
Bjoern Schiessle 0319ee3894 make sure that the umount hook always contains the path relative to data/user/files 2014-07-04 19:00:20 +02:00
Bjoern Schiessle 2bd3aa6b21 if a folder gets deleted we unshare all shared files/folders below 2014-07-04 19:00:05 +02:00
Jörn Friedrich Dreyer 36d2aab945 deprecate OC_Search_Provider in favor of \OCP\Search\Provider 2014-07-04 18:29:26 +02:00
Jörn Friedrich Dreyer 0a4e95cc07 fix '' to '/' when determining parent for search result 2014-07-04 18:29:16 +02:00
Robin Appelman b429a71660 Add machine readable error messages to OC\JSON
Reload the files app in case of authentication errors, expired tokens or disabled app

Reloading will triger the full server side handeling of those errors

formatting

fix missing semicolon + some jshint warnings
2014-07-04 16:39:45 +02:00
Jan-Christoph Borchardt b33c61798c show loading feedback also when clicking 'Apps' entry in app list 2014-07-04 16:37:51 +02:00
Thomas Müller 11a2c0249d update snap.js to v2.0.0-rc1 2014-07-04 16:34:19 +02:00
Vincent Petry 86545a90d0 Fix reload call for all subclasses
All subclasses must also properly return the ajax call object.
2014-07-04 16:13:52 +02:00
Jörn Friedrich Dreyer 71261decf1 make search case insensitive on postgres and oracle 2014-07-04 15:53:10 +02:00
Jörn Friedrich Dreyer f390ae53ba introduce and use getCurrentConnection() 2014-07-04 15:26:30 +02:00
Jörn Friedrich Dreyer 195cf273f8 reset collection to 'root' after adding a route to the api 2014-07-04 15:26:21 +02:00
Jörn Friedrich Dreyer 3a1c7182e6 change order of registering api and capabilities to fix file version previews 2014-07-04 15:26:11 +02:00
Robin Appelman c272338897 set localhost as default database host for installation 2014-07-04 15:21:26 +02:00
Morris Jobke 74edbd5df0 fix cursor for other elements in top right corner 2014-07-04 14:58:19 +02:00
Jan-Christoph Borchardt c28fb2de4e fix 'remember' label being slightly off in log in 2014-07-04 14:58:14 +02:00
Jan-Christoph Borchardt b343b18cd9 fix icons being slightly off in log in 2014-07-04 14:58:09 +02:00
Jan-Christoph Borchardt 2224d1c0d3 fix user menu name and image not showing clicky mouse pointer 2014-07-04 14:58:05 +02:00
Vincent Petry b42215a3c9 Fix FileActions merging override
When merging FileActions, the register() functio needs to correctly
override the previously merged action handler without affecting the
original one.
2014-07-04 14:49:15 +02:00
Morris Jobke 2115a9bf1a IE8 fixes 2014-07-04 14:14:12 +02:00
Jan-Christoph Borchardt 843ad18bf3 use icon-confirm instead of text for accepting remote share, works better with translations 2014-07-04 14:14:07 +02:00
Vincent Petry ed4ba00b77 Return and use isPreviewAvailable for share previews
Since the mime type is known, now isPreviewAvailable is returned as well
and used by the JS side to properly render mime icon and previews.
2014-07-04 14:04:53 +02:00
Frank Karlitschek 4a7aaa8914 7RC1 2014-07-03 20:30:45 -04:00
15708 changed files with 836659 additions and 1572763 deletions
-89
View File
@@ -1,89 +0,0 @@
FROM ubuntu:noble
ARG DEBIAN_FRONTEND=noninteractive
# PHP
RUN apt-get update -y && \
apt install -y apache2 vim software-properties-common sudo nano gnupg2
RUN apt-get install --no-install-recommends -y \
php8.3 \
php8.3-common \
php8.3-gd \
php8.3-zip \
php8.3-curl \
php8.3-xml \
php8.3-xmlrpc \
php8.3-mbstring \
php8.3-sqlite \
php8.3-xdebug \
php8.3-pgsql \
php8.3-intl \
php8.3-imagick \
php8.3-gmp \
php8.3-apcu \
php8.3-bcmath \
php8.3-redis \
php8.3-soap \
php8.3-imap \
php8.3-opcache \
php8.3-cli \
php8.3-dev \
libmagickcore-6.q16-7-extra \
curl \
lsof \
make \
unzip
# 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/8.3/cli/conf.d/20-xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php/8.3/cli/conf.d/20-xdebug.ini && \
echo "apc.enable_cli=1" >> /etc/php/8.3/cli/conf.d/20-apcu.ini
# Autostart XDebug for apache
RUN { \
echo "xdebug.mode=debug"; \
echo "xdebug.start_with_request=yes"; \
} >> /etc/php/8.3/apache2/conf.d/20-xdebug.ini
# Increase PHP memory limit to 512mb
RUN sed -i 's/memory_limit = .*/memory_limit = 512M/' /etc/php/8.3/apache2/php.ini
# Docker
RUN apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable" && \
apt-get update -y && \
apt-get install -y docker-ce docker-ce-cli containerd.io && \
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
RUN useradd -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 16'
WORKDIR /var/www/html
-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.
-26
View File
@@ -1,26 +0,0 @@
<?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');
$CONFIG = [
'mail_from_address' => 'no-reply',
'mail_smtpmode' => 'smtp',
'mail_sendmailmode' => 'smtp',
'mail_domain' => 'example.com',
'mail_smtphost' => 'localhost',
'mail_smtpport' => '1025',
'memcache.local' => '\OC\Memcache\APCu',
];
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['overwriteprotocol'] = 'https';
$CONFIG['trusted_domains'] = [ $host ];
}
-28
View File
@@ -1,28 +0,0 @@
{
"name": "NextcloudServer",
"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"
}
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-38
View File
@@ -1,38 +0,0 @@
# 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
ports:
- 80:80
- 8080:8080
- 8025:8025
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: postgres
PGDATA: /data/postgres
volumes:
- db:/data/postgres
network_mode: service:nextclouddev
adminer:
image: adminer
restart: always
network_mode: service:nextclouddev
mailhog:
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
-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
#
# Set git safe.directory
git config --global --add safe.directory /var/www/html
git config --global --add safe.directory /var/www/html/3rdparty
-33
View File
@@ -1,33 +0,0 @@
#!/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
-36
View File
@@ -1,36 +0,0 @@
# https://editorconfig.org
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true
[*.yml]
indent_size = 2
indent_style = space
[*.md]
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
-14
View File
@@ -1,14 +0,0 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
# 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
-60
View File
@@ -1,60 +0,0 @@
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
module.exports = {
globals: {
__webpack_nonce__: true,
_: true,
$: true,
dayNames: true,
escapeHTML: true,
firstDay: true,
moment: true,
oc_userconfig: true,
sinon: true,
},
plugins: [
'cypress',
],
extends: [
'@nextcloud/eslint-config/typescript',
'plugin:cypress/recommended',
],
rules: {
'comma-dangle': 'error',
'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'],
}],
'vue/html-self-closing': 'error',
},
settings: {
jsdoc: {
mode: 'typescript',
},
'import/resolver': {
typescript: {}, // this loads <rootdir>/tsconfig.json to eslint
},
},
overrides: [
// Allow any in tests
{
files: ['**/*.spec.ts'],
rules: {
'@typescript-eslint/no-explicit-any': 'warn',
},
},
{
files: ['*.vue'],
rules: {
'no-irregular-whitespace': 'off',
'vue/no-irregular-whitespace': 'error',
},
},
],
}
-21
View File
@@ -1,21 +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
-6
View File
@@ -1,6 +0,0 @@
# 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
-109
View File
@@ -1,109 +0,0 @@
# 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
*.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 @st3iny @SebastianKrupinski @tcitworld
/apps/dav/lib/CardDAV @hamza221 @SebastianKrupinski
/apps/dav/tests/unit/CalDAV @st3iny @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 @st3iny @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
# Two-Factor Authentication
# https://github.com/nextcloud/wg-two-factor-authentication#members
**/TwoFactorAuth @ChristophWurst @miaulalala @nickvergessen @st3iny
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen @st3iny
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen @st3iny
# Limit login to IP
# Watch login routes for https://github.com/nextcloud/limit_login_to_ip
/core/routes.php @Altahrim @nextcloud/server-backend
# 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 @st3iny @SebastianKrupinski @tcitworld
/build/integration/dav_features/carddav.feature @hamza221 @SebastianKrupinski
/lib/private/Calendar @st3iny @SebastianKrupinski @tcitworld
/lib/private/Contacts @hamza221 @SebastianKrupinski
/lib/public/Calendar @st3iny @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
-79
View File
@@ -1,79 +0,0 @@
<!--
- 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).
### Short version
* The [**issue templates can be found here**][templates] but be aware of the different repositories! See list below. Please always use an issue template when reporting issues.
### Guidelines
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to one of the repositories, click "issues" and type any word in the top search/command bar.
- 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 ([server](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/)
* Report the issue using one of our [templates][templates], they include all the information we need to track down the issue.
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
[templates]: ./ISSUE_TEMPLATE
[forum]: https://help.nextcloud.com/
[irc]: https://web.libera.chat/#nextcloud
## Contributing to Source Code
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.
It is a must have that changed and added code segments are unit tested.
In some areas unit testing is hard (aka almost impossible) as of today - in these areas refactoring WHILE fixing a bug is encouraged to enable unit testing.
### Sign your work
We use the Developer Certificate of Origin (DCO) as an 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>
```
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
commit automatically with `git commit -s`. You can also use git [aliases](https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases)
like `git config --global alias.ci 'commit -s'`. Now you can commit with
`git ci` and the commit will be signed.
### Apply a license
In case you are not sure how to add or update the license header correctly please have a look at [contribute/HowToApplyALicense.md][applyalicense]
[devmanual]: https://docs.nextcloud.com/server/latest/developer_manual/
[dcofile]: https://github.com/nextcloud/server/blob/master/contribute/developer-certificate-of-origin
[applyalicense]: https://github.com/nextcloud/server/blob/master/contribute/HowToApplyALicense.md
## Translations
Please submit translations via [Transifex][transifex].
[transifex]: https://www.transifex.com/nextcloud
-3
View File
@@ -1,3 +0,0 @@
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
custom: https://nextcloud.com/include/
-212
View File
@@ -1,212 +0,0 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
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:
value: |
### 👍 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:
label: "⚠️ This issue respects the following points: ⚠️"
description: All conditions are **required**. Your issue can be closed if these are checked incorrectly.
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)_.
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: I agree to follow Nextcloud's [Code of Conduct](https://nextcloud.com/contribute/code-of-conduct/).
required: true
- type: textarea
id: bug-description
attributes:
label: Bug description
description: |
Provide a description of the bug you're experiencing.
Don't just expect someone will guess what your specific problem is and provide full details.
validations:
required: true
- type: textarea
id: reproduce
attributes:
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.
value: |
1.
2.
3.
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: Describe what you expected to happen instead.
validations:
required: true
- type: dropdown
id: nextcloud-version
attributes:
label: Nextcloud Server version
description: |
Select Nextcloud Server version.
_Versions not listed here are not maintained and not supported anymore_
options:
- "30"
- "31"
- "32"
- "master"
validations:
required: true
- type: dropdown
id: system
attributes:
label: Operating system
description: |
Select operating system where Nextcloud Server is installed.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "Debian/Ubuntu"
- "RHEL/CentOS"
- "Other"
- type: dropdown
id: php
attributes:
label: PHP engine version
description: |
Select PHP engine version serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "PHP 8.4"
- "PHP 8.3"
- "PHP 8.2"
- "PHP 8.1"
- "Other"
- type: dropdown
id: webserver
attributes:
label: Web server
description: |
Select Webserver serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "Apache (supported)"
- "Nginx"
- "Other"
- type: dropdown
id: database
attributes:
label: Database engine version
description: |
Select Database engine serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "MySQL"
- "MariaDB"
- "PostgreSQL"
- "SQlite"
- "Oracle"
- "Other"
- type: dropdown
id: fresh
attributes:
label: Is this bug present after an update or on a fresh install?
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)"
- "Fresh Nextcloud Server install"
- type: dropdown
id: encryption
attributes:
label: Are you using the Nextcloud Server Encryption module?
description: Select if encryption is Enabled on your Nextcloud Server.
options:
- "Encryption is Enabled"
- "Encryption is Disabled"
- type: checkboxes
id: users
attributes:
label: What user-backends are you using?
description: |
Select **all** user-backends Enabled on your Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- label: "Default user-backend _(database)_"
- label: "LDAP/ Active Directory"
- label: "SSO - SAML"
- label: "Other"
- type: textarea
id: configs
attributes:
label: Configuration report
description: |
Provide information about your configuration.
To get this information, execute one of the following commands on the CLI:
```shell
sudo -u www-data php occ config:list system
php occ config:list system
./occ config:list system
```
> NOTE: This will be automatically formatted into code for better readability.
render: json
- type: textarea
id: apps
attributes:
label: List of activated Apps
description: |
Provide information about your apps.
To get this information, execute one of the following commands on the CLI:
```shell
sudo -u www-data php occ app:list
php occ app:list
./occ app:list
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: nextcloud-signingstatus
attributes:
label: Nextcloud Signing status
description: |
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
```
> NOTE: This will be automatically formatted into code for better readability.
render: shell
- type: textarea
id: nextcloud-log
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:
> NOTE: This will be automatically formatted into code for better readability.
render: json
- type: textarea
id: additional-info
attributes:
label: Additional info
description: Any additional information related to the issue (ex. browser console errors, software versions).
-50
View File
@@ -1,50 +0,0 @@
---
name: 🚀 Feature request
about: Suggest an idea for this project
labels: enhancement, 0. Needs triage
type: "Enhancement"
---
<!--
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/)
-->
<!--- Please keep this note for other contributors -->
### 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.
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives 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 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
-12
View File
@@ -1,12 +0,0 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
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
- name: 💼 Nextcloud Enterprise
url: https://portal.nextcloud.com/
about: If you are a Nextcloud Enterprise customer, or need Professional support, so it can be resolved directly by our dedicated engineers more quickly
-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
-5
View File
@@ -1,5 +0,0 @@
# 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
-183
View File
@@ -1,183 +0,0 @@
# 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"
directory: "/"
schedule:
interval: monthly
timezone: Europe/Paris
groups:
github-actions:
patterns:
- "*"
labels:
- "3. to review"
- "feature: dependencies"
# Main composer (linting, testing, openapi)
- package-ecosystem: composer
directories:
- "/"
- "/build/integration"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
- "/vendor-bin/rector"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
# Main master npm frontend dependencies
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
# Latest stable release
# Composer dependencies for linting and testing
- package-ecosystem: composer
target-branch: stable32
directories:
- "/"
- "/build/integration"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "03:30"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Latest stable branch
# frontend dependencies
- package-ecosystem: npm
target-branch: stable32
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:30"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
ignore:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
# Older stable releases
# Composer dependencies for linting and testing
- package-ecosystem: composer
target-branch: 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"]
- package-ecosystem: composer
target-branch: stable30
directories:
- "/"
- "/build/integration"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# frontend dependencies
- package-ecosystem: npm
target-branch: stable31
directory: "/"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
ignore:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
- package-ecosystem: npm
target-branch: stable30
directory: "/"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
ignore:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
-23
View File
@@ -1,23 +0,0 @@
<!--
- 🚨 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 -->
## Summary
## TODO
- [ ] ...
## Checklist
- Code is [properly formatted](https://docs.nextcloud.com/server/latest/developer_manual/digging_deeper/continuous_integration.html#linting)
- [Sign-off message](https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md) is added to all commits
- [ ] Tests ([unit](https://docs.nextcloud.com/server/latest/developer_manual/app_development/tutorial.html#unit-tests), [integration](https://docs.nextcloud.com/server/latest/developer_manual/app_development/tutorial.html#integration-tests), api and/or acceptance) are included
- [ ] 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)
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-126
View File
@@ -1,126 +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.1']
name: PHP checkers
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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.1']
name: Translation and Files checkers
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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
-49
View File
@@ -1,49 +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: Block merges for EOL
on: pull_request
permissions:
contents: read
concurrency:
group: block-merge-eol-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-merges-eol:
name: Block merges for EOL branches
# Only run on stableXX branches
if: startsWith( github.base_ref, 'stable')
runs-on: ubuntu-latest-low
steps:
- name: Set server major version environment
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const regex = /^stable(\d+)$/
const baseRef = context.payload.pull_request.base.ref
const match = baseRef.match(regex)
if (match) {
console.log('Setting server_major to ' + match[1]);
core.exportVariable('server_major', match[1]);
console.log('Setting current_month to ' + (new Date()).toISOString().substr(0, 7));
core.exportVariable('current_month', (new Date()).toISOString().substr(0, 7));
}
- name: Checking if server ${{ env.server_major }} is EOL
if: ${{ env.server_major != '' }}
run: |
curl -s https://raw.githubusercontent.com/nextcloud-releases/updater_server/production/config/major_versions.json \
| jq '.["${{ env.server_major }}"]["eol"] // "9999-99" | . >= "${{ env.current_month }}"' \
| grep -q true
-57
View File
@@ -1,57 +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: Block merges during freezes
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-merge-freeze-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-merges-during-freeze:
name: Block merges during freezes
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest-low
steps:
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping freeze check');
}
}
- name: Download version.php from ${{ env.server_ref }}
if: ${{ env.server_ref != '' }}
run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ env.server_ref }}/version.php' --output version.php
- name: Run check
if: ${{ env.server_ref != '' }}
run: cat version.php | grep 'OC_VersionString' | grep -i -v 'RC'
@@ -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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: 3rdparty commit hash on current branch
id: actual
run: |
echo "commit=$(git submodule status | grep ' 3rdparty' | egrep -o '[a-f0-9]{40}')" >> "$GITHUB_OUTPUT"
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping outdated 3rdparty check');
}
}
- name: Last 3rdparty commit on target branch
if: ${{ env.server_ref != '' }}
id: target
run: |
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty refs/heads/${{ 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: webiny/action-conventional-commits@8bc41ff4e7d423d56fa4905f6ff79209a78776c7 # v1.3.0
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-47
View File
@@ -1,47 +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@v5
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql-config.yml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
-222
View File
@@ -1,222 +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: Compile Command
on:
issue_comment:
types: [created]
permissions:
contents: read
jobs:
init:
runs-on: ubuntu-latest
# On pull requests and if the comment starts with `/compile`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/compile')
outputs:
git_path: ${{ steps.git-path.outputs.path }}
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@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
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
with:
require: write
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '+1'
- name: Parse command
uses: skjnldsv/parse-command-comment@5c955203c52424151e6d0e58fb9de8a9f6a605a1 # v2
id: command
# Init path depending on which command is run
- name: Init path
id: git-path
run: |
if ${{ startsWith(steps.command.outputs.arg1, '/') }}; then
echo "path=${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT
else
echo "path=${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT
fi
- name: Init branch
uses: xt0rted/pull-request-comment-branch@e8b8daa837e8ea7331c0003c9c316a64c6d8b0b1 # v3.0.0
id: comment-branch
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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'
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: package-engines-versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
cache: npm
- name: Set up npm ${{ steps.package-engines-versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.package-engines-versions.outputs.npmVersion }}'
- name: Rebase to ${{ needs.init.outputs.base_ref }}
if: ${{ contains(needs.init.outputs.arg1, 'rebase') }}
run: |
git fetch origin '${{ needs.init.outputs.base_ref }}:${{ needs.init.outputs.base_ref }}'
# 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
}
- 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') }}
run: |
git add '${{ github.workspace }}${{ needs.init.outputs.git_path }}'
git commit --signoff -m 'chore(assets): Recompile assets'
- name: Commit fixup
if: ${{ contains(needs.init.outputs.arg1, 'fixup') }}
run: |
git add '${{ github.workspace }}${{ needs.init.outputs.git_path }}'
git commit --fixup=HEAD --signoff
- name: Commit amend
if: ${{ contains(needs.init.outputs.arg1, 'amend') }}
run: |
git add '${{ github.workspace }}${{ 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"
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
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@71345be0265236311c031f5c7866368bd1eff043 # 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping pull 3rdparty command');
}
}
- name: Setup git
run: |
git config --local user.email 'nextcloud-command@users.noreply.github.com'
git config --local user.name 'nextcloud-command'
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
if: ${{ env.server_ref == '' }}
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
- name: Pull 3rdparty
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@71345be0265236311c031f5c7866368bd1eff043 # 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'
-240
View File
@@ -1,240 +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: Cypress
on: pull_request
concurrency:
group: cypress-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
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.head_ref || github.ref_name }}
permissions:
contents: read
jobs:
init:
runs-on: ubuntu-latest
outputs:
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
# We need to checkout submodules for 3rdparty
submodules: true
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
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
id: versions
with:
fallbackNode: "^20"
fallbackNpm: "^10"
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.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 node dependencies & build app
run: |
npm ci
TESTING=true npm run build --if-present
- name: Show cypress version
run: npm run cypress:version
- name: Save context
uses: buildjet/cache/save@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
with:
key: cypress-context-${{ github.run_id }}
path: ./
cypress:
runs-on: ubuntu-latest
needs: init
strategy:
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: ['component', 'setup', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# Hack as strategy.job-total includes the component and GitHub does not allow math expressions
# Always align this number with the total of e2e runners (max. index + 1)
total-containers: [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' || ''}}
ports:
- '3306/tcp'
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
mariadb:
# Only start mariadb if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'mariadb:11.4' || ''}}
ports:
- '3306/tcp'
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mariadb-admin ping" --health-interval 5s --health-timeout 2s --health-retries 5
postgres:
# Only start postgres if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-postgres-17:latest' || ''}}
ports:
- '5432/tcp'
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --mount type=tmpfs,destination=/var/lib/postgresql/data --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
oracle:
# Only start oracle if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/gvenzl/oracle-free:23' || ''}}
ports:
- '1521'
env:
ORACLE_PASSWORD: oracle
options: --health-cmd healthcheck.sh --health-interval 20s --health-timeout 10s --health-retries 10
name: runner ${{ matrix.containers }}
steps:
- name: Restore context
uses: buildjet/cache/restore@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
with:
fail-on-cache-miss: true
key: cypress-context-${{ github.run_id }}
path: ./
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.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
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@b8ba51a856ba5f4c15cf39007636d4ab04f23e3c # v6.10.2
with:
# We already installed the dependencies in the init job
install: false
component: ${{ matrix.containers == 'component' }}
group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run 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 || '' }}
env:
# Needs to be prefixed with CYPRESS_
CYPRESS_BRANCH: ${{ env.BRANCH }}
# https://github.com/cypress-io/github-action/issues/124
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
# Needed for some specific code workarounds
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 }}
SETUP_TESTING: ${{ matrix.containers == 'setup' && 'true' || '' }}
- name: Upload snapshots and videos
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: always()
with:
name: snapshots_videos_${{ matrix.containers }}
path: |
cypress/snapshots
cypress/videos
- name: Extract NC logs
if: failure() && matrix.containers != 'component'
run: docker logs nextcloud-cypress-tests_${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.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-cypress-tests_${{ env.APP_NAME }} tar -cvjf - data > data.tar
- name: Upload data dir archive
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: failure() && matrix.containers != 'component'
with:
name: nc_data_${{ matrix.containers }}
path: data.tar
summary:
runs-on: ubuntu-latest-low
needs: [init, cypress]
if: always()
name: cypress-summary
steps:
- name: Summary status
run: if ${{ needs.init.result != 'success' || ( needs.cypress.result != 'success' && needs.cypress.result != 'skipped' ) }}; then exit 1; fi
@@ -1,49 +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: Dependabot
on:
pull_request_target: # zizmor: ignore[dangerous-triggers]
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: dependabot-approve-merge-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
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
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: 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
# GitHub actions bot approve
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
with:
target: minor
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
-131
View File
@@ -1,131 +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/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
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.1', '8.4']
ftpd: ['proftpd', 'vsftpd', 'pure-ftpd']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.ftpd }}
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-files-external-ftp
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-ftp
- name: ftpd logs
if: always()
run: |
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
-213
View File
@@ -1,213 +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/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-s3-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-s3
- name: Nextcloud logs
if: always()
run: |
cat data/nextcloud.log
- name: S3 logs
if: always()
run: |
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.1', '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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-s3
- name: S3 logs
if: always()
run: |
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
-121
View File
@@ -1,121 +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/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-sftp:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.4']
sftpd: ['openssh']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.sftpd }}
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-files-external-sftp
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-sftp
- name: sftpd logs
if: always()
run: |
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,118 +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/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Checkout user_saml
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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
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 icewind1991/samba-krb-test-apache
docker tag ghcr.io/icewind1991/samba-krb-test-client icewind1991/samba-krb-test-client
- name: Setup AD-DC
run: |
DC_IP=$(apps/files_external/tests/sso-setup/start-dc.sh)
sleep 1
apps/files_external/tests/sso-setup/start-apache.sh $DC_IP $PWD
echo "DC_IP=$DC_IP" >> $GITHUB_ENV
- name: Set up Nextcloud
run: |
apps/files_external/tests/sso-setup/setup-sso-nc.sh
- name: Test SSO
run: |
apps/files_external/tests/sso-setup/test-sso-smb.sh ${{ env.DC_IP }}
- name: Show logs 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
sftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-smb-kerberos]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-smb-kerberos.result != 'success' }}; then exit 1; fi
-122
View File
@@ -1,122 +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/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-smb:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-smb
services:
samba:
image: ghcr.io/nextcloud/continuous-integration-samba:latest # zizmor: ignore[unpinned-images]
ports:
- 445:445
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-files-external-smb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-smb
files-external-smb-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-smb]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-smb.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 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/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
files-external-webdav-apache:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2', '8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-files-external-webdav
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-webdav
files-external-webdav-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-webdav-apache]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-webdav-apache.result != 'success' }}; then exit 1; fi
-107
View File
@@ -1,107 +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/**'
- 'apps/files_external/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
files-external-generic:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2', '8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-generic
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-files-external-generic
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-files-external-generic
files-external-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-generic ]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-generic.result != 'success' }}; then exit 1; fi
-36
View File
@@ -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: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block fixup and squash commits
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: fixup-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
commit-message-check:
if: github.event.pull_request.draft == false
permissions:
pull-requests: write
name: Block fixup and squash commits
runs-on: ubuntu-latest-low
steps:
- name: Run check
uses: skjnldsv/block-fixup-merge-action@c138ea99e45e186567b64cf065ce90f7158c236a # v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
@@ -1,103 +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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
repository: nextcloud/github_helper
path: github_helper
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
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 }}"
-128
View File
@@ -1,128 +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.1']
endpoint: ['old', 'new']
service: ['CalDAV', 'CardDAV']
name: ${{ matrix.service }} (${{ matrix.endpoint }} endpoint) php${{ matrix.php-versions }}
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@bff0a193747a3ac7930a665fc1d4b23eba583b99 # v2025.814.40518
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
-115
View File
@@ -1,115 +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.1']
endpoint: ['webdav', 'dav']
name: Litmus WebDAV ${{ matrix.endpoint }}
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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,122 +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/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
integration-s3-primary:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: 'none'
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: Set up Nextcloud
run: |
mkdir data
echo '<?php $CONFIG=["${{ matrix.key }}" => ["class" => "OC\Files\ObjectStore\S3", "arguments" => ["bucket" => "nextcloud", "autocreate" => true, "key" => "nextcloud", "secret" => "bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=", "hostname" => "localhost", "port" => 9000, "use_ssl" => false, "use_path_style" => true, "uploadPartSize" => 52428800]]];' > config/config.php
echo '<?php $CONFIG=["redis" => ["host" => "localhost", "port" => 6379], "memcache.local" => "\OC\Memcache\Redis", "memcache.distributed" => "\OC\Memcache\Redis"];' > config/redis.config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
- name: Integration
run: |
cd build/integration
bash run.sh --tags "~@failure-s3" dav_features/webdav-related.feature
- name: S3 logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-primary-integration-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-s3-primary]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-s3-primary.result != 'success' }}; then exit 1; fi
-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'
- 'openldap_features'
- 'openldap_numerical_features'
- 'ldap_features'
- 'remoteapi_features'
- 'routing_features'
- 'setup_features'
- 'sharees_features'
- 'sharing_features'
- 'theming_features'
- 'videoverification_features'
php-versions: ['8.1']
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-7 # zizmor: ignore[unpinned-images]
ports:
- 389:389
env:
SLAPD_DOMAIN: nextcloud.ci
SLAPD_ORGANIZATION: Nextcloud
SLAPD_PASSWORD: admin
SLAPD_ADDITIONAL_MODULES: memberof
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Checkout Talk app
if: ${{ matrix.test-suite == 'videoverification_features' }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, ldap, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up production dependencies
run: composer i --no-dev
- name: Set up behat dependencies
working-directory: build/integration
run: composer i
- name: Set up Talk dependencies
if: ${{ matrix.test-suite == 'videoverification_features' }}
working-directory: apps/spreed
run: composer i --no-dev
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose ${{ contains(matrix.test-suite,'ldap') && '--data-dir=/dev/shm/nc_int' || '' }} --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ config:system:set hashing_default_password --value=true --type=boolean
- name: Configure caching
if: ${{ contains(matrix.test-suite,'ldap') }}
run: |
./occ config:system:set redis host --value=localhost
./occ config:system:set redis port --value=6379 --type=integer
./occ config:system:set redis timeout --value=0 --type=integer
./occ config:system:set memcache.local --value='\OC\Memcache\Redis'
./occ config:system:set memcache.distributed --value='\OC\Memcache\Redis'
- name: Run integration
working-directory: build/integration
env:
LDAP_HOST: localhost
run: bash run.sh ${{ matrix.test-suite }} no-tail-log
- name: Print logs
if: always()
run: |
cat $(./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
-100
View File
@@ -1,100 +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 eslint
on: pull_request
permissions:
contents: read
concurrency:
group: lint-eslint-${{ 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/**'
- '**/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
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.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
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
-84
View File
@@ -1,84 +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 php-cs
on: pull_request
permissions:
contents: read
concurrency:
group: lint-php-cs-${{ 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/**'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
lint:
runs-on: ubuntu-latest
name: PHP CS fixer lint
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Set up php8.1
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
with:
php-version: 8.1
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: composer i
- 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
-84
View File
@@ -1,84 +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 php
on: pull_request
permissions:
contents: read
concurrency:
group: lint-php-${{ 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/**'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
lint:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: [ '8.1', '8.2', '8.3', '8.4' ]
name: php-lint
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
with:
php-version: ${{ matrix.php-versions }}
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Lint
run: composer run lint
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, lint]
if: always()
name: php-lint-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.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
-188
View File
@@ -1,188 +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'
versions:
runs-on: ubuntu-latest-low
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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: '^20'
fallbackNpm: '^10'
test:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
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 & build
run: |
npm ci
npm run build --if-present
- name: Test and process coverage
run: npm run test:coverage --if-present
- name: Collect coverage
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./coverage/lcov.info
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
jsunit:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
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
handlebars:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
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
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, test, jsunit, handlebars]
if: always()
name: node-test-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && (needs.test.result != 'success' || needs.jsunit.result != 'success' || needs.handlebars.result != 'success') }}; then exit 1; fi
-110
View File
@@ -1,110 +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: Node
on: pull_request
permissions:
contents: read
concurrency:
group: node-${{ 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/**'
- '**/src/**'
- '**/appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
- 'core/css/*'
- 'core/img/**'
- 'version.php'
build:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
name: NPM build
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.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 & build
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: |
npm ci
npm run build --if-present
- 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)"
- name: Show changes on failure
if: failure()
run: |
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
-81
View File
@@ -1,81 +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: ['main', 'master', 'stable32', 'stable31', 'stable30']
name: npm-audit-fix-${{ matrix.branches }}
steps:
- name: Checkout
id: checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.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@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
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
-138
View File
@@ -1,138 +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/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
azure-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2']
include:
- php-versions: '8.3'
coverage: true
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-azure
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-azure
- name: Azurite logs
if: always()
run: |
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
-144
View File
@@ -1,144 +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/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
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.1', '8.2']
include:
- php-versions: '8.3'
coverage: true
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-s3
- name: S3 logs
if: always()
run: |
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
-134
View File
@@ -1,134 +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/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
swift-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.2']
include:
- php-versions: '8.3'
coverage: true
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-swift
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-swift
- name: Swift logs
if: always()
run: |
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
-47
View File
@@ -1,47 +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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
with:
php-version: '8.1'
extensions: ctype, curl, dom, fileinfo, gd, json, libxml, mbstring, openssl, pcntl, pdo, posix, session, simplexml, xml, xmlreader, xmlwriter, zip, zlib
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
-127
View File
@@ -1,127 +0,0 @@
# 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.1']
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
ref: ${{ github.event.pull_request.base.ref }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
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
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
php -S localhost:8080 &
- name: Apply blueprint
uses: icewind1991/blueprint@00504403f76cb2a09efd0d16793575055e6f63cb # v0.1.2
with:
blueprint: tests/blueprints/basic.toml
ref: ${{ github.event.pull_request.head.ref }}
- name: Run before measurements
uses: nextcloud/profiler@6801ee10fc80f10b444388fb6ca9b36ad8a2ea83
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
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
- name: Apply PR # zizmor: ignore[template-injection]
run: |
git remote add pr '${{ github.event.pull_request.head.repo.clone_url }}'
git fetch pr '${{ github.event.pull_request.head.ref }}'
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
with:
run: |
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: after.json
profiler-branch: master
compare-with: before.json
- name: Upload profiles
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: profiles
path: |
before.json
after.json
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
if: failure() && steps.compare.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
let comment = `Possible performance regression detected\n`;
comment += `<details><summary>Show Output</summary>
\`\`\`
${{ steps.compare.outputs.compare }}
\`\`\`
</details>`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
})
-71
View File
@@ -1,71 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit 32bits
on:
pull_request:
paths:
- 'version.php'
- '.github/workflows/phpunit-32bits.yml'
- 'tests/phpunit-autotest.xml'
workflow_dispatch:
schedule:
- cron: "15 1 * * 1-6"
permissions:
contents: read
concurrency:
group: phpunit-32bits-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
phpunit-32bits:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
container: shivammathur/node:latest-i386
strategy:
fail-fast: false
matrix:
php-versions: ['8.1','8.3']
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- 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@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, apcu, ldap
coverage: none
ini-file: development
ini-values:
apc.enabled=on, apc.enable_cli=on, disable_functions= # https://github.com/shivammathur/setup-php/discussions/573
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
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 tests/enable_all.php
- name: PHPUnit
run: composer run test -- --exclude-group PRIMARY-azure,PRIMARY-s3,PRIMARY-swift,Memcached,Redis,RoutingWeirdness
-155
View File
@@ -1,155 +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.1']
mariadb-versions: ['10.3', '10.6', '10.11', '11.4', '11.8']
include:
- php-versions: '8.3'
mariadb-versions: '10.11'
coverage: ${{ github.event_name != 'pull_request' }}
- php-versions: '8.4'
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.db.xml
flags: phpunit-mariadb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-mariadb
summary:
permissions:
contents: none
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
-134
View File
@@ -1,134 +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.1', '8.3', '8.4']
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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,Memcached --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.xml
flags: phpunit-memcached
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-memcached
- name: Print logs
if: always()
run: |
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,192 +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.1']
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-mysql
- name: Print logs
if: always()
run: |
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
-160
View File
@@ -1,160 +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.1']
mysql-versions: ['8.0', '8.4']
include:
- mysql-versions: '8.0'
php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
- mysql-versions: '8.4'
php-versions: '8.4'
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-mysql
- name: Print logs
if: always()
run: |
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
-140
View File
@@ -1,140 +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.1', '8.3', '8.4']
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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,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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.nodb.xml
flags: phpunit-nodb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-nodb
- name: Print logs
if: always()
run: |
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,124 +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.1']
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
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
-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 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: '11'
php-versions: '8.1'
- oracle-versions: '18'
php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
- oracle-versions: '21'
php-versions: '8.2'
- oracle-versions: '23'
php-versions: '8.3'
- oracle-versions: '23'
php-versions: '8.4'
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.db.xml
flags: phpunit-oci
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-oci
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
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
-159
View File
@@ -1,159 +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.1']
# To keep the matrix smaller we ignore PostgreSQL versions in between as we already test the minimum and the maximum
postgres-versions: ['13', '17']
include:
- php-versions: '8.3'
postgres-versions: '17'
coverage: ${{ github.event_name != 'pull_request' }}
- php-versions: '8.4'
postgres-versions: '17'
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/data --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
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@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.db.xml
flags: phpunit-postgres
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-postgres
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
- 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
-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: 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.2', '8.3', '8.4']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
name: SQLite (PHP ${{ matrix.php-versions }})
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- 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' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./clover.db.xml
flags: phpunit-sqlite
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
flags: phpunit-sqlite
- name: Print logs
if: always()
run: |
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@1883b38a033fb16f576875e0cf45f98b857655c4 # 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: '2024-04-30'
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}'
exempt-bots: true
-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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: REUSE Compliance Check
uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
-37
View File
@@ -1,37 +0,0 @@
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Close stale issues
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
permissions:
contents: read
jobs:
stale:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
permissions:
issues: write
steps:
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9
with:
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
stale-issue-message: >
This issue has been automatically marked as stale because it has not had
recent activity and seems to be missing some essential information.
It will be closed if no further activity occurs. Thank you
for your contributions.
stale-issue-label: 'stale'
only-labels: 'needs info'
exempt-issue-labels: '1. to develop,2. developing,3. to review,4. to release,security'
days-before-stale: 30
days-before-close: 14
# debug-only: true
-146
View File
@@ -1,146 +0,0 @@
# 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' }}
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
with:
php-version: '8.1'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm -- --threads=1 --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-security:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,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'
- name: Upload Security Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
with:
php-version: '8.1'
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:ocp -- --threads=1 --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@08c6903cd8c0fde910a37f88322edcfb5dd907a8
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
with:
php-version: '8.1'
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
@@ -1,49 +0,0 @@
# 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
jobs:
update-ca-certificate-bundle:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable32', 'stable31', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-ca-certificate-bundle-${{ matrix.branches }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
ref: ${{ matrix.branches }}
submodules: true
- name: Download CA certificate bundle from curl
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@271a8d0340265f705b14b6d32b9829c1cb33d45e
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): 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'
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', 'stable32', 'stable31', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-code-signing-crl-${{ matrix.branches }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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@271a8d0340265f705b14b6d32b9829c1cb33d45e
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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@271a8d0340265f705b14b6d32b9829c1cb33d45e
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'
@@ -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@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
});
const baseBranch = pr.base.ref;
const currentTitle = pr.title;
// Check if this is a stable branch
// Should not happen as we only trigger on stable* branches 🤷‍♀️
if (!baseBranch.startsWith('stable')) {
console.log(`Not a stable branch: ${baseBranch}`);
return;
}
const prefix = `[${baseBranch}]`;
// Check if title already has the correct prefix and no other stable tags
const correctTagRegex = new RegExp(`^\\[${baseBranch}\\]\\s*`);
const hasOtherStableTags = /\[stable[\d.]*\]/.test(currentTitle.replace(correctTagRegex, ''));
if (correctTagRegex.test(currentTitle) && !hasOtherStableTags) {
console.log(`Title already has correct prefix only: ${currentTitle}`);
return;
}
// Remove all stable tags and add the correct one
const cleanTitle = currentTitle.replace(/\[stable[\d.]*\]\s*/g, '').trim();
const newTitle = `${prefix} ${cleanTitle}`;
console.log(`Updating title from: "${currentTitle}" to: "${newTitle}"`);
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
title: newTitle,
});
+7 -94
View File
@@ -1,72 +1,33 @@
# 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
/owncloud
/config/config.php
/config/*.config.php
/config/mimetype*.json
/config/mount.php
/apps/inc.php
/assets
/.htaccess
/node_modules
/translationfiles
/translationtool.phar
# ignore all apps except core ones
/apps*/*
!/apps/cloud_federation_api
!/apps/comments
!/apps/contactsinteraction
!/apps/dashboard
!/apps/dav
!/apps/files
!/apps/federation
!/apps/federatedfilesharing
!/apps/sharebymail
!/apps/encryption
!/apps/files_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
!/apps/testing
!/apps/admin_audit
!/apps/updatenotification
!/apps/theming
!/apps/twofactor_backupcodes
!/apps/user_status
!/apps/weather_status
!/apps/webhook_listeners
!/apps/workflowengine
!/apps/user_webdavauth
/apps/files_external/3rdparty/irodsphp/PHPUnitTest
/apps/files_external/3rdparty/irodsphp/web
/apps/files_external/3rdparty/irodsphp/prods/test
/apps/files_external/3rdparty/irodsphp/prods/tutorials
/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
# ignore themes except the README
/themes/*
!/themes/example
!/themes/README
# Love to people that develop the updater
/updater
# just sane ignores
.*.sw[po]
*.bak
@@ -82,8 +43,6 @@ CVS/*
.svn/*
RCS/*
*.backup*
.php_cs.cache
.php-cs-fixer.cache
# kdevelop
.kdev
@@ -97,17 +56,13 @@ RCS/*
.project
.settings
# netbeans
# netbeans
nbproject
# phpStorm
.idea
*.iml
# vscode
.vscode
*.code-workspace
# geany
*.geany
@@ -117,10 +72,7 @@ nbproject
# vim ex mode
.vimrc
# ack(-grep)
.ackrc
# Mac OS
.DS_Store
@@ -135,54 +87,15 @@ nbproject
/build/node_modules/
# nodejs
/build/bin
/build/lib/
/build/integration/output/
/build/integration/phpserver.log
/npm-debug.log
/PhantomJS_*
# puphpet
puphpet
# vagrant
.vagrant
Vagrantfile
# Tests - auto-generated files
/data-autotest
/results.sarif
/tests/.phpunit.cache
/tests/.phpunit.result.cache
/tests/coverage*
/tests/css
/tests/karma-coverage
/tests/autoconfig*
/tests/autotest*
/tests/data/lorem-copy.txt
/tests/data/testimage-copy.png
/tests/ui-regression/out/
/tests/ui-regression/node_modules/
/tests/ui-regression/package-lock.json
/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
+1 -4
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
url = https://github.com/owncloud/3rdparty.git
+35 -116
View File
@@ -1,121 +1,40 @@
<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>
<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>
# 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>
# Let browsers cache OTF and WOFF files for a week
<FilesMatch "\.(otf|woff2?)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
</IfModule>
<IfModule mod_php.c>
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
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule pagespeed_module>
ModPagespeed Off
</IfModule>
<IfModule mod_rewrite.c>
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>
# 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_fcgid.c>
<IfModule mod_setenvif.c>
SetEnvIfNoCase Transfer-Encoding "chunked" proxy-sendcl=1
<IfModule mod_headers.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</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
</IfModule>
</IfModule>
<IfModule mod_php5.c>
php_value upload_max_filesize 513M
php_value post_max_size 513M
php_value memory_limit 512M
php_value mbstring.func_overload 0
<IfModule env_module>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/carddav /remote.php/carddav/ [R]
RewriteRule ^\.well-known/caldav /remote.php/caldav/ [R]
RewriteRule ^apps/calendar/caldav\.php remote.php/caldav/ [QSA,L]
RewriteRule ^apps/contacts/carddav\.php remote.php/carddav/ [QSA,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
</IfModule>
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
</IfModule>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
AddDefaultCharset utf-8
Options -Indexes
<IfModule pagespeed_module>
ModPagespeed Off
</IfModule>
+1 -1
View File
@@ -3,7 +3,6 @@
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value>
<option name="RIGHT_MARGIN" value="80" />
<PHPCodeStyleSettings>
<option name="PHPDOC_BLANK_LINE_BEFORE_TAGS" value="true" />
<option name="LOWER_CASE_BOOLEAN_CONST" value="true" />
@@ -47,6 +46,7 @@
</value>
</option>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
</component>
</project>
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2014 ownCloud, Inc.
SPDX-License-Identifier: AGPL-3.0-only
+2 -7
View File
@@ -1,5 +1,4 @@
{
"esversion": 11,
"camelcase": true,
"eqeqeq": true,
"immed": true,
@@ -12,10 +11,9 @@
"maxparams": 5,
"curly": true,
"jquery": true,
"maxlen": 120,
"indent": 4,
"browser": true,
"laxbreak": true,
"asi": true,
"globals": {
"console": true,
"it": true,
@@ -29,10 +27,7 @@
"_": true,
"OC": true,
"OCA": true,
"OCP": true,
"t": true,
"n": true,
"escapeHTML": true,
"Promise": true
"n": true
}
}
-433
View File
@@ -1,433 +0,0 @@
Aamir Khan <ak4u2009@gmail.com>
Aaron Reichman <areichman.kde@gmail.com>
Adam Williamson <awilliam@redhat.com>
Aditya Patawari <adimania@gmail.com>
Administrator <Administrator@WINDOWS-2012>
adrien <adrien.waksberg@believedigital.com>
Aldo "xoen" Giambelluca <xoen@xoen.org>
Alessandro Cosentino <cosenal@gmail.com>
Alexander Bergolth <leo@strike.wu.ac.at> root <leo@strike.wu.ac.at>
Alexander Bogdanov <syn@li.ru>
Alexander Wigen <alex@wigen.net>
Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
Anders Nor Berle <anders@berle.cc>
Andreas Fischer <bantu@owncloud.com>
Andreas Schönebeck <aschoenebeck@web.de>
Andreas Ergenzinger <andreas.ergenzinger@gmx.de> AndreasErgenzinger <andreas.ergenzinger@gmx.de>
Andrew Brown <andrew@casabrown.com>
André Gaul <gaul@web-yard.de>
Arthur Schiwon <blizzz@arthur-schiwon.de> Arthur Schiwon <blizzz@owncloud.com>
Arthur Schiwon <blizzz@arthur-schiwon.de> blizzz <blizzz@owncloud.com>
Artur Duque de Souza <asouza@kde.org>
Axel Roenn <axel@mpim-bonn.mpg.de>
Bagera <victor@baquero-wihlborg.se>
Bart Visscher <bartv@thisnet.nl> Bart Visscher <bart@thisnet.nl>
Bart Visscher <bartv@thisnet.nl> Bart Visscher <github@thisnet.nl>
Bartek Przybylski <bart.p.pl@gmail.com>
Bastien Ho <bastienho@urbancube.fr>
ben-denham <bend@catalyst.net.nz>
Benjamin Diele <benjamin@diele.be>
Benjamin Liles <benliles@arch.tamu.edu>
Bernhard Posselt <dev@bernhard-posselt.com> Bernhard Posselt <nukeawhale@gmail.com>
Bernhard Posselt <dev@bernhard-posselt.com> Bernhard Posselt <Raydiation@users.noreply.github.com>
Bernhard Posselt <dev@bernhard-posselt.com> Bernhard Posselt <BernhardPosselt@users.noreply.github.com>
Bernhard Reiter <ockham@raz.or.at>
Birk Borkason <daniel.niccoli@gmail.com>
Björn Schießle <bjoern@schiessle.org> Bjoern Schiessle <schiesbn@woody.(none)>
Björn Schießle <bjoern@schiessle.org> Björn Schießle <schiessle@owncloud.com>
Björn Schießle <bjoern@schiessle.org> Björn Schießle <schiesbn@potato.(none)>
Björn Schießle <bjoern@schiessle.org> Björn Schiessle <schiessle@owncloud.com>
Björn Schießle <bjoern@schiessle.org> Bjoern Schießle <schiessle@owncloud.com>
Björn Schießle <bjoern@schiessle.org> Bjoern Schiessle <schiessle@owncloud.com>
Björn Schießle <bjoern@schiessle.org> Björn Schießle <schiessle@owncloud.com>
BlackEagle <ike.devolder@gmail.com>
Boris Rybalkin <ribalkin@gmail.com>
Borjan Tchakaloff <borjan@tchakaloff.fr>
Brice Maron <brice@bmaron.net>
brumsel <brumsel@losecatcher.de> brumsoel <brumsel@losecatcher.de>
Byron Marohn <combustible@live.com> eMerzh <brice@bmaron.net>
Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Carla Schroder <carla@owncloud.com>
Carlos Cerrillo <ccerrillo@gmail.com>
cbhp <cbhp@users.noreply.github.com>
cbojar <chris@cbojar.net>
Ceri Davies <ceri@submonkey.net>
cetra3 <peter@parashift.com.au>
Charles-Edouard Coste <contact@ccoste.fr>
CharlyCoste <contact@ccoste.fr>
chli1 <chli1@users.noreply.github.com>
Chris Kankiewicz <Chris@ChrisKankiewicz.com>
Chris LeBlanc <chris@leblaaanc.com>
Chris Wilson <chris+github@qwirx.com>
Christian Berendt <berendt@b1-systems.de>
Christian Kampka <christian@kampka.net>
Christian Koch <koch.chris@gmail.com>
Christian Reiner <github@christian-reiner.info> Christian Reiner <arkascha@balder.site>
Christoph Wurst <christoph@winzerhof-wurst.at> Christoph Wurst <ChristophWurst@users.noreply.github.com>
Christoph Wurst <christoph@winzerhof-wurst.at> Christoph Wurst <christoph@owncloud.com>
Christopher Bunn <b11.chris@gmail.com>
Christopher Schäpers <kondou@ts.unde.re> Christopher <kondou@ts.unde.re>
Christopher Schäpers <kondou@ts.unde.re> kondou <kondou@ts.unde.re>
Christopher Schäpers <kondou@ts.unde.re> root <kondou@ts.unde.re>
Christopher T. Johnson <ctjctj@gmail.com>
Clark Tomlinson <fallen013@gmail.com>
Cloud Dumper <clouddumper@gmail.com>
cmeh <cmeh@users.noreply.github.com>
Cornelius Schumacher <schumacher@kde.org>
Craig Morrissey <craig@owncloud.com>
Côme BERNIGAUD <come.bernigaud@laposte.net>
dampfklon <me@dampfklon.de>
Dan Bartram <daneybartram@gmail.com>
Dan Callahan <dan.callahan@gmail.com>
Dan Jones <dan@danneh.org>
Daniel <daniel@mars.(none)>
Daniel Hansson <enoch85@gmail.com>
Daniel Kesselberg <mail@danielkesselberg.de> kesselb <mail@danielkesselberg.de>
Daniel Köb <daniel.koeb@peony.at>
Daniel Molkentin <daniel@molkentin.de>
Daniele E. Domenichelli <daniele.domenichelli@gmail.com>
David <davidventura>
David Iwanowitsch <david+git@unclouded.de> David Iwanowitsch <diw@gmx.de>
David Prévot <taffit@debian.org>
David Reagan <reagand@lanecc.edu>
davidak <davidak@gmx.de>
davidgumberg <davidnoizgumberg@gmail.com>
Dawid Opis <ncore@ncore.com.pl>
Deepak Mittal <dpac.mittal2@gmail.com>
DeLtAfOx <edo@ravers.it>
denis-b <denis.bonnenfant@diderot.org>
Der-Jan <de@r-jan.de>
derkostka <sebastian.kostka@gmail.com>
Diederik de Haas <diederik@cknow.org>
Dominik Schmidt <dev@dominik-schmidt.de>
Donald Buczek <buczek@molgen.mpg.de>
Donquixote <marjunebatac@gmail.com> Donquixote <marjunebatac@gmailcom>
Doug Neiner <doug@pixelgraphics.us>
drarko <drarko@users.noreply.github.com>
dratini0 <dratini0@gmail.com>
Duane Johnson <duane.johnson@gmail.com>
eduardo <eduardo@vnexu.net>
elchi <niklas1b@yahoo.de>
Elias Probst <mail@eliasprobst.eu>
Florian <ente@baer.rwth-aachen.de> ente <ente@baer.rwth-aachen.de>
Erik Sargent <esthepiking@gmail.com>
Evgeni Golov <evgeni@golov.de>
fabian <fabian@web2.0-apps.de>
Fabian Henze <flyser42@gmx.de>
Felix Böhm <felixboehm@gmx.de> felixboehm <felixboehm@gmx.de>
Felix Eckhofer <felix@eckhofer.com>
Felix Moeller <mail@felixmoeller.de>
Felix Niklas <mrflix@gmail.com>
Fernando Rodriguez Sela <frsela@tid.es>
fibsifan <fi@volans.uberspace.de>
Florian Hülsmann <fh@cbix.de>
Florian Jacob <fjacob@lavabit.com>
Florian Preinstorfer <nblock@archlinux.us>
Florian Pritz <bluewind@xinu.at>
Florian Scholz <FlorianScholz@bgstyle.de> Florian Scholz <work@bgstyle.de>
Florian Vichot <florian.vichot@gmail.com>
Florin Peter <github@florin-peter.de> Florin Peter <fp@datawerk.de>
Florin Peter <github@florin-peter.de> FlorinPeter <github@florin-peter.de>
Francesco Piraneo G. <fpiraneo@iface.ch>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@dev.(none)>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@devel.(none)>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@oc.(none)>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@owncloud.org>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <karlitschek@kde.org>
François Kubler <francois@kubler.org>
Frédéric Fortier <frederic.fortier@oronospolytechnique.com> Frédéric Fortier <frederic.fortier@polymtl.ca>
Frederik Gladhorn <gladhorn@kde.org>
Gadzy <dev@gadzy.fr>
ganomi <ganomi@gmail.com>
Gaël Beaudoin <gaboo@home.gaboo.org>
geez0x1 <geez0x1@users.noreply.github.com>
gekmihesg <markus@gekmihesg.de>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <dev@georgswebsite.de>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <developer@georgehrke.com>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <georg.stefan.germany@googlemail.com>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <ownclouddev@georgswebsite.de>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <devgeorg@ownCloud.com>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <georg@ownCloud.com>
Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <georg@owncloud.com>
Golnaz Nilieh <g382nilieh@gmail.com>
Grundik <grundik@ololo.cc>
Guillaume AMAT <guillaume.amat@informatique-libre.com>
Hans Bakker <hansmbakker@gmail.com>
helix84 <helix84@centrum.sk>
Hendrik Langer <hendrik.langer@gmx.de>
Henning Becker <h.becker@oedenstockach.de>
Henning Oschwald <h.oschwald@gmx.de>
Henrik Kjölhede <hkjolhede@gmail.com>
herbrechtsmeier <stefan@herbrechtsmeier.net>
hkjolhede <hkjolhede@gmail.com>
IchEben <andreas@reichster.de>
ideaship <ideaship@users.noreply.github.com>
Ignacio Daniel Rostagno <ignaciorostagno@vijona.com.ar>
infoneo <infoneo@yahoo.pl>
Insanemal <insanemal@gmail.com>
Tobias Perschon <tobias@perschon.at> Tobias Perschon <tofuSCHNITZEL@users.noreply.github.com>
Tobias Ramforth <tobias@ramforth.com> Tobias Ramforth <tobias.ramforth@udo.edu>
Tobias Ramforth <tobias@ramforth.com> irgsmirx <tobias.ramforth@udo.edu>
Isaac Rosenberg <irosenb7@gmail.com>
itheiss <ingo.theiss@i-matrixx.de>
j-ed <juergen@eisfair.org>
Jake Wilson <jakew@huebnerpetersen.com>
Jakob Sack <mail@jakobsack.de> Jakob Sack <kde@jakobsack.de>
jamesryanbell <james@james-bell.co.uk>
Jamie McClelland <jm@mayfirst.org>
Jan-Christoph Borchardt <hey@jancborchardt.net> Jan-Christoph Borchardt <jan@unhosted.org>
Jan-Christoph Borchardt <hey@jancborchardt.net> Jan-Christoph Borchardt <JanCBorchardt@fsfe.org>
jbtbnl <jbtbnl@users.noreply.github.com>
Jean-Louis Dupond <jean-louis@dupond.be>
Jenkins for ownCloud <owncloud-bot@tmit.eu> Jenkins for ownCloud <thomas.mueller@tmit.eu>
Jens-Christian Fischer <jens-christian.fischer@switch.ch>
Jernej Virag <jernej.virag@gmail.com>
Jesus Macias Portela <jesus.macias.portela@gmail.com>
Jesús Macias <jmacias@solidgear.es> Jesus Macias <jmacias@full-on-net.com>
jknockaert <jasper@knockaert.nl>
Joan <aseques@gmail.com>
Joar Wandborg <git@wandborg.com>
Joas Schilling <coding@schilljs.com> Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Joas Schilling <coding@schilljs.com> Joas Schilling <nickvergessen@gmx.de>
Joas Schilling <coding@schilljs.com> Joas Schilling <nickvergessen@owncloud.com>
joel hansson <joel.hansson@gmail.com>
Johan Björk <johanimon@gmail.com>
Johannes Twittmann <github.com@deryo.de>
Johannes Willnecker <johannes@willnecker.com>
John Kristensen <John.Kristensen@dpipwe.tas.gov.au>
Jonathan Riddell <jriddell@ubuntu.com>
Jonny007-MKD <1-23-4-5@web.de>
josh4trunks <joshruehlig@gmail.com>
Joshua Medeiros <Jammerx2@gmail.com>
Juan Carlos Cornejo <jc2@paintblack.com>
Julian Müller <julian.mueller.ffb@kabelmail.de>
Jörn Friedrich Dreyer <jfd@butonic.de> jfd <jfd@lance>
Jörn Friedrich Dreyer <jfd@butonic.de> jfd <jfd@underverse>
Kamil Domanski <kdomanski@kdemail.net>
Kees Huiberts <snowy@derideal.com>
Klaas Freitag <freitag@owncloud.com> Klaas Freitag <freitag@suse.de>
Konstantin Popov <konstantin.popov@globalpointagency.comv> Konstantin.Popov <konstantin.popov@globalpointagency.comv>
krzaczek <pawel@freshmind.pl>
Kshitij Parajuli <kshitijparajuli@gmail.com>
Kunal Ghosh <kunal.t2@gmail.com>
Tobia De Koninck <tobia@ledfan.be> LEDfan <tobia@ledfan.be>
Lennart Rosam <lennart.rosam@medien-systempartner.de>
Sebastian Döll <sebastian.doell@libasys.de> libasys <sebastian.doell@libasys.de>
Lode Hoste <zillode@zillode.be>
lolozere <laurent@chedanne.pro>
Louis Chemineau <louis@chmn.me> Louis Chemineau <6653109+artonge@users.noreply.github.com>
Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
Lukas Reschke <lukas@statuscode.ch> Lukas Reschke <lukas@owncloud.com>
Lukas Reschke <lukas@statuscode.ch> Lukas Reschke <lukas@owncloud.org>
Luke Policinski <lpolicinski@gmail.com>
Lyonel Vincent <lyonel@ezix.org>
macjohnny <estebanmarin@gmx.ch>
maelzx <maelzx@gmail.com>
marc0s <marcos@tenak.net>
Marco B <beinbrech@solutica.de>
Marco Michelino <michelinux@gmail.com>
Markus Goetz <markus@woboq.com>
Markus Kalkbrenner <markus.kalkbrenner@bio.logis.de>
Martial Saunois <saunois.martial@gmail.com>
Martin Mattel <martin.mattel@diemattels.at> Martin <martin.mattel@diemattels.at>
Martin Mattel <martin.mattel@diemattels.at> root <martin.mattel@diemattels.at>
Martin Grohmann <martin@medi-inf.org>
# TODO: the same person
Martin Konrad <info@martin-konrad.net>
Martin Konrad <konrad@frib.msu.edu>
Martin Sandsmark <martin.sandsmark@kde.org> Martin T. H. Sandsmark <sandsmark@samfundet.no>
Marvin Thomas Rabe <mrabe@marvinrabe.de> Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
Masaki Kawabata Neto <masaki.kawabata@gmail.com> Masaki <masaki.kawabata@gmail.com>
Mat Lipe <mat@lipeimagination.info>
Matthew Caron <matt@mattcaron.net>
Matthew Dawson <matthew@mjdsystems.ca>
Matthias Rieber <matthias@zu-con.org>
Maximilian Ruta <mr@xtain.net>
mh <mh@immerda.ch>
Michael Gapczynski <GapczynskiM@gmail.com> Michael Gapczynski <mtgap@owncloud.com>
Michael Göhler <somebody.here@gmx.de>
Michael Kent <mike@draftx.net>
Michael Kuhn <suraia@ikkoku.de>
Michael Monreal <michael.monreal@gmail.com>
Michael Roitzsch <reactorcontrol@icloud.com>
michag86 <micha_g@arcor.de>
Michiel de Jong <michiel@unhosted.org> Michiel@unhosted <michiel@unhosted.org>
Miguel Prokop <miguel.prokop@vtu.com>
miicha <pfitzner@physik.hu-berlin.de>
Miquel Rodríguez Telep / Michael Rodríguez-Torrent <miquel@designunbound.co.uk>
Morris Jobke <hey@morrisjobke.de> Morris Jobke <morris.jobke@gmail.com>
MTRichards <matt@owncloud.com>
mvn23 <schopdiedwaas@gmail.com>
Myles McNamara <myles@hostt.net> Myles McNamara <myles@smyl.es>
NARUKAWA Hiroki <nhirokinet@nhiroki.net>
Nathan Dauber <nathan@radialogica.com>
Nazar Mokrynskyi <nazar@mokrynskyi.com>
nhirokinet <nhirokinet@nhiroki.net>
Nico Kaiser <nico.kaiser@boerse-go.de>
Nicolai Ehemann <en@enlightened.de>
Nicolas Stamm <nicolas.stamm@gmail.com>
NIEK Antoine <antoineniek@gmail.com>
Niklas Sombert <niklas1b@yahoo.de>
Nils Jansen <nilsjansen@gmail.com>
nishiki <nishiki@yaegashi.fr>
Nmz <nemesiz@nmz.lt>
Normal Ra <normalraw@gmail.com> Normal Ra <NormalRa@users.noreply.github.com>
Oliver Gasser <oliver.gasser@gmail.com> Oliver Gasser <oliver@flowriver.net>
Oliver Kohl D.Sc. <oliver@kohl.bz>
Olivier Paroz <github@oparoz.com> Olivier Paroz <oparoz@users.noreply.github.com>
Olivier Tétard <olivier.tetard@miskin.fr>
Aaron Larisch <aaron.larisch@gmx.de> OpenLarry <aaron.larisch@gmx.de>
opensaucesystems <ashley@opensaucesystems.com>
Oskar Hollmann <oskarhollmann@gmail.com>
Otto Sabart <ottosabart@seberm.com>
Owen Winkler <a_github@midnightcircus.com> Owen Winkler <epithet@gmail.com>
Owen Winkler <a_github@midnightcircus.com> ringmaster <epithet@gmail.com>
Pascal de Bruijn <pmjdebruijn@pcode.nl>
Patrick Paysant <ppaysant@linagora.com>
Patrick Stricker <stricker@hera.dev.iks-hagen.de>
Paul Brown <paul90brown@gmail.com>
pdessauw <pdessauw@gmail.com>
Pellaeon Lin <nfsmwlin@gmail.com>
Pete McFarlane <peterjohnmcfarlane@gmail.com> petemcfarlane <peterjohnmcfarlane@gmail.com>
Philipp Kapfer <philipp.kapfer@gmx.at>
Philipp Knechtges <philipp-dev@knechtges.com>
Philipp Roggan <philipp.roggan@newsletter4free.de>
Philipp Schmitt <philipp@schmitt.co>
Philippe Jung <phil.jung@free.fr>
Philippe Kueck <pk@plusline.de>
prcrst <prcrst@hush.com>
pzy <pzy@d1sturbed.org>
Qingping Hou <dave2008713@gmail.com>
Raghu Nayyar <me@iraghu.com> Raghu Nayyar <raghu.nayyar.007@gmail.com>
Raghu Nayyar <me@iraghu.com> raghunayyar <me@iraghu.com>
Raimund Schlüßler <raimund.schluessler@googlemail.com>
Ramiro Aparicio <rapariciog@gmail.com>
Randolph Carter <RandolphCarter@fantasymail.de>
RealRancor <Fisch.666@gmx.de>
Remco Brenninkmeijer <requist1@starmail.nl>
Riccardo Iaconelli <riccardo@kde.org>
Richard Clarkson <robert@trash-mail.com>
rnveach <rveach02@gmail.com>
Robert Jäckel <rjaeckel@users.noreply.github.com>
Robin Appelman <robin@icewind.nl> icewind1991 <icewind1991@gmail.com>
Robin Appelman <robin@icewind.nl> icewind1991 <robin@icewind.nl>
Robin Appelman <robin@icewind.nl> Robin <Robin Appelman icewind1991@gmail.com>
Robin Appelman <robin@icewind.nl> Robin <robin@Amaya.(none)>
Robin Appelman <robin@icewind.nl> Robin Appelman <icewind1991@gmail.com>
Robin Appelman <robin@icewind.nl> Robin Appelman <icewind1991@gmail>
Robin Appelman <robin@icewind.nl> Robin Appelman <icewind@owncloud.com>
Robin McCorkell <robin@mccorkell.me.uk> Robin McCorkell <rmccorkell@karoshi.org.uk>
Robin McCorkell <robin@mccorkell.me.uk> Robin McCorkell <rmccorkell@owncloud.com>
Rodrigo Hjort <rodrigo.hjort@gmail.com>
Roeland Jago Douma <roeland@famdouma.nl> Roeland Jago Douma <rullzer@owncloud.com>
Roeland Jago Douma <roeland@famdouma.nl> Roeland Douma <rullzer@users.noreply.github.com>
Roeland Jago Douma <roeland@famdouma.nl> Roeland Jago Douma <rullzer@users.noreply.github.com>
Roger Szabo <roger.szabo@web.de> root <roger.szabo@web.de>
rok <brejktru@gmail.com>
Roland Hager <roland.hager@tu-berlin.de>
Roland van Laar <roland@micite.net>
rolandgeider <roland@geider.net>
Roman Geber <rgeber@owncloudapps.com>
root <root@asterisk03.ceschia.de>
root <root@dev.(none)>
root <root@oc.(none)>
root <root@plug.(none)>
Ross Nicoll <jrn@jrn.me.uk>
runky <philipp.boersteken@googlemail.com>
Sam Tuke <mail@samtuke.com> Sam Tuke <sam@donttravelempty.com>
Sam Tuke <mail@samtuke.com> Sam Tuke <samtuke@jack-laptop.(none)>
Sam Tuke <mail@samtuke.com> Sam Tuke <samtuke@owncloud.com>
Sander <brantje@gmail.com>
Sandro Knauß <bugs@sandroknauss.de> Sandro <hefee@taurin.(none)>
Sascha Schmidt <realriot@realriot.de>
Sascha Schneider <development@suntsu.org>
Sascha Wiswedel <sascha.wiswedel@nextcloud.com> Sascha Wiswedel <wiswedel@users.noreply.github.com>
scambra <sergio@entrecables.com>
scolebrook <scolebrook@mac.com>
Scott Arciszewski <scott@arciszewski.me>
Scott Barnett <scott.n.barnett@gmail.com>
Scott Shambarger <gitorious@shambarger.net>
Scrutinizer Auto-Fixer <auto-fixer@scrutinizer-ci.com>
Sean Comeau <sean@ftlnetworks.ca>
Sean Leonard <meanderingcode@silverleafstudios.net>
Sebastian Bolt <sebastian.bolt@gmx.de>
Serge Martin <edb@sigluy.net>
Sergei Shuykov <n1nj4p0w3r@gmail.com>
Sergi Almacellas Abellana <sergi@koolpi.com>
sherbrecher <oss@herbrecher.de>
shkdee <louis.traynard@m4x.org>
Simon Birnbach <simon@simon-birnbach.de>
Simon Könnecke <simonkoennecke@gmail.com>
Simon Whittaker <simon@swbh.net>
Sjors van der Pluijm <sjors@desjors.nl> Sjors van der Pluijm <sjors@youngguns.nl>
John Molakvoæ <skjnldsv@protonmail.com> John Molakvoæ <skjnldsv@users.noreply.github.com>
John Molakvoæ <skjnldsv@protonmail.com> John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
st3so <st3so@server.fake>
Stefan <mu.stefan@googlemail.com>
Stefan Göckeritz <admin@s-goecker.de>
Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Stefan Rado <owncloud@sradonia.net>
Stefan Seidel <android@stefanseidel.info>
Steffen Lindner <mail@steffen-lindner.de> Steffen Lindner <gomez@flexiabel.de>
Stephan Arts <stephan@xfce.org>
Stephan Bergemann <st.bergemann@htw-berlin.de>
Stephan Peijnik <speijnik@anexia-it.com>
Stephane Martin <stef.martin@gmail.com> Stephane Martin <stephane.martin@vesperal.eu>
Stephane V <stephane@vergeylen.eu>
Stephen Rees-Carter <stephen@rees-carter.net>
Steven <wokste@gmail.com>
Steven <wokste@Komkommer.(none)>
Steven <wwjd2@web.de>
Sugaroverdose <n1nj4p0w3r@gmail.com>
Susinthiran Sithamparanathan <chesusin@gmail.com>
tbelau666 <thomas.belau@gmx.de>
TheSFReader <TheSFReader@gmail.com>
Thibaut GRIDEL <tgridel@free.fr>
thomas <thomas@thomas-VirtualBox.(none)>
Thomas Citharel <nextcloud@tcit.fr> Thomas Citharel <tcit@tcit.fr>
Thomas Citharel <nextcloud@tcit.fr> Thomas Citharel <github@tcit.fr>
Thomas Müller <thomas.mueller@tmit.eu> Thomas Mueller <thomas.mueller@tmit.eu>
Thomas Müller <thomas.mueller@tmit.eu> Thomas Müller <DeepDiver1975@users.noreply.github.com>
Thomas Olsen <tol@tanghus>
Thomas Schmidt <tschmidt@suse.de>
Thomas Tanghus <thomas@tanghus.net>
Thomas Zander <zander@kde.org>
tiezdne <oswald.84@t-online.de>
Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Tobias Kaminsky <tobias@kaminsky.me> tobiasKaminsky <tobias@kaminsky.me>
Tom Needham <tom@owncloud.com> Tom Needham <needham.thomas@gmail.com>
Tom Needham <tom@owncloud.com> Tom Needham <tom@tre.tomneedham.com>
Tom Needham <tom@owncloud.com> tomneedham <needham.thomas@gmail.com>
Tom Needham <tom@owncloud.com> tomneedham <tom@owncloud.com>
Tony Zelenoff <antonz@parallels.com>
tsumi <mail@tsumi.it>
twood8 <ted.wood@gtri.gatech.edu>
Türker Sezer <turkersezer@tsdesign.info>
unclejamal3000 <andreas.pramhaas@posteo.de>
unknown <Alain@Alain-PC.(none)>
unknown <pnd@.nist.gov>
Valerio Ponte <valerio.ponte@gmail.com>
Victor Dubiniuk <dubiniuk@owncloud.com> Victor Dubiniuk <victor.dubiniuk@gmail.com>
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <dubiniuk@owncloud.com>
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <victor.dubiniuk@gmail.com>
Vincent Cloutier <vincent1cloutier@gmail.com>
Vincent Petry <vincent@nextcloud.com> Vincent Petry <PVince81@yahoo.fr>
Vincent Petry <vincent@nextcloud.com> Vincent Petry <vincent@vvortex.site>
Vincent Petry <vincent@nextcloud.com> Vincent Petry <pvince81@owncloud.com>
Vinicius Cubas Brand <vinicius@eita.org.br> Vinicius Cubas Brand <viniciuscb@gmail.com>
Vitaly Kuznetsov <vitty@altlinux.ru>
Vladimir Sapronov <vladimir.sapronov@gmail.com>
Volkan Gezer <volkangezer@gmail.com> Volkan Gezer <wakeup@users.noreply.github.com>
Volker E. <open@temporaer.net>
voxsim <Simon Vocella>
vsapronov <vladimir.sapronov@gmail.com>
Vsevolod Kukol <v.kukol@rubologic.de>
Weng Xuetian <wengxt@gmail.com>
Wikinaut <mail@tgries.de>
Willi Ballenthin <willi.ballenthin@gmail.com>
windaishi <manuel.strider@web.de>
Witali Rott <info@hlop.eu>
Yann VERRY <yann@verry.org>
yannickoo <github@yannickoo.de>
zafi <zafirakis.daniel@gmail.com>
zombiehugs <gerdsen@gmail.com>
-1
View File
@@ -1 +0,0 @@
**/*.spec.js
-40
View File
@@ -1,40 +0,0 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
require_once './vendor-bin/cs-fixer/vendor/autoload.php';
use Nextcloud\CodingStandard\Config;
use PhpCsFixer\Runner\Parallel\ParallelConfigFactory;
$config = new Config();
$config
->setParallelConfig(ParallelConfigFactory::detect())
->getFinder()
->in(__DIR__)
->exclude([
'3rdparty',
'build/stubs',
'composer',
])
;
$ignoredEntries = shell_exec('git status --porcelain --ignored ' . escapeshellarg(__DIR__));
$ignoredEntries = explode("\n", $ignoredEntries);
$ignoredEntries = array_filter($ignoredEntries, static fn (string $line) => str_starts_with($line, '!! '));
$ignoredEntries = array_map(static fn (string $line) => substr($line, 3), $ignoredEntries);
$ignoredEntries = array_values($ignoredEntries);
foreach ($ignoredEntries as $ignoredEntry) {
if (str_ends_with($ignoredEntry, '/')) {
$config->getFinder()->exclude($ignoredEntry);
} else {
$config->getFinder()->notPath($ignoredEntry);
}
}
return $config;
-19
View File
@@ -1,19 +0,0 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: https://github.com/nextcloud/pre-commit-php.git
rev: 1.5.1
hooks:
- id: php-lint
- id: php-cs-fixer
files: \.(php)$
exclude: ^(config|data|composer|lib\/composer)
args: []
+27
View File
@@ -0,0 +1,27 @@
filter:
excluded_paths:
- '3rdparty/*'
- 'apps/*/3rdparty/*'
- 'l10n/*'
- 'core/l10n/*'
- 'apps/*/l10n/*'
- 'lib/l10n/*'
- 'core/js/tests/lib/*.js'
- 'core/js/tests/specs/*.js'
- 'core/js/jquery-1.10.0.js'
- 'core/js/jquery-1.10.0.min.js'
- 'core/js/jquery-migrate-1.2.1.js'
- 'core/js/jquery-migrate-1.2.1.min.js'
- 'core/js/jquery-showpassword.js'
- 'core/js/jquery-tipsy.js'
- 'core/js/jquery-ui-1.10.0.custom.js'
- 'core/js/jquery.inview.js'
- 'core/js/placeholders.js'
- 'core/js/underscore.js'
- 'core/js/jquery.multiselect.js'
imports:
- javascript
- php
-1
View File
@@ -1 +0,0 @@
$Format:%H$
-195
View File
@@ -1,195 +0,0 @@
[main]
host = https://www.transifex.com
lang_map = fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja, bg_BG: bg, cs_CZ: cs
[o:nextcloud:p:nextcloud:r:admin_audit]
file_filter = translationfiles/<lang>/admin_audit.po
source_file = translationfiles/templates/admin_audit.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:cloud_federation_api]
file_filter = translationfiles/<lang>/cloud_federation_api.po
source_file = translationfiles/templates/cloud_federation_api.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:comments]
file_filter = translationfiles/<lang>/comments.po
source_file = translationfiles/templates/comments.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:contactsinteraction]
file_filter = translationfiles/<lang>/contactsinteraction.po
source_file = translationfiles/templates/contactsinteraction.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:core]
file_filter = translationfiles/<lang>/core.po
source_file = translationfiles/templates/core.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:dashboard-shipped-with-server]
file_filter = translationfiles/<lang>/dashboard.po
source_file = translationfiles/templates/dashboard.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:dav]
file_filter = translationfiles/<lang>/dav.po
source_file = translationfiles/templates/dav.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:federatedfilesharing]
file_filter = translationfiles/<lang>/federatedfilesharing.po
source_file = translationfiles/templates/federatedfilesharing.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:federation]
file_filter = translationfiles/<lang>/federation.po
source_file = translationfiles/templates/federation.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files]
file_filter = translationfiles/<lang>/files.po
source_file = translationfiles/templates/files.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_encryption]
file_filter = translationfiles/<lang>/encryption.po
source_file = translationfiles/templates/encryption.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_external]
file_filter = translationfiles/<lang>/files_external.po
source_file = translationfiles/templates/files_external.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_reminders]
file_filter = translationfiles/<lang>/files_reminders.po
source_file = translationfiles/templates/files_reminders.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_sharing]
file_filter = translationfiles/<lang>/files_sharing.po
source_file = translationfiles/templates/files_sharing.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_trashbin]
file_filter = translationfiles/<lang>/files_trashbin.po
source_file = translationfiles/templates/files_trashbin.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:files_versions]
file_filter = translationfiles/<lang>/files_versions.po
source_file = translationfiles/templates/files_versions.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:lib]
file_filter = translationfiles/<lang>/lib.po
source_file = translationfiles/templates/lib.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:lookup_server_connector]
file_filter = translationfiles/<lang>/lookup_server_connector.po
source_file = translationfiles/templates/lookup_server_connector.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:oauth2]
file_filter = translationfiles/<lang>/oauth2.po
source_file = translationfiles/templates/oauth2.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:profile]
file_filter = translationfiles/<lang>/profile.po
source_file = translationfiles/templates/profile.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:provisioning_api]
file_filter = translationfiles/<lang>/provisioning_api.po
source_file = translationfiles/templates/provisioning_api.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:settings-1]
file_filter = translationfiles/<lang>/settings.po
source_file = translationfiles/templates/settings.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:sharebymail]
file_filter = translationfiles/<lang>/sharebymail.po
source_file = translationfiles/templates/sharebymail.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:systemtags]
file_filter = translationfiles/<lang>/systemtags.po
source_file = translationfiles/templates/systemtags.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:theming]
file_filter = translationfiles/<lang>/theming.po
source_file = translationfiles/templates/theming.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:twofactor_backupcodes]
file_filter = translationfiles/<lang>/twofactor_backupcodes.po
source_file = translationfiles/templates/twofactor_backupcodes.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:updatenotification]
file_filter = translationfiles/<lang>/updatenotification.po
source_file = translationfiles/templates/updatenotification.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:user_ldap]
file_filter = translationfiles/<lang>/user_ldap.po
source_file = translationfiles/templates/user_ldap.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:user_status]
file_filter = translationfiles/<lang>/user_status.po
source_file = translationfiles/templates/user_status.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:weather_status]
file_filter = translationfiles/<lang>/weather_status.po
source_file = translationfiles/templates/weather_status.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:webhook_listeners]
file_filter = translationfiles/<lang>/webhook_listeners.po
source_file = translationfiles/templates/webhook_listeners.pot
source_lang = en
type = PO
[o:nextcloud:p:nextcloud:r:workflowengine]
file_filter = translationfiles/<lang>/workflowengine.po
source_file = translationfiles/templates/workflowengine.pot
source_lang = en
type = PO
-9
View File
@@ -1,9 +0,0 @@
; SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
; SPDX-FileCopyrightText: 2014-2016 ownCloud, Inc.
; SPDX-License-Identifier: AGPL-3.0-only
;
; NOTE: PHP caches this file for 300 seconds by default
;
always_populate_raw_post_data=-1
default_charset='UTF-8'
output_buffering=0
+25 -635
View File
@@ -1,641 +1,31 @@
<!--
- SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
- SPDX-FileCopyrightText: 2016 ownCloud, Inc.
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Authors
- AW-UC <git@a-wesemann.de>
- Aaron Ball <nullspoon@oper.io>
- Aaron Wood <aaronjwood@gmail.com>
- Abijeet <abijeetpatro@gmail.com>
- Adam Blakey <adam@blakey.family>
- Adam Williamson <awilliam@redhat.com>
- Administrator "Administrator@WINDOWS-2012"
- Adrian Brzezinski <adrian.brzezinski@eo.pl>
- Akhil <akhil.potukuchi@gmail.com>
- Akhil <akhil@e.email>
- Akhil Potukuchi <akhil.potukuchi@gmail.com>
- Alan Meeson <alan@carefullycalculated.co.uk>
- Aldo "xoen" Giambelluca <xoen@xoen.org>
- Alecks Gates <alecks.g@gmail.com>
- Alejandro Varela <epma01@gmail.com>
- Alexander A. Klimov <grandmaster@al2klimov.de>
- Alexandre Salomé <alexandre.salome@gmail.com>
- Alex Harpin <development@landsofshadow.co.uk>
- Alex Weirig <alex.weirig@technolink.lu>
- Alexander Bergolth <leo@strike.wu.ac.at>
- Alexander F <32201363+alx-tuilmenau@users.noreply.github.com>
- Allan Nordhøy <epost@anotheragency.no>
- Anderson Luiz Alves <alacn1@gmail.com>
- Andreas Fischer <bantu@owncloud.com>
- Andreas Pflug <dev@admin4.org>
- Andrew Brown <andrew@casabrown.com>
- Andrey Borysenko <andrey.borysenko@nextcloud.com>
- André Gaul <gaul@web-yard.de>
- Andy Xheli <axheli@axtsolutions.com>
- Anna Larch <anna@nextcloud.com>
- Anna Larch <anna.larch@gmx.net>
- Anupam Kumar <kyteinsky@gmail.com>
- ArcticFall <23174635+ArcticFall@users.noreply.github.com>
- Ardinis <Ardinis@users.noreply.github.com>
- Ari Selseng <ari@selseng.net>
- Arne Hamann <kontakt+github@arne.email>
- Arne Hamann <github@arne.email>
- Artem Kochnev <MrJeos@gmail.com>
- Artem Sidorenko <artem@posteo.de>
- Arthur Schiwon <blizzz@arthur-schiwon.de>
- Artur Neumann <artur@jankaritech.com>
- Artur Neumann <info@individual-it.net>
- Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- Asier Iturralde Sarasola <asier.iturralde@gmail.com>
- Axel Helmert <axel.helmert@luka.de>
- Azul <azul@riseup.net>
- Bart Visscher <bartv@thisnet.nl>
- Bartek Przybylski <bart.p.pl@gmail.com>
- Bastien Durel <bastien@durel.org>
- Bastien Ho <bastienho@urbancube.fr>
- Benjamin Diele <benjamin@diele.be>
- Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
- Benjamin Liles <benliles@arch.tamu.edu>
- Bennet Becker <bbecker@pks.mpg.de>
- Bennet Becker <dev@bennet.cc>
- Bernard Spil <Sp1l@users.noreply.github.com>
- Bernd Rederlechner <Bernd.Rederlechner@t-systems.com>
- Bernd Stellwag <burned@zerties.org>
- Bernhard Ostertag <bernieo.code@gmx.de>
- Bernhard Posselt <dev@bernhard-posselt.com>
- Bernhard Reiter <ockham@raz.or.at>
- Bill McGonigle <bill-github.com@bfccomputing.com>
- Daniel Niccoli <daniel.niccoli@gmail.com>
- Bjoern Schiessle <bjoern@schiessle.org>
- Björn Schießle <bjoern@schiessle.org>
- Bjørn Forsman <bjorn.forsman@gmail.com>
- Blaok <i@blaok.me>
- Boris Rybalkin <ribalkin@gmail.com>
- Borjan Tchakaloff <borjan@tchakaloff.fr>
- Brad Rubenstein <brad@wbr.tech>
- Brandon Kirsch <brandonkirsch@github.com>
- Branko Kokanovic <branko@kokanovic.org>
- Brice Maron <brice@bmaron.net>
- Byron Marohn <combustible@live.com>
- CRA Yoshihito Nakatani <yoshihito.nakatani@craftsman-software.com>
- Carl Csaposs <carl@csaposs.com>
- Carl Schwan <carl@carlschwan.eu>
- Carla Schroder <carla@owncloud.com>
- Carlos Cerrillo <ccerrillo@gmail.com>
- Carlos Ferreira <carlos@reendex.com>
- Carsten Wiedmann <carsten_sttgt@gmx.de>
- Chih-Hsuan Yen <yan12125@gmail.com>
- Christian <16852529+cviereck@users.noreply.github.com>
- Christian Berendt <berendt@b1-systems.de>
- Christian Jürges <christian@eqipe.ch>
- Christian Kampka <christian@kampka.net>
- Christian Oliff <christianoliff@yahoo.com>
- Christian Weiske <cweiske@cweiske.de>
- Christoph Schaefer "christophł@wolkesicher.de"
- Christoph Seitz <christoph.seitz@posteo.de>
- Christoph Wickert <cwickert@suse.de>
- Christoph Wurst <christoph@winzerhof-wurst.at>
- Christopher Bartz <bartz@dkrz.de>
- Christopher Ng <chrng8@gmail.com>
- Christopher Schäpers <kondou@ts.unde.re>
- Christopher T. Johnson <ctjctj@gmail.com>
- Clark Tomlinson <fallen013@gmail.com>
- Claas Augner <github@caugner.de>
- Claus-Justus Heine <himself@claus-justus-heine.de>
- Clement Wong <git@clement.hk>
- Cornelius Kölbel <cornelius.koelbel@netknights.it>
- Cthulhux <git@tuxproject.de>
- Cyrille Bollu <cyrpub@bollu.be>
- Cédric Neukom <github@webguy.ch>
- Côme Chilliet <91878298+come-nc@users.noreply.github.com>
- Côme Chilliet <come.chilliet@nextcloud.com>
- Damjan Georgievski <gdamjan@gmail.com>
- Dan Callahan <dan.callahan@gmail.com>
- Daniel <mail@danielkesselberg.de>
- Daniel Calviño Sánchez <danxuliu@gmail.com>
- Daniel Hansson <daniel@techandme.se>
- Daniel Jagszent <daniel@jagszent.de>
- Daniel Kesselberg <mail@danielkesselberg.de>
- Daniel Rudolf <github.com@daniel-rudolf.de>
- Daniel Rudolf <nextcloud.com@daniel-rudolf.de>
- Daniel Schneider <daniel@schneidoa.de>
- Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de>
- Dariusz Olszewski <starypatyk@users.noreply.github.com>
- David <37280718+yeyulantu@users.noreply.github.com>
- David Prévot <taffit@debian.org>
- David Toledo <dtoledo@solidgear.es>
- Denis Mosolov <denismosolov@gmail.com>
- Derek <derek.kelly27@gmail.com>
- Dominik Schmidt <dev@dominik-schmidt.de>
- Donquixote <marjunebatac@gmail.com>
- Dries Mys <dries.mys@my-dreams.be>
- EWouters <6179932+EWouters@users.noreply.github.com>
- Elijah Martin-Merrill <elijah@nyp-itsours.com>
- Ember 'n0emis' Keske <git@n0emis.eu>
- Eric Masseran <rico.masseran@gmail.com>
- Erik van Velzen <erik@evanv.nl>
- Evgeny Golyshev <eugulixes@gmail.com>
- Ezhil Shanmugham <ezhil930@gmail.com>
- Fabian Dreßler <nudelsalat@clouz.de>
- Fabien Potencier <fabien@symfony.com>
- Fabrizio Steiner <fabrizio.steiner@gmail.com>
- Faraz Samapoor <f.samapoor@gmail.com>
- Felix Epp <work@felixepp.de>
- Felix Heidecke <felix@heidecke.me>
- Felix Moeller <mail@felixmoeller.de>
- Felix Nieuwenhuizen <felix@tdlrali.com>
- Felix Nüsse <Felix.nuesse@t-online.de>
- Felix Rupp <github@felixrupp.com>
- Ferdinand Thiessen <opensource@fthiessen.de>
- Ferdinand Thiessen <rpm@fthiessen.de>
- Filis Futsarov <filisko@users.noreply.github.com>
- Florent <florent@coppint.com>
- Florian Schunk <florian.schunk@rwth-aachen.de>
- Florin Peter <github@florin-peter.de>
- Fon E. Noel NFEBE <opensource@nfebe.com>
- Frank Isemann <frank@isemann.name>
- Frank Karlitschek <frank@karlitschek.de>
- François Freitag <mail@franek.fr>
- François Kubler <francois@kubler.org>
- François Ménabé <francois.menabe@gmail.com>
- Frederic Werner <frederic-github@werner-net.work>
- Frédéric Fortier <frederic.fortier@oronospolytechnique.com>
- Gary Kim <gary@garykim.dev>
- Georg Ehrke <oc.list@georgehrke.com>
- Git'Fellow <12234510+solracsf@users.noreply.github.com>
- Git'Fellow <carlos@reendex.com>
- Glandos <bugs-github@antipoul.fr>
- GrayFix <grayfix@gmail.com>
- Greta Doci <gretadoci@gmail.com>
- GretaD <gretadoci@gmail.com>
- Grigorii K. Shartsev <me@shgk.me>
- Guillaume COMPAGNON <gcompagnon@outlook.com>
- Guillaume Colson <guillaume.colson@univ-lorraine.fr>
- Guillaume Virlet <github@virlet.org>
- Hasso Tepper <hasso@zone.ee>
- Hemanth Kumar Veeranki <hems.india1997@gmail.com>
- Hendrik Leppelsack <hendrik@leppelsack.de>
- Hinrich Mahler <22366557+Bibo-Joshi@users.noreply.github.com>
- Hinrich Mahler <nextcloud@mahlerhome.de>
- Holger Hees <holger.hees@gmail.com>
- HouraisanNEET <HouraisanNEET@users.noreply.github.com>
- Ilja Neumann <ineumann@owncloud.com>
- Ilya Apasov <apasov@users.noreply.github.com>
- Immanuel Pasanec <immanuel.pasanec@compaso.de>
- Individual IT Services <info@individual-it.net>
- Informatyka Boguslawski sp. z o.o. sp.k., http://www.ib.pl/
- Iscle <albertiscle9@gmail.com>
- J0WI <J0WI@users.noreply.github.com>
- Jaakko Salo <jaakkos@gmail.com>
- Jacob Neplokh <me@jacobneplokh.com>
- Jake Nabasny <jake@nabasny.com>
- Jakob Sack <mail@jakobsack.de>
- Jakub Onderka <ahoj@jakubonderka.cz>
- James Guo <i@ze3kr.com>
- James Letendre <James.Letendre@gmail.com>
- Jan C. Borchardt <hey@jancborchardt.net>
- Jan Messer <jan@mtec-studios.ch>
- Jan-Christoph Borchardt <hey@jancborchardt.net>
- Jan-Philipp Litza <jpl@plutex.de>
- Jan-Philipp Litza <jplitza@users.noreply.github.com>
- JanBartels <j.bartels@arcor.de>
- Janis Köhr <janis.koehr@novatec-gmbh.de>
- Janis Köhr <janiskoehr@icloud.com>
- Jared Boone <jared.boone@gmail.com>
- Jarkko Lehtoranta <devel@jlranta.com>
- Jasper Weyne <jasperweyne@gmail.com>
- Jean-Louis Dupond <jean-louis@dupond.be>
- Jens-Christian Fischer <jens-christian.fischer@switch.ch>
- Jesús Macias <jmacias@solidgear.es>
- Joachim Bauch <bauch@struktur.de>
- Joachim Sokolowski <github@sokolowski.org>
- Joas Schilling <coding@schilljs.com>
- Joel S <joel.devbox@protonmail.com>
- Johan Björk <johanimon@gmail.com>
- Johannes Ernst <jernst@indiecomputing.com>
- Johannes Leuker <j.leuker@hosting.de>
- Johannes Merkel <mail@johannesgge.de>
- Johannes Riedel <joeried@users.noreply.github.com>
- Johannes Riedel <johannes@johannes-riedel.de>
- Johannes Schlichenmaier <johannes@schlichenmaier.info>
- Johannes Willnecker <johannes@willnecker.com>
- John Molakvoæ <skjnldsv@protonmail.com>
- Jonas <jonas@freesources.org>
- Jonas Heinrich <heinrich@synyx.de>
- Jonas Meurer <jonas@freesources.org>
- Jonas Rittershofer <jotoeri@users.noreply.github.com>
- Jonny007-MKD <1-23-4-5@web.de>
- Jos Poortvliet <jos@opensuse.org>
- Jose Quinteiro <github@quinteiro.org>
- Josh Richards <josh.t.richards@gmail.com>
- Joshua Trees <me@jtrees.io>
- Juan Pablo Villafáñez <jvillafanez@solidgear.es>
- Julien Lutran <julien.lutran@corp.ovh.com>
- Julien Veyssier <eneiluj@posteo.net>
- Julien Veyssier <julien-nc@posteo.net>
- Julius Haertl <jus@bitgrid.net>
- Julius Härtl <jus@bitgrid.net>
- Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
- Jörn Friedrich Dreyer <jfd@butonic.de>
- KB7777 <k.burkowski@gmail.com>
- Kamil Domanski <kdomanski@kdemail.net>
- Kareem <yemkareems@gmail.com>
- Karel Hink <info@karelhink.cz>
- Kate Döen <kate.doeen@nextcloud.com>
- Kawohl <john@owncloud.com>
- Kenneth Newwood <kenneth@newwood.name>
- Kevin Lanni <therealklanni@gmail.com>
- Kevin Ndung'u <kevgathuku@gmail.com>
- Kevin Niehage <k.niehage@syseleven.de>
- Kim Brose <kim.brose@rwth-aachen.de>
- Kirill Popov <kirill.s.popov@gmail.com>
- Klaas Freitag <freitag@owncloud.com>
- Knut Ahlers <knut@ahlers.me>
- Ko- <k.stoffelen@cs.ru.nl>
- Konrad Abicht <hi@inspirito.de>
- Konrad Bucheli <kb@open.ch>
- Kristof Provost <github@sigsegv.be>
- Kyle Fazzari <kyrofa@ubuntu.com>
- Lars <winnetou+github@catolic.de>
- Lars Knickrehm <mail@lars-sh.de>
- Laurens Post <Crote@users.noreply.github.com>
- Laurens Post <lkpost@scept.re>
- Lauris Binde <laurisb@users.noreply.github.com>
- Lee Garrett <lgarrett@rocketjump.eu>
- Lennart Rosam <hello@takuto.de>
- Lennart Rosam <lennart.rosam@medien-systempartner.de>
- Leon Klingele <git@leonklingele.de>
- Leon Klingele <leon@struktur.de>
- Liam Dennehy <liam@wiemax.net>
- Liam JACK <liamjack@users.noreply.github.com>
- Lionel Elie Mamane <lionel@mamane.lu>
- Loki3000 <github@labcms.ru>
- Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
- Lorenzo Tanganelli <35271287+tanganellilore@users.noreply.github.com>
- Louis <6653109+artonge@users.noreply.github.com>
- Louis Chemineau <louis@chmn.me>
- Loïc Hermann <loic.hermann@sciam.fr>
- Lucas Azevedo <lhs_azevedo@hotmail.com>
- Luka Trovic <luka@nextcloud.com>
- Lukas Reschke <lukas@statuscode.ch>
- Lukas Stabe <lukas@stabe.de>
- Luke Policinski <lpolicinski@gmail.com>
- Magnus Walbeck <mw@mwalbeck.org>
- Maksim Sukharev <antreesy.web@gmail.com>
- Marc Hefter <marchefter@gmail.com>
- Marc Hefter <marchefter@march42.net>
- Marcel Klehr <mklehr@gmx.net>
- Marcel Müller <marcel-mueller@gmx.de>
- Marcel Müller <marcel.mueller@nextcloud.com>
- Marcel Waldvogel <marcel.waldvogel@uni-konstanz.de>
- Marco Ambrosini <marcoambrosini@pm.me>
- Marco Ziech <marco@ziech.net>
- Marin Treselj <marin@pixelipo.com>
- Mario Danic <mario@lovelyhq.com>
- Mario Kolling <mario.kolling@serpro.gov.br>
- Marius Blüm <marius@lineone.io>
- Marius David Wieschollek <git.public@mdns.eu>
- Markus Goetz <markus@woboq.com>
- Markus Staab <markus.staab@redaxo.de>
- Markus Zeller <git@markuszeller.com>
- MartB <mart.b@outlook.de>
- Martin Brugnara <martin@0x6d62.eu>
- Martin Konrad <info@martin-konrad.net>
- Martin Konrad <konrad@frib.msu.edu>
- Martin Mattel <martin.mattel@diemattels.at>
- Marvin Thomas Rabe <mrabe@marvinrabe.de>
- Masaki Kawabata Neto <masaki.kawabata@gmail.com>
- MasterOfDeath <rinat.gumirov@mail.ru>
- Matthew Setter <matthew@matthewsetter.com>
- Matthieu Gallien <matthieu.gallien@nextcloud.com>
- Mattia Narducci <mattianarducci1@gmail.com>
- Max <max@nextcloud.com>
- Max Kovalenko <mxss1998@yandex.ru>
- Max Kunzelmann <maxdev@posteo.de>
- Maxence Lange <maxence@artificial-owl.com>
- Maxence Lange <maxence@nextcloud.com>
- Maxence Lange <maxence@pontapreta.net>
- Maxime Besson <maxime.besson@worteks.com>
- Maximilian Martin <maximilian_martin@gmx.de>
- Maxopoly <max@dermax.org>
- MichaIng <28480705+MichaIng@users.noreply.github.com>
- MichaIng <micha@dietpi.com>
- Michael Gapczynski <GapczynskiM@gmail.com>
- Michael Göhler <somebody.here@gmx.de>
- Michael Jobst <mjobst+github@tecratech.de>
- Michael Jobst <mjobst@necls.com>
- Michael Kuhn <github@ikkoku.de>
- Michael Kuhn <michael@ikkoku.de>
- Michael Letzgus <www@chronos.michael-letzgus.de>
- Michael Roitzsch <reactorcontrol@icloud.com>
- Michael Weimann <mail@michael-weimann.eu>
- Michael Zamot <michael@zamot.io>
- Michał Węgrzynek <michal.wegrzynek@malloc.com.pl>
- Michiel de Jong <michiel@unhosted.org>
- Micke Nordin <kano@sunet.se>
- Mickey Knox <mickey@netfreaks.org>
- Miguel Prokop <miguel.prokop@vtu.com>
- Mikael Hammarin <mikael@try2.se>
- Mikael Nordin <mickenordin@users.noreply.github.com>
- Mikael Saarinen <mikaels@iki.fi>
- Mikhail Sazanov <m@sazanof.ru>
- Mitar <mitar.git@tnode.com>
- Mohammed Abdellatif <m.latief@gmail.com>
- Morris Jobke <hey@morrisjobke.de>
- Mátyás Jani <jzombi@gmail.com>
- nacho <nacho@ownyourbits.com>
- Naoto Kobayashi <naoto.kobayashi4c@gmail.com>
- Nazar Mokrynskyi <nazar@mokrynskyi.com>
- Nick Sweeting <git@sweeting.me>
- Nicolai Ehemann <en@enlightened.de>
- Nicolas Grekas <nicolas.grekas@gmail.com>
- Nicolas SIMIDE <2083596+dems54@users.noreply.github.com>
- Nils <git@to.nilsschnabel.de>
- Nils Wittenbrink <nilswittenbrink@web.de>
- Nina Pypchenko <22447785+nina-py@users.noreply.github.com>
- Nmz <nemesiz@nmz.lt>
- NoSleep82 <52562874+NoSleep82@users.noreply.github.com>
- Noveen Sachdeva <noveen.sachdeva@research.iiit.ac.in>
- Ole Ostergaard <ole.c.ostergaard@gmail.com>
- Ole Ostergaard <ole.ostergaard@knime.com>
- Oliver Kohl D.Sc. <oliver@kohl.bz>
- Oliver Wegner <void1976@gmail.com>
- Olivier Paroz <github@oparoz.com>
- Olivier Paroz <owncloud@interfasys.ch>
- Orzu Ionut <orzu.ionut@gmail.com>
- Owen Winkler <a_github@midnightcircus.com>
- Pascal de Bruijn <pmjdebruijn@pcode.nl>
- Patrick Paysant <patrick.paysant@linagora.com>
- Patrik Kernstock <info@pkern.at>
- Pauli Järvinen <pauli.jarvinen@gmail.com>
- Pavel Krasikov <klonishe@gmail.com>
- Pawel Boguslawski <pawel.boguslawski@ib.pl>
- Pellaeon Lin <nfsmwlin@gmail.com>
- Peter Kubica <peter@kubica.ch>
- Petre T <petre.tudor@dorkfarm.com>
- Phil Davis <phil.davis@inf.org>
- Philip Gatzka <philip.gatzka@mailbox.org>
- Philipp Kapfer <philipp.kapfer@gmx.at>
- Philipp Schaffrath <github@philipp.schaffrath.email>
- Philipp Staiger <philipp@staiger.it>
- Philippe Jung <phil.jung@free.fr>
- Pierre Ozoux <pierre@ozoux.net>
- Pierre Rudloff <contact@rudloff.pro>
- Piotr Filiciak <piotr@filiciak.pl>
- Piotr M <mrow4a@yahoo.com>
- Piotr Mrowczynski <mrow4a@yahoo.com>
- Piotr Mrowczynski <piotr@owncloud.com>
- Piotr Mrówczyński <mrow4a@yahoo.com>
- Pytal <24800714+Pytal@users.noreply.github.com>
- Qingping Hou <dave2008713@gmail.com>
- Raghu Nayyar <hey@raghunayyar.com>
- Ralph Krimmel <rkrimme1@gwdg.de>
- Ramiro Aparicio <rapariciog@gmail.com>
- Randolph Carter <RandolphCarter@fantasymail.de>
- Rayn0r <andrew@ilpss8.myfirewall.org>
- RealRancor <Fisch.666@gmx.de>
- RealRancor <fisch.666@gmx.de>
- Rello <Rello@users.noreply.github.com>
- Remco Brenninkmeijer <requist1@starmail.nl>
- Retidurc Silvernight <retidurc@silvernight.social>
- Richard Steinmetz <richard@steinmetz.cloud>
- Richard de Boer <github@tubul.net>
- Rid <rid@cylo.io>
- Rinat Gumirov <rinat.gumirov@mail.ru>
- Robert Dailey <rcdailey@gmail.com>
- Robin Appelman <robin@icewind.nl>
- Robin McCorkell <robin@mccorkell.me.uk>
- Robin Müller <coder-hugo@users.noreply.github.com>
- Roeland Jago Douma <roeland@famdouma.nl>
- Roger Szabo <roger.szabo@web.de>
- Roland Tapken <roland@bitarbeiter.net>
- Romain Rivière <lecoyote@lecoyote.org>
- Roman Kreisel <mail@romankreisel.de>
- Ross Nicoll <jrn@jrn.me.uk>
- Rsplwe <i@rsplwe.com>
- Ruben Homs <ruben@homs.codes>
- RussellAult <RussellAult@users.noreply.github.com>
- Rémy Jacquin <remy@remyj.fr>
- S. Cat <33800996+sparrowjack63@users.noreply.github.com>
- SA <stephen@mthosting.net>
- Sascha Sambale <mastixmc@gmail.com>
- Sam Bull <aa6bs0@sambull.org>
- Sam Tuke <mail@samtuke.com>
- Sam Tuke <samtuke@owncloud.com>
- Samuel <faust64@gmail.com>
- Samuel CHEMLA <chemla.samuel@gmail.com>
- Sander Ruitenbeek <s.ruitenbeek@getgoing.nl>
- Sander Ruitenbeek <sander@grids.be>
- Sandro Lutz <sandro.lutz@temparus.ch>
- Sanpi <sanpi@homecomputing.fr>
- Sascha Wiswedel <sascha.wiswedel@nextcloud.com>
- Scott Dutton <exussum12@users.noreply.github.com>
- Scott Dutton <scott@exussum.co.uk>
- Scott Shambarger <devel@shambarger.net>
- Sean Comeau <sean@ftlnetworks.ca>
- Sean Molenaar <sean@seanmolenaar.eu>
- Sebastian Döll <sebastian.doell@libasys.de>
- Sebastian Steinmetz <462714+steiny2k@users.noreply.github.com>
- Sebastian Steinmetz <me@sebastiansteinmetz.ch>
- Sebastian Wessalowski <sebastian@wessalowski.org>
- Semih Serhat Karakaya <karakayasemi@itu.edu.tr>
- Senorsen <senorsen.zhang@gmail.com>
- Serge Martin <edb@sigluy.net>
- Sergej Nikolaev <kinolaev@gmail.com>
- Sergej Pupykin <pupykin.s@gmail.com>
- Sergey Shliakhov <husband.sergey@gmail.com>
- Sergio Bertolin <sbertolin@solidgear.es>
- Sergio Bertolín <sbertolin@solidgear.es>
- Serhii Shliakhov <shlyakhov.up@gmail.com>
- Sijmen Schoon <me@sijmenschoon.nl>
- Simon Könnecke <simonkoennecke@gmail.com>
- Simon L <szaimen@e.mail.de>
- Simon Leiner <simon@leiner.me>
- Simon Spannagel <simonspa@kth.se>
- Simounet <contact@simounet.net>
- Sjors van der Pluijm <sjors@desjors.nl>
- Stanimir Bozhilov <stanimir.bozhilov.1998@gmail.com>
- Stanimir Bozhilov <stanimir@audriga.com>
- Stefan <Stefan.Schilling@EXXETA.com>
- Stefan Rado <owncloud@sradonia.net>
- Stefan Schneider <stefan.schneider@squareweave.com.au>
- Stefan Weiberg <sweiberg@suse.com>
- Stefan Weil <sw@weilnetz.de>
- Steffen Lindner <mail@steffen-lindner.de>
- Stephan Müller <mail@stephanmueller.eu>
- Stephan Orbaugh <stephan.orbaugh@nextcloud.com>
- Stephan Peijnik <speijnik@anexia-it.com>
- Stephen Cuppett <steve@cuppett.com>
- Steven Bühner <buehner@me.com>
- Sujith H <sharidasan@owncloud.com>
- Sujith Haridasan <Sujith_Haridasan@mentor.com>
- Sujith Haridasan <sujith.h@gmail.com>
- Sven Strickroth <email@cs-ware.de>
- Sylvain <git@sylvain.dev>
- Sylvia van Os <sylvia@hackerchick.me>
- Tekhnee <info@tekhnee.org>
- Temtaime <temtaime@gmail.com>
- Thibaut GRIDEL <tgridel@free.fr>
- Thomas Citharel <nextcloud@tcit.fr>
- Thomas Ebert <thomas.ebert@usability.de>
- Thomas Müller <thomas.mueller@tmit.eu>
- Thomas Pulzer <t.pulzer@kniel.de>
- Thomas Tanghus <thomas@tanghus.net>
- Tiago Flores <tiago.flores@yahoo.com.br>
- Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
- Tim Dettrick <t.dettrick@uq.edu.au>
- Tim Obert <tobert@w-commerce.de>
- Tim Terhorst <mynamewastaken+gitlab@gmail.com>
- TimObert <tobert@w-commerce.de>
- Timo Förster <tfoerster@webfoersterei.de>
- Tobia De Koninck <LEDfan@users.noreply.github.com>
- Tobia De Koninck <tobia@ledfan.be>
- Tobias Assmann <tobias.assmann@ecsec.de>
- Tobias Kaminsky <tobias@kaminsky.me>
- Tobias Perschon <tobias@perschon.at>
- Tom Grant <TomG736@users.noreply.github.com>
- Tom Needham <tom@owncloud.com>
- Tomasz Grobelny <tomasz@grobelny.net>
- Tomasz Paluszkiewicz <tomasz.paluszkiewicz@gmail.com>
- Tor Lillqvist <tml@collabora.com>
- UmbrellaCodr <umbrella@biohazard.cc>
- Unknown <anpz.asutp@gmail.com>
- Unpublished <unpublished@gmx.net>
- Valdnet <47037905+Valdnet@users.noreply.github.com>
- Vanessa Pertsch <vanessa.pertsch@nextcloud.com>
- Varun Patil <radialapps@gmail.com>
- Varun Patil <varunpatil@ucla.edu>
- Victor Dubiniuk <dubiniuk@owncloud.com>
- Viktor Szépe <viktor@szepe.net>
- Vincent Chan <plus.vincchan@gmail.com>
- Vincent Petry <pvince81@owncloud.com>
- Vincent Petry <vincent@nextcloud.com>
- Vincent Van Houtte <vvh@aplusv.be>
- Vinicius Cubas Brand <vinicius@eita.org.br>
- Vitor Mattos <vitor@php.rio>
- Vlastimil Pecinka <pecinka@email.cz>
- Volkan Gezer <volkangezer@gmail.com>
- Volker <skydiablo@gmx.net>
- William <william.hak57@gmail.com>
- William Pain <pain.william@gmail.com>
- Xheni Myrtaj <myrtajxheni@gmail.com>
- Xheni Myrtaj <xheni@protonmail.com>
- Xuanwo <xuanwo@yunify.com>
- ZitronePlus <tobiasscharf92@gmail.com>
- acsfer <12234510+acsfer@users.noreply.github.com>
- acsfer <carlos@reendex.com>
- adrien <adrien.waksberg@believedigital.com>
- alanmeeson <alan@carefullycalculated.co.uk>
- aler9 <46489434+aler9@users.noreply.github.com>
- alexweirig <alex.weirig@technolink.lu>
- b108@volgograd "b108@volgograd"
- bbx-github <53237674+bbx-github@users.noreply.github.com>
- bladewing <lukas@ifflaender-family.de>
- bline <scottbeck@gmail.com>
- blizzz <blizzz@arthur-schiwon.de>
- brad2014 <brad2014@users.noreply.github.com>
- brumsel <brumsel@losecatcher.de>
- cahogan <caitlin.hogan@swiftsolar.com>
- call-me-matt <nextcloud@matthiasheinisch.de>
- castillo92 <37965565+castillo92@users.noreply.github.com>
- cetra3 <peter@parashift.com.au>
- cmeh <cmeh@users.noreply.github.com>
- comradekingu <epost@anotheragency.no>
- dartcafe <github@dartcafe.de>
- davidgumberg <davidnoizgumberg@gmail.com>
- davitol <dtoledo@solidgear.es>
- dems54 <2083596+dems54@users.noreply.github.com>
- duritong <peter.meier+github@immerda.ch>
- eduardo <eduardo@vnexu.net>
- eleith <online+github@eleith.com>
- enoch <lanxenet@hotmail.com>
- essys <essys@users.noreply.github.com>
- exner104 <59639860+exner104@users.noreply.github.com>
- fabian <fabian@web2.0-apps.de>
- felixboehm <felix@webhippie.de>
- fenn-cs <fenn25.fn@gmail.com>
- fnuesse <felix.nuesse@t-online.de>
- fnuesse <fnuesse@techfak.uni-bielefeld.de>
- greta <gretadoci@gmail.com>
- Hector Valcarcel <hmvalcarcel@gmail.com>
- helix84 <helix84@centrum.sk>
- hkjolhede <hkjolhede@gmail.com>
- hoellen <dev@hoellen.eu>
- hosting.de, Johannes Leuker <developers@hosting.de>
- howardZa <33491519+howardZa@users.noreply.github.com>
- ideaship <ideaship@users.noreply.github.com>
- j-ed <juergen@eisfair.org>
- j3l11234 <297259024@qq.com>
- jaltek <jaltek@mailbox.org>
- jknockaert <jasper@knockaert.nl>
- jld3103 <jld3103yt@gmail.com>
- josh4trunks <joshruehlig@gmail.com>
- julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
- karakayasemi <karakayasemi@itu.edu.tr>
- kevin147147 <kevintamool@gmail.com>
- korelstar <korelstar@users.noreply.github.com>
- leith abdulla <online-nextcloud@eleith.com>
- lui87kw <lukas.ifflaender@uni-wuerzburg.de>
- luz paz <luzpaz@github.com>
- luz paz <luzpaz@pm.me>
- lynn-stephenson <lynn.stephenson@protonmail.com>
- macjohnny <estebanmarin@gmx.ch>
- marco44 <cousinmarc@gmail.com>
- martin.mattel@diemattels.at <martin.mattel@diemattels.at>
- martink-p <47943787+martink-p@users.noreply.github.com>
- matt <34400929+call-me-matt@users.noreply.github.com>
- medcloud <42641918+medcloud@users.noreply.github.com>
- michaelletzgus <michaelletzgus@users.noreply.github.com>
- michag86 <micha_g@arcor.de>
- michag86 <michag86@arcor.de>
- mmccarn <mmccarn-github@mmsionline.us>
- nhirokinet <nhirokinet@nhiroki.net>
- nik gaffney <nik@fo.am>
- nishiki <nishiki@yaegashi.fr>
- noiob <8197071+noiob@users.noreply.github.com>
- noveens <noveen.sachdeva@research.iiit.ac.in>
- npmbuildbot[bot] "npmbuildbot[bot]@users.noreply.github.com"
- onehappycat <one.happy.cat@gmx.com>
- phisch <git@philippschaffrath.de>
- pjft <pjft@users.noreply.github.com>
- plumbeo <plumbeo@users.noreply.github.com>
- rakekniven <2069590+rakekniven@users.noreply.github.com>
- rakekniven <mark.ziegler@rakekniven.de>
- raul <raul@nextcloud.com>
- robottod <83244577+robottod@users.noreply.github.com>
- root "root@oc.(none)"
- root <root@localhost.localdomain>
- rubo77 <github@r.z11.de>
- sammo2828 <sammo2828@gmail.com>
- scambra <sergio@entrecables.com>
- scolebrook <scolebrook@mac.com>
- shkdee <louis.traynard@m4x.org>
- simonspa <1677436+simonspa@users.noreply.github.com>
- smichel17 <git@smichel.me>
- sodimel <corentin@244466666.xyz>
- ste101 <stephan_bauer@gmx.de>
- sualko <klaus@jsxc.org>
- szaimen <szaimen@e.mail.de>
- tbartenstein <tbartenstein@users.noreply.github.com>
- tbelau666 <thomas.belau@gmx.de>
- TechnicalSuwako <suwako@076.moe>
- tgrant <tom.grant760@gmail.com>
- timm2k <timm2k@gmx.de>
- tux-rampage <tux-rampage@users.noreply.github.com>
- v1r0x <vinzenz.rosenkranz@gmail.com>
- voxsim "Simon Vocella"
- waleczny <michal@walczak.xyz>
- zorn-v <zorn7@yandex.ru>
- zulan <git@zulan.net>
- Łukasz Buśko <busko.lukasz@pm.me>
- Nextcloud GmbH
- ownCloud GmbH
- ownCloud, Inc.
ownCloud is written by:
Frank Karlitschek
Robin Appelman
Jakob Sack
Jan-Christoph Borchardt
Michael Gapczynski
Arthur Schiwon
Bart Visscher
Georg Ehrke
Brice Maron
Tom Needham
Marvin Thomas Rabe
Florian Pritz
Bartek Przybylski
Thomas Müller
Klaas Freitag
Sam Tuke
Simon Birnbach
Lukas Reschke
Christian Reiner
Daniel Molkentin
With help from many libraries and frameworks including:
Open Collaboration Services
SabreDAV
jQuery
"Lock” symbol from thenounproject.com collection
"Clock” symbol by Brandon Hopkins, from thenounproject.com collection
-8
View File
@@ -1,8 +0,0 @@
<!--
- SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
Changelog
=========
The change log is at [https://nextcloud.com/changelog/](https://nextcloud.com/changelog/).

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