Compare commits

..

656 Commits

Author SHA1 Message Date
John Molakvoæ 5d04a3fed2 Merge pull request #27707 from nextcloud/version/21.0.3/final 2021-07-01 11:41:30 +02:00
John Molakvoæ 91af4e2a15 Merge pull request #27107 from nextcloud/backport/27043/stable21 2021-07-01 11:39:47 +02:00
Nextcloud bot 053e1153eb [tx-robot] updated from transifex 2021-07-01 02:24:59 +00:00
Vincent Petry ece2e3e5ea Merge pull request #27727 from nextcloud/backport/27638/stable21
[stable21] Downstream encryption:fix-encrypted-version for repairing "bad signature" errors
2021-06-30 17:18:14 +02:00
Vincent Petry 19d2dbf80b Prevent running FixEncryptedVersion without master key
Return an error when running occ encryption:fix-encrypted-version
when master key encryption is not enabled.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:23:32 +00:00
Vincent Petry b3052e4932 Fix FixEncryptedVersionTest test
Fixed setup to use EncryptionTrait like other existing tests.
Fix expectations to not rely on side effects from previous test cases.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:23:31 +00:00
Vincent Petry 36a175ccde Fix warnings in FixEncryptedVersion command
Fixed code warnings

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:23:31 +00:00
Vincent Petry 7e1c807a0d Detect disabled signature check when reparing
When running occ encryption:fix-encrypted-version, detect whether the
setting 'encryption_skip_signature_check' is set and abort if it is,
because the repair cannot detect version mismatch errors with it
enabled.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:23:31 +00:00
Vincent Petry d2574c4363 Downstream FixEncryptedVersionTest
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:23:30 +00:00
Vincent Petry 3db068ecb3 Downstream encryption:fix-encrypted-version
For fixing "Bad signature" errors.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:23:30 +00:00
Nextcloud bot e76b83393c [tx-robot] updated from transifex 2021-06-30 02:25:43 +00:00
blizzz 3ceb76ecf0 Merge pull request #27551 from nextcloud/backport/26571/stable21
[stable21] Only allow removing existing shares that would not be allowed due to reshare restrictions
2021-06-29 23:38:53 +02:00
Julius Härtl c3e7687cd2 Handle single action unshare
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-06-29 19:09:22 +02:00
Julius Härtl b7328fab42 Only allow removing existing shares that would not be allowed due to reshare restrictions
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-06-29 19:09:22 +02:00
Julius Härtl e981072f4a When changing the share owner, downgrade permissions where needed
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-06-29 19:00:21 +02:00
Julius Härtl fe2d3161f7 Drop share if moved to a parent share that does not allow resharing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-06-29 19:00:21 +02:00
Arthur Schiwon 2b1774dd91 21.0.3
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-29 12:59:36 +02:00
John Molakvoæ b614af016a Merge pull request #27703 from nextcloud/backport/27698/stable21
[stable21] LDAP: determine shares of offline users only when needed
2021-06-29 08:27:44 +02:00
Arthur Schiwon de3aa22057 LDAP: determine shares of offline users only when needed
- determine shares may via Sharing code result in user exists checks
- this may result in an infinite loop when user exists was called before
- the info is really only required at one occ command

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-28 23:57:29 +02:00
John Molakvoæ c4a20d3d5d Merge pull request #27679 from nextcloud/backport/27675/stable21
[stable21] Validate the theming color also on CLI
2021-06-28 07:43:09 +02:00
Nextcloud bot 6467112605 [tx-robot] updated from transifex 2021-06-28 02:25:22 +00:00
Nextcloud bot 77a2b03e50 [tx-robot] updated from transifex 2021-06-27 02:25:52 +00:00
Nextcloud bot 364d9c0ed6 [tx-robot] updated from transifex 2021-06-26 02:25:54 +00:00
Joas Schilling 36b9fad779 Validate the theming color also on CLI
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-06-25 16:20:32 +00:00
Christoph Wurst 22d2f05841 Merge pull request #27670 from nextcloud/backport/27663/stable21
[stable21] Unshift crash reports when they are loaded, to break the recusion
2021-06-25 13:57:50 +02:00
Christoph Wurst 5dd3b5067c Unshift crash reports when they are loaded, to break the recusion
If, for whatever reason, during the loading of a crash reporter a new
log entry is generated, then the lazy loading mechanism will be invoked
*again* while it's already executed. This doesn't result in an endless
recursion, but means that the crash reporters will be built and
registered many times. This then means any further log entry will be
logged x times instead of once.

Unshift makes sure to take the class off the registration list right
away, so another invokation of the same method won't try to do the same
job.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-06-25 06:37:07 +00:00
Nextcloud bot 4058c4c7db [tx-robot] updated from transifex 2021-06-25 02:25:45 +00:00
John Molakvoæ eeb052c48e Merge pull request #27621 from nextcloud/version/21.0.3/rc1 2021-06-24 14:21:17 +02:00
Nextcloud bot 9d41426886 [tx-robot] updated from transifex 2021-06-24 02:25:33 +00:00
Arthur Schiwon 95298d4b3c update CA bundle
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-24 01:32:21 +02:00
korelstar c466d2ecd4 Merge pull request #27028 from nextcloud/backport/26852/stable21
[stable21] fix error when using CORS with no auth credentials
2021-06-24 00:05:12 +02:00
korelstar 7b8d4b2d37 fix error when using CORS with no auth credentials 2021-06-23 20:57:11 +02:00
Julius Härtl 6a40ed4765 Merge pull request #27622 from nextcloud/dependabot/npm_and_yarn/stable21/dompurify-2.2.9
Bump dompurify from 2.2.8 to 2.2.9
2021-06-23 19:33:12 +02:00
dependabot[bot] 1882b97935 Bump dompurify from 2.2.8 to 2.2.9
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.2.8 to 2.2.9.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.2.8...2.2.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-06-23 18:09:27 +02:00
Lukas Reschke 82adb4c21e Merge pull request #27616 from nextcloud/backport/27610/stable21
[stable21] Throttle on public DAV endpoint
2021-06-23 12:41:20 +02:00
Julius Härtl a97c184423 Merge pull request #27237 from nextcloud/dependabot/npm_and_yarn/stable21/moment-timezone-0.5.33
Bump moment-timezone from 0.5.32 to 0.5.33
2021-06-23 10:57:22 +02:00
Julius Härtl 3ff79acd79 Merge pull request #27231 from nextcloud/dependabot/npm_and_yarn/stable21/vue-loader-15.9.7
Bump vue-loader from 15.9.6 to 15.9.7
2021-06-23 10:57:09 +02:00
Arthur Schiwon df8885d939 21.0.3 RC1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-23 10:51:24 +02:00
Lukas Reschke ddcb70bd81 Reference correct private variable
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-06-23 07:37:17 +00:00
Lukas Reschke 117e466e20 Throttle on public DAV endpoint
We should throttle whenever an invalid request is sent to the public WebDAV endpoint.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-06-23 07:37:17 +00:00
Nextcloud bot f71306f8ee [tx-robot] updated from transifex 2021-06-23 02:26:30 +00:00
dependabot[bot] dad92ca15c Bump moment-timezone from 0.5.32 to 0.5.33
Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.32 to 0.5.33.
- [Release notes](https://github.com/moment/moment-timezone/releases)
- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)
- [Commits](https://github.com/moment/moment-timezone/compare/0.5.32...0.5.33)

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-06-22 18:58:40 +00:00
Julius Härtl 2931f31ac4 Merge pull request #27250 from nextcloud/dependabot/npm_and_yarn/stable21/ws-7.4.6
[Security] Bump ws from 7.3.1 to 7.4.6
2021-06-22 20:07:46 +02:00
blizzz e6158eebf8 Merge pull request #27599 from nextcloud/backport/27596/stable21
[stable21] [stable20] Properly cleanup entries of WebAuthn on user deletion
2021-06-22 20:01:35 +02:00
Lukas Reschke 72309a158a Remove throwing annotation
This class was just introduced in Nc 21.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-06-22 13:53:28 +00:00
Lukas Reschke ba12eb7aba Use execute instead of executeStatement
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-06-22 13:53:28 +00:00
Morris Jobke e757a5ecfd Properly cleanup entries of WebAuthn on user deletion
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-06-22 13:53:27 +00:00
Nextcloud bot 6069ea83e5 [tx-robot] updated from transifex 2021-06-22 02:27:12 +00:00
Nextcloud bot 030190ed07 [tx-robot] updated from transifex 2021-06-21 02:26:50 +00:00
Nextcloud bot c7d7f9ca94 [tx-robot] updated from transifex 2021-06-20 02:27:16 +00:00
Nextcloud bot d932129529 [tx-robot] updated from transifex 2021-06-19 02:46:31 +00:00
dependabot-preview[bot] 0f1822f4dd Merge pull request #27569 from nextcloud/dependabot/npm_and_yarn/stable21/postcss-7.0.36 2021-06-19 02:04:25 +00:00
dependabot-preview[bot] 8d8ea1486d [Security] Bump postcss from 7.0.35 to 7.0.36
Bumps [postcss](https://github.com/postcss/postcss) from 7.0.35 to 7.0.36. **This update includes a security fix.**
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/7.0.35...7.0.36)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-06-19 01:15:49 +00:00
Nextcloud bot 08ca2e972b [tx-robot] updated from transifex 2021-06-18 02:27:13 +00:00
Nextcloud bot 1bbb803ad8 [tx-robot] updated from transifex 2021-06-17 02:26:02 +00:00
Nextcloud bot 3527c6e3d8 [tx-robot] updated from transifex 2021-06-16 02:26:31 +00:00
Nextcloud bot de0d4b513d [tx-robot] updated from transifex 2021-06-15 02:28:19 +00:00
Julius Härtl 420d395947 Merge pull request #27415 from nextcloud/backport/26494/stable21 2021-06-14 09:48:41 +02:00
Nextcloud bot 82d1bc2b3e [tx-robot] updated from transifex 2021-06-14 02:26:42 +00:00
Nextcloud bot 89bc4acfa2 [tx-robot] updated from transifex 2021-06-13 02:26:18 +00:00
Nextcloud bot e9a87a1025 [tx-robot] updated from transifex 2021-06-12 02:27:12 +00:00
Christoph Wurst 234f39e1b4 Merge pull request #27455 from nextcloud/backport/27444/stable21
[stable21] Header must contain a colon
2021-06-11 08:26:53 +02:00
Nextcloud bot 65ccca4f70 [tx-robot] updated from transifex 2021-06-11 02:28:21 +00:00
acsfer 1c670cb3d9 Header must contain a colon 2021-06-10 08:21:00 +00:00
Morris Jobke f627f38b79 Merge pull request #27446 from nextcloud/backport/27429/stable21
[stable21] Don't pass a column object to addOrderBy
2021-06-10 10:12:53 +02:00
Nextcloud bot 7c5f2e63b4 [tx-robot] updated from transifex 2021-06-10 02:32:24 +00:00
Lukas Reschke 393877ed59 Merge pull request #27324 from nextcloud/stable21-backport-27024
[stable21] Properly log expiration date removal in audit log
2021-06-09 22:08:07 +02:00
Daniel Kesselberg 7259259d1e Fix #26085
addOrderBy expects a order expression. For the migration scenario we have column objects. Column objects are not supported by quoteColumnName yet.

A column object as order expression is most likely an edgy thing when migration database information.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2021-06-09 17:01:07 +00:00
Julius Härtl 6e190b1a55 Merge pull request #27303 from nextcloud/backport/27062/stable21
[stable21] properly use limit and offset for search in Jail wrapper
2021-06-09 08:07:49 +02:00
Nextcloud bot 3708360f3b [tx-robot] updated from transifex 2021-06-09 02:26:29 +00:00
Nextcloud bot 5339679083 [tx-robot] updated from transifex 2021-06-08 02:26:33 +00:00
Richard de Boer 9f3824b884 Check whether output buffering is active before turning it off
Before we just turned it off and @suppressed the error if ob was not active.
In PHP 8 this error is no longer suppressed, so try to not cause it at all.

Signed-off-by: Richard de Boer <git@tubul.net>
2021-06-07 21:33:53 +00:00
Richard de Boer 088118f548 Fix a usort comparison function returning a boolean instead of an integer
PHP 8 shows deprecation warnings about this, see #25806

Signed-off-by: Richard de Boer <git@tubul.net>
2021-06-07 21:33:52 +00:00
Richard de Boer 7e9d459fea Fix functions taking optional parameters before required ones
PHP 8 shows deprecation warnings about this, see #25806
Removes the "default" values, as they actually are required parameters anyway.

Signed-off-by: Richard de Boer <git@tubul.net>
2021-06-07 21:33:52 +00:00
Joas Schilling a5bbd88355 Merge pull request #27411 from nextcloud/backport/27375/stable21
[stable21] Don't update statuses to offline again and again
2021-06-07 17:00:18 +02:00
blizzz a18a3fe79e Merge pull request #27015 from nextcloud/backport/26980-stable21
[stable21] Use parent wrapper to properly handle moves on the same source/target storage
2021-06-07 12:22:55 +02:00
Joas Schilling d06f3cc51a Don't update statuses to offline again and again
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-06-07 10:14:35 +00:00
Morris Jobke 4136993f44 Merge pull request #27336 from nextcloud/backport/27329/stable21
[stable21] Propagate throttling on OCS response
2021-06-07 10:39:52 +02:00
Morris Jobke 5412605219 Merge pull request #27359 from nextcloud/backport/27354/stable21
[stable21] Escape filename in Content-Disposition
2021-06-07 10:37:45 +02:00
Nextcloud bot 87363686b7 [tx-robot] updated from transifex 2021-06-07 02:25:24 +00:00
John Molakvoæ 390bd12c8a Merge pull request #27333 from nextcloud/backport/27328/stable21
[stable21] emit UserLoggedInEvent on apache auth
2021-06-06 11:00:24 +02:00
Nextcloud bot cf324d69c2 [tx-robot] updated from transifex 2021-06-06 02:26:16 +00:00
Nextcloud bot d7b8497a19 [tx-robot] updated from transifex 2021-06-05 02:28:46 +00:00
Robin Appelman 2c9324acd9 Merge pull request #27350 from nextcloud/backport/25280/stable21
[stable21] Set umask before operations that create local files
2021-06-04 18:20:19 +00:00
Robin Appelman 287edf0e61 Set umask before operations that create local files
this solves issues where "other php stuff" is messing with the umask

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-04 15:43:16 +02:00
Joas Schilling c89fbcde11 Merge pull request #27347 from nextcloud/backport/27053/stable21
[stable21] Don't throw when comments is disabled
2021-06-04 11:01:31 +02:00
Joas Schilling 21455faf36 Merge pull request #27334 from nextcloud/backport/25770/stable21
[stable21] Don't allow executing cli if cache backend is unavailable
2021-06-04 09:42:24 +02:00
Nextcloud bot dcec4b00f8 [tx-robot] updated from transifex 2021-06-04 02:28:27 +00:00
Nextcloud bot 5a117a73f2 [tx-robot] updated from transifex 2021-06-03 02:28:58 +00:00
John Molakvoæ b5d3e389cb Merge pull request #27346 from nextcloud/debt/noid/missing-import
[stable21] Replace OCSController with OCP\API
2021-06-02 21:18:50 +02:00
Lukas Reschke d838108dea Escape filename in Content-Disposition
We should escape all occurences of ' and \ in here.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-06-02 19:17:38 +00:00
Joas Schilling 5593ec985e Don't throw when comments is disabled
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-06-02 13:42:49 +00:00
Daniel Kesselberg 5740a6bf2b Replace OCSController with OCP\API
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2021-06-02 15:18:15 +02:00
Nextcloud bot 6a29b60260 [tx-robot] updated from transifex 2021-06-02 02:28:42 +00:00
Lukas Reschke 6a6bcdc558 Propagate throttling on OCS response
The BaseResponse converter did not take over any throttling state from the DataResponse.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-06-01 19:42:31 +00:00
Richard Steinmetz 5c868c735d Don't allow executing cli if cache backend is unavailable
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-06-01 16:07:07 +00:00
Arthur Schiwon 2e57360a0d emit UserLoggedInEvent on apache auth
- post_login OC_Hook is barely used or listened to

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-01 15:41:04 +00:00
Roeland Jago Douma 6300a1b846 Properly log expiration date removal in audit log
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-06-01 13:25:10 +02:00
Joas Schilling 25c24c2b6e Merge pull request #27318 from nextcloud/backport/27099/stable21
[stable21] Make user:report command scale
2021-06-01 11:45:40 +02:00
Joas Schilling d25446fd58 Make user:report command scale
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-06-01 08:36:06 +00:00
Nextcloud bot b4c3e8dbc8 [tx-robot] updated from transifex 2021-06-01 02:28:33 +00:00
Robin Appelman a21eb8d6d2 properly use limit and offset for search in Jail wrapper
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-05-31 12:28:12 +00:00
Joas Schilling 94ec3e1675 Merge pull request #27195 from nextcloud/backport/27188/stable21
[stable21] Fix the get editable fields endpoint without a user id
2021-05-31 10:01:24 +02:00
Nextcloud bot 4bf9b3a24b [tx-robot] updated from transifex 2021-05-31 02:35:37 +00:00
Nextcloud bot 95a4644fc0 [tx-robot] updated from transifex 2021-05-30 02:25:16 +00:00
dependabot-preview[bot] 4e9c6e03b3 [Security] Bump ws from 7.3.1 to 7.4.6
Bumps [ws](https://github.com/websockets/ws) from 7.3.1 to 7.4.6. **This update includes security fixes.**
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.3.1...7.4.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-05-29 02:36:47 +00:00
dependabot-preview[bot] 188c5eba3e Merge pull request #27248 from nextcloud/dependabot/npm_and_yarn/stable21/browserslist-4.16.6 2021-05-29 02:34:51 +00:00
dependabot-preview[bot] 4b51f6c0a3 [Security] Bump browserslist from 4.16.0 to 4.16.6
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.16.0 to 4.16.6. **This update includes a security fix.**
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.16.0...4.16.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-05-29 01:14:55 +00:00
dependabot[bot] d2e85931ef Bump vue-loader from 15.9.6 to 15.9.7
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.9.6 to 15.9.7.
- [Release notes](https://github.com/vuejs/vue-loader/releases)
- [Changelog](https://github.com/vuejs/vue-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-loader/compare/v15.9.6...v15.9.7)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-28 15:17:00 +00:00
kesselb b1fdb4a86e Merge pull request #27208 from nextcloud/backport/27199/stable21
[stable21] Use noreply@ as email address for share emails
2021-05-28 15:03:44 +02:00
Morris Jobke a1877062ac Use noreply@ as email address for share emails
Fixes #26683

Before it used the instance name, which a) doesn't make sense to randomly guess email addresses and b) could contain characters that are not allowed in email addresses like spaces.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-05-28 11:42:16 +00:00
John Molakvoæ 631a3882d3 Merge pull request #27184 from nextcloud/dependabot/npm_and_yarn/stable21/various 2021-05-28 08:08:25 +02:00
Nextcloud bot a4cfd9ce20 [tx-robot] updated from transifex 2021-05-28 02:27:32 +00:00
Joas Schilling 533eb89b54 Add integration tests for the editable fields
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-05-27 23:02:44 +00:00
Joas Schilling 0d9c60613e Fix the get editable fields endpoint without a user id
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-05-27 23:02:43 +00:00
John Molakvoæ (skjnldsv) 0120d3d6d8 Npm build
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-05-27 10:50:01 +02:00
dependabot[bot] 1fbceb254f Bump @babel/plugin-proposal-class-properties from 7.12.1 to 7.12.13
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-class-properties) from 7.12.1 to 7.12.13.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.13/packages/babel-plugin-proposal-class-properties)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-27 10:43:03 +02:00
dependabot[bot] 2b6d0efeb5 Bump @nextcloud/capabilities from 1.0.2 to 1.0.4
Bumps [@nextcloud/capabilities](https://github.com/nextcloud/nextcloud-capabilities) from 1.0.2 to 1.0.4.
- [Release notes](https://github.com/nextcloud/nextcloud-capabilities/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-capabilities/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-capabilities/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-27 10:42:55 +02:00
dependabot[bot] 5f2e440cc6 Bump dompurify from 2.2.6 to 2.2.8
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.2.6 to 2.2.8.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.2.6...2.2.8)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-27 10:42:47 +02:00
dependabot[bot] f8734549f0 Bump autosize from 4.0.2 to 4.0.4
Bumps [autosize](https://github.com/jackmoore/autosize) from 4.0.2 to 4.0.4.
- [Release notes](https://github.com/jackmoore/autosize/releases)
- [Changelog](https://github.com/jackmoore/autosize/blob/master/changelog.md)
- [Commits](https://github.com/jackmoore/autosize/compare/4.0.2...4.0.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-27 10:42:34 +02:00
dependabot[bot] 6cad27bdf3 Bump css-vars-ponyfill from 2.4.2 to 2.4.5
Bumps [css-vars-ponyfill](https://github.com/jhildenbiddle/css-vars-ponyfill) from 2.4.2 to 2.4.5.
- [Release notes](https://github.com/jhildenbiddle/css-vars-ponyfill/releases)
- [Changelog](https://github.com/jhildenbiddle/css-vars-ponyfill/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jhildenbiddle/css-vars-ponyfill/compare/v2.4.2...v2.4.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-27 08:15:42 +00:00
Nextcloud bot aaf7250fc6 [tx-robot] updated from transifex 2021-05-27 02:28:07 +00:00
kesselb e8f6d288ef Merge pull request #27121 from nextcloud/backport/27117/stable21
[stable21] Add DB exception '@throws' tag to QBMapper PHPDoc
2021-05-26 20:35:19 +02:00
Morris Jobke afd58bd4bc Merge pull request #27124 from nextcloud/backport/26282/stable21
[stable21] improve type handling of Avatar::generateAvatarFromSvg
2021-05-26 20:32:36 +02:00
Robin Appelman 5bb0370994 improve type handling of Avatar::generateAvatarFromSv
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-05-26 17:11:42 +00:00
Morris Jobke 0a246be33f Merge pull request #27109 from nextcloud/backport/26466/stable21
[stable21] Move remnants of ocs api requests to v2 endpoint
2021-05-26 18:13:25 +02:00
Anna Larch 60481a742e Add DB exception throws tag to QBMapper PHPDoc
Signed-off-by: Anna Larch <anna@nextcloud.com>
2021-05-26 15:13:52 +00:00
John Molakvoæ (skjnldsv) c2c3856fab Move remnants of ocs api requests to v2 endpoint
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-05-26 07:14:57 +00:00
Nextcloud bot 98cbf8aca3 [tx-robot] updated from transifex 2021-05-26 02:28:42 +00:00
Robin Appelman 3775b862a9 fix return value of getStorageInfo when 'quota_include_external_storage' is enabled
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-05-25 19:59:14 +00:00
Morris Jobke 6814ac03c1 Merge pull request #27097 from nextcloud/backport/27040/stable21
[stable21] Avoid reading ~/.aws/config when using S3 provider
2021-05-25 16:31:29 +02:00
Florent ede67149ea Avoid reading ~/.aws/config when using S3 provider
When using S3 storage, we sometimes have open_basedir errors due to aws-sdk-php trying to read ~/.aws/config which is out of open_basedir restrictions.
Christoph Wurst already added csm=false config in #21406 but it wasn't enough, we also need to set use_arn_region=false, added in this commit.

Signed-off-by: Florent <florent@coppint.com>
2021-05-25 08:59:03 +00:00
Nextcloud bot 885b0b3dbf [tx-robot] updated from transifex 2021-05-25 02:27:32 +00:00
Nextcloud bot b552ac6356 [tx-robot] updated from transifex 2021-05-24 02:26:42 +00:00
Nextcloud bot 395ad7a96a [tx-robot] updated from transifex 2021-05-23 02:26:00 +00:00
Nextcloud bot dd54f7f52b [tx-robot] updated from transifex 2021-05-22 02:27:27 +00:00
blizzz fb1362ee30 Merge pull request #27058 from nextcloud/backport/27032/stable21
[stable21] Fix filesize error on log rotation, if file does not exist
2021-05-21 14:50:04 +02:00
dartcafe 36acbd9efb typo
Signed-off-by: dartcafe <github@dartcafe.de>
2021-05-21 09:42:31 +00:00
dartcafe 6e499ef0b2 fix #25813
Signed-off-by: dartcafe <github@dartcafe.de>
2021-05-21 09:42:31 +00:00
Nextcloud bot b13dbbb9d7 [tx-robot] updated from transifex 2021-05-21 02:28:08 +00:00
Nextcloud bot 48c7be075e [tx-robot] updated from transifex 2021-05-20 02:28:10 +00:00
dependabot-preview[bot] 739bbc27c0 Merge pull request #26905 from nextcloud/dependabot/npm_and_yarn/stable21/handlebars-4.7.7 2021-05-19 08:32:14 +00:00
Roeland Jago Douma 3306c2fb35 Merge pull request #27021 from nextcloud/backport/26963/stable21
[stable21] Fix log error when creating files from an empty template
2021-05-19 10:28:38 +02:00
dependabot-preview[bot] 9037a76efd [Security] Bump handlebars from 4.7.6 to 4.7.7
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.6 to 4.7.7. **This update includes a security fix.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.6...v4.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-05-19 07:23:28 +00:00
Julius Härtl 80cda3b174 Fix log error when creating files from an empty template
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-05-19 07:03:27 +00:00
Roeland Jago Douma 51e279918f Merge pull request #27012 from nextcloud/backport/27000/stable21
[stable21] Harden apptoken check
2021-05-19 08:41:06 +02:00
Nextcloud bot f5e5b07d05 [tx-robot] updated from transifex 2021-05-19 02:31:48 +00:00
Julius Härtl 553f8aff6b Use parent wrapper to properly handle moves on the same source/target storage
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-05-18 16:14:41 +02:00
Roeland Jago Douma e3090136b8 Harden apptoken check
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-05-18 12:39:43 +00:00
Morris Jobke c6af693dac Merge pull request #26999 from nextcloud/backport/26946/stable21
[stable21] Respect default share permissions for federated reshares
2021-05-18 08:26:40 +02:00
Roeland Jago Douma 7ca8fd43a6 Respect default share permissions for federated reshares
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-05-17 10:03:53 +00:00
Nextcloud bot 1b7b7f077f [tx-robot] updated from transifex 2021-05-17 02:26:48 +00:00
Nextcloud bot c27540accf [tx-robot] updated from transifex 2021-05-16 02:26:56 +00:00
Nextcloud bot 6321d82522 [tx-robot] updated from transifex 2021-05-15 02:29:32 +00:00
kesselb 1f16f66550 Merge pull request #26964 from nextcloud/backport/26292/stable21
[stable21] ignore readonly flag for directories
2021-05-14 22:32:04 +02:00
kesselb 959c9e30cb Merge pull request #26952 from nextcloud/backport/26949/stable21
[stable21] fix occ command user:add-app-password
2021-05-14 11:13:18 +02:00
Roeland Jago Douma dd6e1cf4fb Merge pull request #26972 from nextcloud/backport/26958/stable21
[stable21] Throttle MountPublicLinkController when share is not found
2021-05-14 10:55:36 +02:00
Nextcloud bot df233efab9 [tx-robot] updated from transifex 2021-05-14 02:25:11 +00:00
Roeland Jago Douma 1ed66f2ac1 Throttle MountPublicLinkController when share is not found
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-05-12 19:29:07 +00:00
Robin Appelman 2fe8c42a97 ignore readonly flag for directories
see http://support.microsoft.com/kb/326549

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-05-12 16:26:32 +00:00
Roeland Jago Douma 1dd4f0efc0 Merge pull request #26955 from nextcloud/backport/26945/stable21
[stable21] Add bruteforce protection to the shareinfo endpoint
2021-05-12 14:13:12 +02:00
Roeland Jago Douma 6bc2d6d68e Add bruteforce protection to the shareinfo endpoint
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-05-12 08:09:14 +00:00
Roeland Jago Douma dd014059d7 Merge pull request #26879 from nextcloud/backport/26878/stable21
[stable21] Don't break OCC if an app is breaking in it's Application class
2021-05-12 09:40:01 +02:00
Bjoern Schiessle a187bce7a3 use the UID as loginName and not the display name.
Otherwise the app password will not work for users with a display name different to the UID.

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2021-05-12 05:26:49 +00:00
Nextcloud bot 3bcc23ba2c [tx-robot] updated from transifex 2021-05-12 02:26:28 +00:00
dependabot-preview[bot] 8cd1f023da Merge pull request #26911 from nextcloud/dependabot/npm_and_yarn/stable21/url-parse-1.5.1 2021-05-11 07:23:54 +00:00
dependabot-preview[bot] 87a8b9a2fd [Security] Bump url-parse from 1.4.7 to 1.5.1
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.1. **This update includes a security fix.**
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-05-11 06:46:31 +00:00
Nextcloud bot 0ef3834b6c [tx-robot] updated from transifex 2021-05-11 02:26:14 +00:00
dependabot-preview[bot] 0e4f72e930 Merge pull request #26912 from nextcloud/dependabot/npm_and_yarn/stable21/lodash-4.17.21 2021-05-10 09:32:00 +00:00
dependabot-preview[bot] e3c2f50174 [Security] Bump lodash from 4.17.20 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21. **This update includes a security fix.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-05-10 08:52:40 +00:00
Nextcloud bot 08b74729b9 [tx-robot] updated from transifex 2021-05-10 02:31:52 +00:00
Nextcloud bot 3fe1cbb107 [tx-robot] updated from transifex 2021-05-09 02:25:28 +00:00
Nextcloud bot 17e68b105e [tx-robot] updated from transifex 2021-05-08 02:25:06 +00:00
dependabot-preview[bot] ea79d7e93e Merge pull request #26918 from nextcloud/dependabot/npm_and_yarn/stable21/hosted-git-info-2.8.9 2021-05-07 20:20:14 +00:00
dependabot-preview[bot] 1ddc2ecfde [Security] Bump hosted-git-info from 2.8.8 to 2.8.9
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9. **This update includes a security fix.**
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-05-07 19:43:25 +00:00
Nextcloud bot edd3f064c2 [tx-robot] updated from transifex 2021-05-07 02:26:59 +00:00
Joas Schilling 3d9abee6f0 Don't break OCC if an app is breaking in it's Application class
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-05-06 14:46:11 +02:00
Morris Jobke 59752ce269 Merge pull request #26893 from nextcloud/version/21.0.2
21.0.2
2021-05-06 13:46:30 +02:00
Morris Jobke 1e25855db7 21.0.2
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-05-06 12:53:00 +02:00
Nextcloud bot 8d91e00dcb [tx-robot] updated from transifex 2021-05-06 02:25:46 +00:00
Morris Jobke e9f513d60e Merge pull request #26881 from nextcloud/backport/26869/stable21
[stable21] l10n: Spelling unification
2021-05-05 13:43:35 +02:00
Valdnet ae99737d95 Fix test
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2021-05-05 11:02:10 +00:00
Valdnet e80a5a0ee0 l10n: Spelling unification
Spelling unification in Transifex.

Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2021-05-05 11:02:09 +00:00
Nextcloud bot 0975394ba3 [tx-robot] updated from transifex 2021-05-04 02:26:29 +00:00
John Molakvoæ 1cdb80bb70 Merge pull request #26865 from nextcloud/backport/26845/stable21
[stable21] fix creating vcards with multiple string values
2021-05-03 16:41:23 +02:00
Arthur Schiwon c41a916250 fix creating vcards with multiple string values
Internally it is valid to provide multiple values for a property as
plain string. An exampe is given in the PhpDoc of
AddressBookImpl::search().

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-05-03 13:56:02 +00:00
blizzz 47148762c8 Merge pull request #26863 from nextcloud/backport/26149/stable21
[stable21] Only perform login check during ownership transfer for encryption
2021-05-03 15:01:45 +02:00
Christoph Wurst c42b4733bd Only perform login check during ownership transfer for encryption
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-05-03 11:38:05 +00:00
Nextcloud bot 1c1d6a03ff [tx-robot] updated from transifex 2021-05-03 02:25:48 +00:00
Nextcloud bot 96e4b44fd8 [tx-robot] updated from transifex 2021-05-02 02:25:34 +00:00
Nextcloud bot a67681c8d0 [tx-robot] updated from transifex 2021-05-01 02:26:44 +00:00
Roeland Jago Douma d8650efaba Merge pull request #26835 from nextcloud/version/21.0.2/final
21.0.2 RC1
2021-04-30 12:47:14 +02:00
Roeland Jago Douma a3c07f6e1f Update bundle
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-30 12:16:35 +02:00
Nextcloud bot b6160045f4 [tx-robot] updated from transifex 2021-04-30 02:28:02 +00:00
blizzz 5415fff855 Merge pull request #26815 from nextcloud/backport/26461/stable21
[stable21] Only return display name as editable when the user backend allows it
2021-04-29 23:17:23 +02:00
Roeland Jago Douma e0b09e2ff7 21.0.2 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-29 20:55:46 +02:00
Morris Jobke 7d9111dbc3 Merge pull request #26823 from nextcloud/backport/26811/stable21
[stable21] Do not try to contact lookup server if not needed
2021-04-29 15:49:19 +02:00
Roeland Jago Douma f4135573d0 Do not try to contact lookup server if not needed
In some cases (for example you never send data to the lookup server)
there is no need for this job to even try.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-29 09:07:38 +02:00
Joas Schilling ca8b2a6b5e FIx stable21 difference
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-29 08:19:20 +02:00
Nextcloud bot 009b212684 [tx-robot] updated from transifex 2021-04-29 02:26:41 +00:00
Joas Schilling 5975a68033 Also check implementsAction method
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-28 18:29:18 +00:00
Joas Schilling a1d746fe05 Only return display name as editable when the user backend allows it
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-28 18:29:18 +00:00
Julius Härtl 97b9e8f0bc Merge pull request #26808 from nextcloud/backport/26647/stable21
[stable21] Fail when creating new files with an empty path
2021-04-28 15:56:54 -01:00
Julius Härtl e2fffcda44 Fail when creating new files with an empty path
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-28 10:06:03 +00:00
Julius Härtl 56561856ff Merge pull request #26797 from nextcloud/backport/26785/stable21
[stable21] LDAP: do not bother to search after the last page
2021-04-28 08:45:02 -01:00
Joas Schilling 7358312e45 Merge pull request #26789 from nextcloud/backport/26718/stable21
[stable21] Fix ratelimit template
2021-04-28 09:53:22 +02:00
Nextcloud bot 070380d9da [tx-robot] updated from transifex 2021-04-28 02:25:56 +00:00
Arthur Schiwon 4dc4b7617b do not try to search after the last page
- saves an LDAP requests in these cases
- prevents a Protocol Error logged on < 7.3 API (for backports)

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-04-27 17:39:53 +00:00
Lukas Reschke 6d86506956 Merge pull request #26778 from nextcloud/backport/26765/stable21
[stable21] No longer add trusted servers on federated share creation
2021-04-27 15:53:24 +02:00
Joas Schilling ab595274c0 Do not allow to overwrite some variables
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-27 13:40:14 +00:00
Joas Schilling 6a8d6beb57 Fix ratelimit template
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-27 13:40:12 +00:00
Julius Härtl cfbb98b901 Merge pull request #26704 from nextcloud/backport/26627/stable21
[stable21] update icewind/smb to 3.4.1
2021-04-27 05:51:58 -01:00
Roeland Jago Douma edd493defd No longer add trusted servers on federated share creation
It was disabled by default for ages. And often resulted in unwanted
behavior. If admins want trusted servers they just have to do it
manually.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-27 06:08:50 +00:00
Nextcloud bot 3012794e06 [tx-robot] updated from transifex 2021-04-27 02:25:47 +00:00
Roeland Jago Douma 4082318616 Merge pull request #26760 from nextcloud/backport/26259/stable21
[stable21] Validate the website field input to be a valid URL
2021-04-26 20:42:06 +02:00
Roeland Jago Douma e075f80f41 Merge pull request #26759 from nextcloud/backport/26747/stable21
[stable21] Fix installer deprecation warnings for PHP 8
2021-04-26 20:41:49 +02:00
Roeland Jago Douma c4acfa74e3 Merge pull request #26770 from nextcloud/backport/26763/stable21
[stable21] Improve federated permission handling
2021-04-26 20:23:34 +02:00
Julius Härtl b6f95360fd Merge pull request #26766 from nextcloud/backport/26762/stable21 2021-04-26 16:15:16 -01:00
Roeland Jago Douma 5edb02dccf Improve federated permission handling
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-26 15:25:02 +00:00
Joas Schilling d1756dde20 Log deprecation only as debug
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-26 15:12:50 +00:00
Joas Schilling 6ed9bb36ac Respect the error level when logging
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-26 15:12:50 +00:00
Joas Schilling 2c1218826d Validate the website field input to be a valid URL
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-26 11:58:56 +00:00
acsfer 63fa7d9354 PHP 8+ deprecates openssl_free_key 2021-04-26 10:46:44 +00:00
acsfer c12be83a0b Only use libxml_disable_entity_loader on PHP<8 2021-04-26 10:46:44 +00:00
Roeland Jago Douma 49d3fdf0c1 Merge pull request #26752 from nextcloud/backport/26721/stable21
[stable21] private cannot be final
2021-04-26 10:28:53 +02:00
dependabot-preview[bot] 7709f90e22 Merge pull request #26733 from nextcloud/dependabot/npm_and_yarn/stable21/nextcloud/dialogs-3.1.2 2021-04-26 07:25:15 +00:00
Maxence Lange 35204381bb private cannot be final
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2021-04-26 07:06:08 +00:00
dependabot-preview[bot] 36b1e06c28 [Security] Bump @nextcloud/dialogs from 3.1.1 to 3.1.2
Bumps [@nextcloud/dialogs](https://github.com/nextcloud/nextcloud-dialogs) from 3.1.1 to 3.1.2. **This update includes a security fix.**
- [Release notes](https://github.com/nextcloud/nextcloud-dialogs/releases)
- [Changelog](https://github.com/nextcloud/nextcloud-dialogs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-dialogs/compare/v3.1.1...v3.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-04-26 06:49:20 +00:00
Nextcloud bot ec5942a1d0 [tx-robot] updated from transifex 2021-04-26 02:24:51 +00:00
Nextcloud bot 8676d77eec [tx-robot] updated from transifex 2021-04-25 02:25:06 +00:00
Nextcloud bot dfb6043634 [tx-robot] updated from transifex 2021-04-24 02:26:50 +00:00
blizzz f6e19b829d Merge pull request #26703 from nextcloud/backport/26700/stable21
[stable21] FIx Oracle by testing on Ubuntu 20.04 until oci8.so is available for …
2021-04-23 13:16:55 +02:00
Joas Schilling 9505839f19 FIx Oracle by testing on Ubuntu 20.04 until oci8.so is available for 21.04
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-23 08:42:21 +02:00
Nextcloud bot cdb9eb401e [tx-robot] updated from transifex 2021-04-23 02:26:26 +00:00
Morris Jobke 13e0556688 Merge pull request #26702 from nextcloud/backport/26699/stable21
[stable21] remove undefined parameter, add description
2021-04-22 20:59:29 +02:00
Robin Appelman f22fa87e6a update icewind/smb to 3.4.1
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-04-22 17:59:41 +00:00
Arthur Schiwon 04b851b8b8 remove undefined parameter, add description
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-04-22 17:13:24 +00:00
Roeland Jago Douma 20a3df9888 Merge pull request #26694 from nextcloud/backport/25714/stable21
[stable21] Explicitly check hex2bin input
2021-04-22 14:58:07 +02:00
Roeland Jago Douma 97e5fe43df Explicitly check hex2bin input
For #23197

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-22 11:31:39 +00:00
Morris Jobke f7ac16f421 Merge pull request #26690 from nextcloud/backport/26353/stable21
[stable21] Make Testcase class compatible with phpunit-9.5
2021-04-22 13:19:05 +02:00
Joas Schilling f600fbf364 Make Testcase class compatible with phpunit-9.5
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-22 09:34:22 +00:00
Morris Jobke a54eaeaaff Merge pull request #26685 from nextcloud/backport/26474/stable21
[stable21] Mention MariaDB in MySQL support warning
2021-04-22 09:47:57 +02:00
Nextcloud bot b5bbf0021d [tx-robot] updated from transifex 2021-04-22 02:26:35 +00:00
Roeland Jago Douma 52c070acaa Merge pull request #26677 from nextcloud/backport/26658/stable21
[stable21] Do not stop directory listing when ACL is blocking access
2021-04-21 19:54:12 +02:00
Claas Augner c0bd430246 Mention MariaDB in MySQL support warning 2021-04-21 14:45:41 +00:00
Morris Jobke 144976bcb0 Merge pull request #26667 from nextcloud/backport/26652/stable21
[stable21] Fix broken Expiration test
2021-04-21 14:27:08 +02:00
Julius Härtl 7e6e923d17 Continue iterating over diretory contents and just hide file if denied by acl
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-21 07:24:24 +00:00
Nextcloud bot 3d24aef406 [tx-robot] updated from transifex 2021-04-21 02:26:16 +00:00
Joas Schilling 82edb9fe1a Fix broken Expiration test
15) Warning
The data provider specified for OCA\Files_Trashbin\Tests\ExpirationTest::testGetMaxAgeAsTimestamp is invalid.
PHPUnit\Util\Exception: Method timestampTestData does not exist

Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-20 19:30:38 +00:00
Morris Jobke 21dd86d1a7 Merge pull request #26653 from nextcloud/psalm/noid/update-baseline/stable21
[stable21] Update psalm baseline
2021-04-20 17:50:42 +02:00
Morris Jobke e930853429 Merge pull request #26607 from nextcloud/backport/26252/stable21
[stable21] Add force option to app install command
2021-04-20 17:49:10 +02:00
Vincent Petry 1a839ce481 Update baseline on stable21
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-04-20 17:02:01 +02:00
Morris Jobke c580dd5fe9 Merge pull request #26641 from nextcloud/backport/26633/stable21
[stable21] Make lookup search explicit
2021-04-20 15:28:08 +02:00
Roeland Jago Douma f915efc859 Merge pull request #26639 from nextcloud/backport/26551/stable21
[stable21] ensure redis returns bool for hasKey
2021-04-20 10:33:18 +02:00
Roeland Jago Douma f7d88b0b5a Make lookup search explicit
Speedsup sharee lookup quite a bit.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-20 08:33:04 +00:00
Morris Jobke 1e542beaab Merge pull request #26625 from nextcloud/bugfix/noid/fix-sharemail-empty-password-check
[stable21] Fix empty password check for mail shares
2021-04-20 10:01:45 +02:00
Morris Jobke 44bbc2454b Merge pull request #26636 from nextcloud/backport/26615/stable21
[stable21] Require read permissions for federated shares
2021-04-20 09:06:06 +02:00
Nextcloud bot 7482baf138 [tx-robot] updated from transifex 2021-04-20 02:26:12 +00:00
Arthur Schiwon 92e1606c18 ensure redis returns bool for hasKey
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-04-19 23:40:47 +02:00
Roeland Jago Douma 872df4ab72 Require read permissions for federated shares
Else they end up as weird shares that can't be properly utilized by
other parties anyway.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-19 19:52:41 +00:00
Morris Jobke e590f44c4a Merge pull request #26621 from nextcloud/backport/26613/stable21
[stable21] Do not allow adding file drop shares to your own cloud
2021-04-19 21:48:41 +02:00
Vincent Petry fe0f1c792c Fix empty password check for mail shares
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-04-19 15:44:26 +02:00
Roeland Jago Douma 6bc4561f09 Do not allow adding file drop shares to your own cloud
There is no reason for this and you can't create such shares normally
anyway.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-19 12:58:10 +00:00
Morris Jobke 3e1a6778c2 Merge pull request #26616 from nextcloud/backport/26614/stable21
[stable21] Update root.crl due to revoked news.crt
2021-04-19 13:34:34 +02:00
Morris Jobke 871d20c54e Update root.crl due to revoked news.crt
See https://github.com/nextcloud/app-certificate-requests/pull/382

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-04-19 10:56:36 +00:00
Nextcloud bot f1d7e56cab [tx-robot] updated from transifex 2021-04-19 02:26:19 +00:00
Nextcloud bot 72a2b0663c [tx-robot] updated from transifex 2021-04-18 02:24:21 +00:00
Maxopoly 0f64b7cd0d Add force option to app install command
Signed-off-by: Maxopoly <max@dermax.org>
2021-04-17 17:20:59 +00:00
Nextcloud bot c5e0d912c5 [tx-robot] updated from transifex 2021-04-17 02:24:17 +00:00
dependabot-preview[bot] 123da4ddac Merge pull request #26604 from nextcloud/dependabot/npm_and_yarn/stable21/ssri-6.0.2 2021-04-16 23:12:52 +00:00
dependabot-preview[bot] 68906d2013 [Security] Bump ssri from 6.0.1 to 6.0.2
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2. **This update includes a security fix.**
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-04-16 22:43:18 +00:00
Roeland Jago Douma 50e897aa53 Merge pull request #26587 from nextcloud/backport/26581/stable21
[stable21] Fix constraint violation detection in QB Mapper
2021-04-16 12:58:21 +02:00
Joas Schilling 0214201008 Fix constraint violation detection in QB Mapper
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-16 09:14:29 +00:00
Nextcloud bot a0472937af [tx-robot] updated from transifex 2021-04-16 02:26:05 +00:00
Nextcloud bot c2a4afccea [tx-robot] updated from transifex 2021-04-15 02:25:22 +00:00
Nextcloud bot 5cc58a04a3 [tx-robot] updated from transifex 2021-04-14 02:27:02 +00:00
Roeland Jago Douma 0b75897a69 Merge pull request #26535 from nextcloud/backport/26521/stable21
[stable21] Fix accessibility issues on log in screen
2021-04-13 20:08:31 +02:00
Jan C. Borchardt fb588f4cbd Fix 'Log in with a device' link focusability
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-04-13 08:00:13 +00:00
Jan C. Borchardt 225eaab208 Fix log in button hover/focus feedback
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2021-04-13 07:27:54 +00:00
Jan C. Borchardt 0ba4ff060a Fix password visibility toggle alt text and hover/focus feedback
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2021-04-13 07:27:54 +00:00
Nextcloud bot 736933af7a [tx-robot] updated from transifex 2021-04-13 02:25:09 +00:00
Joas Schilling 385420c64f Merge pull request #26525 from nextcloud/backport/26433/stable21
[stable21] Limit size of properties to 2048 characters
2021-04-12 22:41:34 +02:00
Lukas Reschke ad91f39c46 Limit size of properties to 2048 characters
It is unreasonable to expect that one of these fields would be longer
than 2048 characters. Whilst some have definitely lower limits (such as
for phone numbers or domain names), a upper bound as sanity check makes
sense.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-04-12 16:37:04 +00:00
Roeland Jago Douma 87212ab097 Merge pull request #26514 from nextcloud/backport/26439/stable21
[stable21] Increase subnet matcher
2021-04-12 13:32:21 +02:00
Lukas Reschke b5838c5248 Increase subnet matcher
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-04-12 10:36:25 +00:00
Roeland Jago Douma dcbe928371 Merge pull request #26508 from nextcloud/backport/26230/stable21
[stable21] l10n: Add word user in FederatedShareProvider.php
2021-04-12 10:18:18 +02:00
Valdnet 0c3fcbac91 l10n: Add word user in FederatedShareProvider.php
Standardizing text strings with other Nextcloud applications.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-12 06:41:46 +00:00
Nextcloud bot c2d01da31f [tx-robot] updated from transifex 2021-04-12 02:25:05 +00:00
Nextcloud bot 3198e50d5b [tx-robot] updated from transifex 2021-04-11 02:24:53 +00:00
Nextcloud bot 4ad8a5ae8f [tx-robot] updated from transifex 2021-04-10 02:31:25 +00:00
Nextcloud bot 0216927050 [tx-robot] updated from transifex 2021-04-09 02:25:20 +00:00
Roeland Jago Douma bd555dbe85 Merge pull request #26453 from nextcloud/version/21.0.1/final
21.0.1 final
2021-04-08 14:39:20 +02:00
Joas Schilling ae8b0ffdbc Merge pull request #26459 from nextcloud/backport/26458/stable21
[stable21] Show icon-phone when setting is set to private instead of local
2021-04-08 13:51:57 +02:00
Roeland Jago Douma 591aac3b03 Merge pull request #26447 from nextcloud/3rdparty/stable21/phpseclib-2.0.31
[3rdparty][stable21] phpseclib-2.0.31
2021-04-08 13:13:04 +02:00
Joas Schilling bffdbb1258 Show icon-phone when setting is set to private instead of local
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-08 11:07:25 +00:00
Roeland Jago Douma 3e4fa6728a [3rdparty][stable21] phpseclib-2.0.31
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-08 11:30:01 +02:00
Roeland Jago Douma 23148e7682 Merge pull request #26451 from nextcloud/revert-26326-backport/26070/stable21
Revert "[stable21] add a prefix index to filecache.path"
2021-04-08 11:27:37 +02:00
Roeland Jago Douma 58839f2923 21.0.1 final
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-04-08 10:18:43 +02:00
Roeland Jago Douma c12f5482b2 Revert "[stable21] add a prefix index to filecache.path" 2021-04-08 10:08:34 +02:00
Nextcloud bot 2e13dc2aa1 [tx-robot] updated from transifex 2021-04-08 02:24:15 +00:00
Nextcloud bot 1f3d1546dd [tx-robot] updated from transifex 2021-04-07 02:24:26 +00:00
Lukas Reschke d66e86c56c Merge pull request #26400 from nextcloud/backport/26061/stable21
[stable21] Log and continue when failing to update encryption keys during for individual files
2021-04-06 13:43:34 +02:00
Nextcloud bot 6b67b81287 [tx-robot] updated from transifex 2021-04-06 02:25:42 +00:00
Nextcloud bot a9b5cde333 [tx-robot] updated from transifex 2021-04-05 02:24:56 +00:00
Nextcloud bot e85188f429 [tx-robot] updated from transifex 2021-04-04 02:24:59 +00:00
Nextcloud bot fe7ad83c76 [tx-robot] updated from transifex 2021-04-03 02:43:46 +00:00
dependabot-preview[bot] 5a47a7ae5d Merge pull request #26413 from nextcloud/dependabot/npm_and_yarn/stable21/y18n-4.0.1 2021-04-03 02:07:01 +00:00
dependabot-preview[bot] 3b8fb0096b [Security] Bump y18n from 4.0.0 to 4.0.1
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. **This update includes a security fix.**
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-04-03 01:17:29 +00:00
John Molakvoæ b59cf16325 Merge pull request #26406 from nextcloud/backport/26396/stable21 2021-04-02 16:59:51 +02:00
Nextcloud bot e14860c8f2 [tx-robot] updated from transifex 2021-04-02 02:26:17 +00:00
Roeland Jago Douma fd6ffd0257 Merge pull request #26313 from nextcloud/version/21.0.1/RC1
21.0.1 RC1
2021-04-01 20:23:43 +02:00
blizzz 21e2be4fb3 Merge pull request #26402 from nextcloud/ldap-factory-no-ldap-21
[21] make ILDAPProviderFactory usable when there is no ldap setup
2021-04-01 18:41:11 +02:00
Morris Jobke 9010524442 Merge pull request #26404 from nextcloud/backport/26403/stable21
[stable21] remove leftover debug @NoCSRFRequired introduced with #26198
2021-04-01 18:17:01 +02:00
Julius Härtl dc8e819915 Properly handle creating the template directory in a subfolder (fixes #25787)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-01 13:31:55 +00:00
Julius Härtl 89a19a338e Get the parent directory before creating a file from a template
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-01 13:31:55 +00:00
Robin Appelman 17b64a4606 remove leftover debug @NoCSRFRequired introduced with #26198
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-04-01 13:11:31 +00:00
Robin Appelman 40507ca543 make ILDAPProviderFactory usable when there is no ldap setup
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-04-01 13:08:23 +02:00
Joas Schilling e0dcf642de Merge pull request #26398 from nextcloud/backport/26394/stable21
[stable21] Allow apps to write/update account data
2021-04-01 11:09:00 +02:00
Vincent Petry 6ac708c99a Fix phpcs issues in encryption update
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-04-01 07:56:41 +00:00
Julius Härtl d6bad03a5c Log and continue when failing to update encryption keys during for individual files
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-04-01 07:56:41 +00:00
Morris Jobke 052c9abfdf Merge pull request #26391 from nextcloud/backport/26386/stable21
[stable21] Also check the default phone region when the number has no country code
2021-04-01 09:32:57 +02:00
Joas Schilling 0c348863e7 Allow apps to write/update account data
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-01 06:07:47 +00:00
Nextcloud bot 737f755941 [tx-robot] updated from transifex 2021-04-01 02:24:51 +00:00
Joas Schilling f38248dcd4 Also check the default phone region when the number has no country code
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-31 08:30:56 +00:00
kesselb 618a48487f Merge pull request #26377 from nextcloud/backport/25500/stable21
[stable21] fix(translation): replace static error message
2021-03-31 10:07:58 +02:00
Julius Härtl 00daf58da8 Merge pull request #26376 from nextcloud/backport/25804/stable21
[stable21] Do not attempt to read 0 bytes when manually iterating over a non-seekable file
2021-03-31 09:44:47 +02:00
Christoph Wurst 0432b32535 Merge pull request #26379 from nextcloud/backport/25924/stable21
[stable21] Only mark migrations as installed after execution
2021-03-31 07:43:32 +02:00
Christoph Wurst 3e5fbd4ef1 Merge pull request #26382 from nextcloud/backport/26372/stable21
[stable21] gracefully handle deleteFromSelf when share is already gone
2021-03-31 07:43:01 +02:00
Nextcloud bot 6d70bd9246 [tx-robot] updated from transifex 2021-03-31 02:25:01 +00:00
Arthur Schiwon caec3a8cee gracefully handle deleteFromSelf when share is already gone
- handling race conditions

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-03-30 20:26:29 +00:00
Joas Schilling e3927afe19 Only mark migrations as installed after execution
The problem is that if a developer creates a structural error in their migration file,
they will already be marked as executed and an not be rerun.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-30 19:51:12 +00:00
Samuel 3073732002 revert(comment)
Signed-off-by: Samuel <faust64@gmail.com>
2021-03-30 19:26:04 +00:00
Samuel c49cff453c revert(exception): keep throwing an exception for now
Signed-off-by: Samuel <faust64@gmail.com>
2021-03-30 19:26:04 +00:00
Samuel 22ddcfa740 fix(translation): replace static error message
as suggested by @kesselb in nextcloud/server#25490

Signed-off-by: Samuel <faust64@gmail.com>
2021-03-30 19:26:04 +00:00
Julius Härtl fc2e09b667 Properly end iterating over the file once the target has been reached
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-30 19:22:47 +00:00
Joas Schilling b2072cd6fc Merge pull request #26371 from nextcloud/backport/26370/stable21
[stable21] Remove notifications when retesting profile field input
2021-03-30 13:09:34 +02:00
Christoph Wurst ba1d671055 Merge pull request #26363 from nextcloud/backport/26325/stable21
[stable21] Update cipher defaults
2021-03-30 11:30:46 +02:00
Joas Schilling 3afeb5c908 Remove notifications when retesting
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-30 09:27:17 +00:00
Joas Schilling 3ebe3a0e5f Merge pull request #26366 from nextcloud/backport/26355/stable21
[stable21] Fix working for phone number integration
2021-03-30 09:53:48 +02:00
Nextcloud bot 68e9013c39 [tx-robot] updated from transifex 2021-03-30 02:24:32 +00:00
Roeland Jago Douma f9cef329ba Merge pull request #26326 from nextcloud/backport/26070/stable21
[stable21] add a prefix index to filecache.path
2021-03-29 21:13:13 +02:00
Joas Schilling 2b8dfc03b6 Fix working for phone number integration
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-29 19:06:10 +00:00
Roeland Jago Douma 2cc0fd0f62 Merge pull request #26357 from nextcloud/backport/26342/stable21
[stable21] Fix broken Calendar Event Invite email icons in Gmail by using PNGs instead of SVGs
2021-03-29 21:04:11 +02:00
J0WI 6691bc4bd4 Update cipher defaults
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2021-03-29 18:39:45 +00:00
Nick Sweeting e7aefc3424 change calendar invite emails to use pngs instead of svgs
Signed-off-by: Nick Sweeting <git@sweeting.me>
2021-03-29 16:17:16 +00:00
Joas Schilling a956c53e04 Merge pull request #26352 from nextcloud/backport/26243/stable21
[stable21] Avatar privacy and new scope
2021-03-29 11:29:57 +02:00
Vincent Petry 15e52fa7cb Capability for federated scope
Added additional capability in the provisioning API to signal whether
the federation scope values can be used.

This is based on whether the lookup server upload is enabled or not.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:38 +00:00
Vincent Petry 6cb5f36cf4 Update autoloader for PlaceholderAvatar
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:37 +00:00
Vincent Petry 9ca91c15db Int tests for provisioning API scopes
Added integration tests for the scope attributes in the provisioning
API.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:37 +00:00
Vincent Petry ec492eadfa Add known user check in avatar when v2-private scope
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:37 +00:00
Vincent Petry 92ff94083b Update psalm-baseline for Avatar API quirks
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:36 +00:00
Vincent Petry ecae714157 Change account property capability
Include version number in capability

Signed-off-by: Vincent Petry <vincent@nextcloud.com>

Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
2021-03-29 07:03:36 +00:00
Vincent Petry ab22999eb9 Added PlaceholderAvatar with own cached images
When avatar scope is private, the PlaceholderAvatar is used to deliver a
placeholder avatar based on the user's initials.

This was implemented as a separate class for now to avoid messing with
the existing UserAvatar implementation and its generated vs
non-generated logic.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:36 +00:00
Vincent Petry 2613826fcc Add capability for editable scopes in provisioning API
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:35 +00:00
Vincent Petry 73ec32d19b Add property scope tests for AccountManager
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:35 +00:00
Vincent Petry 2fd62b4f0d Enhance UsersControllerTest of provisioning API with scopes
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:35 +00:00
Vincent Petry ad402ffc96 Expose avatarScope through provisioning API
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:34 +00:00
Vincent Petry b9d59e2994 OCS allow reading and writing account property scopes
Extends the provisioning API to allow a user to get and set their own
account property scopes.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:32 +00:00
Vincent Petry 5c854ba132 Make extra user profile fields always editable
The fields for phone number, address, website and twitter are now
editable regardless whether federated sharing and the lookup server
are enabled or not.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:32 +00:00
Vincent Petry 5d76574a81 Map old account scope properties to new names
Use new scope values in settings page.
Adjust all consumers to use the new constants.
Map old scope values to new ones in account property getter.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:31 +00:00
Vincent Petry e2ab530ee3 Adjust scopes menu based on conditions
Now not all fields have the "v2-private" option in place.
Fix dropdown issue when a scope was stored that is not listed after
disabling the lookup server.
Whenever the lookup server upload is disabled, the scope menu is now
displayed where it makes sense to allow switching between the two private
scopes.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:31 +00:00
Vincent Petry f45f826b52 Add new v2-private account scope
Added new v2-private account manager scope that restricts the scope
further by excluding public link access.

Avatars with v2-private account scope are now showing the guest avatar
instead of the real avatar.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-29 07:03:31 +00:00
Nextcloud bot d6156b970b [tx-robot] updated from transifex 2021-03-29 02:24:09 +00:00
Nextcloud bot f10f9d090a [tx-robot] updated from transifex 2021-03-28 02:24:15 +00:00
Nextcloud bot dd99255087 [tx-robot] updated from transifex 2021-03-27 02:24:38 +00:00
Robin Appelman 861fbd06a5 add a prefix index to filecache.path
The reason that `filecache.path` hasn't had an index added is the mysql limitation of ~1kb for indexeded fields,
which is to small for the `path`, however mysql supports indexing only the first N bytes of a column instead of the entire column,
allowing us to add an index even if the column is to long.

Because the index doesn't cover the entire column it can't be used in all situations where a normal index would be used, but it does cover the `path like 'folder/path/%'` queries that are used in various places.

Sqlite and Postgresql don't support prefix indexes, but they also don't have the 1kb limit and DBAL handles the differences in index creation.

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-26 19:44:28 +00:00
Roeland Jago Douma 785f6c63a0 Merge pull request #26307 from nextcloud/backport/22201/stable21
[stable21] Delete old birthday calendar object when moving contact to another ad…
2021-03-26 10:44:59 +01:00
Roeland Jago Douma d65ce19f6e Merge pull request #26291 from nextcloud/backport/21484/stable21
[stable21] show better error messages when a file with a forbidden path is encountered
2021-03-26 10:44:43 +01:00
Roeland Jago Douma cc5c93ffb3 Merge pull request #26263 from nextcloud/backport/26046/stable21
[stable21] update icewind/smb to 3.4.0
2021-03-26 10:44:03 +01:00
Roeland Jago Douma 5d8df1bed2 21.0.1 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-26 10:35:05 +01:00
Christian Weiske 74794bf100 Delete old birthday calendar object when moving contact to another address book
When an contact is moved to another address book, the contact is copied to
the second address book.
During copying, the birthday event is created - but it gets the same UID
as the contact's birthday event in the first address book.

To prevent the "Calendar object with uid already exists" error that followed,
we need to delete the old entry before the new one is created.

Resolves: https://github.com/nextcloud/server/issues/20492
Signed-off-by: Christian Weiske <cweiske@cweiske.de>
2021-03-26 07:25:44 +00:00
John Molakvoæ 9a4cbba7f6 Merge pull request #26298 from nextcloud/backport/26287/stable21
[stable21] Fix l10n
2021-03-26 08:08:41 +01:00
Nextcloud bot 9ddc6df797 [tx-robot] updated from transifex 2021-03-26 02:25:43 +00:00
Morris Jobke 82f6d632b6 Merge pull request #26301 from nextcloud/backport/26299/stable21
[stable21] Log when a storage is marked as unavailable
2021-03-25 20:33:35 +01:00
Morris Jobke cf8be87e47 Log when a storage is marked as unavailable
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-03-25 16:10:28 +00:00
Valdnet 23ccae6840 Fix l10n
Issue: #26286
2021-03-25 12:58:59 +00:00
Robin Appelman fdf7eb10a2 show better error messages when a file with a forbidden path is encountered
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-25 10:56:59 +00:00
Nextcloud bot 769c6fedad [tx-robot] updated from transifex 2021-03-25 02:25:48 +00:00
Morris Jobke ffb7c51ca6 Merge pull request #26257 from nextcloud/backport/26198/stable21
[stable21] Handle limit offset and sorting in files search
2021-03-24 17:32:36 +01:00
Morris Jobke f7922bdd0d Merge pull request #26279 from nextcloud/backport/26255/stable21
[stable21] l10n: Separate ellipsis
2021-03-24 17:14:19 +01:00
Morris Jobke ba9e1c0d1a Merge pull request #26276 from nextcloud/backport/26265/stable21
[stable21] Fix casing of core test folder, bring back missing tests
2021-03-24 17:13:44 +01:00
Vincent Petry bb7ff7f440 Revert controller tests to match stable21 API
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 15:22:35 +01:00
Valdnet 7a7bd29177 l10n: Separate ellipsis
Unifying the text string with the others.
2021-03-24 13:26:48 +00:00
Morris Jobke 88b0b5aa40 Merge pull request #26249 from nextcloud/backport/25529/stable21
[stable21] Fix non LGC glyphs in avatars and txt file previews
2021-03-24 14:20:25 +01:00
Morris Jobke e5dc0b7ad1 Merge pull request #26271 from nextcloud/backport/26270/stable21
[stable21] Catch invalid cache source storage path
2021-03-24 14:09:03 +01:00
Vincent Petry 447ccc1e55 Fix language codes test result order
Fixes issue with Oracle by enforcing the order of the results to check.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:52 +00:00
Vincent Petry bad3243944 Bring back forgotten tests
Remove "ocs-provider" test folder reference as it doesn't exist any
more.
Added back "Test" test subdir and fixed the tests inside.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:52 +00:00
Vincent Petry 3e815f555d Fix more controller tests in Core subdir
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:52 +00:00
Vincent Petry 365c99b0be Fix more tests in the Core subdir
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:51 +00:00
Vincent Petry 2c4b21b2fc Fix core tests command for app enabling/disabling
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:51 +00:00
Vincent Petry 544ea63613 Fix casing of core test folder
It seems Phpunit < 9 was case insensitive.
Fixed the phpunit config to target the correct name for the "Core" test
directory.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-24 12:38:51 +00:00
John Molakvoæ (skjnldsv) e9fafce71b Catch invalid cache source storage path
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-03-24 11:03:30 +00:00
Nextcloud bot ef273fef4b [tx-robot] updated from transifex 2021-03-24 02:25:17 +00:00
Robin Appelman 03c430868a update icewind/smb to 3.4.0
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 16:23:53 +00:00
Robin Appelman 5a1ae2c3c0 use node search api for legacy file search endpoint
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:22 +00:00
Robin Appelman 2c565d68bc pass order from unified search to file search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:21 +00:00
Robin Appelman d4381c0eac handle ordering in folder search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:18 +00:00
Robin Appelman 8551ee079d folder filtering in sql
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:16 +00:00
Robin Appelman 277c0039f6 cleanup fileinfo creation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:13 +00:00
Robin Appelman c8679885f6 format
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:12 +00:00
Robin Appelman 423e1581e0 handle limit and offset in folder file search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:12 +00:00
Robin Appelman 2500d296c5 only require user to be set in a query that handles tags
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:11 +00:00
Robin Appelman d2245734d4 unify handling of Folder::search methods into "new" query objects
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:11 +00:00
Robin Appelman 680e21b7c5 use "newer" node search api directly in unified search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-23 13:41:10 +00:00
Nextcloud bot c60f0e06d0 [tx-robot] updated from transifex 2021-03-23 02:24:15 +00:00
Daniel Calviño Sánchez e6ee498f88 Add OCC command to reset rendered texts
The command is meant to be used when the fonts used to render texts
("core/fonts/NotoSans-Regular.ttf" and "core/fonts/NotoSans-Bold.ttf")
are changed (for example, to add support for other scripts). The avatar
and text file previews will be removed, so they will be generated again
with the updated font when needed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-22 20:07:59 +00:00
Daniel Calviño Sánchez 4cb539bf09 Include additional scripts in Noto fonts
Generated avatars as well as text file previews are rendered using the
"core/fonts/NotoSans-Regular.ttf" font. The file was the standard hinted
"NotoSans-Regular.ttf" file from https://www.google.com/get/noto/.
However that file does not cover some non LGC (Latin, Greek, Cyrillic)
scripts, like Arabic, Devanagari or Hebrew, to name a few.

Markdown file previews also use "core/fonts/NotoSans-Bold.ttf", which is
in the same situation as the regular one.

Due to limitations in the TTF format it is not possible to provide a
single file for each style that includes all Noto fonts. However, it is
possible to add more scripts to the standard "NotoSans-Regular.ttf" and
"NotoSans-Bold.ttf" files (although no CJK (Chinese, Japanese, Korean)
glyph can be included due to the aforementioned limitations).

This commit replaces the standard files with an extended version created
using the Noto Tools. The build script (as well as a patch for the Noto
Tools) is also included for reference and to be able to update the font
files in the future if needed.

Due to the additional scripts added the font files are now much larger,
although this does not seem to increase the time spent rendering LGC
scripts.

Note that the file for the bold style still contains less scripts than
the regular one, as not all scripts supported by Noto have a bold
weight.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-22 20:07:58 +00:00
Morris Jobke a07e171df7 Merge pull request #26177 from nextcloud/backport/26161/stable21
[stable21] Improve search results when only phonebook-matches can we autocompleted
2021-03-22 21:02:43 +01:00
Roeland Jago Douma e12e2ae8a3 Make psalm happy
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-22 20:20:29 +01:00
Joas Schilling 3fd9d0dc50 Also limit to user group in case enumeration is enabled for groups and phonenumbers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-22 20:07:53 +01:00
Joas Schilling e9ea4a0f01 Fix parameter types in docs
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-22 20:07:53 +01:00
Joas Schilling f2acf492cf Add missing index on the user column
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-22 20:07:53 +01:00
Joas Schilling 553a25e1a1 Improve search results when only phonebook-matches can we autocompleted
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-22 20:07:53 +01:00
John Molakvoæ 83b7b6f474 Merge pull request #26238 from nextcloud/backport/26231/stable21 2021-03-22 13:55:28 +01:00
Valdnet 207e8cbf9e l10n: Add changes to text string for user 2021-03-22 10:30:49 +00:00
Valdnet ba1e966439 l10n: Add word user in ShareByMailProvider.php
Standardizing text strings with other Nextcloud applications.
2021-03-22 10:30:49 +00:00
Nextcloud bot 2e2d2e79e8 [tx-robot] updated from transifex 2021-03-22 02:23:56 +00:00
Morris Jobke 476c30b807 Merge pull request #26227 from nextcloud/backport/26213/stable21
[stable21] Removed unnecessary padding
2021-03-21 20:57:42 +01:00
Nextcloud bot 89319b995f [tx-robot] updated from transifex 2021-03-21 02:23:20 +00:00
Sascha Wiswedel a52482246b Removed unnecessary padding
Signed-off-by: Sascha Wiswedel <sascha.wiswedel@nextcloud.com>
2021-03-20 09:57:08 +00:00
Roeland Jago Douma b3bf640111 Merge pull request #26215 from nextcloud/backport/26145/stable21
[stable21] add (hidden) option to always show smb root as writable
2021-03-20 10:53:40 +01:00
Nextcloud bot 798eff0161 [tx-robot] updated from transifex 2021-03-20 02:23:52 +00:00
Robin Appelman 7f066931e4 add (hidden) option to always show smb root as writable
some smb servers are very insistent in reporting that the root of the share is readonly, even if it isn't.

This works around the problem by adding a hidden option to overwrite the permissions of the root of the share.

This can be enabled using

```bash
occ files_external:config <mount id> root_force_writable true
```

where you can find your mount id using

```bash
occ files_external:list
```

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-19 15:47:01 +00:00
Morris Jobke eaae526ba7 Merge pull request #26211 from nextcloud/backport/23718/stable21
[stable21] expand 'path is already shared' error message
2021-03-19 15:21:17 +01:00
Morris Jobke 06a9463e11 Merge pull request #26204 from nextcloud/backport/26200/stable21
[stable21] Update user share must use correct expiration validation
2021-03-19 15:19:19 +01:00
Vincent Petry 0e5379a7b3 Merge pull request #26119 from nextcloud/backport/26003/stable21
[stable21] Add getID function to the simplefile implementation
2021-03-19 13:59:00 +01:00
Robin Appelman def56ca0cd expand 'path is already shared' error message
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-19 12:45:40 +00:00
Vincent Petry 695ccecf26 Update user share must use correct expiration validation
Updating a user or group share now uses the correct method for the
validation of the expiration date. Instead of using the one from links
it uses the one for internal shares.

To avoid future confusion, the method "validateExpirationDate" has been
renamed to "validateExpirationDateLink".

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-19 09:54:47 +00:00
Morris Jobke 682df0b788 Merge pull request #26124 from nextcloud/backport/25533/stable21
[stable21] send share notification instead of erroring on duplicate share
2021-03-19 09:18:49 +01:00
Nextcloud bot 942b40583c [tx-robot] updated from transifex 2021-03-19 02:25:05 +00:00
Roeland Jago Douma 8942d76f72 Merge pull request #26122 from nextcloud/backport/26004/stable21
[stable21] Allow overwriting isAuthenticated
2021-03-18 16:20:46 +01:00
Vincent Petry 15cb3f0624 Merge pull request #26192 from nextcloud/backport/25331/stable21
[stable21] Fix valid storages removed when cleaning remote storages
2021-03-18 11:23:51 +01:00
Daniel Calviño Sánchez 7e87b12271 Fix valid storages removed when cleaning remote storages
The remote URL of a share is always stored in the database with a
trailing slash. However, when a cloud ID is generated trailing slashes
are removed.

The ID of a remote storage is generated from the cloud ID, but the
"cleanup-remote-storage" command directly used the remote URL stored in
the database. Due to this, even if the remote storage was valid, its ID
did not match the ID of the remote share generated by the command and
ended being removed.

Now the command generates the ID of remote shares using the cloud ID
instead, just like done by the remote storage, so there is no longer a
mismatch.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-18 08:05:04 +00:00
Daniel Calviño Sánchez 388110a35e Add integration tests for "sharing:cleanup-remote-storages" OCC command
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-18 08:05:04 +00:00
Vincent Petry 73d2f42d41 Merge pull request #26087 from nextcloud/backport/26049/stable21
[stable21] limit constructing of result objects in file search
2021-03-18 08:21:50 +01:00
Nextcloud bot 4ebf9c2d1a [tx-robot] updated from transifex 2021-03-18 02:25:13 +00:00
Morris Jobke 0e642a5f5e Merge pull request #26062 from nextcloud/backport/25915/stable21
[stable21] Add appconfig to always show the unique label of a sharee
2021-03-17 20:13:07 +01:00
Morris Jobke c1c377f609 Merge pull request #26090 from nextcloud/backport/25722/stable21
[stable21] apply object store copy optimization when 'cross storage' copy is wit…
2021-03-17 20:09:50 +01:00
Morris Jobke a70bdb962b Merge pull request #26175 from nextcloud/backport/26076/stable21
[stable21] adds ldap user:reset command
2021-03-17 20:06:29 +01:00
Morris Jobke 95ebe5e819 Merge pull request #26146 from nextcloud/backport/26013/stable21
[stable21] Return the fileid from `copyFromCache` and use it instead of doing an extra query
2021-03-17 20:03:58 +01:00
Arthur Schiwon 4cd15b7815 adds ldap user:reset command
- allows to delete data of existing LDAP users, which otherwise is safe
  guarded
- ensures that the user is not being deleted on LDAP through a plugin

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-03-17 13:38:55 +00:00
Morris Jobke 4b3684fbc4 Merge pull request #25943 from nextcloud/backport/25659/stable21
[stable21] catch notfound and forbidden exception in smb::getmetadata
2021-03-17 13:50:39 +01:00
Morris Jobke aa8a31b3ec Merge pull request #26166 from nextcloud/backport/26131/stable21
[stable21] Fix default missing initial state for templates
2021-03-17 13:50:32 +01:00
Morris Jobke a2d17c3c02 Merge pull request #26167 from nextcloud/backport/26072/stable21
[stable21] remove explicit fclose from S3->writeStream
2021-03-17 13:47:03 +01:00
kesselb 5ecbfa4f20 Merge pull request #26162 from nextcloud/backport/26153/stable21
[stable21] Use correct exception type hint in catch statement
2021-03-17 11:09:19 +01:00
Robin Appelman 0532f64aa8 remove explicit fclose from S3->writeStream
streams get closed automatically when dropped, and in some cases the stream seems to be already closed by the S3 library, in which case trying to close it again will raise an error

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-17 09:36:02 +00:00
John Molakvoæ (skjnldsv) 1be574319c Fix default missing initial state for templates
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-03-17 09:20:38 +00:00
Vincent Petry 215967db96 Merge pull request #26151 from nextcloud/backport/26137/stable21
[stable21] dont allow creating users with __groupfolders as uid
2021-03-17 09:46:37 +01:00
Morris Jobke 162e763e26 Use correct exception type hint in catch statement
Found by psalm update 4.6.2 to 4.6.3 in #26111

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-03-17 08:44:29 +00:00
Nextcloud bot fd29c1d72a [tx-robot] updated from transifex 2021-03-17 02:24:31 +00:00
Robin Appelman 1089d8545b dont allow creating users with __groupfolders as uid
Fixes https://github.com/nextcloud/groupfolders/issues/338

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 18:51:55 +00:00
Robin Appelman 44d4957548 verify that cache entry is valid
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:17:59 +00:00
Robin Appelman f6f92e8bc6 also implement for FailedCache and NullCache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:17:58 +00:00
Robin Appelman 719db4cee9 use returned file id for object store copy
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:17:57 +00:00
Robin Appelman bb180a95bb add ICopyFromCache trait to expose existing implementation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:17:56 +00:00
Morris Jobke 120aefb795 Merge pull request #26133 from nextcloud/backport/25136/stable21
[stable21] do cachejail search filtering in sql
2021-03-16 16:59:29 +01:00
Christoph Wurst e09d59aa81 Merge pull request #26128 from nextcloud/backport/26115/stable21
[stable21] Log exceptions when creating share
2021-03-16 11:09:13 +01:00
Nextcloud bot 8d6a4bef6c [tx-robot] updated from transifex 2021-03-16 02:24:53 +00:00
Robin Appelman e5ffb96c36 only use share cacheentry when available
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:34 +00:00
Robin Appelman c727879073 adjust tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:34 +00:00
Robin Appelman ec0985ba68 fix search in nested jails
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:33 +00:00
Robin Appelman eb56b1d0bd fix cachjail searching for root
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:32 +00:00
Robin Appelman 046638abeb do cachejail search filtering in sql
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 17:51:32 +00:00
Vincent Petry f109677856 Log exceptions when creating share
Because the exceptions don't always contain a useful message for the UI,
but also because in some cases we need to find out what went wrong.

In some setups, a ShareNotFoundException might happen during creation
when we try to re-read the just written share. Usually related to Galera
Cluster where node syncing wait is not enabled.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-15 15:06:16 +00:00
Robin Appelman f2a35cd3f8 send share notification instead of erroring on duplicate share
when creating a share that already exists, instead of erroring, resend the notifications

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-15 14:13:04 +00:00
Roeland Jago Douma 8806bbe6fe Allow overwriting isAuthenticated
* Some implementations might check for different things
* IT will not change how the current ones work

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-15 13:59:05 +00:00
Roeland Jago Douma 7059b0b21f Add getID function to the simplefile implementation
Sometimes it is useful to get the actual fileid

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-15 13:44:45 +00:00
Nextcloud bot 7c21fba61f [tx-robot] updated from transifex 2021-03-15 02:24:10 +00:00
Nextcloud bot 0ea077ae1f [tx-robot] updated from transifex 2021-03-14 02:23:50 +00:00
Nextcloud bot 5b923eee03 [tx-robot] updated from transifex 2021-03-13 02:23:05 +00:00
Robin Appelman 6308267aff apply object store copy optimization when 'cross storage' copy is within the same object store
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 16:16:01 +00:00
Robin Appelman a5ceded17f implement PagedProvider for file search
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 12:38:37 +00:00
Robin Appelman b6af62fd24 limit constructing of result objects in file search
even thought we currently have no proper way of limiting the search itself, we can at least limit the construction of the result objects.

this saves about 40% of the time spend in the search request in my local testing

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 12:38:37 +00:00
Roeland Jago Douma 7f0f9fcd93 Merge pull request #26081 from nextcloud/backport/26080/stable21
[stable21] Only clear known users when we had at least one phonebook entry
2021-03-12 12:44:41 +01:00
Roeland Jago Douma 3ac6dc3b50 Merge pull request #26084 from nextcloud/backport/26079/stable21
[stable21] Chunk the array of phone numbers
2021-03-12 12:44:25 +01:00
Joas Schilling 2d92f1117b Fix Test class name
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-12 10:23:13 +00:00
Joas Schilling 6951c4ef56 Chunk the array of phone numbers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-12 10:23:13 +00:00
Joas Schilling 3efb2d2208 Only clear known users when we had at least one phonebook entry
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-12 09:48:14 +00:00
Nextcloud bot 6e2f7ddc7a [tx-robot] updated from transifex 2021-03-12 02:22:52 +00:00
Julius Härtl cd5e27e3f3 Add appconfig to always show the unique label of a sharee
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-11 15:32:26 +01:00
Vincent Petry 04dd7b234e Merge pull request #26058 from nextcloud/backport/25911/stable21
[stable21] Only clear share password model when actually saved
2021-03-11 15:15:40 +01:00
Vincent Petry ec443159af Only clear share password model when actually saved
Instead of always clearing the password in the share model, now only do
it when it was actually saved.

Fixes an issue where saving another field would clear the password too
early and prevent it to be saved when the dropdown closed.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-11 10:05:31 +00:00
Vincent Petry 1d0b210d00 Merge pull request #26039 from nextcloud/backport/25916/stable21
[stable21] Remove trash items from other trash backends when deleting all
2021-03-11 10:31:30 +01:00
Roeland Jago Douma 0e8ada1a8a Merge pull request #26056 from nextcloud/backport/26031/stable21
[stable21] Allow autocomplete based on phone sync
2021-03-11 09:31:44 +01:00
Joas Schilling 62ef45028e Clean up the logic of the contacts store a bit
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:42:19 +01:00
Joas Schilling 5fa52d492a Rename some parameters and methods to make the API more clear
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:42:09 +01:00
Joas Schilling 99c1eda9c5 Bump version to run migration
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:41:43 +01:00
Joas Schilling 490bfa7330 Also clear the knownUser when changing via the settings endpoint
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:59 +01:00
Joas Schilling 49f7d08b38 Also execute the new tests on drone
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:49 +01:00
Joas Schilling 72fb176ec9 Change label also in the acceptance tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:38 +01:00
Joas Schilling 5afaf3d06c Fix CS hopefully
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:32 +01:00
Joas Schilling 77f6d768bc Add a setting to restrict returning a full match unless in phonebook or same group
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:26 +01:00
Joas Schilling 8069c52a85 Add a hint that the settings are OR based
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:20 +01:00
Joas Schilling 30610aa615 Add integration tests for autocomplete/get (similar to sharees API)
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:10 +01:00
Joas Schilling c7560ab3a9 Restrict autocompletion also based on the phonebook known users
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:40:03 +01:00
Joas Schilling 52d43bf3cc Add a config setting to restrict autocompletion to phonebook matches
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:55 +01:00
Joas Schilling 88855d8827 Add a service to find out if a user knows another user
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:46 +01:00
Joas Schilling 5af22f84b3 Delete matches when the user is being deleted
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:39 +01:00
Joas Schilling 19ccc992d5 Delete matches when a user changes their phone number
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:29 +01:00
Joas Schilling 3feca65399 Store when a user knows another user based on phone number
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:39:20 +01:00
Joas Schilling ebb9f1d16a Add a KnownUsers database with model
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-11 08:38:55 +01:00
Julius Härtl 1a25b2e402 Merge pull request #26051 from nextcloud/backport/26048/stable21
[stable21] cache baseurl in url generator
2021-03-11 08:30:58 +01:00
Nextcloud bot e28dbef7a1 [tx-robot] updated from transifex 2021-03-11 02:23:18 +00:00
Robin Appelman ac29f27b17 cache baseurl in url generator
Servers don't tend to change their url in the middle of a request

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-10 19:38:30 +00:00
Roeland Jago Douma cc48b81411 Merge pull request #26026 from nextcloud/backport/25933/stable21
[stable21] Hide expiration date field for remote shares
2021-03-10 15:46:57 +01:00
Roeland Jago Douma f94c69123a Merge pull request #26044 from nextcloud/backport/26029/stable21
[stable21] Provisioning API to IBootstrap
2021-03-10 15:46:06 +01:00
Joas Schilling a659ee1c2d Fix some psalm warnings
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-10 13:38:00 +00:00
Roeland Jago Douma fa2dc9abc5 Provisioning API to IBootstrap
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-10 13:37:59 +00:00
kesselb c74cccd12c Merge pull request #26042 from nextcloud/backport/26030/stable21
[stable21] Fix SCSS compiler deprecated function usages
2021-03-10 11:04:52 +01:00
Vincent Petry ff95956e5d Hide expiration date field for remote shares
Remote shares currently do not support expiration date.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-10 09:42:41 +00:00
Roeland Jago Douma 4c68aee72b Merge pull request #25877 from nextcloud/backport/25568/stable21
[stable21] disable trasbin during the moveFromStorage fallback
2021-03-10 09:33:51 +01:00
Roeland Jago Douma 4cf3a9f81e Fix SCSS compiler deprecated function usages
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-10 08:24:30 +00:00
Julius Härtl deb01f04da Remove trash items from other trash backends when deleting all
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-10 08:00:11 +00:00
Nextcloud bot 3c07ae86ea [tx-robot] updated from transifex 2021-03-10 02:23:09 +00:00
Roeland Jago Douma 1ac8630a51 Merge pull request #25937 from nextcloud/backport/25927/stable21
[stable21] Sharebymail: set expiration on creation
2021-03-09 20:21:04 +01:00
Nextcloud bot 45cc358d79 [tx-robot] updated from transifex 2021-03-09 02:24:04 +00:00
Julius Härtl ecb64381fb Merge pull request #25993 from nextcloud/backport/25975/stable21
[stable21] Add missing waits and asserts in acceptance tests
2021-03-08 10:57:33 +01:00
Daniel Calviño Sánchez 8185c46bd8 Find directly the label instead of falling back to it
The input element is always hidden, so the check always ended falling
back to the label. Moreover, the label is the element that the user
interacts with, so it must be the one used.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:45 +00:00
Daniel Calviño Sánchez 3a470c2ebe Assert also element visibility instead of just finding it
Although if the element could not be found an exception would be thrown
and the test aborted if an element is in the DOM but hidden it would be
found and the test would pass.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:44 +00:00
Daniel Calviño Sánchez b086a0f007 Add explicit locator for "Enable all" bundle button
Instead of looking for the bundle button and then checking its value now
the expected value is included in the locator and the button is checked
similarly to other elements.

No "Disable all" locator was added as it was not currently needed
anywhere.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:44 +00:00
Daniel Calviño Sánchez 1058abc97c Find elements through the actor rather than the driver
"Actor::find" is a more robust way to look for elements, as it handles
some exceptions that may be thrown. Therefore, even if the elements are
not actually used and it is only checked whether they exist or not using
the actor is the preferred way when possible (and it also makes it
consistent with the rest of the acceptance tests).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:43 +00:00
Daniel Calviño Sánchez 270db2f523 Add locator for apps list
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:43 +00:00
Daniel Calviño Sánchez 4c98d2949f Fix identation
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:42 +00:00
Daniel Calviño Sánchez 34814adb36 Fix delete user acceptance test
Adding some missing asserts showed that the "delete user" acceptance
test was silently failing, as the deletion was not being confirmed in
the dialog and thus the user was not being deleted.

The dialog button contains a single quote ("user0's"), so the XPath
expression had to be adjusted (it seems that it is not possible to
escape a single quote in a string enclosed in single quotes in XPath
1.0).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:42 +00:00
Daniel Calviño Sánchez d03bc3e535 Verify WaitFor::element... results with an assertion
WaitFor::element... calls only perform the waiting and return whether
the condition succeeded or not, but that result needs to be explicitly
checked to prevent further steps from being executed if the wait failed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:41 +00:00
Daniel Calviño Sánchez f3a4ec723a Add missing waits when finding elements in the acceptance tests
As no timeout was specified the elements were tried to be found just
once. This caused the steps to fail if the elements did not appear yet
in the page when they were tried to be found.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-08 07:55:40 +00:00
Roeland Jago Douma 6842530d7f Merge pull request #25962 from nextcloud/backport/25712/stable21
[stable21] Fix admin password strengthify tooltip
2021-03-08 08:53:47 +01:00
Nextcloud bot 48df1bef17 [tx-robot] updated from transifex 2021-03-08 02:23:21 +00:00
Nextcloud bot 0dc05f51ef [tx-robot] updated from transifex 2021-03-07 02:22:17 +00:00
Roeland Jago Douma e645482089 Merge pull request #25955 from nextcloud/backport/25932/stable21
[stable21] Skip empty obsolete owner when adding to own NC
2021-03-06 10:54:22 +01:00
Nextcloud bot 5e6a891fce [tx-robot] updated from transifex 2021-03-06 02:22:32 +00:00
Richard Steinmetz 4c2159a622 Fix admin password strengthify tooltip
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-03-05 18:15:30 +01:00
Vincent Petry 9f7973a70e Skip empty obsolete owner when adding to own NC
The owner field is nowadays always empty when adding a federated share
using "Add to your Nextcloud", so don't check for it.

Fixes an issue where "Add to your Nextcloud" doesn't add anything.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-05 13:35:36 +00:00
Roeland Jago Douma d81954f913 Merge pull request #25935 from nextcloud/backport/25926/stable21
[stable21] Activity: show if files are hidden or not
2021-03-05 14:29:22 +01:00
Roeland Jago Douma 3aba094d86 Merge pull request #25573 from nextcloud/backport/25378/stable21
[stable21] Improve mention matches
2021-03-05 09:55:44 +01:00
Roeland Jago Douma b4b55616c2 Merge pull request #25918 from nextcloud/backport/25805/stable21
[stable21] Clear multiselect after selection in share panel
2021-03-05 09:44:07 +01:00
Roeland Jago Douma 01b9988a2d Merge pull request #25571 from nextcloud/backport/25460/stable21
[stable21] Always renew apppasswords on login
2021-03-05 09:07:42 +01:00
Robin Appelman 67d62a820c catch notfound and forbidden exception in smb::getmetadata
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-05 07:51:47 +00:00
Nextcloud bot 163bf97c3e [tx-robot] updated from transifex 2021-03-05 02:22:09 +00:00
Roeland Jago Douma 8ab601cf66 Sharebymail: set expiration on creation
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-04 18:52:30 +00:00
Roeland Jago Douma 5e2a9de3f0 Activity: show if files are hidden or not
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-04 16:04:30 +00:00
Vincent Petry 1575b09d0d Clear multiselect after selection in share panel
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-04 15:02:13 +00:00
Roeland Jago Douma 4df7cf1f54 Merge pull request #25875 from nextcloud/backport/25797/stable21
[stable21] Do not trigger a full filelist reload after creating a new file from a template
2021-03-04 15:48:23 +01:00
Roeland Jago Douma 27e2f066a1 Merge pull request #25922 from nextcloud/backport/25882/stable21
[stable21] Filter out tables that does not belong to Nextcloud
2021-03-04 08:28:41 +01:00
Nextcloud bot 5a39900c24 [tx-robot] updated from transifex 2021-03-04 02:22:22 +00:00
Daniel Kesselberg 549cefed15 Filter tables with other table prefix
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2021-03-03 21:13:25 +00:00
Roeland Jago Douma 3922966f3c Merge pull request #25843 from nextcloud/backport/25757/stable21
[stable21] fix detecting cyclic group memberships
2021-03-03 11:34:25 +01:00
Julius Härtl f1363bcfde Bump bundles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-03 10:01:45 +00:00
Roeland Jago Douma 7c8c8902fa Merge pull request #25899 from nextcloud/backport/25860/stable21
[stable21] do not die after LDAP auth failed with expired acc
2021-03-03 08:34:50 +01:00
Nextcloud bot 2a66d4e5d1 [tx-robot] updated from transifex 2021-03-03 02:21:34 +00:00
Arthur Schiwon 9d937489db do not die after LDAP auth failed with expired acc
- some servers return error code 53

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-03-02 20:40:02 +00:00
Roeland Jago Douma 8aafd0d765 Merge pull request #25871 from nextcloud/backport/25758/stable21
[stable21] Include RichObject for forms
2021-03-02 21:10:34 +01:00
Roeland Jago Douma db5229bd70 Merge pull request #25846 from nextcloud/backport/25799/stable21
[stable21] fix typo in template directory config
2021-03-02 19:19:58 +01:00
Robin Appelman 36749161d7 disable trasbin during the moveFromStorage fallback
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-02 13:27:56 +00:00
Julius Härtl 472f6faf3f At least try to give the full context for the file action
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-02 13:17:46 +00:00
Julius Härtl 060a0101ae Do not trigger a full filelist reload after creating a new file
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-03-02 13:17:46 +00:00
Roeland Jago Douma 65db84d0fc Merge pull request #25872 from nextcloud/backport/25869/stable21
[stable21] Fix namespacing
2021-03-02 14:00:54 +01:00
Anna Larch b5de59e4d7 Fix namespacing
Signed-off-by: Anna Larch <anna@nextcloud.com>
2021-03-02 10:07:48 +00:00
Jonas Rittershofer 41930265e9 Include RichObject for forms
Ref. https://github.com/nextcloud/forms/pull/789

Signed-off-by: Jonas Rittershofer <jotoeri@users.noreply.github.com>
2021-03-02 09:59:10 +00:00
kesselb 097bdf973e Merge pull request #25857 from nextcloud/backport/25856/stable21
[stable21] Card::getOwner should return the actual value
2021-03-02 09:18:28 +01:00
Nextcloud bot 3aca170a3e [tx-robot] updated from transifex 2021-03-02 02:22:30 +00:00
Roeland Jago Douma b96a0cd77d Card::getOwner should return the actual value
I guess we never call this at runtime or it would already ahve done boom
very loudly.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-01 17:27:49 +00:00
Roeland Jago Douma d0f4bac711 Merge pull request #25847 from nextcloud/backport/25715/stable21
[stable21] Bump the ca location
2021-03-01 18:26:45 +01:00
Roeland Jago Douma 9c23684dcd Bump the ca location
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-01 12:35:28 +00:00
Sascha Wiswedel 7897414f1a fix typo in template directory config
Signed-off-by: Sascha Wiswedel <sascha.wiswedel@nextcloud.com>
2021-03-01 12:23:28 +00:00
Roeland Jago Douma 256927d8d4 Merge pull request #25739 from nextcloud/backport/25602/stable21
[stable21] Avoid creating two share links when password is enforced
2021-03-01 12:50:01 +01:00
Arthur Schiwon 81fcc0a618 fix detecting cyclic group memberships
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-03-01 11:10:31 +00:00
Julius Härtl 1f45359c26 Avoid creating two share links when password is enforced
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-03-01 10:08:28 +01:00
Nextcloud bot 05978f40ff [tx-robot] updated from transifex 2021-03-01 02:20:30 +00:00
Nextcloud bot 38f40f821d [tx-robot] updated from transifex 2021-02-28 02:20:04 +00:00
Nextcloud bot a07d4d3ed5 [tx-robot] updated from transifex 2021-02-27 02:22:32 +00:00
Nextcloud bot b5eeca3ab3 [tx-robot] updated from transifex 2021-02-26 02:21:58 +00:00
Christoph Wurst 8ab3a3312c Merge pull request #25794 from nextcloud/backport/25786/stable21
[stable21] Register service aliases und parameters just once
2021-02-25 10:52:03 +01:00
Christoph Wurst 2eb21bdceb Register service aliases und parameters just once
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-25 08:50:06 +00:00
Nextcloud bot d523d9973f [tx-robot] updated from transifex 2021-02-25 02:21:31 +00:00
Nextcloud bot 90fa31c280 [tx-robot] updated from transifex 2021-02-24 02:22:16 +00:00
Joas Schilling bffd87abf4 Merge pull request #25708 from nextcloud/backport/25707/stable21
[stable21] Send emails on password reset to the displayname
2021-02-23 11:58:29 +01:00
Nextcloud bot cb9edff655 [tx-robot] updated from transifex 2021-02-23 02:39:36 +00:00
Nextcloud bot f405de31da [tx-robot] updated from transifex 2021-02-21 02:40:10 +00:00
Nextcloud bot 8bdc933821 [tx-robot] updated from transifex 2021-02-20 02:37:33 +00:00
Roeland Jago Douma 8985b79306 Merge pull request #25600 from nextcloud/version/21/final
21 final
2021-02-19 09:38:35 +01:00
Nextcloud bot 704dfee918 [tx-robot] updated from transifex 2021-02-19 02:21:05 +00:00
Joas Schilling 6ed4c604c7 Send emails on password reset to the displayname
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-18 14:34:38 +00:00
blizzz 49b7b5ba53 Merge pull request #25701 from nextcloud/backport/25697/stable21
[stable21] bump applicable version due to an intermediate release
2021-02-18 11:52:15 +01:00
Roeland Jago Douma 5c3dd4cc74 Merge pull request #25702 from nextcloud/backport/25700/stable21
[stable21] Initialize \OCP\AppFramework\Http\ZipResponse::$resources
2021-02-18 08:28:36 +01:00
Nextcloud bot 7c11b9e974 [tx-robot] updated from transifex 2021-02-18 02:22:03 +00:00
Christoph Wurst cff48176c3 Initialize \OCP\AppFramework\Http\ZipResponse::$resources
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-17 21:28:28 +00:00
Arthur Schiwon 2df924bdce bump applicable version due to an intermediate release
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-17 20:02:49 +00:00
Christoph Wurst 2724bb8c86 Merge pull request #25650 from nextcloud/backport/25594/stable21
[stable21] Use ownerDisplayName for SharingEntry Tooltip
2021-02-17 19:52:32 +01:00
Roeland Jago Douma ae8d2bd28a Merge pull request #25688 from nextcloud/backport/25440/stable21
[stable21] Cache the user backend info for 5mins
2021-02-17 10:43:48 +01:00
Joas Schilling a745d58133 Cache the user backend info for 300s
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-17 07:59:22 +00:00
Nextcloud bot 1db95da5d1 [tx-robot] updated from transifex 2021-02-17 02:21:17 +00:00
Dan VerWeire d3415f4bf9 Use ownerDisplayName for SharingEntry Tooltip
Some NC installations may use a LDAP UUID for the username. If that
is the case, then the tooltip for who a file/folder was shared by may say something
like `Shared with Steve McQueen (smqueen@yada.com) by FKDJ39-38D794JG-4398GJODF9H3G-4534`.

This commit changes the value showed for the owner to the full display name.

Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-02-16 12:05:52 +00:00
Christoph Wurst 9fa902f0e2 Merge pull request #25665 from nextcloud/backport/25661/stable21
[stable21] Updated CRL
2021-02-16 08:28:45 +01:00
Nextcloud bot b4b5d9b811 [tx-robot] updated from transifex 2021-02-16 02:21:45 +00:00
Roeland Jago Douma b32a4ba969 Updated CRL
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-15 21:06:46 +00:00
Roeland Jago Douma 4a2f46e188 Merge pull request #25662 from nextcloud/backport/25655/stable21
[stable21] Fix app icon list in dark mode
2021-02-15 22:05:21 +01:00
Joas Schilling 82ab80e6e8 Fix app icon list in dark mode
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-15 19:37:29 +00:00
Roeland Jago Douma efa1ef5d69 Merge pull request #25624 from nextcloud/backport/25612/stable21
[stable21] Make new result parts optional
2021-02-15 11:44:14 +01:00
Nextcloud bot 0c909dd072 [tx-robot] updated from transifex 2021-02-15 02:20:19 +00:00
Nextcloud bot cca4693fc7 [tx-robot] updated from transifex 2021-02-14 02:20:11 +00:00
Joas Schilling 219cc77719 Make new result parts optional
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-13 13:59:47 +00:00
Nextcloud bot 69daa9e0a8 [tx-robot] updated from transifex 2021-02-13 02:20:37 +00:00
Roeland Jago Douma 132966e149 Merge pull request #25579 from nextcloud/backport/25299/stable21
[stable21] favicon-touch image corners
2021-02-12 16:29:41 +01:00
Roeland Jago Douma 32a49e228b Merge pull request #25591 from nextcloud/backport/25582/stable21
[stable21] Do not send imip email to invalid recipients
2021-02-12 08:44:42 +01:00
Roeland Jago Douma 2163ac59d5 21 final
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-12 08:39:12 +01:00
Nextcloud bot a15066b840 [tx-robot] updated from transifex 2021-02-12 02:20:27 +00:00
Christoph Wurst 3878bcbc11 Do not send imip email to invalid recipients
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-11 19:00:23 +00:00
Roeland Jago Douma 1ddf59efc0 Merge pull request #25586 from nextcloud/backport/25576/stable21
[stable21] Fix WebP availability check
2021-02-11 19:49:10 +01:00
Roeland Jago Douma cb3199f061 Fix WebP availability check
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-11 15:00:33 +00:00
Elsie Hupp 68ce1a9a0a Update manifest.json
Updated dimensions of favicon-touch.png

Signed-off-by: Elsie Hupp <github@elsiehupp.com>
2021-02-11 11:31:04 +00:00
Elsie Hupp 4551fdd2e3 Update favicon-touch.png
removed rounded corners and increased size (exported from SVG)

Signed-off-by: Elsie Hupp <github@elsiehupp.com>
2021-02-11 11:31:04 +00:00
elsiehupp f21fd1097e Remove rounded corners
`apple-touch-icon` expects squared corners; only `apple-touch-icon-precomposed` expects pre-rounded corners. iOS and browsers apply their own corner radii to `apple-touch-icon`.

Signed-off-by: Elsie Hupp <github@elsiehupp.com>
2021-02-11 11:31:03 +00:00
Joas Schilling 5164f43bd3 Fix linter
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-11 09:35:37 +00:00
Joas Schilling 814a8acccc Fix unit tests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-11 09:35:36 +00:00
Joas Schilling cf11f914a7 Make Psalm happy
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-11 09:35:36 +00:00
Joas Schilling 8e43331d47 Improve mention matches
The previous regex didn't correctly match users with . ' or -

Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-11 09:35:36 +00:00
Roeland Jago Douma 1afa136060 Merge pull request #25488 from nextcloud/version/21/rc2
Version/21/rc2
2021-02-11 09:15:51 +01:00
Nextcloud bot a858513eee [tx-robot] updated from transifex 2021-02-11 02:20:46 +00:00
Roeland Jago Douma 0ea266e8bf Always renew apppasswords on login
Else you can end up that you renewed your password (LDAP for example).
But they still don't work because you did not use them before you logged
in.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-10 20:11:43 +00:00
Nextcloud bot c00819572f [tx-robot] updated from transifex 2021-02-10 02:21:09 +00:00
Roeland Jago Douma 7a09536114 Merge pull request #25450 from nextcloud/backport/25393/stable21
[stable21] add repair job for unencoded group share uris
2021-02-09 14:36:12 +01:00
Nextcloud bot 0fd3c5f8cb [tx-robot] updated from transifex 2021-02-09 02:20:54 +00:00
Vincent Petry 9696791460 Merge pull request #25522 from nextcloud/backport/25503/stable21
[stable21] Sharing dropdown now opens below
2021-02-08 08:46:29 +01:00
Nextcloud bot 4257656130 [tx-robot] updated from transifex 2021-02-08 02:20:14 +00:00
Nextcloud bot 6d813b419e [tx-robot] updated from transifex 2021-02-07 02:21:00 +00:00
Vincent Petry a4d2581c65 Sharing dropdown now opens below
Fixes an issue where the dropdown list was not visible on small screens
as it would appear above the field and be hidden behind the container
border.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-02-06 10:03:09 +00:00
Nextcloud bot 7216f876dd [tx-robot] updated from transifex 2021-02-06 02:20:59 +00:00
Roeland Jago Douma be4db2d48d Merge pull request #25496 from nextcloud/backport/25487/stable21
[stable21] Log deprecation notice of GenericEventWrapper just once
2021-02-05 16:17:19 +01:00
Roeland Jago Douma f24ce39733 Merge pull request #25451 from nextcloud/backport/24700/stable21
[stable21] Resolves #24699, Support ES2 and ECS instance providers for S3 buckets
2021-02-05 11:21:20 +01:00
Christoph Wurst a35bebd7d4 Log deprecation notice of GenericEventWrapper just once
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-05 10:14:48 +00:00
Roeland Jago Douma ba63f588e7 Merge pull request #25476 from nextcloud/backport/25443/stable21
[stable21] Make user list pagination more tolerant
2021-02-05 11:04:37 +01:00
Roeland Jago Douma fa6e799e31 Merge pull request #25478 from nextcloud/backport/25441/stable21
[stable21] Fix duplicate tag info view registration
2021-02-05 11:02:24 +01:00
Roeland Jago Douma 83d17b0fb4 21 RC2
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-02-05 08:45:38 +01:00
Nextcloud bot 5ec0132c17 [tx-robot] updated from transifex 2021-02-05 02:21:42 +00:00
Vincent Petry a1e7ac9e33 Make user list pagination more tolerant
In case the server returns more results than expected by the limit, it
is now still interpreted as there being more results to query.

This situation can happen when there are multiple user backends in
place.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-02-04 10:15:53 +01:00
Vincent Petry 04473c0f0e Fix duplicate tag info view registration
Only register the tag info view once as it's stored in a singleton.
This fixes an issue where the tag info view did not get rendered after
swiching between different file views.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-02-04 09:15:53 +00:00
Roeland Jago Douma ee8c35614a Merge pull request #25376 from nextcloud/version/21/rc1
21 RC1
2021-02-04 08:53:23 +01:00
Nextcloud bot 0ee17df264 [tx-robot] updated from transifex 2021-02-04 02:20:13 +00:00
Roeland Jago Douma 2acc4db356 Merge pull request #25457 from nextcloud/update-stable21-target-versions
Update stable21 target versions
2021-02-03 22:47:41 +01:00
Christoph Wurst f57fc89975 Merge pull request #25466 from nextcloud/backport/25464/stable21
[stable21] Parse calendar object for attendees and emit interaction events
2021-02-03 19:53:56 +01:00
Christoph Wurst f4b32f9676 Parse calendar object for attendees and emit interaction events
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-03 18:12:50 +00:00
Christoph Wurst 62f9f4f7fc Merge pull request #25462 from nextcloud/backport/25432/stable21
[stable21] Emit calendar interaction events
2021-02-03 13:55:50 +01:00
Christoph Wurst f8a87f8cdc Emit an interaction event for calendar event user attendees
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-03 11:53:20 +00:00
Christoph Wurst b5fd6950a1 Emit an interaction event for calendar share recipients
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-03 11:53:20 +00:00
Joas Schilling fa3a2820f4 Update stable21 target versions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-02-03 09:26:05 +01:00
Nextcloud bot 207b7d54fb [tx-robot] updated from transifex 2021-02-03 02:19:53 +00:00
James Letendre 74d90d0165 Fix failing tests
Signed-off-by: James Letendre <james.letendre@gmail.com>
2021-02-02 20:52:20 +00:00
James Letendre b65b2bbf55 Add web identity provider to S3 connection chain
Signed-off-by: James Letendre <james.letendre@gmail.com>
2021-02-02 20:52:18 +00:00
Arthur Schiwon a834819abb test: adjust expectation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-02 20:52:17 +00:00
James Letendre 5750d79181 Replace defaultProvider with explicit calls to exclude user home directory lookup
Signed-off-by: James Letendre <james.letendre@gmail.com>
2021-02-02 20:52:16 +00:00
Arthur Schiwon 6ebb368265 show suggestion to clean up possible invalid shares later
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-02 20:52:16 +00:00
Arthur Schiwon cfc00aa2cd take into account that UNIQUE index might not work as expected
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-02 20:52:16 +00:00
Arthur Schiwon e5b59531a3 add repair job for unencoded calendars
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-02-02 20:52:15 +00:00
James Letendre c9a724829a Resolves #24699, Support ES2 and ECS instance providers for S3 buckets
Signed-off-by: James Letendre <james.letendre@gmail.com>
2021-02-02 20:52:13 +00:00
Roeland Jago Douma 43b101caeb 21 RC1
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-01-29 08:56:34 +01:00
14672 changed files with 612210 additions and 1115296 deletions
+15
View File
@@ -0,0 +1,15 @@
codecov:
branch: master
ci:
- drone.nextcloud.com
- !scrutinizer-ci.com
coverage:
precision: 2
round: down
range: "70...100"
status:
project: off
patch: off
comment: off
-91
View File
@@ -1,91 +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 wget curl git \
lsb-release ca-certificates apt-transport-https && \
add-apt-repository ppa:ondrej/php -y && \
apt-get update -y
RUN apt-get install --no-install-recommends -y \
php8.4 \
php8.4-common \
php8.4-gd \
php8.4-zip \
php8.4-curl \
php8.4-xml \
php8.4-xmlrpc \
php8.4-mbstring \
php8.4-sqlite \
php8.4-xdebug \
php8.4-pgsql \
php8.4-intl \
php8.4-imagick \
php8.4-gmp \
php8.4-apcu \
php8.4-bcmath \
php8.4-redis \
php8.4-soap \
php8.4-imap \
php8.4-opcache \
php8.4-cli \
php8.4-dev \
libmagickcore-6.q16-7-extra \
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.4/cli/conf.d/20-xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php/8.4/cli/conf.d/20-xdebug.ini && \
echo "apc.enable_cli=1" >> /etc/php/8.4/cli/conf.d/20-apcu.ini
# Autostart XDebug for apache
RUN { \
echo "xdebug.mode=debug"; \
echo "xdebug.start_with_request=yes"; \
} >> /etc/php/8.4/apache2/conf.d/20-xdebug.ini
# Increase PHP memory limit to 512mb
RUN sed -i 's/memory_limit = .*/memory_limit = 512M/' /etc/php/8.4/apache2/php.ini
# Docker CLI only (for controlling host Docker via socket)
RUN install -m 0755 -d /etc/apt/keyrings && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
chmod a+r /etc/apt/keyrings/docker.asc && \
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update -y && \
apt-get install -y docker-ce-cli && \
ln -s /var/run/docker-host.sock /var/run/docker.sock
# Dedicated DevContainer user runs Apache
ENV APACHE_RUN_USER=devcontainer
ENV APACHE_RUN_GROUP=devcontainer
# Delete any existing user/group with UID/GID 1000 first
RUN (getent passwd 1000 && userdel -r $(getent passwd 1000 | cut -d: -f1)) || true && \
(getent group 1000 && groupdel $(getent group 1000 | cut -d: -f1)) || true && \
groupadd -g 1000 ${APACHE_RUN_GROUP} && \
useradd -u 1000 -g 1000 -ms /bin/bash ${APACHE_RUN_USER} && \
adduser ${APACHE_RUN_USER} sudo && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
sed -ri "s/^export APACHE_RUN_USER=.*$/export APACHE_RUN_USER=${APACHE_RUN_USER}/" "/etc/apache2/envvars" && \
sed -ri "s/^export APACHE_RUN_GROUP=.*$/export APACHE_RUN_GROUP=${APACHE_RUN_GROUP}/" "/etc/apache2/envvars"
USER devcontainer
# NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 22'
WORKDIR /var/www/html
-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
-37
View File
@@ -1,37 +0,0 @@
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
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
-13
View File
@@ -1,13 +0,0 @@
#!/bin/bash
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# Set git safe.directory
git config --global --add safe.directory /var/www/html
git config --global --add safe.directory /var/www/html/3rdparty
# Ensure devcontainer user has access to docker socket
if [ -S /var/run/docker.sock ]; then
sudo chmod 666 /var/run/docker.sock
fi
-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
+2284
View File
File diff suppressed because it is too large Load Diff
+4 -15
View File
@@ -1,8 +1,5 @@
# https://editorconfig.org
# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
root = true
[*]
@@ -13,6 +10,10 @@ indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true
[*.feature]
indent_size = 2
indent_style = space
[*.yml]
indent_size = 2
indent_style = space
@@ -22,15 +23,3 @@ trim_trailing_whitespace = false
[*.svg]
insert_final_newline = false
[package*.json]
indent_size = 2
indent_style = space
[build/psalm-baseline.xml]
indent_size = 2
indent_style = space
[config/*config.php]
indent_size = 2
indent_style = space
-3
View File
@@ -1,3 +0,0 @@
watch_file lib/versioncheck.php
watch_file package.json
use flake
+17
View File
@@ -0,0 +1,17 @@
module.exports = {
globals: {
__webpack_nonce__: true,
__webpack_public_path__: true,
_: true,
$: true,
moment: true,
escapeHTML: true,
oc_userconfig: true,
dayNames: true,
firstDay: true
},
extends: ['@nextcloud'],
rules: {
'no-tabs': 'warn',
}
}
-25
View File
@@ -1,25 +0,0 @@
# .git-blame-ignore-revs
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
# Format control structures
caff1023ea72bb2ea94130e18a2a6e2ccf819e5f
# Update to coding-standard 1.1.1
aa5f037af71c915424c6dcfd5ad2dc82797dc0d6
# Update to coding-standard 1.2.3
af6de04e9e141466dc229e444ff3f146f4a34765
0bd284cb81b6866338aaaa67aa1d81ef9bfbb2ab
8af7ecb2576071f170ecbb0aa2311b26581e40e2
# Update to coding-standard 1.3.1
9836e9b16484582d309c8437ab46d82e34956941
# Automated refactorings
49dd79eabb2b8902559a7a4e8f8fcad54f46b604
# @nextcloud/vue import paths
b06f5ba4c47450f355a8903c1a93ac68e8c6cfc2
# Update to coding-standard 1.4.0
5981b7eb512aa411f51cad541d01c5c6e93476f0
# Migrate `and` `or` operators to logical `&&` `||` operators
660f3f6fd1ae5539b8f74bfa48859d1b9f1e6abf
# Migrate to ESLint v9 enforced code style
91f3b6b4ee60e0f8bb6e21f92d5bc52e4cebe657
+32 -6
View File
@@ -1,6 +1,32 @@
# 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
/core/js/dist/*.js binary
/core/js/dist/*.js.map binary
/apps/accessibility/js/*.js binary
/apps/accessibility/js/*.js.map binary
/apps/comments/js/*.js binary
/apps/comments/js/*.js.map binary
/apps/dashboard/js/*.js binary
/apps/dashboard/js/*.js.map binary
/apps/files/js/dist/*.js binary
/apps/files/js/dist/*.js.map binary
/apps/files_sharing/js/dist/*.js binary
/apps/files_sharing/js/dist/*.js.map binary
/apps/files_trashbin/js/*.js binary
/apps/files_trashbin/js/*.js.map binary
/apps/files_versions/js/*.js binary
/apps/files_versions/js/*.js.map binary
/apps/oauth2/js/*.js binary
/apps/oauth2/js/*.js.map binary
/apps/settings/js/vue* binary
/apps/systemtags/js/systemtags.js binary
/apps/systemtags/js/systemtags.js.map binary
/apps/twofactor_backupcodes/js/*.js binary
/apps/twofactor_backupcodes/js/*.js.map binary
/apps/updatenotification/js/updatenotification.js binary
/apps/updatenotification/js/updatenotification.js.map binary
/apps/user_status/js/*.js binary
/apps/user_status/js/*.js.map binary
/apps/weather_status/js/*.js binary
/apps/weather_status/js/*.js.map binary
/apps/workflowengine/js/*.js binary
/apps/workflowengine/js/*.js.map binary
+2 -111
View File
@@ -1,111 +1,2 @@
# Fallback owners for code review - ensure all PRs have someone assigned for review.
# (the last match will used so this is only used if there is no more specific code owner below)
# Backend
# is the first and gets everything to make things easier from matching syntax
* @nextcloud/server-backend
# Frontend
# this will override the backend code owners if needed
/__mocks__ @nextcloud/server-frontend
/__tests__ @nextcloud/server-frontend
/dist @nextcloud/server-frontend
/cypress @nextcloud/server-frontend
**/css @nextcloud/server-frontend
**/js @nextcloud/server-frontend
**/src @nextcloud/server-frontend
*.js @nextcloud/server-frontend
*.cjs @nextcloud/server-frontend
*.mjs @nextcloud/server-frontend
*.ts @nextcloud/server-frontend
# dependency management
package.json @nextcloud/server-dependabot @nextcloud/server-frontend
package-lock.json @nextcloud/server-dependabot
# App maintainers
/apps/admin_audit/appinfo/info.xml @luka-nextcloud @blizzz
/apps/cloud_federation_api/appinfo/info.xml @nfebe @mejo-
/apps/comments/appinfo/info.xml @edward-ly @sorbaugh
/apps/contactsinteraction/appinfo/info.xml @kesselb @SebastianKrupinski
/apps/contactsinteraction/lib @kesselb @SebastianKrupinski
/apps/contactsinteraction/tests @kesselb @SebastianKrupinski
/apps/dashboard/appinfo/info.xml @julien-nc @juliusknorr
/apps/dav/lib/CalDAV @ChristophWurst @SebastianKrupinski @tcitworld
/apps/dav/lib/CardDAV @hamza221 @SebastianKrupinski
/apps/dav/tests/unit/CalDAV @ChristophWurst @SebastianKrupinski @tcitworld
/apps/dav/tests/unit/CardDAV @hamza221 @SebastianKrupinski
/apps/encryption/appinfo/info.xml @come-nc @icewind1991
/apps/federatedfilesharing/appinfo/info.xml @icewind1991 @danxuliu
/apps/federation/appinfo/info.xml @nfebe @sorbaugh
/apps/files/appinfo/info.xml @skjnldsv @ArtificialOwl @come-nc @artonge @icewind1991 @szaimen @susnux @nfebe
/apps/files_external/appinfo/info.xml @icewind1991 @artonge
/apps/files_reminders/appinfo/info.xml @skjnldsv @sorbaugh
/apps/files_sharing/appinfo/info.xml @skjnldsv @come-nc
/apps/files_trashbin/appinfo/info.xml @icewind1991 @sorbaugh
/apps/files_versions/appinfo/info.xml @artonge @icewind1991
/apps/oauth2/appinfo/info.xml @julien-nc @ChristophWurst
/apps/provisioning_api/appinfo/info.xml @provokateurin @nickvergessen
/apps/settings/appinfo/info.xml @JuliaKirschenheuter @sorbaugh
/apps/sharebymail/appinfo/info.xml @Altahrim @skjnldsv
/apps/systemtags/appinfo/info.xml @Antreesy @marcelklehr
/apps/theming/appinfo/info.xml @skjnldsv @juliusknorr
/apps/twofactor_backupcodes/appinfo/info.xml @miaulalala @ChristophWurst
/apps/updatenotification/appinfo/info.xml @JuliaKirschenheuter @sorbaugh
/apps/user_ldap/appinfo/info.xml @come-nc @blizzz
/apps/user_status/appinfo/info.xml @Antreesy @nickvergessen
/apps/weather_status/appinfo/info.xml @julien-nc @juliusknorr
/apps/webhook_listeners/appinfo/info.xml @come-nc @julien-nc
/apps/workflowengine/appinfo/info.xml @blizzz @juliusknorr
# Files frontend expertise
/apps/files/src* @skjnldsv @nextcloud/server-frontend
/apps/files_external/src* @skjnldsv @nextcloud/server-frontend
/apps/files_reminders/src* @skjnldsv @nextcloud/server-frontend
/apps/files_sharing/src/actions* @skjnldsv @nextcloud/server-frontend
/apps/files_trashbin/src* @skjnldsv @nextcloud/server-frontend
# Security team
/build/psalm-baseline-security.xml @nickvergessen @nextcloud/server-backend
/resources/codesigning @mgallien @miaulalala @nickvergessen
/resources/config/ca-bundle.crt @miaulalala @nickvergessen
# Two-Factor Authentication
# https://github.com/nextcloud/wg-two-factor-authentication#members
**/TwoFactorAuth @ChristophWurst @miaulalala @nickvergessen
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen
# 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 @ChristophWurst @SebastianKrupinski @tcitworld
/build/integration/dav_features/carddav.feature @hamza221 @SebastianKrupinski
/lib/private/Calendar @ChristophWurst @SebastianKrupinski @tcitworld
/lib/private/Contacts @hamza221 @SebastianKrupinski
/lib/public/Calendar @ChristophWurst @SebastianKrupinski @tcitworld
/lib/public/Contacts @hamza221 @SebastianKrupinski
# Desktop client teamn
/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php @nextcloud/desktop
# Personal interest
*/Activity/* @nickvergessen @nextcloud/server-backend
/apps/workflowengine/lib @nickvergessen @blizzz
*/Activity/* @nickvergessen
*/Notifications/* @nickvergessen
+6 -17
View File
@@ -1,10 +1,6 @@
<!--
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
## Submitting issues
If you have questions about how to install or use Nextcloud, please direct these to our [forum][forum]. We are also available on [IRC][irc] (unofficial).
If you have questions about how to install or use Nextcloud, please direct these to our [forum][forum]. We are also available on [IRC][irc].
### Short version
@@ -25,7 +21,7 @@ Help us to maximize the effort we can spend fixing issues and adding new feature
[templates]: ./ISSUE_TEMPLATE
[forum]: https://help.nextcloud.com/
[irc]: https://web.libera.chat/#nextcloud
[irc]: https://webchat.freenode.net/?channels=nextcloud
## Contributing to Source Code
@@ -33,13 +29,6 @@ Thanks for wanting to contribute source code to Nextcloud. That's great!
Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the Nextcloud code with PHPUnit.
### Conventional Commits
Please use [Conventional Commits](https://www.conventionalcommits.org) for your commit messages. This helps maintain clarity and consistency across the project, making it easier to understand changes and automate versioning.
```
feat(files_sharing): allow sharing with contacts
```
### Tests
In order to constantly increase the quality of our software we can no longer accept pull request which submit un-tested code.
@@ -48,16 +37,16 @@ In some areas unit testing is hard (aka almost impossible) as of today - in thes
### Sign your work
We use the Developer Certificate of Origin (DCO) as an additional safeguard
We use the Developer Certificate of Origin (DCO) as a additional safeguard
for the Nextcloud project. This is a well established and widely used
mechanism to assure contributors have confirmed their right to license
their contribution under the project's license.
Please read [contribute/developer-certificate-of-origin][dcofile].
If you can certify it, then just add a line to every git commit message:
```
Signed-off-by: Random J Developer <random@developer.example.org>
```
````
Signed-off-by: Random J Developer <random@developer.example.org>
````
Use your real name (sorry, no pseudonyms or anonymous contributions).
If you set your `user.name` and `user.email` git configs, you can sign your
-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:
- "32"
- "33"
- "34 (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.5"
- "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).
+166
View File
@@ -0,0 +1,166 @@
---
name: 🐛 Bug report
about: Help us improving by reporting a bug
labels: bug, 0. Needs triage
---
<!--
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/)
* You can also use the Issue Template app to prefill most of the required information: https://apps.nextcloud.com/apps/issuetemplate
-->
<!--- 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 affected by the same issue.
* 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.
### Steps to reproduce
1.
2.
3.
### Expected behaviour
Tell us what should happen
### Actual behaviour
Tell us what happens instead
### Server configuration
**Operating system:**
**Web server:**
**Database:**
**PHP version:**
**Nextcloud version:** (see Nextcloud admin page)
**Updated from an older Nextcloud/ownCloud or fresh install:**
**Where did you install Nextcloud from:**
**Signing status:**
<details>
<summary>Signing status</summary>
```
Login as admin user into your Nextcloud and access
http://example.com/index.php/settings/integrity/failed
paste the results here.
```
</details>
**List of activated apps:**
<details>
<summary>App list</summary>
```
If you have access to your command line run e.g.:
sudo -u www-data php occ app:list
from within your Nextcloud installation folder
```
</details>
**Nextcloud configuration:**
<details>
<summary>Config report</summary>
```
If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your Nextcloud installation folder
or
Insert your config.php content here.
Make sure to remove all sensitive content such as passwords. (e.g. database password, passwordsalt, secret, smtp password, …)
```
</details>
**Are you using external storage, if yes which one:** local/smb/sftp/...
**Are you using encryption:** yes/no
**Are you using an external user-backend, if yes which one:** LDAP/ActiveDirectory/Webdav/...
#### LDAP configuration (delete this part if not used)
<details>
<summary>LDAP config</summary>
```
With access to your command line run e.g.:
sudo -u www-data php occ ldap:show-config
from within your Nextcloud installation folder
Without access to your command line download the data/owncloud.db to your local
computer or access your SQL server remotely and run the select query:
SELECT * FROM `oc_appconfig` WHERE `appid` = 'user_ldap';
Eventually replace sensitive data as the name/IP-address of your LDAP server or groups.
```
</details>
### Client configuration
**Browser:**
**Operating system:**
### Logs
<!--- Reports without logs might be closed as unqualified reports! -->
#### Web server error log
<details>
<summary>Web server error log</summary>
```
Insert your webserver log here
```
</details>
#### Nextcloud log (data/nextcloud.log)
<details>
<summary>Nextcloud log</summary>
```
Insert your Nextcloud log here
```
</details>
#### Browser log
<details>
<summary>Browser log</summary>
```
Insert your browser log here, this could for example include:
a) The javascript console log
b) The network log
c) ...
```
</details>
+28 -25
View File
@@ -2,44 +2,47 @@
name: 🚀 Feature request
about: Suggest an idea for this project
labels: enhancement, 0. Needs triage
type: "Enhancement"
---
<!--
Have a security concern? Please report potential security issues via our HackerOne program (https://hackerone.com/nextcloud) instead of filing a public GitHub issue. See our security policy: https://nextcloud.com/security/
Thanks for reporting issues back to Nextcloud!
Note: This is the **issue tracker of Nextcloud**, please do NOT use this to get answers to your questions or get help for fixing your installation. This is a place to report bugs to developers, after your server has been debugged. You can find help debugging your system on our home user forums: https://help.nextcloud.com or, if you use Nextcloud in a large organization, ask our engineers on https://portal.nextcloud.com. See also https://nextcloud.com/support for support options.
Nextcloud is an open source project backed by Nextcloud GmbH. Most of our volunteers are home users and thus primarily care about issues that affect home users. Our paid engineers prioritize issues of our customers. If you are neither a home user nor a customer, consider paying somebody to fix your issue, do it yourself or become a customer.
Guidelines for submitting issues:
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to https://github.com/nextcloud and type any word in the top search/command bar. You probably see something like "We couldnt find any repositories matching ..." then click "Issues" in the left navigation.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on search syntax within github: https://help.github.com/articles/searching-issues
* This repository https://github.com/nextcloud/server/issues is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* SECURITY: Report any potential security bug to us via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our GitHub Organization (https://github.com/nextcloud/)
-->
<!--
Thanks for taking the time to suggest improvements to Nextcloud! Use this form to request features or propose enhancements.
Guidelines:
<!--- Please keep this note for other contributors -->
* Please search existing issues first; your idea may already have been discussed or implemented.
* This repository (https://github.com/nextcloud/server/issues) is only for issues within the Nextcloud Server code. This includes shipped apps such as Files, DAV, Encryption, External Storage, Sharing, Deleted Files, Versions, Federation, and LDAP.
* Issues for other components should be reported in their respective repositories in the Nextcloud GitHub organization: https://github.com/nextcloud/
* Nextcloud is an open source project backed by Nextcloud GmbH. Many contributors are volunteers and primarily focus on issues affecting home users. Paid engineers prioritize customer-reported issues and critical defects.
* This is the development issue tracker. Please do NOT use it for support questions or help diagnosing your installation.
- For community/user help: https://help.nextcloud.com
- For professional / large deployment support options: https://nextcloud.com/support
-->
### How to use GitHub
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are interested into the same feature.
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
* Subscribe to receive notifications on status change and new comments.
<!-- Please keep the note below for other contributors -->
> [!TIP]
> ### Help move this idea forward
> * Use the 👍 reaction to show support for this feature.
> * Avoid commenting unless you have relevant information to add; unnecessary comments create noise for subscribers.
> * Subscribe to receive notifications about status changes and new comments.
---
<!-- DO NOT EDIT ABOVE THIS LINE -->
**Is your feature request related to a problem? Please describe.**
<!-- Provide a clear and concise description of the problem. For example: “I'm always frustrated when …” -->
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
<!-- Provide a clear and concise description of what you want to happen. -->
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
<!-- Provide a clear and concise description of any alternative solutions or features you've considered. -->
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
<!-- Add any other context or screenshots related to the feature request here. -->
Add any other context or screenshots about the feature request here.
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
+4 -8
View File
@@ -1,12 +1,8 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
blank_issues_enabled: false
contact_links:
- name: 🚨 Report a security or privacy issue
url: https://hackerone.com/nextcloud
about: Report security and privacy related issues privately to the Nextcloud team, so we can coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
- name: ❓ Community Support and Help
- name: ❓ Question
url: https://help.nextcloud.com/
about: Configuration, webserver/proxy or performance issues and other questions
about: I have a question
- 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
about: If you are a customer and are using Nextcloud Enterprise, please submit your issue directly in the Nextcloud Portal so it can be resolved 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
-2
View File
@@ -1,5 +1,3 @@
# SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
firstPRMergeComment: >
Thanks for your first pull request and welcome to the community!
Feel free to keep them coming! If you are looking for issues to tackle then have a look at this selection: https://github.com/nextcloud/server/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
-167
View File
@@ -1,167 +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:
- "/"
- "/vendor-bin/behat"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
- "/vendor-bin/rector"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
# Main master npm frontend dependencies
- package-ecosystem: npm
directories:
- "/"
- "/build/frontend"
- "/build/frontend-legacy"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
groups:
vite:
patterns:
- "vite"
- "@nextcloud/vite-config"
vitest:
patterns:
- "vitest"
- "@vitest/*"
# Latest stable release
# Composer dependencies for linting and testing
- package-ecosystem: composer
target-branch: stable33
directories:
- "/"
- "/vendor-bin/behat"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
- "/vendor-bin/rector"
schedule:
interval: weekly
day: saturday
time: "03:30"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# frontend dependencies
- package-ecosystem: npm
target-branch: stable33
directories:
- "/"
- "/build/frontend"
- "/build/frontend-legacy"
schedule:
interval: weekly
day: saturday
time: "03:30"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
groups:
vite:
patterns:
- "vite"
- "@nextcloud/vite-config"
vitest:
patterns:
- "vitest"
- "@vitest/*"
ignore:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
# Older stable releases
# Composer dependencies for linting and testing
- package-ecosystem: composer
target-branch: stable32
directories:
- "/"
- "/vendor-bin/behat"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:30"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# frontend dependencies
- package-ecosystem: npm
target-branch: stable32
directory: "/"
schedule:
interval: weekly
day: saturday
time: "04:30"
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"]
-29
View File
@@ -1,29 +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)
- [ ] [Labels added](https://github.com/nextcloud/server/labels) where applicable (ex: bug/enhancement, `3. to review`, feature component)
- [ ] [Milestone added](https://github.com/nextcloud/server/milestones) for target branch/version (ex: 32.x for `stable32`)
## AI (if applicable)
- [ ] The content of this PR was partly or fully generated using AI
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
SPDX-License-Identifier: AGPL-3.0-or-later
+33
View File
@@ -0,0 +1,33 @@
# We wait 1 months to check
daysUntilStale: 30
# If no answer after two weeks, we close
daysUntilClose: 14
# Only issues that requires info from the op
onlyLabels:
- "needs info"
# Only if issues that are not triaged
exemptLabels:
- "1. to develop"
- "2. developing"
- "3. to review"
- "4. to release"
- security
# Label to use when marking as stale
staleLabel: stale
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
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.
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Limit to only `issues` or `pulls`
only: issues
-128
View File
@@ -1,128 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Code checkers
on:
pull_request:
permissions:
contents: read
concurrency:
group: autocheckers-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- '**.php'
- build/autoloaderchecker.sh
autoloader:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.2']
name: PHP checkers
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check auto loaders
run: bash ./build/autoloaderchecker.sh
autocheckers:
runs-on: ubuntu-latest-low
strategy:
matrix:
php-versions: ['8.2']
name: Translation and Files checkers
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check translations are JSON decodeable
run: php ./build/translation-checker.php
- name: Check translations do not contain triple dot but ellipsis
run: php ./build/triple-dot-checker.php
- name: Check .htaccess does not contain invalid changes
run: php ./build/htaccess-checker.php
- name: Check that all and only expected files are included
run: php ./build/files-checker.php
- name: Check that all shipped apps are linted by psalm
run: sh ./build/psalm-checker.sh
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, autoloader, autocheckers]
if: always()
name: autocheckers-summary
steps:
- name: Summary status
run: if ${{ needs.autocheckers.result != 'success' || (needs.changes.outputs.src != 'false' && needs.autoloader.result != 'success') }}; then exit 1; fi
-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@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const regex = /^stable(\d+)$/
const baseRef = context.payload.pull_request.base.ref
const match = baseRef.match(regex)
if (match) {
console.log('Setting server_major to ' + match[1]);
core.exportVariable('server_major', match[1]);
console.log('Setting current_day to ' + (new Date()).toISOString().substr(0, 10));
core.exportVariable('current_day', (new Date()).toISOString().substr(0, 10));
}
- name: 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-99" | . >= "${{ env.current_day }}"' \
| 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@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping freeze check');
}
}
- name: Download version.php from ${{ env.server_ref }}
if: ${{ env.server_ref != '' }}
run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ env.server_ref }}/version.php' --output version.php
- name: Run check
if: ${{ env.server_ref != '' }}
run: cat version.php | grep 'OC_VersionString' | grep -i -v 'RC'
@@ -1,79 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block merging with outdated 3rdparty/
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-outdated-3rdparty-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-outdated-3rdparty:
name: Block merging with outdated 3rdparty/
runs-on: ubuntu-latest-low
steps:
- name: Check requirement
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '3rdparty'
- 'version.php'
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: 3rdparty commit hash on current branch
id: actual
run: |
echo "commit=$(git submodule status | grep ' 3rdparty' | egrep -o '[a-f0-9]{40}')" >> "$GITHUB_OUTPUT"
- name: Register server reference to fallback to master branch
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping outdated 3rdparty check');
}
}
- name: Last 3rdparty commit on target branch
if: ${{ env.server_ref != '' }}
id: target
run: |
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty refs/heads/${{ env.server_ref }} | awk '{ print $1}')" >> "$GITHUB_OUTPUT"
- name: Compare if 3rdparty commits are different
if: ${{ env.server_ref != '' }}
run: |
echo '3rdparty/ seems to not point to the last commit of the dedicated branch:'
echo 'Branch has: ${{ steps.actual.outputs.commit }}'
echo '${{ env.server_ref }} has: ${{ steps.target.outputs.commit }}'
- name: Fail if 3rdparty commits are different
if: ${{ env.server_ref != '' && steps.changes.outputs.src != 'false' && steps.actual.outputs.commit != steps.target.outputs.commit }}
run: |
exit 1
@@ -1,36 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block unconventional commits
on:
pull_request:
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
concurrency:
group: block-unconventional-commits-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
block-unconventional-commits:
name: Block unconventional commits
runs-on: ubuntu-latest-low
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: webiny/action-conventional-commits@faccb24fc2550dd15c0390d944379d2d8ed9690e # v1.3.1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-45
View File
@@ -1,45 +0,0 @@
# SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
name: Auto-label bug reports
on:
issues:
types: [opened]
jobs:
add-version-label:
if: contains(github.event.issue.title, '[Bug]')
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Extract version number and apply label
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: |
const body = context.payload.issue.body || '';
const normalizedBody = body.replace(/\r\n?/g, '\n');
let label = '';
// Extract Nextcloud Server version number from a block like:
// ### Nextcloud Server version
// 32
const versionMatch = normalizedBody.match(/### Nextcloud Server version\s*\n+([0-9]{1,3})\b/);
let nextcloudVersion = null;
if (versionMatch) {
nextcloudVersion = parseInt(versionMatch[1], 10);
label = nextcloudVersion + '-feedback';
}
if (label) {
try {
await github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: [label]
});
} catch (error) {
core.setFailed(`Failed to add label "${label}": ${error.message || error}`);
}
}
-49
View File
@@ -1,49 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
name: "CodeQL Advanced"
on:
push:
branches: [ "master", "stable*" ]
pull_request:
branches: [ "master", "stable*" ]
schedule:
- cron: '28 18 * * 1'
jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
strategy:
fail-fast: false
matrix:
include:
- language: actions
build-mode: none
- language: javascript-typescript
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4.32.4
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql-config.yml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4.32.4
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@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
id: get-repository
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const pull = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number
});
const repositoryName = pull.data.head?.repo?.full_name
console.log(repositoryName)
return repositoryName
- name: Disabled on forks
if: ${{ fromJSON(steps.get-repository.outputs.result) != github.repository }}
run: |
echo 'Can not execute /compile on forks'
exit 1
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v2
with:
require: write
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.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@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
process:
runs-on: ubuntu-latest
needs: init
steps:
- name: Restore cached git repository
uses: buildjet/cache@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
with:
path: .git
key: git-repo
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
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: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.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@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
-100
View File
@@ -1,100 +0,0 @@
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update 3rdparty command
on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/update-3rdparty`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/update-3rdparty')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '+1'
- name: Disabled on forks
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
run: |
echo 'Can not execute /update-3rdparty on forks'
exit 1
- name: Init branch
uses: xt0rted/pull-request-comment-branch@e8b8daa837e8ea7331c0003c9c316a64c6d8b0b1 # v1
id: comment-branch
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Register server reference to fallback to master branch
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const baseRef = context.payload.pull_request.base.ref
if (baseRef === 'main' || baseRef === 'master') {
core.exportVariable('server_ref', 'master');
console.log('Setting server_ref to master');
} else {
const regex = /^stable(\d+)$/
const match = baseRef.match(regex)
if (match) {
core.exportVariable('server_ref', match[0]);
console.log('Setting server_ref to ' + match[0]);
} else {
console.log('Not based on master/main/stable*, so skipping pull 3rdparty command');
}
}
- name: Setup git
run: |
git config --local user.email 'nextcloud-command@users.noreply.github.com'
git config --local user.name 'nextcloud-command'
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
if: ${{ env.server_ref == '' }}
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
- name: Pull 3rdparty
if: ${{ env.server_ref != '' }}
run: git submodule foreach 'if [ "$sm_path" == "3rdparty" ]; then git pull origin '"'"'${{ env.server_ref }}'"'"'; fi'
- name: Commit and push changes
if: ${{ env.server_ref != '' }}
run: |
git add 3rdparty
git commit -s -m 'Update submodule 3rdparty to latest ${{ env.server_ref }}'
git push
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
-237
View File
@@ -1,237 +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.base_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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
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: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install node dependencies & build app
run: |
npm ci
TESTING=true npm run build --if-present
- 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: ['setup', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# Hack as strategy.job-total includes the "setup" and GitHub does not allow math expressions
# Always align this number with the total of e2e runners (max. index + 1)
total-containers: [10]
services:
mysql:
# Only start mysql if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-mysql-8.4:latest' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '3306/tcp'
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
mariadb:
# Only start mariadb if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'mariadb:11.4' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '3306/tcp'
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mariadb-admin ping" --health-interval 5s --health-timeout 2s --health-retries 5
postgres:
# Only start postgres if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/nextcloud/continuous-integration-postgres-17:latest' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '5432/tcp'
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --mount type=tmpfs,destination=/var/lib/postgresql/data --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
oracle:
# Only start oracle if we are running the setup tests
image: ${{matrix.containers == 'setup' && 'ghcr.io/gvenzl/oracle-free:23' || ''}} # zizmor: ignore[unpinned-images]
ports:
- '1521'
env:
ORACLE_PASSWORD: oracle
options: --health-cmd healthcheck.sh --health-interval 20s --health-timeout 10s --health-retries 10
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@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.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@bc22e01685c56e89e7813fd8e26f33dc47f87e15 # v7.1.5
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 }}
SPLIT_RANDOM_SEED: ${{ github.run_id }}
SETUP_TESTING: ${{ matrix.containers == 'setup' && 'true' || '' }}
- name: Upload snapshots and videos
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
if: always()
with:
name: snapshots_${{ matrix.containers }}
path: |
cypress/snapshots
cypress/videos
- name: Show logs
if: failure() && matrix.containers != 'component'
run: |
for id in $(docker ps -aq); do
docker container inspect "$id" --format '=== Logs for container {{.Name}} ==='
docker logs "$id" >> nextcloud.log
done
echo '=== Nextcloud server logs ==='
docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} cat data/nextcloud.log
- name: Create data dir archive
if: failure() && matrix.containers != 'component'
run: docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} tar -cvjf - data > data.tar
- name: Upload data archive
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
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
+12 -51
View File
@@ -1,58 +1,19 @@
# 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: Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Auto approve Dependabot PRs
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
name: Dependabot
on: pull_request
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
# for alexwilson/enable-github-automerge-action to approve PRs
contents: write
auto-merge:
runs-on: ubuntu-latest
steps:
- name: Disabled on forks
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
run: |
echo 'Can not approve PRs from forks'
exit 1
- uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
id: branchname
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# GitHub actions bot approve
- uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
# Default github action approve
- uses: hmarr/auto-approve-action@v2.0.0
if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Enable GitHub auto merge
- name: Auto merge
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@v1
if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
target: patch
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
-142
View File
@@ -1,142 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external FTP
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-ftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-ftp:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.4']
ftpd: ['proftpd', 'vsftpd', 'pure-ftpd']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.ftpd }}
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up ftpd
run: |
sudo mkdir /tmp/ftp
sudo chmod -R 0777 /tmp/ftp
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then echo '$6$Q7V2n3q2GRVv5YeQ$/AhLu07H76Asojy7bxGXMY1caKLAbp5Vt82LOZYMkD/8uDzyMAEXwk0c1Bdz1DkBsk2Vh/9SF130mOPavRGMo.' > /tmp/secret.txt; fi
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then echo 'FTP_ROOT=/home/test' > $GITHUB_ENV; fi
if [[ "${{ matrix.ftpd }}" == 'proftpd' ]]; then docker run --name ftp -d --net host -e PASV_ADDRESS=127.0.0.1 -e FTPUSER_NAME=test -v /tmp/secret.txt:/run/secrets/ftp-user-password-secret -v /tmp/ftp:/home/test instantlinux/proftpd; fi
if [[ "${{ matrix.ftpd }}" == 'vsftpd' ]]; then docker run --name ftp -d --net host -e FTP_USER=test -e FTP_PASS=test -e PASV_ADDRESS=127.0.0.1 -v /tmp/ftp:/home/vsftpd/test fauria/vsftpd; fi
if [[ "${{ matrix.ftpd }}" == 'pure-ftpd' ]]; then docker run --name ftp -d --net host -e "PUBLICHOST=localhost" -e FTP_USER_NAME=test -e FTP_USER_PASS=test -e FTP_USER_HOME=/home/test -v /tmp/ftp:/home/test -v /tmp/ftp:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true,'host' => 'localhost','user' => 'test','password' => 'test', 'root' => '${{ env.FTP_ROOT }}'];" > apps/files_external/tests/config.ftp.php
- name: smoketest ftp
run: |
php -r 'var_dump(file_put_contents("ftp://test:test@localhost${{ env.FTP_ROOT }}/ftp.txt", "asd"));'
php -r 'var_dump(file_get_contents("ftp://test:test@localhost${{ env.FTP_ROOT }}/ftp.txt"));'
php -r 'var_dump(mkdir("ftp://test:test@localhost${{ env.FTP_ROOT }}/asdads"));'
ls -l /tmp/ftp
[ -f /tmp/ftp/ftp.txt ]
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/FtpTest.php \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-ftp
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-files-external-ftp
- name: ftpd logs
if: always()
run: |
docker logs ftp
ftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-ftp]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-ftp.result != 'success' }}; then exit 1; fi
-225
View File
@@ -1,225 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external S3
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-s3-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.4']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3-minio
services:
minio:
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- '9000:9000'
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'minio' => true, 'secret' => 'actually-not-secret', 'passwordsalt' => 'actually-not-secret', 'hostname' => 'localhost','key' => '$OBJECT_STORE_KEY','secret' => '$OBJECT_STORE_SECRET', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: Wait for S3
run: |
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
run: |
composer run test:files_external -- \
--group S3 \
--log-junit junit.xml \
apps/files_external/tests/Storage \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-files-external-s3
- name: Nextcloud logs
if: always()
run: |
cat data/nextcloud.log
- name: S3 logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
files-external-s3-localstack:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
matrix:
php-versions: ['8.2', '8.4']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3-localstack
services:
localstack:
env:
SERVICES: s3
DEBUG: 1
image: localstack/localstack@sha256:9d4253786e0effe974d77fe3c390358391a56090a4fff83b4600d8a64404d95d # v4.5.0
ports:
- "4566:4566"
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'localstack' => true, 'hostname' => 'localhost','key' => 'ignored','secret' => 'ignored', 'bucket' => 'bucket', 'port' => 4566, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/files_external/tests/config.amazons3.php
- name: PHPUnit
run: |
composer run test:files_external -- \
--group S3 \
--log-junit junit.xml \
apps/files_external/tests/Storage \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-files-external-s3
- name: S3 logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-external-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-s3-minio, files-external-s3-localstack]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && (needs.files-external-s3-minio.result != 'success' || needs.files-external-s3-localstack.result != 'success') }}; then exit 1; fi
-132
View File
@@ -1,132 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external sFTP
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-sftp-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-sftp:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.4']
sftpd: ['openssh']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-${{ matrix.sftpd }}
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up sftpd
run: |
sudo mkdir /tmp/sftp
sudo chown -R 0777 /tmp/sftp
if [[ '${{ matrix.sftpd }}' == 'openssh' ]]; then docker run -p 2222:22 --name sftp -d -v /tmp/sftp:/home/test atmoz/sftp 'test:test:::data'; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'host' => 'localhost:2222','user' => 'test','password' => 'test', 'root' => 'data'];" > apps/files_external/tests/config.sftp.php
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/SftpTest.php \
apps/files_external/tests/Storage/SFTP_KeyTest.php \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-sftp
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-files-external-sftp
- name: sftpd logs
if: always()
run: |
ls -l /tmp/sftp
docker logs sftp
sftp-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-sftp]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-sftp.result != 'success' }}; then exit 1; fi
@@ -1,128 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Samba Kerberos SSO
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-smb-kerberos-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-smb-kerberos:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
name: smb-kerberos-sso
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Checkout user_saml
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/user_saml
path: apps/user_saml
- name: Install user_saml
run: |
cd apps/user_saml
composer i
cd ../..
- name: Pull images
run: |
docker pull ghcr.io/icewind1991/samba-krb-test-dc
docker pull ghcr.io/icewind1991/samba-krb-test-apache-gssapi:8.4
docker pull ghcr.io/icewind1991/samba-krb-test-client
docker tag ghcr.io/icewind1991/samba-krb-test-dc icewind1991/samba-krb-test-dc
docker tag ghcr.io/icewind1991/samba-krb-test-apache-gssapi:8.4 icewind1991/samba-krb-test-apache-gssapi
docker tag ghcr.io/icewind1991/samba-krb-test-client icewind1991/samba-krb-test-client
- name: Setup AD-DC
run: |
DC_IP=$(apps/files_external/tests/sso-setup/start-dc.sh)
sleep 1
apps/files_external/tests/sso-setup/start-apache.sh $DC_IP $PWD
echo "DC_IP=$DC_IP" >> $GITHUB_ENV
- name: Set up Nextcloud
run: |
apps/files_external/tests/sso-setup/setup-sso-nc.sh
- name: Test SSO
run: |
apps/files_external/tests/sso-setup/test-sso-smb.sh ${{ env.DC_IP }}
- name: Show logs DC
if: always()
run: |
docker logs dc
echo "------------"
docker exec dc cat /var/log/samba/log.samba
- name: Show logs Apache
if: always()
run: |
docker logs apache
- name: Show logs
if: always()
run: |
FILEPATH=$(docker exec --user 33 apache ./occ log:file | grep "Log file:" | cut -d' ' -f3)
echo "$FILEPATH:"
docker exec --user 33 apache cat $FILEPATH
smb-kerberos-sso-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-smb-kerberos]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-smb-kerberos.result != 'success' }}; then exit 1; fi
-138
View File
@@ -1,138 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external SMB
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-smb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-smb:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-smb
services:
samba:
image: ghcr.io/servercontainers/samba:smbd-only-a3.18.0-s4.18.2-r0
env:
ACCOUNT_test: test
UID_test: 1000
SAMBA_VOLUME_CONFIG_test: "[public]; path=/tmp; valid users = test; guest ok = no; read only = no; browseable = yes"
options: >-
--health-cmd=true
ports:
- 445:445
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, smbclient, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up smbclient
# This is needed as icewind/smb php library for notify
run: sudo apt-get install -y smbclient
- name: Set up Nextcloud
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ config:system:set --value true --type boolean allow_local_remote_servers
./occ app:enable --force files_external
echo "<?php return ['run'=>true, 'host'=>'localhost', 'user'=>'test', 'password'=>'test', 'root'=>'', 'share'=>'public'];" > apps/files_external/tests/config.smb.php
- name: Wait for smb
run: |
apps/files_external/tests/env/wait-for-connection 127.0.0.1 445 60
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/SmbTest.php \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-smb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-files-external-smb
files-external-smb-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-smb]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-smb.result != 'success' }}; then exit 1; fi
-130
View File
@@ -1,130 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external WebDAV
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-webdav-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-webdav-apache:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-webdav
services:
apache:
image: ghcr.io/nextcloud/continuous-integration-webdav-apache:latest # zizmor: ignore[unpinned-images]
ports:
- 8081:80
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ config:system:set --value true --type boolean allow_local_remote_servers
./occ app:enable --force files_external
echo "<?php return ['run' => true, 'host' => 'localhost:8081/webdav/', 'user' => 'test', 'password'=>'pass', 'root' => '', 'wait' => 0];" > apps/files_external/tests/config.webdav.php
- name: Wait for WebDAV
run: |
sleep 5
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://test:pass@localhost:8081/webdav/
- name: PHPUnit
run: composer run test:files_external -- \
apps/files_external/tests/Storage/WebdavTest.php \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-webdav
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-files-external-webdav
files-external-webdav-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-webdav-apache]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-webdav-apache.result != 'success' }}; then exit 1; fi
-119
View File
@@ -1,119 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit files_external generic
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: files-external-generic-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
files-external-generic:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-generic
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
./occ app:enable --force files_external
- name: PHPUnit
run: composer run test:files_external -- \
--log-junit junit.xml \
${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-files-external-generic
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-files-external-generic
files-external-summary:
runs-on: ubuntu-latest-low
needs: [changes, files-external-generic ]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-generic.result != 'success' }}; then exit 1; fi
-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,104 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Generate changelog on release
on:
release:
types: [published]
permissions:
contents: write
jobs:
changelog_generate:
runs-on: ubuntu-latest
# Only allowed to be run on nextcloud-releases repositories
if: ${{ github.repository_owner == 'nextcloud-releases' }}
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
with:
require: write
- name: Checkout github_helper
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/github_helper
path: github_helper
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
path: server
fetch-depth: 0
- name: Get previous tag
shell: bash
run: |
cd server
# Print all tags
git log --decorate --oneline | egrep 'tag: ' | sed -r 's/^.+tag: ([^,\)]+)[,\)].+$/\1/g'
# Get the current tag
TAGS=$(git log --decorate --oneline | egrep 'tag: ' | sed -r 's/^.+tag: ([^,\)]+)[,\)].+$/\1/g')
CURRENT_TAG=$(echo "$TAGS" | head -n 1)
# If current tag is the first beta, we use the previous major RC1
if echo "$CURRENT_TAG" | grep -q 'beta1'; then
MAJOR=$(echo "$CURRENT_TAG" | sed -E 's/^v([0-9]+).*/\1/')
PREV=$((MAJOR - 1))
PREVIOUS_TAG="v${PREV}.0.0rc1"
# Get the previous tag - filter pre-releases only if current tag is stable
elif echo "$CURRENT_TAG" | grep -q 'rc\|beta\|alpha'; then
# Current tag is pre-release, don't filter
PREVIOUS_TAG=$(echo "$TAGS" | sed -n '2p')
else
# Current tag is stable, filter out pre-releases
PREVIOUS_TAG=$(echo "$TAGS" | grep -v 'rc\|beta\|alpha' | sed -n '2p')
fi
echo "CURRENT_TAG=$CURRENT_TAG" >> $GITHUB_ENV
echo "PREVIOUS_TAG=$PREVIOUS_TAG" >> $GITHUB_ENV
# Since this action only runs on nextcloud-releases, ignoring is okay
- name: Verify current tag # zizmor: ignore[template-injection]
run: |
if [ "${{ github.ref_name }}" != "${{ env.CURRENT_TAG }}" ]; then
echo "Current tag does not match the release tag. Exiting."
exit 1
fi
- name: Set up php 8.2
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: 8.2
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set credentials
run: |
echo '{"username": "github-actions"}' > github_helper/credentials.json
# Since this action only runs on nextcloud-releases, ignoring is okay
- name: Generate changelog between ${{ env.PREVIOUS_TAG }} and ${{ github.ref_name }} # zizmor: ignore[template-injection]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd github_helper/changelog
composer install
php index.php generate:changelog --no-bots --format=forum server ${{ env.PREVIOUS_TAG }} ${{ github.ref_name }} > changelog.md
# Since this action only runs on nextcloud-releases, ignoring is okay
- name: Set changelog to release # zizmor: ignore[template-injection]
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd server
gh release edit ${{ github.ref_name }} --notes-file "../github_helper/changelog/changelog.md" --title "${{ github.ref_name }}"
-129
View File
@@ -1,129 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: DAV integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-caldav-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
integration-caldav:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
endpoint: ['old', 'new']
service: ['CalDAV', 'CardDAV']
name: ${{ matrix.service }} (${{ matrix.endpoint }} endpoint) php${{ matrix.php-versions }}
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: 'none'
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
uses: LizardByte/actions/actions/setup_python@70bb8d394d1c92f6113aeec6ae9cc959a5763d15 # v2026.227.200013
with:
python-version: '2.7'
- name: Set up CalDAVTester
run: |
git clone --depth=1 https://github.com/apple/ccs-caldavtester.git CalDAVTester
git clone --depth=1 https://github.com/apple/ccs-pycalendar.git pycalendar
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
# disable the trashbin, so recurrent deletion of the same object works
./occ config:app:set dav calendarRetentionObligation --value=0
# Prepare users
OC_PASS=user01 ./occ user:add --password-from-env user01
OC_PASS=user02 ./occ user:add --password-from-env user02
# Prepare calendars
./occ dav:create-calendar user01 calendar
./occ dav:create-calendar user01 shared
./occ dav:create-calendar user02 calendar
# Prepare address books
./occ dav:create-addressbook user01 addressbook
./occ dav:create-addressbook user02 addressbook
- name: Run Nextcloud
run: |
php -S localhost:8888 &
- name: Run CalDAVTester
run: |
cp "apps/dav/tests/testsuits/caldavtest/serverinfo-${{ matrix.endpoint }}${{ matrix.endpoint == 'old' && (matrix.service == 'CardDAV' && '-carddav' || '-caldav') || '' }}-endpoint.xml" "apps/dav/tests/testsuits/caldavtest/serverinfo.xml"
pushd CalDAVTester
PYTHONPATH="../pycalendar/src" python testcaldav.py --print-details-onfail --basedir "../apps/dav/tests/testsuits/caldavtest" -o cdt.txt \
"${{ matrix.service }}/current-user-principal.xml" \
"${{ matrix.service }}/sync-report.xml" \
${{ matrix.endpoint == 'new' && format('{0}/sharing-{1}.xml', matrix.service, matrix.service == 'CalDAV' && 'calendars' || 'addressbooks') || ';' }}
popd
- name: Print Nextcloud logs
if: always()
run: |
cat data/nextcloud.log
caldav-integration-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-caldav]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-caldav.result != 'success' }}; then exit 1; fi
-116
View File
@@ -1,116 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Litmus integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-litmus-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
integration-litmus:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
endpoint: ['webdav', 'dav']
name: Litmus WebDAV ${{ matrix.endpoint }}
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: 'none'
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install \
--verbose \
--database=sqlite \
--database-name=nextcloud \
--database-user=root \
--database-pass=rootpassword \
--admin-user admin \
--admin-pass admin
./occ config:system:set trusted_domains 2 --value=host.docker.internal:8080
- name: Run Nextcloud
run: |
php -S 0.0.0.0:8080 &
- name: Run Litmus test
run: |
docker run \
--rm \
--add-host=host.docker.internal:host-gateway \
ghcr.io/nextcloud/continuous-integration-litmus-php8.3:latest \
bash -c '\
cd /tmp/litmus/litmus-0.13;
make URL=http://host.docker.internal:8080/remote.php/${{ matrix.endpoint }}${{ matrix.endpoint == 'dav' && '/files/admin' || ''}} CREDS="admin admin" TESTS="basic copymove props largefile" check;
status=$?;
cat debug.log;
exit $status;'
- name: Print Nextcloud logs
if: always()
run: cat data/nextcloud.log
integration-litmus-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-litmus]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-litmus.result != 'success' }}; then exit 1; fi
@@ -1,133 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: S3 primary storage integration tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: integration-s3-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'build/integration/**'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
integration-s3-primary:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
key: ['objectstore', 'objectstore_multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
minio:
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: 'none'
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: Set up Nextcloud
run: |
composer install
mkdir data
echo '<?php $CONFIG=["${{ matrix.key }}" => ["class" => "OC\Files\ObjectStore\S3", "arguments" => ["bucket" => "nextcloud", "autocreate" => true, "key" => "nextcloud", "secret" => "bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=", "hostname" => "localhost", "port" => 9000, "use_ssl" => false, "use_path_style" => true, "uploadPartSize" => 52428800]]];' > config/config.php
echo '<?php $CONFIG=["redis" => ["host" => "localhost", "port" => 6379], "memcache.local" => "\OC\Memcache\Redis", "memcache.distributed" => "\OC\Memcache\Redis"];' > config/redis.config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f index.php
- name: Integration
run: |
cd build/integration
bash run.sh --tags "~@failure-s3" dav_features/webdav-related.feature
- name: S3 logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-primary-integration-summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-s3-primary]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-s3-primary.result != 'success' }}; then exit 1; fi
-184
View File
@@ -1,184 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Integration sqlite
on:
pull_request:
push:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: integration-sqlite-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/*.php'
- '**/lib/**'
- '**/tests/**'
- '**/vendor-bin/**'
- 'build/integration/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- 'core/shipped.json'
integration-sqlite:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
test-suite:
- 'capabilities_features'
- 'collaboration_features'
- 'comments_features'
- 'dav_features'
- 'features'
- 'federation_features'
- '--tags ~@large files_features'
- 'filesdrop_features'
- 'file_conversions'
- 'files_reminders'
- 'openldap_features'
- 'openldap_numerical_features'
- 'ldap_features'
- 'remoteapi_features'
- 'routing_features'
- 'setup_features'
- 'sharees_features'
- 'sharing_features'
- 'theming_features'
- 'videoverification_features'
php-versions: ['8.4']
spreed-versions: ['main']
activity-versions: ['master']
services:
redis:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 6379:6379/tcp
openldap:
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-8 # zizmor: ignore[unpinned-images]
ports:
- 389:389
- 636:636
env:
SLAPD_DOMAIN: nextcloud.ci
SLAPD_ORGANIZATION: Nextcloud
SLAPD_PASSWORD: admin
SLAPD_ADDITIONAL_MODULES: memberof
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Checkout Talk app
if: ${{ matrix.test-suite == 'videoverification_features' }}
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/spreed
path: apps/spreed
ref: ${{ matrix.spreed-versions }}
- name: Checkout Activity app
if: ${{ matrix.test-suite == 'sharing_features' }}
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
repository: nextcloud/activity
path: apps/activity
ref: ${{ matrix.activity-versions }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, ldap, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: |
composer install
- name: Set up Talk dependencies
if: ${{ matrix.test-suite == 'videoverification_features' }}
working-directory: apps/spreed
run: composer i --no-dev
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose ${{ contains(matrix.test-suite,'ldap') && '--data-dir=/dev/shm/nc_int' || '' }} --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ config:system:set hashing_default_password --value=true --type=boolean
- name: Configure caching
if: ${{ contains(matrix.test-suite,'ldap') }}
run: |
./occ config:system:set redis host --value=localhost
./occ config:system:set redis port --value=6379 --type=integer
./occ config:system:set redis timeout --value=0 --type=integer
./occ config:system:set memcache.local --value='\OC\Memcache\Redis'
./occ config:system:set memcache.distributed --value='\OC\Memcache\Redis'
- name: Run integration
working-directory: build/integration
env:
LDAP_HOST: localhost
run: bash run.sh ${{ matrix.test-suite }} no-tail-log
- name: Print logs
if: always()
run: |
cat $(./occ log:file |grep "Log file"|cut -d" " -f3)
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, integration-sqlite]
if: always()
name: integration-sqlite-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-sqlite.result != 'success' }}; then exit 1; fi
-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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
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
-85
View File
@@ -1,85 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 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
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: 8.2
extensions: 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
-86
View File
@@ -1,86 +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.2', '8.3', '8.4', '8.5' ]
name: php-lint
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
run: npm ci
- name: Lint
run: npm run stylelint
+40
View File
@@ -0,0 +1,40 @@
name: Lint
on: pull_request
jobs:
php-linters:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['7.3', '7.4', '8.0']
name: php${{ matrix.php-versions }} lint
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up php${{ matrix.php-versions }}
uses: shivammathur/setup-php@master
with:
php-version: ${{ matrix.php-versions }}
coverage: none
- name: Lint
run: composer run lint
php-cs-fixer:
name: php-cs check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up php
uses: shivammathur/setup-php@master
with:
php-version: 7.4
coverage: none
tools: cs2pr
- name: Install dependencies
run: composer i
- name: Run coding standards check
run: |
composer run cs:check -- --format=checkstyle | cs2pr
composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
shell: bash
@@ -1,99 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Node handlebars tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: node-tests-handlebars-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/__tests__/**'
- '**/__mocks__/**'
- 'apps/*/src/**'
- 'apps/*/appinfo/info.xml'
- 'core/src/**'
- 'package.json'
- '**/package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
handlebars:
runs-on: ubuntu-latest
needs: [changes]
if: needs.changes.outputs.src != 'false'
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
run: npm ci
- name: Run compile
run: ./build/compile-handlebars-templates.sh
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, handlebars]
if: always()
name: test-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.handlebars.result != 'success' }}; then exit 1; fi
-109
View File
@@ -1,109 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Node tests
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: node-tests-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/__tests__/**'
- '**/__mocks__/**'
- 'apps/*/src/**'
- 'apps/*/appinfo/info.xml'
- 'core/src/**'
- 'package.json'
- '**/package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
test:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
# - name: Test
# run: npm run test --if-present
- name: Test and process coverage
run: npm run test:coverage
- name: Collect coverage
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./coverage/lcov.info,./coverage/legacy/lcov.info
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, test]
if: always()
name: node-test-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.test.result != 'success' }}; then exit 1; fi
+67 -105
View File
@@ -1,117 +1,79 @@
# 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
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/src/**'
- '**/appinfo/info.xml'
- 'core/css/*'
- 'core/img/**'
- 'package.json'
- '**/package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
- 'version.php'
build:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
node-version: [12.x]
name: NPM build
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/checkout@v2
- name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies & build
run: |
make clean
npm ci
npm run build --if-present
- name: Check webpack build changes
run: |
bash -c "[[ ! \"`git status --porcelain `\" ]] || ( echo 'Uncommited changes in webpack build' && git status && exit 1 )"
env:
CI: true
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v2
- name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: |
npm ci
- name: Test
run: npm run test
jsunit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Test
run: ./autotest-js.sh
handlebars:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v2
- name: Use node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
# This does not work on server as we have some git dependencies that "npm-package-lock-add-resolved" cannot handle
# - name: Validate package-lock.json # See https://github.com/npm/cli/issues/4460
# run: |
# npm i -g npm-package-lock-add-resolved@1.1.4
# npm-package-lock-add-resolved
# git --no-pager diff --exit-code
- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: |
npm ci
npm run build --if-present
- name: Check 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
- name: Run compile
run: ./build/compile-handlebars-templates.sh
-85
View File
@@ -1,85 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Npm audit fix and compile
on:
workflow_dispatch:
schedule:
# At 2:30 on Sundays
- cron: '30 2 * * 0'
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branches:
- ${{ github.event.repository.default_branch }}
- 'stable33'
- 'stable32'
- 'stable31'
name: npm-audit-fix-${{ matrix.branches }}
steps:
- name: Checkout
id: checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
continue-on-error: true
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Fix npm audit
id: npm-audit
uses: nextcloud-libraries/npm-audit-action@1b1728b2b4a7a78d69de65608efcf4db0e3e42d0 # v0.2.0
- name: Run npm ci and npm run build
if: steps.checkout.outcome == 'success'
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
npm run build --if-present
- name: Create Pull Request
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(deps): Fix npm audit'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/${{ matrix.branches }}-fix-npm-audit
title: '[${{ matrix.branches }}] Fix npm audit'
body: ${{ steps.npm-audit.outputs.markdown }}
labels: |
dependencies
3. to review
-145
View File
@@ -1,145 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Object storage azure
on:
pull_request:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: object-storage-azure-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
azure-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.3']
include:
- php-versions: '8.4'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-azure
services:
azurite:
image: mcr.microsoft.com/azure-storage/azurite@sha256:0a47e12e3693483cef5c71f35468b91d751611f172d2f97414e9c69113b106d9 # v3.34.0
env:
AZURITE_ACCOUNTS: nextcloud:bmV4dGNsb3Vk
ports:
- 10000:10000
options: --health-cmd="nc 127.0.0.1 10000 -z" --health-interval=1s --health-retries=30
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: azure
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bmV4dGNsb3Vk
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php
- name: PHPUnit
env:
OBJECT_STORE: azure
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bmV4dGNsb3Vk
run: composer run test -- --group PRIMARY-azure --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-azure
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-azure
- name: Azurite logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
azure-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes, azure-primary-tests]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.azure-primary-tests.result != 'success' }}; then exit 1; fi
-151
View File
@@ -1,151 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Object storage S3
on:
pull_request:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: object-storage-s3-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
s3-primary-tests-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-s3
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: s3
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
env:
OBJECT_STORE: s3
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: composer run test -- --group PRIMARY-s3 --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-s3
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-s3
- name: S3 logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
s3-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes,s3-primary-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.s3-primary-tests-minio.result != 'success' }}; then exit 1; fi
-141
View File
@@ -1,141 +0,0 @@
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Object storage Swift
on:
pull_request:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: object-storage-swift-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- 'vendor/**'
- 'vendor-bin/**'
- 'composer.json'
- 'composer.lock'
- 'apps/files/lib/**'
- 'apps/files/tests/**'
- 'apps/files_external/**'
- 'apps/files_sharing/lib/**'
- 'apps/files_sharing/tests/**'
- 'apps/files_trashbin/lib/**'
- 'apps/files_trashbin/tests/**'
- 'apps/files_versions/lib/**'
- 'apps/files_versions/tests/**'
- 'lib/private/Files/**'
- 'lib/public/Files/**'
- 'tests/lib/Files/**'
swift-primary-tests:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
include:
- php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
name: php${{ matrix.php-versions }}-swift
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
swift:
image: ghcr.io/cscfi/docker-keystone-swift@sha256:e8b1ec21120ab9adc6ac6a2b98785fd273676439a8633fe898e37f2aea7e0712
ports:
- 5000:5000
- 8080:8080
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: swift
OBJECT_STORE_SECRET: veryfast
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php
- name: PHPUnit
env:
OBJECT_STORE: swift
OBJECT_STORE_SECRET: veryfast
run: composer run test -- --group PRIMARY-swift --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-swift
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-swift
- name: Swift logs
if: always()
run: |
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
swift-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes,swift-primary-tests]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.swift-primary-tests.result != 'success' }}; then exit 1; fi
+56
View File
@@ -0,0 +1,56 @@
name: PHPUnit
on:
pull_request:
push:
branches:
- master
- stable*
jobs:
phpunit-oci8:
runs-on: ubuntu-20.04
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: [ '7.4' ]
databases: [ 'oci' ]
name: php${{ matrix.php-versions }}-${{ matrix.databases }}
services:
oracle:
image: deepdiver/docker-oracle-xe-11g # "wnameless/oracle-xe-11g-r2"
ports:
- "1521:1521"
steps:
- name: Checkout server
uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, oci8
tools: phpunit:8.5.2
coverage: none
- name: Set up Nextcloud
run: |
mkdir data
./occ maintenance:install --verbose --database=oci --database-name=XE --database-host=127.0.0.1 --database-port=1521 --database-user=autotest --database-pass=owncloud --admin-user admin --admin-pass admin
php -f index.php
- name: PHPUnit
working-directory: tests
run: phpunit --configuration phpunit-autotest.xml --group DB,SLOWDB
-48
View File
@@ -1,48 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2024 Arthur Schiwon <blizzz@arthur-schiwon.de>
# SPDX-License-Identifier: MIT
name: OpenAPI
on: pull_request
permissions:
contents: read
concurrency:
group: openapi-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
openapi:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: '8.2'
extensions: ctype, curl, dom, fileinfo, gd, json, libxml, mbstring, openssl, pcntl, pdo, posix, session, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: OpenAPI checker
run: build/openapi-checker.sh
-128
View File
@@ -1,128 +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.2']
name: performance-${{ matrix.php-versions }}
steps:
- name: Disabled on forks
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
run: |
echo 'Can not run performance tests on forks'
exit 1
- name: Checkout server before PR
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
ref: ${{ github.event.pull_request.base.ref }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
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@6a74c915048285b35b8e1cd96c0835a635945044
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@6a74c915048285b35b8e1cd96c0835a635945044
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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
with:
name: profiles
path: |
before.json
after.json
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # 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
})
-59
View File
@@ -1,59 +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"
- "lib/private/Snowflake/*"
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' }}
strategy:
fail-fast: false
matrix:
php-versions: ["8.4"]
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up dependencies
uses: docker://ghcr.io/nextcloud/continuous-integration-php8.4-32bit:latest
with:
args: /bin/sh -c "
git config --global --add safe.directory /github/workspace &&
composer install --no-interaction"
- name: Set up Nextcloud
uses: docker://ghcr.io/nextcloud/continuous-integration-php8.4-32bit:latest
with:
args: /bin/sh -c "
mkdir data &&
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=autotest --database-pass=rootpassword --admin-user admin --admin-pass admin &&
php -f tests/enable_all.php"
- name: PHPUnit
uses: docker://ghcr.io/nextcloud/continuous-integration-php8.4-32bit:latest
with:
args: /bin/sh -c "composer run test -- --exclude-group PRIMARY-azure,PRIMARY-s3,PRIMARY-swift,Memcached,Redis,RoutingWeirdness"
-158
View File
@@ -1,158 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit MariaDB
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-mariadb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-mariadb:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
mariadb-versions: ['10.6']
include:
- php-versions: '8.3'
mariadb-versions: '10.11'
coverage: ${{ github.event_name != 'pull_request' }}
- php-versions: '8.4'
mariadb-versions: '11.4'
- php-versions: '8.5'
mariadb-versions: '11.8'
name: MariaDB ${{ matrix.mariadb-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mariadb:
image: mariadb:${{ matrix.mariadb-versions }}
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="${{ matrix.mariadb-versions <= 10.4 && 'mysqladmin' || 'mariadb-admin'}} ping" --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Enable ONLY_FULL_GROUP_BY MariaDB option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo 'SELECT @@sql_mode;' | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-mariadb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-mariadb
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-mariadb]
if: always()
name: phpunit-mariadb-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mariadb.result != 'success' }}; then exit 1; fi
-135
View File
@@ -1,135 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit memcached
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-memcached-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-memcached:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4', '8.5']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: Memcached (PHP ${{ matrix.php-versions }})
services:
memcached:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 11212:11212/tcp
- 11212:11212/udp
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, memcached, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- name: PHPUnit memcached tests
run: composer run test -- --group Memcache --group Memcached --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.xml' || '' }}
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.xml
flags: phpunit-memcached
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-memcached
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-memcached]
if: always()
name: phpunit-memcached-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-memcached.result != 'success' }}; then exit 1; fi
@@ -1,193 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit sharding
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-mysql-sharding-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-mysql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
mysql-versions: ['8.4']
name: Sharding - MySQL ${{ matrix.mysql-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard1:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5001:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard2:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5002:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard3:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5003:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard4:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 5004:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Enable ONLY_FULL_GROUP_BY MySQL option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Set up Nextcloud
env:
DB_PORT: 4444
SHARDING: 1
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-mysql
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-mysql]
if: always()
name: phpunit-mysql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
-163
View File
@@ -1,163 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit mysql
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-mysql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-mysql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
mysql-versions: ['8.0']
include:
- mysql-versions: '8.0'
php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
- mysql-versions: '8.4'
php-versions: '8.4'
- mysql-versions: '8.4'
php-versions: '8.5'
name: MySQL ${{ matrix.mysql-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Enable ONLY_FULL_GROUP_BY MySQL option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-mysql
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-mysql]
if: always()
name: phpunit-mysql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
-141
View File
@@ -1,141 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
#
# This is the testsuite running all non-database agnostic unit tests
name: PHPUnit nodb
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-nodb-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'resources/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-nodb:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4', '8.5']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: No DB unit tests (PHP ${{ matrix.php-versions }})
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
# Required for tests that use pcntl
ini-values: disable_functions=""
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- name: PHPUnit nodb testsuite
run: composer run test -- --exclude-group DB --exclude-group SLOWDB --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.nodb.xml' || '' }}
- name: Upload nodb code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.nodb.xml
flags: phpunit-nodb
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-nodb
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-nodb]
if: always()
name: phpunit-nodb-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-nodb.result != 'success' }}; then exit 1; fi
@@ -1,125 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit primary object store
on:
pull_request:
schedule:
- cron: "15 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-object-store-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
object-store-primary-tests-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
key: ['s3', 's3-multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio@sha256:50cec18ac4184af4671a78aedd5554942c8ae105d51a465fa82037949046da01 # v2025.4.22
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: ${{ matrix.key }}
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
run: composer run test:db
- name: S3 logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
object-store-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes,object-store-primary-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.object-store-primary-tests-minio.result != 'success' }}; then exit 1; fi
-162
View File
@@ -1,162 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit OCI
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-oci-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-oci:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
include:
- oracle-versions: '18'
php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
- oracle-versions: '21'
php-versions: '8.3'
- oracle-versions: '23'
php-versions: '8.4'
- oracle-versions: '23'
php-versions: '8.5'
name: Oracle ${{ matrix.oracle-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
oracle:
image: ghcr.io/gvenzl/oracle-${{ matrix.oracle-versions < 23 && 'xe' || 'free' }}:${{ matrix.oracle-versions }}
# Provide passwords and other environment variables to container
env:
ORACLE_PASSWORD: oracle
# Forward Oracle port
ports:
- 1521:1521
# Provide healthcheck script options for startup
options: >-
--health-cmd healthcheck.sh
--health-interval 20s
--health-timeout 10s
--health-retries 10
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, oci8
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=oci --database-name=${{ matrix.oracle-versions < 23 && 'XE' || 'FREE' }} --database-host=127.0.0.1 --database-port=1521 --database-user=system --database-pass=oracle --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- name: PHPUnit
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-oci
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-oci
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-oci]
if: always()
name: phpunit-oci-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-oci.result != 'success' }}; then exit 1; fi
-162
View File
@@ -1,162 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit PostgreSQL
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-pgsql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.2']
# To keep the matrix smaller we ignore PostgreSQL versions in between as we already test the minimum and the maximum
postgres-versions: ['14']
include:
- php-versions: '8.3'
postgres-versions: '18'
coverage: ${{ github.event_name != 'pull_request' }}
- php-versions: '8.4'
postgres-versions: '18'
- php-versions: '8.5'
postgres-versions: '18'
name: PostgreSQL ${{ matrix.postgres-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
postgres:
image: ghcr.io/nextcloud/continuous-integration-postgres-${{ matrix.postgres-versions }}:latest # zizmor: ignore[unpinned-images]
ports:
- 4444:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --mount type=tmpfs,destination=/var/lib/postgresql --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- name: PHPUnit database tests
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-postgres
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-postgres
- name: Run repair steps
run: |
./occ maintenance:repair --include-expensive
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-pgsql]
if: always()
name: phpunit-pgsql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi
-147
View File
@@ -1,147 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit SQLite
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-sqlite:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4', '8.5']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
name: SQLite (PHP ${{ matrix.php-versions }})
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
timeout-minutes: 5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: |
sudo apt-get update
sudo apt-get install -y ghostscript
composer i
- name: Set up Nextcloud
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php
- name: Nextcloud debug information
run: ./occ app:list && echo "======= System config =======" && ./occ config:list system
- name: PHPUnit database tests
run: composer run test:db -- --log-junit junit.xml ${{ matrix.coverage && '--coverage-clover ./clover.db.xml' || '' }} tests/lib/Preview/PostscriptTest.php
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: ./clover.db.xml
flags: phpunit-sqlite
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
with:
flags: phpunit-sqlite
- name: Print logs
if: always()
run: |
gs --version
cat /etc/ImageMagick-6/policy.xml
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-sqlite]
if: always()
name: phpunit-sqlite-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi
-55
View File
@@ -1,55 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2023 Marcel Klehr <mklehr@gmx.net>
# SPDX-FileCopyrightText: 2023 Joas Schilling <213943+nickvergessen@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Daniel Kesselberg <mail@danielkesselberg.de>
# SPDX-FileCopyrightText: 2023 Florian Steffens <florian.steffens@nextcloud.com>
# SPDX-License-Identifier: MIT
name: 'Ask for feedback on PRs'
on:
schedule:
- cron: '30 1 * * *'
permissions:
contents: read
pull-requests: write
jobs:
pr-feedback:
if: ${{ github.repository_owner == 'nextcloud' }}
runs-on: ubuntu-latest
steps:
- name: The get-github-handles-from-website action
uses: marcelklehr/get-github-handles-from-website-action@06b2239db0a48fe1484ba0bfd966a3ab81a08308 # v1.0.1
id: scrape
with:
website: 'https://nextcloud.com/team/'
- name: Get blocklist
id: blocklist
run: |
blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
- uses: nextcloud/pr-feedback-action@f0cab224dea8e1f282f9451de322f323c78fc7a5 # main
with:
feedback-message: |
Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
Thank you for contributing to Nextcloud and we hope to hear from you soon!
(If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).)
days-before-feedback: 14
start-date: '2025-06-12'
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}'
exempt-bots: true
+26
View File
@@ -0,0 +1,26 @@
name: Psalm Security Analysis
on:
push:
pull_request:
schedule:
- cron: '0 0 * * 0'
jobs:
psalm:
name: Psalm
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: recursive
- name: Psalm
uses: docker://vimeo/psalm-github-actions
with:
security_analysis: true
report_file: results.sarif
- name: Upload Security Analysis results to GitHub
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: results.sarif
-70
View File
@@ -1,70 +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: 2026 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Apply rector changes
on:
workflow_dispatch:
schedule:
# At 14:30 on Sundays
- cron: '30 14 * * 0'
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-versions: [ '8.2' ]
name: rector-apply
steps:
- name: Checkout
id: checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ github.event.repository.default_branch }}
- name: Set up php${{ matrix.php-versions }}
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: |
composer remove nextcloud/ocp --dev --no-scripts
composer i
git restore lib/composer/composer
- name: Rector
run: composer run rector
- name: Create Pull Request
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'refactor: Apply rector changes'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: automated/noid/rector-changes
title: 'Apply rector changes'
labels: |
technical debt
3. to review
-45
View File
@@ -1,45 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
name: Rector
on:
pull_request:
permissions:
contents: read
concurrency:
group: rector-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
strict:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
with:
php-version: '8.2'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Rector
run: composer run rector:strict
- name: Show changes
if: always()
run: git diff --exit-code -- . ':!lib/composer'
-27
View File
@@ -1,27 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. <https://fsfe.org>
#
# SPDX-License-Identifier: CC0-1.0
name: REUSE Compliance Check
on: [pull_request]
permissions:
contents: read
jobs:
reuse-compliance-check:
runs-on: ubuntu-latest-low
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: REUSE Compliance Check
uses: fsfe/reuse-action@676e2d560c9a403aa252096d99fcab3e1132b0f5 # v6.0.0
-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@b5d41d4e1d5dceea10e7104786b73624c18a190f # 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
+50 -176
View File
@@ -1,180 +1,54 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Psalm static code analysis
name: 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
on: [pull_request]
jobs:
static-code-analysis:
runs-on: ubuntu-latest
static-code-analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up php7.4
uses: shivammathur/setup-php@master
with:
php-version: 7.4
coverage: none
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm -- --monochrome --no-progress --output-format=text --update-baseline || ( git diff -- . ':!lib/composer' && exit 1 )
- name: Check diff
run: git diff -- . ':!lib/composer'
- name: Show potential changes in Psalm baseline
run: |
bash -c "[[ ! \"`git status --porcelain build/psalm-baseline.xml`\" ]] || ( echo 'Uncommited changes in Psalm baseline' && git status && git diff build/psalm-baseline.xml)"
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: '8.2'
extensions: 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' }}
permissions:
security-events: write
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,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@89a39a4e59826350b863aa6b6252a07ad50cf83e # 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm: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@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
timeout-minutes: 5
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm:ncu -- --threads=1 --monochrome --no-progress --output-format=github
static-code-analysis-strict:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm:strict -- --threads=1 --monochrome --no-progress --output-format=github
static-code-analysis-ocp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up php7.4
uses: shivammathur/setup-php@master
with:
php-version: 7.4
coverage: none
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm -- -c psalm-ocp.xml --monochrome --no-progress --output-format=text --update-baseline || ( git diff -- . ':!lib/composer' && exit 1 )
- name: Check diff
run: git diff -- . ':!lib/composer'
- name: Show potential changes in Psalm baseline
run: |
bash -c "[[ ! \"`git status --porcelain build/psalm-baseline-ocp.xml`\" ]] || ( echo 'Uncommited changes in Psalm baseline' && git status && git diff build/psalm-baseline.xml)"
@@ -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', 'stable33', 'stable32', 'stable31', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-ca-certificate-bundle-${{ matrix.branches }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
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@c0f553fe549906ede9cf27b5156039d195d2ece0
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', 'stable33', 'stable32', 'stable31', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-code-signing-crl-${{ matrix.branches }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ matrix.branches }}
submodules: true
- name: Download CRL file from Appstore repository
run: curl --output resources/codesigning/root.crl https://raw.githubusercontent.com/nextcloud/appstore/master/nextcloudappstore/certificate/nextcloud.crl
- name: Verify CRL is from CRT
run: openssl crl -verify -in resources/codesigning/root.crl -CAfile resources/codesigning/root.crt -noout
- name: Create Pull Request
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update code signing revocation list'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: 'automated/noid/${{ matrix.branches }}-update-code-signing-crl'
title: '[${{ matrix.branches }}] fix(security): Update code signing revocation list'
body: |
Auto-generated update of code signing revocation list from [Appstore](https://github.com/nextcloud/appstore/commits/master/nextcloudappstore/certificate/nextcloud.crl)
labels: |
dependencies
3. to review
reviewers: mgallien, miaulalala, nickvergessen
@@ -1,128 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update min supported desktop version
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
permissions:
contents: read
jobs:
update-minimum-supported-desktop-version:
runs-on: ubuntu-latest-low
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
submodules: true
- name: Download desktop client version file from 5 years ago
id: download
run: |
# Create a temporary directory for the downloaded file
mkdir -p tmp
# Download the version file from the provided URL
VERSION_FILE_URL="https://github.com/nextcloud/desktop/raw/@%7B5.years.ago%7D/VERSION.cmake"
# Download the file using curl
curl -s -L "$VERSION_FILE_URL" -o tmp/VERSION.cmake
if [ ! -f "tmp/VERSION.cmake" ]; then
echo "Failed to download VERSION.cmake file"
exit 1
fi
echo "VERSION_FILE=tmp/VERSION.cmake" >> $GITHUB_OUTPUT
echo "Downloaded version file to tmp/VERSION.cmake"
- name: Extract version info
id: extract-version
run: |
# Path to the downloaded version file
VERSION_FILE="${{ steps.download.outputs.VERSION_FILE }}"
# Extract major, minor, patch versions
MAJOR=$(grep "VERSION_MAJOR" $VERSION_FILE | grep -o '[0-9]\+')
MINOR=$(grep "VERSION_MINOR" $VERSION_FILE | grep -o '[0-9]\+')
PATCH=$(grep "VERSION_PATCH" $VERSION_FILE | grep -o '[0-9]\+')
# Construct the version string
VERSION="$MAJOR.$MINOR.$PATCH"
# Validate format: xx.xx.xx where each x is a digit
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Error: Extracted version '$VERSION' does not match required format (xx.xx.xx)"
exit 1
fi
rm -rf tmp
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted Version: $VERSION"
- name: Update files with new version ${{ steps.extract-version.outputs.VERSION }}
id: update-files
run: |
VERSION="${{ steps.extract-version.outputs.VERSION }}"
# Define the files to update
DAV_FILE="apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php"
CONFIG_FILE="config/config.sample.php"
# Check if files exist
if [ ! -f "$DAV_FILE" ]; then
echo "Error: DAV file not found at $DAV_FILE"
exit 1
fi
if [ ! -f "$CONFIG_FILE" ]; then
echo "Error: Config file not found at $CONFIG_FILE"
exit 1
fi
# Update the DAV file - replace the version in the specific line
sed -i "s/\('minimum\.supported\.desktop\.version', '\)[0-9]\+\.[0-9]\+\.[0-9]\+'/\1$VERSION'/g" "$DAV_FILE"
echo "Updated $DAV_FILE"
# Update the config sample file
PREV_VERSION=$(grep "'minimum.supported.desktop.version'" "$CONFIG_FILE" | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
sed -i "s/Defaults to \`\`$PREV_VERSION\`\`/Defaults to \`\`$VERSION\`\`/" "$CONFIG_FILE"
sed -i "s/'minimum\.supported\.desktop\.version' => '[0-9]\+\.[0-9]\+\.[0-9]\+'/'minimum.supported.desktop.version' => '$VERSION'/g" "$CONFIG_FILE"
echo "Updated $CONFIG_FILE"
# Check if any changes were made
if [ -n "$(git diff "$DAV_FILE" "$CONFIG_FILE")" ]; then
echo "CHANGES_MADE=true" >> $GITHUB_OUTPUT
echo "Changes were made to the files"
git diff "$DAV_FILE" "$CONFIG_FILE"
else
echo "CHANGES_MADE=false" >> $GITHUB_OUTPUT
echo "No changes were needed (versions might already be up to date)"
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0
if: steps.update-files.outputs.CHANGES_MADE == 'true'
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: "chore: Update minimum supported desktop version"
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: "automated/noid/${{ matrix.branches }}-update-min-supported-desktop-version"
title: "chore: Update minimum supported desktop version to ${{ steps.extract-version.outputs.VERSION }}"
base: "master"
body: |
Auto-generated update of the minimum supported desktop version using last supported version.
https://github.com/nextcloud/desktop/blob/@%7B5.years.ago%7D/VERSION.cmake
labels: |
client: 💻 desktop
automated
3. to review
reviewers: '@nextcloud/desktop'
@@ -0,0 +1,46 @@
name: Update Psalm baseline
on:
schedule:
- cron: '5 4 * * *'
jobs:
update-psalm-baseline:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up php7.4
uses: shivammathur/setup-php@master
with:
php-version: 7.4
coverage: none
- name: Composer install
run: composer i
- name: Psalm
run: composer run psalm -- --monochrome --no-progress --output-format=text --update-baseline
- name: Reset composer.json and composer.lock
run: |
rm -rf lib/composer
git checkout -- composer.json composer.lock lib/composer
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.MACHINE_USER_PAT }}
push-to-fork: nextcloud-pr-bot/server
commit-message: Update psalm baseline
committer: GitHub <noreply@github.com>
author: Nextcloud-PR-Bot <nextcloud-pr-bot@users.noreply.github.com>
signoff: true
branch: automated/noid/psalm-baseline-update
title: '[Automated] Update psalm-baseline.xml'
body: |
Auto-generated update psalm-baseline.xml with fixed psalm warnings
labels: |
automated pr
reviewers: rullzer, morrisjobke, kesselb
@@ -1,69 +0,0 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update PRs titles on stable branches
on:
pull_request:
types: [opened, edited]
branches:
- "stable*"
concurrency:
group: stable-pr-title-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
update-pr-title:
runs-on: ubuntu-latest-low
permissions:
pull-requests: write
contents: read
steps:
- name: Wait for potential title edits
run: sleep 15
- name: Get PR details and update title
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
});
const baseBranch = pr.base.ref;
const currentTitle = pr.title;
// Check if this is a stable branch
// Should not happen as we only trigger on stable* branches 🤷‍♀️
if (!baseBranch.startsWith('stable')) {
console.log(`Not a stable branch: ${baseBranch}`);
return;
}
const prefix = `[${baseBranch}]`;
// Check if title already has the correct prefix and no other stable tags
const correctTagRegex = new RegExp(`^\\[${baseBranch}\\]\\s*`);
const hasOtherStableTags = /\[stable[\d.]*\]/.test(currentTitle.replace(correctTagRegex, ''));
if (correctTagRegex.test(currentTitle) && !hasOtherStableTags) {
console.log(`Title already has correct prefix only: ${currentTitle}`);
return;
}
// Remove all stable tags and add the correct one
const cleanTitle = currentTitle.replace(/\[stable[\d.]*\]\s*/g, '').trim();
const newTitle = `${prefix} ${cleanTitle}`;
console.log(`Updating title from: "${currentTitle}" to: "${newTitle}"`);
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
title: newTitle,
});
+11 -31
View File
@@ -1,7 +1,3 @@
# SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2011-2016 ownCloud contributors
# SPDX-FileCopyrightText: 2010 ownCloud contributors
# SPDX-License-Identifier: AGPL-3.0-only
# the default generated dir + db file
/data
/config/config.php
@@ -11,12 +7,13 @@
/apps/inc.php
/assets
/.htaccess
node_modules/
/node_modules
/translationfiles
/translationtool.phar
# ignore all apps except core ones
/apps*/*
!/apps/accessibility
!/apps/cloud_federation_api
!/apps/comments
!/apps/contactsinteraction
@@ -28,14 +25,12 @@ node_modules/
!/apps/sharebymail
!/apps/encryption
!/apps/files_external
!/apps/files_reminders
!/apps/files_sharing
!/apps/files_trashbin
!/apps/files_versions
!/apps/lookup_server_connector
!/apps/user_ldap
!/apps/oauth2
!/apps/profile
!/apps/provisioning_api
!/apps/settings
!/apps/systemtags
@@ -46,7 +41,6 @@ node_modules/
!/apps/twofactor_backupcodes
!/apps/user_status
!/apps/weather_status
!/apps/webhook_listeners
!/apps/workflowengine
/apps/files_external/3rdparty/irodsphp/PHPUnitTest
/apps/files_external/3rdparty/irodsphp/web
@@ -55,14 +49,15 @@ node_modules/
/apps/files_external/3rdparty/irodsphp/prods/test*
/apps/files_external/tests/config.*.php
# apps modules
/apps/*/node_modules
# ignore themes except the example and the README
/themes/*
!/themes/example
!/themes/README
# Love to people that develop the updater
/updater
# just sane ignores
.*.sw[po]
*.bak
@@ -79,7 +74,6 @@ CVS/*
RCS/*
*.backup*
.php_cs.cache
.php-cs-fixer.cache
# kdevelop
.kdev
@@ -102,7 +96,6 @@ nbproject
# vscode
.vscode
*.code-workspace
# geany
*.geany
@@ -127,13 +120,16 @@ nbproject
# Tests
/tests/phpunit.xml
# Node Modules
/build/node_modules/
# nodejs
/build/bin
/build/lib/
/build/integration/output/
/build/integration/phpserver.log
/build/jsdocs/
/npm-debug.log
/PhantomJS_*
/build/package-lock.json
# puphpet
puphpet
@@ -144,8 +140,6 @@ Vagrantfile
# Tests - auto-generated files
/data-autotest
/results.sarif
/tests/.phpunit.cache
/tests/.phpunit.result.cache
/tests/coverage*
/tests/css
@@ -160,22 +154,8 @@ Vagrantfile
/config/config-autotest-backup.php
/config/autoconfig.php
clover.xml
/coverage
# Tests - dependencies
tests/acceptance/vendor/
composer.phar
/lib/composer/bin
/lib/composer/bamarni
/vendor-bin/**/vendor
./.htaccess
core/js/mimetypelist.js
# Tests - cypress
cypress/downloads
cypress/snapshots
cypress/videos
/.direnv
-3
View File
@@ -1,6 +1,3 @@
# SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2016 ownCloud, Inc.
# SPDX-License-Identifier: AGPL-3.0-only
[submodule "3rdparty"]
path = 3rdparty
url = https://github.com/nextcloud/3rdparty.git
+69 -188
View File
@@ -1,201 +1,82 @@
<IfModule mod_headers.c>
<IfModule mod_setenvif.c>
<IfModule mod_fcgid.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
<IfModule mod_proxy_fcgi.c>
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
<IfModule mod_lsapi.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
<IfModule mod_setenvif.c>
<IfModule mod_fcgid.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
<IfModule mod_env.c>
# Add security and privacy related headers
# Avoid doubled headers by unsetting headers in "onsuccess" table,
# then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
<If "%{REQUEST_URI} =~ m#/login$#">
# Only on the login page we need any Origin or Referer header set.
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "same-origin"
</If>
<Else>
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "no-referrer"
</Else>
Header onsuccess unset X-Content-Type-Options
Header always set X-Content-Type-Options "nosniff"
Header onsuccess unset X-Frame-Options
Header always set X-Frame-Options "SAMEORIGIN"
Header onsuccess unset X-Permitted-Cross-Domain-Policies
Header always set X-Permitted-Cross-Domain-Policies "none"
Header onsuccess unset X-Robots-Tag
Header always set X-Robots-Tag "noindex, nofollow"
SetEnv modHeadersAvailable true
<IfModule mod_proxy_fcgi.c>
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
</IfModule>
# Add cache control for static resources
<FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|webp|ico|wasm|tflite)$">
<If "%{QUERY_STRING} =~ /(^|&)v=/">
Header set Cache-Control "max-age=15778463, immutable"
</If>
<Else>
Header set Cache-Control "max-age=15778463"
</Else>
</FilesMatch>
<IfModule mod_env.c>
# Add security and privacy related headers
# Let browsers cache OTF and WOFF files for a week
<FilesMatch "\.(otf|woff2?)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# Avoid doubled headers by unsetting headers in "onsuccess" table,
# then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "no-referrer"
Header onsuccess unset X-Content-Type-Options
Header always set X-Content-Type-Options "nosniff"
Header onsuccess unset X-Download-Options
Header always set X-Download-Options "noopen"
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 "none"
Header onsuccess unset X-XSS-Protection
Header always set X-XSS-Protection "1; mode=block"
SetEnv modHeadersAvailable true
</IfModule>
# Add cache control for static resources
<FilesMatch "\.(css|js|svg|gif)$">
Header set Cache-Control "max-age=15778463"
</FilesMatch>
# Let browsers cache WOFF files for a week
<FilesMatch "\.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 mod_php7.c>
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
<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>
#############
#### Rewrites
#############
<IfModule mod_rewrite.c>
RewriteEngine on
##
## Rule: Workaround for WebDAV with apache+php-cgi
##
## Context:
## - Sets the environment variable `HTTP_AUTHORIZATION` to the value of the `Authorization` request header
## - Always executed before and along with other rules (no `L` used)
## - XXX: *May* be replaced with an equivalent SetEnvIf in theory
## - XXX: SetEnvIf approach is already in use above for mod_proxy_cgi / mod_lsapi / mod_fcgid
##
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
##
## Rule: Workaround for WebDAV with MS DavClnt
##
## Context:
## - DavClnt attempts an OPTIONS request against `/` instead of the specified endpoint
## - Redirects the client to the endpoint rather than the login page (which confuses DavClnt)
##
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
##
## Rule: Map the RFC 8615 / RFC 6764 compliant well-known URI for CardDAV to our Remote DAV endpoint
##
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
##
## Rule: Map the RFC 8615 / RFC 6764 compliant well-known URI for CalDAV to our Remote DAV endpoint
##
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
##
## Rule: Map /remote* --> /remote.php* including the query string
##
## Context:
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
## - XXX: Is this even used anymore? Seems a relic from <NC12
##
RewriteRule ^remote/(.*) remote.php [QSA,L]
##
## Rule: Prevent access to non-public files
##
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
##
## Rule: Maps most RFC 8615 compliant well-known URIs to our main frontend controller (/index.php) by default
##
## Context:
## - Intentionally excludes URIs used for HTTPS certificate verifications
## - RFC 8555 / ACME HTTP Challenges (acme-challenge)
## - File-based Validations (pki-validation)
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
## - XXX: Sometimes we are using `/index.php` and other times `index.php` as our replacement URI; this may be incorrect
##
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
##
## Rule: Map the ocm-provider handling to our main frontend controller (/index.php)
##
## Context:
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
## - XXX: Sometimes we are using `/index.php` and other times `index.php` as our replacement URI; this may be incorrect
##
RewriteRule ^ocm-provider/?$ index.php [QSA,L]
##
## Rule: Prevent access to more non-public files
##
## Context:
## - XXX It may make sense to merge some of these with the others (i.e. the ones that don't need to be last)
##
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
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 ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
# Clients like xDavv5 on Android, or Cyberduck, use chunked requests.
# When FastCGI or FPM is used with apache, requests arrive to Nextcloud without any content.
# This leads to the creation of empty files.
# The following directive will force the problematic requests to be buffered before being forwarded to Nextcloud.
# This way, the "Transfer-Encoding" header is removed, the "Content-Length" header is set, and the request content is proxied to Nextcloud.
# Here are more information about the issue:
# - https://docs.cyberduck.io/mountainduck/issues/fastcgi/
# - https://docs.nextcloud.com/server/latest/admin_manual/issues/general_troubleshooting.html#troubleshooting-webdav
<IfModule mod_setenvif.c>
SetEnvIfNoCase Transfer-Encoding "chunked" proxy-sendcl=1
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
</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 mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
AddDefaultCharset utf-8
Options -Indexes
<IfModule pagespeed_module>
ModPagespeed Off
</IfModule>
-2
View File
@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: 2014 ownCloud, Inc.
SPDX-License-Identifier: AGPL-3.0-only
+1 -2
View File
@@ -1,5 +1,4 @@
{
"esversion": 11,
"camelcase": true,
"eqeqeq": true,
"immed": true,
@@ -12,10 +11,10 @@
"maxparams": 5,
"curly": true,
"jquery": true,
"maxlen": 120,
"indent": 4,
"browser": true,
"laxbreak": true,
"asi": true,
"globals": {
"console": true,
"it": true,
-3
View File
@@ -82,7 +82,6 @@ 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>
@@ -215,7 +214,6 @@ 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>
@@ -252,7 +250,6 @@ 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>
Micke Nordin <kano@sunet.se> Mikael Nordin <mickenordin@users.noreply.github.com>
Miguel Prokop <miguel.prokop@vtu.com>
miicha <pfitzner@physik.hu-berlin.de>
Miquel Rodríguez Telep / Michael Rodríguez-Torrent <miquel@designunbound.co.uk>

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