mirror of
https://github.com/nextcloud/server.git
synced 2026-06-11 09:42:09 -04:00
Merge remote-tracking branch 'origin/master' into fix/43260
This commit is contained in:
commit
efce43855a
4078 changed files with 89286 additions and 59305 deletions
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
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>→*Dev Containers: Open Folder in Container*.
|
||||
|
||||
Alternatively open the project directly in [GitHub Codespaces](https://github.com/features/codespaces).
|
||||
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.
|
||||
|
||||
|
|
@ -69,4 +69,4 @@ any other user.
|
|||
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.
|
||||
debug hits.
|
||||
|
|
|
|||
77
.drone.yml
77
.drone.yml
|
|
@ -1,26 +1,3 @@
|
|||
---
|
||||
kind: pipeline
|
||||
name: checkers
|
||||
|
||||
steps:
|
||||
- name: submodules
|
||||
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: checkers
|
||||
image: ghcr.io/nextcloud/continuous-integration-php8.0:latest
|
||||
commands:
|
||||
- ./autotest-checkers.sh
|
||||
secrets: [ github_token ]
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- stable*
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: litmus
|
||||
|
|
@ -31,12 +8,12 @@ steps:
|
|||
commands:
|
||||
- git submodule update --init
|
||||
- name: litmus-v1
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.0:latest
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.3:latest
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/litmus-v1/script.sh
|
||||
- name: litmus-v2
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.0:latest
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.3:latest
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/litmus-v2/script.sh
|
||||
|
|
@ -59,7 +36,7 @@ steps:
|
|||
commands:
|
||||
- git submodule update --init
|
||||
- name: caldavtester-new-endpoint
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.0:latest
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.3:latest
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/caldav/install.sh
|
||||
|
|
@ -83,7 +60,7 @@ steps:
|
|||
commands:
|
||||
- git submodule update --init
|
||||
- name: caldavtester-old-endpoint
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.0:latest
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.3:latest
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/caldav/install.sh
|
||||
|
|
@ -107,7 +84,7 @@ steps:
|
|||
commands:
|
||||
- git submodule update --init
|
||||
- name: carddavtester-new-endpoint
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.0:latest
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.3:latest
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/carddav/install.sh
|
||||
|
|
@ -131,7 +108,7 @@ steps:
|
|||
commands:
|
||||
- git submodule update --init
|
||||
- name: carddavtester-old-endpoint
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.0:latest
|
||||
image: ghcr.io/nextcloud/continuous-integration-litmus-php8.3:latest
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/carddav/install.sh
|
||||
|
|
@ -145,46 +122,6 @@ trigger:
|
|||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: samba
|
||||
|
||||
steps:
|
||||
- name: submodules
|
||||
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: sqlite-php8.0-samba-native
|
||||
image: ghcr.io/nextcloud/continuous-integration-samba-native-php8.0:latest
|
||||
commands:
|
||||
- smbd -D -FS &
|
||||
- ./autotest-external.sh sqlite smb-linux
|
||||
- wget https://codecov.io/bash -O codecov.sh
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
|
||||
# Temporarily disabled because it times out for unknown reasons 98% of the time
|
||||
#- name: sqlite-php8.0-samba-non-native
|
||||
# image: ghcr.io/nextcloud/continuous-integration-samba-non-native-php8.0:latest
|
||||
# commands:
|
||||
# - smbd -D -FS &
|
||||
# - ./autotest-external.sh sqlite smb-linux
|
||||
# - wget https://codecov.io/bash -O codecov.sh
|
||||
# - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
|
||||
# - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
|
||||
# - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
|
||||
# - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- stable*
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
|
||||
---
|
||||
kind: signature
|
||||
hmac: a4f9a3fec27fbd14dfb478902b7b5cbc155916a309f05fe6eb78961b3db18c3a
|
||||
hmac: 1c487e85d1dba3fec3151868f8f94fc46b4ecb0f821c35516c193700cdbc2a9c
|
||||
|
|
|
|||
10
.github/CODEOWNERS
vendored
10
.github/CODEOWNERS
vendored
|
|
@ -29,11 +29,11 @@
|
|||
/apps/workflowengine/appinfo/info.xml @blizzz @juliushaertl
|
||||
|
||||
# Frontend expertise
|
||||
/apps/files/src @skjnldsv
|
||||
/apps/files_external/src @skjnldsv
|
||||
/apps/files_reminders/src @skjnldsv
|
||||
/apps/files_sharing/src/actions @skjnldsv
|
||||
/apps/files_trashbin/src @skjnldsv
|
||||
/apps/files/src* @skjnldsv
|
||||
/apps/files_external/src* @skjnldsv
|
||||
/apps/files_reminders/src* @skjnldsv
|
||||
/apps/files_sharing/src/actions* @skjnldsv
|
||||
/apps/files_trashbin/src* @skjnldsv
|
||||
|
||||
# Security team
|
||||
/resources/codesigning @mgallien @miaulalala @nickvergessen
|
||||
|
|
|
|||
13
.github/CONTRIBUTING.md
vendored
13
.github/CONTRIBUTING.md
vendored
|
|
@ -29,6 +29,13 @@ 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.
|
||||
|
|
@ -44,9 +51,9 @@ their contribution under the project's license.
|
|||
Please read [contribute/developer-certificate-of-origin][dcofile].
|
||||
If you can certify it, then just add a line to every git commit message:
|
||||
|
||||
````
|
||||
Signed-off-by: Random J Developer <random@developer.example.org>
|
||||
````
|
||||
```
|
||||
Signed-off-by: Random J Developer <random@developer.example.org>
|
||||
```
|
||||
|
||||
Use your real name (sorry, no pseudonyms or anonymous contributions).
|
||||
If you set your `user.name` and `user.email` git configs, you can sign your
|
||||
|
|
|
|||
2
.github/ISSUE_TEMPLATE/BUG_REPORT.yml
vendored
2
.github/ISSUE_TEMPLATE/BUG_REPORT.yml
vendored
|
|
@ -76,9 +76,9 @@ body:
|
|||
Select Nextcloud Server version.
|
||||
_Versions not listed here are not maintained and not supported anymore_
|
||||
options:
|
||||
- "26"
|
||||
- "27"
|
||||
- "28"
|
||||
- "29"
|
||||
- "master"
|
||||
validations:
|
||||
required: true
|
||||
|
|
|
|||
105
.github/dependabot.yml
vendored
105
.github/dependabot.yml
vendored
|
|
@ -14,6 +14,49 @@ updates:
|
|||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
|
||||
# cs-fixer
|
||||
- package-ecosystem: composer
|
||||
directory: "/vendor-bin/cs-fixer"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "04:10"
|
||||
timezone: Europe/Copenhagen
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
|
||||
# openapi-extractor
|
||||
- package-ecosystem: composer
|
||||
directory: "/vendor-bin/openapi-extractor"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "04:20"
|
||||
timezone: Europe/Brussels
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
- "provokateurin"
|
||||
|
||||
# psalm
|
||||
- package-ecosystem: composer
|
||||
directory: "/vendor-bin/psalm"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "04:30"
|
||||
timezone: Europe/Madrid
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
|
||||
# Main master npm
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
|
|
@ -57,26 +100,6 @@ updates:
|
|||
|
||||
|
||||
# Main stableXX npm
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable26
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
|
||||
# Disable automatic rebasing because without a build CI will likely fail anyway
|
||||
rebase-strategy: "disabled"
|
||||
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
|
|
@ -117,15 +140,14 @@ updates:
|
|||
# Disable automatic rebasing because without a build CI will likely fail anyway
|
||||
rebase-strategy: "disabled"
|
||||
|
||||
# Testing StableXX composer
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable26
|
||||
target-branch: stable29
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
|
|
@ -135,7 +157,10 @@ updates:
|
|||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
|
||||
# Disable automatic rebasing because without a build CI will likely fail anyway
|
||||
rebase-strategy: "disabled"
|
||||
|
||||
# Testing StableXX composer
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
schedule:
|
||||
|
|
@ -172,11 +197,37 @@ updates:
|
|||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
|
||||
|
||||
- package-ecosystem: composer
|
||||
directory: "/build/integration"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
target-branch: stable29
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
ignore:
|
||||
# ignore all GitHub linguist patch updates
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
|
||||
|
||||
# GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
interval: monthly
|
||||
timezone: Europe/Paris
|
||||
groups:
|
||||
github-actions:
|
||||
patterns:
|
||||
- "*"
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
reviewers:
|
||||
- "nextcloud/server-dependabot"
|
||||
|
||||
|
|
|
|||
96
.github/workflows/autocheckers.yml
vendored
Normal file
96
.github/workflows/autocheckers.yml
vendored
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
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'
|
||||
|
||||
autocheckers:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: changes
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.3']
|
||||
|
||||
name: PHP checkers
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@7fdd3ece872ec7ec4c098ae5ab7637d5e0a96067 # v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: ctype, json, mbstring
|
||||
coverage: none
|
||||
ini-file: development
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Set up dependencies
|
||||
run: composer i
|
||||
|
||||
- name: Check auto loaders
|
||||
run: bash ./build/autoloaderchecker.sh
|
||||
|
||||
- name: Check translations are JSON decodeable
|
||||
run: php ./build/translation-checker.php
|
||||
|
||||
- name: Check translations do not contain triple dot but ellipsis
|
||||
run: php ./build/triple-dot-checker.php
|
||||
|
||||
- name: Check .htaccess does not contain invalid changes
|
||||
run: php ./build/htaccess-checker.php
|
||||
|
||||
- name: Check that all and only expected files are included
|
||||
run: php ./build/files-checker.php
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, autocheckers]
|
||||
|
||||
if: always()
|
||||
|
||||
name: autocheckers-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.autocheckers.result != 'success' }}; then exit 1; fi
|
||||
2
.github/workflows/block-merge-eol.yml
vendored
2
.github/workflows/block-merge-eol.yml
vendored
|
|
@ -34,4 +34,4 @@ jobs:
|
|||
|
||||
- name: Checking if ${{ env.server_major }} is EOL
|
||||
run: |
|
||||
php -r 'echo json_encode(require_once "config.php");' | jq --arg version "${{ env.server_major }}" '.stable[$version]["100"].eol // .beta[$version]["100"].eol' | grep --silent -i 'false'
|
||||
php -r 'echo json_encode(require_once "config.php");' | jq --arg version "${{ env.server_major }}" '.stable[$version]["100"].eol // .beta[$version]["100"].eol // "NotEOL"' | grep -q "NotEOL"
|
||||
|
|
|
|||
53
.github/workflows/block-outdated-3rdparty.yml
vendored
Normal file
53
.github/workflows/block-outdated-3rdparty.yml
vendored
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
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@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '3rdparty'
|
||||
- 'version.php'
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
|
||||
|
||||
- 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: Last 3rdparty commit on target branch
|
||||
id: target
|
||||
run: |
|
||||
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty ${{ github.base_ref }} | awk '{ print $1}')" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Compare if 3rdparty commits are different
|
||||
run: |
|
||||
echo '3rdparty/ seems to not point to the last commit of the dedicated branch:'
|
||||
echo "Branch has: ${{ steps.actual.outputs.commit }}"
|
||||
echo "${{ github.base_ref }} has: ${{ steps.target.outputs.commit }}"
|
||||
|
||||
- name: Fail if 3rdparty commits are different
|
||||
if: ${{ steps.changes.outputs.src != 'false' && steps.actual.outputs.commit != steps.target.outputs.commit }}
|
||||
run: |
|
||||
exit 1
|
||||
31
.github/workflows/block-unconventional-commits.yml
vendored
Normal file
31
.github/workflows/block-unconventional-commits.yml
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
|
||||
name: Block unconventional commits
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, ready_for_review, reopened, synchronize]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: block-unconventional-commits-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
block-unconventional-commits:
|
||||
name: Block unconventional commits
|
||||
|
||||
runs-on: ubuntu-latest-low
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
|
||||
|
||||
- uses: webiny/action-conventional-commits@8bc41ff4e7d423d56fa4905f6ff79209a78776c7 # v1.3.0
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
4
.github/workflows/command-compile.yml
vendored
4
.github/workflows/command-compile.yml
vendored
|
|
@ -32,7 +32,7 @@ jobs:
|
|||
reactions: "+1"
|
||||
|
||||
- name: Parse command
|
||||
uses: skjnldsv/parse-command-comment@d8c0034c481b791dd6348fcacd9c510dc3a4cb4f # v2
|
||||
uses: skjnldsv/parse-command-comment@5c955203c52424151e6d0e58fb9de8a9f6a605a1 # v2
|
||||
id: command
|
||||
|
||||
# Init path depending on which command is run
|
||||
|
|
@ -61,7 +61,7 @@ jobs:
|
|||
key: git-repo
|
||||
|
||||
- name: Checkout ${{ needs.init.outputs.head_ref }}
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
fetch-depth: 0
|
||||
|
|
|
|||
2
.github/workflows/command-pull-3rdparty.yml
vendored
2
.github/workflows/command-pull-3rdparty.yml
vendored
|
|
@ -30,7 +30,7 @@ jobs:
|
|||
id: comment-branch
|
||||
|
||||
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
|
|
|||
2
.github/workflows/command-rebase.yml
vendored
2
.github/workflows/command-rebase.yml
vendored
|
|
@ -31,7 +31,7 @@ jobs:
|
|||
reaction-type: "+1"
|
||||
|
||||
- name: Checkout the latest code
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.5.2
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3.5.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
|
|
|||
12
.github/workflows/cypress.yml
vendored
12
.github/workflows/cypress.yml
vendored
|
|
@ -24,14 +24,14 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
|
||||
with:
|
||||
# We need to checkout submodules for 3rdparty
|
||||
submodules: true
|
||||
|
||||
- name: Check composer.json
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2
|
||||
with:
|
||||
files: "composer.json"
|
||||
|
||||
|
|
@ -101,7 +101,7 @@ jobs:
|
|||
run: npm i -g npm@"${{ needs.init.outputs.npmVersion }}"
|
||||
|
||||
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
|
||||
uses: cypress-io/github-action@ebe8b24c4428922d0f793a5c4c96853a633180e3 # v6.6.0
|
||||
uses: cypress-io/github-action@1b70233146622b69e789ccdd4f9452adc638d25a # v6.6.1
|
||||
with:
|
||||
component: ${{ matrix.containers == 'component' }}
|
||||
group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run E2E' || '' }}
|
||||
|
|
@ -121,7 +121,7 @@ jobs:
|
|||
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
|
||||
|
||||
- name: Upload snapshots
|
||||
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
|
||||
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
|
||||
if: always()
|
||||
with:
|
||||
name: snapshots_${{ matrix.containers }}
|
||||
|
|
@ -132,7 +132,7 @@ jobs:
|
|||
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log
|
||||
|
||||
- name: Upload NC logs
|
||||
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
|
||||
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
|
||||
if: failure() && matrix.containers != 'component'
|
||||
with:
|
||||
name: nc_logs_${{ matrix.containers }}
|
||||
|
|
@ -143,7 +143,7 @@ jobs:
|
|||
run: docker exec nextcloud-cypress-tests-server tar -cvjf - data > data.tar
|
||||
|
||||
- name: Upload data dir archive
|
||||
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
|
||||
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
|
||||
if: failure() && matrix.containers != 'component'
|
||||
with:
|
||||
name: nc_data_${{ matrix.containers }}
|
||||
|
|
|
|||
10
.github/workflows/files-external-ftp.yml
vendored
10
.github/workflows/files-external-ftp.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -41,17 +41,17 @@ jobs:
|
|||
# do not stop on another job's failure
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.3']
|
||||
php-versions: ['8.1', '8.3']
|
||||
ftpd: ['proftpd', 'vsftpd', 'pure-ftpd']
|
||||
include:
|
||||
- php-versions: '8.0'
|
||||
- php-versions: '8.1'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.ftpd }}
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -98,7 +98,7 @@ jobs:
|
|||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-ftp
|
||||
|
|
|
|||
14
.github/workflows/files-external-s3.yml
vendored
14
.github/workflows/files-external-s3.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -39,7 +39,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.2'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
|
@ -58,7 +58,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -96,7 +96,7 @@ jobs:
|
|||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-s3
|
||||
|
|
@ -115,7 +115,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.3'
|
||||
coverage: true
|
||||
|
|
@ -133,7 +133,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -163,7 +163,7 @@ jobs:
|
|||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-s3
|
||||
|
|
|
|||
12
.github/workflows/files-external-sftp.yml
vendored
12
.github/workflows/files-external-sftp.yml
vendored
|
|
@ -3,7 +3,7 @@ on:
|
|||
pull_request:
|
||||
schedule:
|
||||
- cron: "5 2 * * *"
|
||||
|
||||
|
||||
concurrency:
|
||||
group: files-external-sftp-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -41,17 +41,17 @@ jobs:
|
|||
# do not stop on another job's failure
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.3']
|
||||
php-versions: ['8.1', '8.3']
|
||||
sftpd: ['openssh']
|
||||
include:
|
||||
- php-versions: '8.0'
|
||||
- php-versions: '8.1'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.sftpd }}
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -87,7 +87,7 @@ jobs:
|
|||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-sftp
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -41,12 +41,12 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Checkout user_saml
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
repository: nextcloud/user_saml
|
||||
path: apps/user_saml
|
||||
|
|
|
|||
108
.github/workflows/files-external-smb.yml
vendored
Normal file
108
.github/workflows/files-external-smb.yml
vendored
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
name: PHPUnit files_external SMB
|
||||
on:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: "5 2 * * *"
|
||||
|
||||
concurrency:
|
||||
group: files-external-smb-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '3rdparty/**'
|
||||
- 'apps/files_external/**'
|
||||
- 'vendor/**'
|
||||
- 'vendor-bin/**'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
- '**.php'
|
||||
|
||||
files-external-smb:
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
|
||||
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.1', '8.3']
|
||||
include:
|
||||
- php-versions: '8.1'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
name: php${{ matrix.php-versions }}-smb
|
||||
|
||||
services:
|
||||
samba:
|
||||
image: ghcr.io/nextcloud/continuous-integration-samba:latest
|
||||
ports:
|
||||
- 445:445
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, smbclient, sqlite, pdo_sqlite
|
||||
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
|
||||
ini-file: development
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Set up smbclient
|
||||
# This is needed as icewind/smb php library for notify
|
||||
run: sudo apt-get install -y smbclient
|
||||
|
||||
- name: Set up Nextcloud
|
||||
run: |
|
||||
composer install
|
||||
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
|
||||
./occ config:system:set --value true --type boolean allow_local_remote_servers
|
||||
./occ app:enable --force files_external
|
||||
echo "<?php return ['run'=>true, 'host'=>'localhost', 'user'=>'test', 'password'=>'test', 'root'=>'', 'share'=>'public'];" > apps/files_external/tests/config.smb.php
|
||||
|
||||
- name: Wait for smb
|
||||
run: |
|
||||
apps/files_external/tests/env/wait-for-connection 127.0.0.1 445 60
|
||||
|
||||
- name: PHPUnit
|
||||
run: composer run test:files_external -- --verbose \
|
||||
apps/files_external/tests/Storage/SmbTest.php \
|
||||
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@c16abc29c95fcf9174b58eb7e1abf4c866893bc8 # v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-smb
|
||||
|
||||
files-external-smb-summary:
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, files-external-smb]
|
||||
|
||||
if: always()
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-smb.result != 'success' }}; then exit 1; fi
|
||||
8
.github/workflows/files-external-webdav.yml
vendored
8
.github/workflows/files-external-webdav.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -39,7 +39,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.2'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
|
@ -54,7 +54,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -89,7 +89,7 @@ jobs:
|
|||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@4fe8c5f003fae66aa5ebb77cfd3e7bfbbda0b6b0 # v3.1.5
|
||||
uses: codecov/codecov-action@c16abc29c95fcf9174b58eb7e1abf4c866893bc8 # v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-webdav
|
||||
|
|
|
|||
93
.github/workflows/files-external.yml
vendored
Normal file
93
.github/workflows/files-external.yml
vendored
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
name: PHPUnit files_external generic
|
||||
on:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: "5 2 * * *"
|
||||
|
||||
concurrency:
|
||||
group: files-external-generic-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '3rdparty/**'
|
||||
- 'apps/files_external/**'
|
||||
- 'vendor/**'
|
||||
- 'vendor-bin/**'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
|
||||
files-external-generic:
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
|
||||
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.2'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
name: php${{ matrix.php-versions }}-generic
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
|
||||
ini-file: development
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
OBJECT_STORE_KEY: nextcloud
|
||||
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
|
||||
run: |
|
||||
composer install
|
||||
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
|
||||
./occ app:enable --force files_external
|
||||
|
||||
- name: PHPUnit
|
||||
run: composer run test:files_external \
|
||||
${{ matrix.coverage && ' --coverage-clover ./clover.xml' || '' }}
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-generic
|
||||
|
||||
files-external-summary:
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, files-external-generic ]
|
||||
|
||||
if: always()
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.files-external-generic.result != 'success' }}; then exit 1; fi
|
||||
6
.github/workflows/integration-s3-primary.yml
vendored
6
.github/workflows/integration-s3-primary.yml
vendored
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -41,7 +41,7 @@ jobs:
|
|||
# do not stop on another job's failure
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['8.0']
|
||||
php-versions: ['8.1']
|
||||
key: ['objectstore', 'objectstore_multibucket']
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
|
||||
|
|
@ -63,7 +63,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
|
|||
6
.github/workflows/integration-sqlite.yml
vendored
6
.github/workflows/integration-sqlite.yml
vendored
|
|
@ -23,7 +23,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -88,13 +88,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Checkout Talk app
|
||||
if: ${{ matrix.test-suite == 'videoverification_features' }}
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
|
||||
with:
|
||||
repository: nextcloud/spreed
|
||||
path: apps/spreed
|
||||
|
|
|
|||
4
.github/workflows/lint-eslint.yml
vendored
4
.github/workflows/lint-eslint.yml
vendored
|
|
@ -26,7 +26,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -54,7 +54,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
||||
|
|
|
|||
4
.github/workflows/lint-php-cs.yml
vendored
4
.github/workflows/lint-php-cs.yml
vendored
|
|
@ -22,7 +22,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -45,7 +45,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
|
||||
|
|
|
|||
6
.github/workflows/lint-php.yml
vendored
6
.github/workflows/lint-php.yml
vendored
|
|
@ -23,7 +23,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -47,13 +47,13 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: [ "8.0", "8.1", "8.2", "8.3" ]
|
||||
php-versions: [ "8.1", "8.2", "8.3" ]
|
||||
|
||||
name: php-lint
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
|
||||
|
|
|
|||
12
.github/workflows/node-tests.yml
vendored
12
.github/workflows/node-tests.yml
vendored
|
|
@ -17,7 +17,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -48,7 +48,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1
|
||||
|
|
@ -69,7 +69,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
|
||||
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8
|
||||
|
|
@ -89,7 +89,7 @@ jobs:
|
|||
run: npm run test:coverage
|
||||
|
||||
- name: Collect coverage
|
||||
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4
|
||||
uses: codecov/codecov-action@c16abc29c95fcf9174b58eb7e1abf4c866893bc8 # v4.1.1
|
||||
with:
|
||||
files: ./coverage/lcov.info
|
||||
|
||||
|
|
@ -104,7 +104,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
|
||||
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8
|
||||
|
|
@ -135,7 +135,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
|
||||
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8
|
||||
|
|
|
|||
4
.github/workflows/node.yml
vendored
4
.github/workflows/node.yml
vendored
|
|
@ -23,7 +23,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -48,7 +48,7 @@ jobs:
|
|||
name: NPM build
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.6.0
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3.6.0
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
||||
|
|
|
|||
6
.github/workflows/npm-audit-fix.yml
vendored
6
.github/workflows/npm-audit-fix.yml
vendored
|
|
@ -18,13 +18,13 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ["main", "master", "stable28", "stable27", "stable26"]
|
||||
branches: ["main", "master", "stable29", "stable28", "stable27"]
|
||||
|
||||
name: npm-audit-fix-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v3.6.0
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3.6.0
|
||||
with:
|
||||
ref: ${{ matrix.branches }}
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ jobs:
|
|||
|
||||
- name: Create Pull Request
|
||||
if: always()
|
||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5
|
||||
uses: peter-evans/create-pull-request@70a41aba780001da0a30141984ae2a0c95d8704e # v5
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: "chore(deps): fix npm audit"
|
||||
|
|
|
|||
8
.github/workflows/object-storage-azure.yml
vendored
8
.github/workflows/object-storage-azure.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -43,7 +43,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.3'
|
||||
coverage: true
|
||||
|
|
@ -67,7 +67,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -103,7 +103,7 @@ jobs:
|
|||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-azure
|
||||
|
|
|
|||
8
.github/workflows/object-storage-s3.yml
vendored
8
.github/workflows/object-storage-s3.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -43,7 +43,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.3'
|
||||
coverage: true
|
||||
|
|
@ -68,7 +68,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -109,7 +109,7 @@ jobs:
|
|||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-s3
|
||||
|
|
|
|||
8
.github/workflows/object-storage-swift.yml
vendored
8
.github/workflows/object-storage-swift.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -43,7 +43,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.3'
|
||||
coverage: true
|
||||
|
|
@ -65,7 +65,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ jobs:
|
|||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-swift
|
||||
|
|
|
|||
2
.github/workflows/openapi.yml
vendored
2
.github/workflows/openapi.yml
vendored
|
|
@ -15,7 +15,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@v2
|
||||
|
|
|
|||
11
.github/workflows/performance.yml
vendored
11
.github/workflows/performance.yml
vendored
|
|
@ -15,13 +15,13 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['8.0']
|
||||
php-versions: ['8.1']
|
||||
|
||||
name: performance-${{ matrix.php-versions }}
|
||||
|
||||
steps:
|
||||
- name: Checkout server before PR
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
ref: ${{ github.event.pull_request.base.ref }}
|
||||
|
|
@ -45,8 +45,9 @@ jobs:
|
|||
with:
|
||||
blueprint: tests/blueprints/basic.toml
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
|
||||
- name: Run before measurements
|
||||
uses: nextcloud/profiler@1e66a9de5f76a01e9d1db4f0153bcc1cbf989b3d
|
||||
uses: nextcloud/profiler@6801ee10fc80f10b444388fb6ca9b36ad8a2ea83
|
||||
with:
|
||||
run: |
|
||||
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
|
||||
|
|
@ -68,7 +69,7 @@ jobs:
|
|||
|
||||
- name: Run after measurements
|
||||
id: compare
|
||||
uses: nextcloud/profiler@1e66a9de5f76a01e9d1db4f0153bcc1cbf989b3d
|
||||
uses: nextcloud/profiler@6801ee10fc80f10b444388fb6ca9b36ad8a2ea83
|
||||
with:
|
||||
run: |
|
||||
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
|
||||
|
|
@ -82,7 +83,7 @@ jobs:
|
|||
|
||||
- name: Upload profiles
|
||||
if: always()
|
||||
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8
|
||||
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
|
||||
with:
|
||||
name: profiles
|
||||
path: |
|
||||
|
|
|
|||
4
.github/workflows/phpunit-32bits.yml
vendored
4
.github/workflows/phpunit-32bits.yml
vendored
|
|
@ -26,11 +26,11 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0','8.3']
|
||||
php-versions: ['8.1','8.3']
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
|
|||
8
.github/workflows/phpunit-mariadb.yml
vendored
8
.github/workflows/phpunit-mariadb.yml
vendored
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -52,7 +52,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0']
|
||||
php-versions: ['8.1']
|
||||
mariadb-versions: ['10.3', '10.4', '10.5', '10.6', '10.11']
|
||||
include:
|
||||
- php-versions: '8.3'
|
||||
|
|
@ -81,7 +81,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ jobs:
|
|||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-mariadb
|
||||
|
|
|
|||
8
.github/workflows/phpunit-memcached.yml
vendored
8
.github/workflows/phpunit-memcached.yml
vendored
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -52,7 +52,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.2'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
|
@ -68,7 +68,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -98,7 +98,7 @@ jobs:
|
|||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-memcached
|
||||
|
|
|
|||
8
.github/workflows/phpunit-mysql.yml
vendored
8
.github/workflows/phpunit-mysql.yml
vendored
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -52,7 +52,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0']
|
||||
php-versions: ['8.1']
|
||||
mysql-versions: ['8.0', '8.3']
|
||||
include:
|
||||
- mysql-versions: '8.0'
|
||||
|
|
@ -81,7 +81,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ jobs:
|
|||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-mysql
|
||||
|
|
|
|||
8
.github/workflows/phpunit-nodb.yml
vendored
8
.github/workflows/phpunit-nodb.yml
vendored
|
|
@ -26,7 +26,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -53,7 +53,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.2'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
|
@ -69,7 +69,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -102,7 +102,7 @@ jobs:
|
|||
|
||||
- name: Upload nodb code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.nodb.xml
|
||||
flags: phpunit-nodb
|
||||
|
|
|
|||
9
.github/workflows/phpunit-oci.yml
vendored
9
.github/workflows/phpunit-oci.yml
vendored
|
|
@ -20,7 +20,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -42,12 +42,13 @@ jobs:
|
|||
phpunit-oci:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: changes
|
||||
if: needs.changes.outputs.src != 'false' && ${{ github.repository_owner != 'nextcloud-gmbh' }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
oracle-versions: ['11']
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.3'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
|
@ -83,7 +84,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -116,7 +117,7 @@ jobs:
|
|||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-oci
|
||||
|
|
|
|||
8
.github/workflows/phpunit-pgsql.yml
vendored
8
.github/workflows/phpunit-pgsql.yml
vendored
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -52,7 +52,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0']
|
||||
php-versions: ['8.1']
|
||||
# To keep the matrix smaller we ignore PostgreSQL '11', '13', '14' as we already test 10 and 15 as lower and upper bound
|
||||
postgres-versions: ['10', '15', '16']
|
||||
include:
|
||||
|
|
@ -81,7 +81,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -114,7 +114,7 @@ jobs:
|
|||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-postgres
|
||||
|
|
|
|||
8
.github/workflows/phpunit-sqlite.yml
vendored
8
.github/workflows/phpunit-sqlite.yml
vendored
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
|
@ -52,7 +52,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||
php-versions: ['8.1', '8.2', '8.3']
|
||||
include:
|
||||
- php-versions: '8.1'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
|
|
@ -68,7 +68,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
|
|
@ -102,7 +102,7 @@ jobs:
|
|||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v4.1.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-sqlite
|
||||
|
|
|
|||
12
.github/workflows/static-code-analysis.yml
vendored
12
.github/workflows/static-code-analysis.yml
vendored
|
|
@ -15,14 +15,14 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '8.0'
|
||||
php-version: '8.1'
|
||||
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
coverage: none
|
||||
env:
|
||||
|
|
@ -49,14 +49,14 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@master
|
||||
with:
|
||||
php-version: '8.0'
|
||||
php-version: '8.1'
|
||||
extensions: ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
coverage: none
|
||||
|
||||
|
|
@ -77,14 +77,14 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '8.0'
|
||||
php-version: '8.1'
|
||||
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
coverage: none
|
||||
env:
|
||||
|
|
|
|||
6
.github/workflows/update-cacert-bundle.yml
vendored
6
.github/workflows/update-cacert-bundle.yml
vendored
|
|
@ -12,12 +12,12 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ["master", "stable28", "stable27", "stable26", "stable25", "stable24", "stable23", "stable22"]
|
||||
branches: ["master", "stable29", "stable28", "stable27", "stable26", "stable25", "stable24", "stable23", "stable22"]
|
||||
|
||||
name: update-ca-certificate-bundle-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
ref: ${{ matrix.branches }}
|
||||
submodules: true
|
||||
|
|
@ -26,7 +26,7 @@ jobs:
|
|||
run: curl --etag-compare build/ca-bundle-etag.txt --etag-save build/ca-bundle-etag.txt --output resources/config/ca-bundle.crt https://curl.se/ca/cacert.pem
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
|
||||
uses: peter-evans/create-pull-request@70a41aba780001da0a30141984ae2a0c95d8704e
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: "fix(security): Update CA certificate bundle"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ jobs:
|
|||
name: update-code-signing-crl-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
ref: ${{ matrix.branches }}
|
||||
submodules: true
|
||||
|
|
@ -29,7 +29,7 @@ jobs:
|
|||
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@153407881ec5c347639a548ade7d8ad1d6740e38
|
||||
uses: peter-evans/create-pull-request@70a41aba780001da0a30141984ae2a0c95d8704e
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: "fix(security): Update code signing revocation list"
|
||||
|
|
|
|||
10
.github/workflows/update-psalm-baseline.yml
vendored
10
.github/workflows/update-psalm-baseline.yml
vendored
|
|
@ -14,12 +14,12 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ["master", "stable28", "stable27", "stable26"]
|
||||
branches: ["master", "stable29", "stable28", "stable27"]
|
||||
|
||||
name: update-psalm-baseline-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
|
||||
with:
|
||||
ref: ${{ matrix.branches }}
|
||||
submodules: true
|
||||
|
|
@ -27,7 +27,7 @@ jobs:
|
|||
- name: Set up php
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '8.0'
|
||||
php-version: '8.1'
|
||||
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
coverage: none
|
||||
env:
|
||||
|
|
@ -50,10 +50,10 @@ jobs:
|
|||
git checkout composer.json composer.lock lib/composer
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
|
||||
uses: peter-evans/create-pull-request@70a41aba780001da0a30141984ae2a0c95d8704e
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: Update psalm baseline
|
||||
commit-message: "chore(tests): Update psalm baseline"
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
||||
signoff: true
|
||||
|
|
|
|||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -171,5 +171,6 @@ composer.phar
|
|||
core/js/mimetypelist.js
|
||||
|
||||
# Tests - cypress
|
||||
cypress/downloads
|
||||
cypress/snapshots
|
||||
cypress/videos
|
||||
|
|
|
|||
2
3rdparty
2
3rdparty
|
|
@ -1 +1 @@
|
|||
Subproject commit 77db3ca48a21013824dde3c932cdcc462d52984f
|
||||
Subproject commit fa5a4a4b221f7176610f523f5fd9145e81885629
|
||||
124
__tests__/FileSystemAPIUtils.ts
Normal file
124
__tests__/FileSystemAPIUtils.ts
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
import { basename } from 'node:path'
|
||||
import mime from 'mime'
|
||||
|
||||
class FileSystemEntry {
|
||||
|
||||
private _isFile: boolean
|
||||
private _fullPath: string
|
||||
|
||||
constructor(isFile: boolean, fullPath: string) {
|
||||
this._isFile = isFile
|
||||
this._fullPath = fullPath
|
||||
}
|
||||
|
||||
get isFile() {
|
||||
return !!this._isFile
|
||||
}
|
||||
|
||||
get isDirectory() {
|
||||
return !this.isFile
|
||||
}
|
||||
|
||||
get name() {
|
||||
return basename(this._fullPath)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class FileSystemFileEntry extends FileSystemEntry {
|
||||
|
||||
private _contents: string
|
||||
private _lastModified: number
|
||||
|
||||
constructor(fullPath: string, contents: string, lastModified = Date.now()) {
|
||||
super(true, fullPath)
|
||||
this._contents = contents
|
||||
this._lastModified = lastModified
|
||||
}
|
||||
|
||||
file(success: (file: File) => void) {
|
||||
const lastModified = this._lastModified
|
||||
// Faking the mime by using the file extension
|
||||
const type = mime.getType(this.name) || ''
|
||||
success(new File([this._contents], this.name, { lastModified, type }))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class FileSystemDirectoryEntry extends FileSystemEntry {
|
||||
|
||||
private _entries: FileSystemEntry[]
|
||||
|
||||
constructor(fullPath: string, entries: FileSystemEntry[]) {
|
||||
super(false, fullPath)
|
||||
this._entries = entries || []
|
||||
}
|
||||
|
||||
createReader() {
|
||||
let read = false
|
||||
return {
|
||||
readEntries: (success: (entries: FileSystemEntry[]) => void) => {
|
||||
if (read) {
|
||||
return success([])
|
||||
}
|
||||
read = true
|
||||
success(this._entries)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* This mocks the File API's File class
|
||||
* It will allow us to test the Filesystem API as well as the
|
||||
* File API in the same test suite.
|
||||
*/
|
||||
export class DataTransferItem {
|
||||
|
||||
private _type: string
|
||||
private _entry: FileSystemEntry
|
||||
|
||||
getAsEntry?: () => FileSystemEntry
|
||||
|
||||
constructor(type = '', entry: FileSystemEntry, isFileSystemAPIAvailable = true) {
|
||||
this._type = type
|
||||
this._entry = entry
|
||||
|
||||
// Only when the Files API is available we are
|
||||
// able to get the entry
|
||||
if (isFileSystemAPIAvailable) {
|
||||
this.getAsEntry = () => this._entry
|
||||
}
|
||||
}
|
||||
|
||||
get kind() {
|
||||
return 'file'
|
||||
}
|
||||
|
||||
get type() {
|
||||
return this._type
|
||||
}
|
||||
|
||||
getAsFile(): File|null {
|
||||
if (this._entry.isFile && this._entry instanceof FileSystemFileEntry) {
|
||||
let file: File | null = null
|
||||
this._entry.file((f) => {
|
||||
file = f
|
||||
})
|
||||
return file
|
||||
}
|
||||
|
||||
// The browser will return an empty File object if the entry is a directory
|
||||
return new File([], this._entry.name, { type: '' })
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const fileSystemEntryToDataTransferItem = (entry: FileSystemEntry, isFileSystemAPIAvailable = true): DataTransferItem => {
|
||||
return new DataTransferItem(
|
||||
entry.isFile ? 'text/plain' : 'httpd/unix-directory',
|
||||
entry,
|
||||
isFileSystemAPIAvailable,
|
||||
)
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
<name>Auditing / Logging</name>
|
||||
<summary>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</summary>
|
||||
<description>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</description>
|
||||
<version>1.19.0</version>
|
||||
<version>1.20.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Nextcloud</author>
|
||||
<namespace>AdminAudit</namespace>
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
<category>monitoring</category>
|
||||
<bugs>https://github.com/nextcloud/server/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="29" max-version="29"/>
|
||||
<nextcloud min-version="30" max-version="30"/>
|
||||
</dependencies>
|
||||
<background-jobs>
|
||||
<job>OCA\AdminAudit\BackgroundJobs\Rotate</job>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Revision/Logning",
|
||||
"Auditing / Logging" : "Revision / Logning",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Bidrager med lognings funktionalitet til Nextcloud, såsom logning af fil tilgang eller andre sensitive handlinger"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "Revision/Logning",
|
||||
"Auditing / Logging" : "Revision / Logning",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Bidrager med lognings funktionalitet til Nextcloud, såsom logning af fil tilgang eller andre sensitive handlinger"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -2,6 +2,6 @@ OC.L10N.register(
|
|||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Audit / Journalisation",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud, telles que la journalisation des accès aux fichiers ou d'autres actions sensibles."
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud, telles que la journalisation des accès aux fichiers ou d’autres actions sensibles."
|
||||
},
|
||||
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "Audit / Journalisation",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud, telles que la journalisation des accès aux fichiers ou d'autres actions sensibles."
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fournit des capacités de journalisation pour Nextcloud, telles que la journalisation des accès aux fichiers ou d’autres actions sensibles."
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
|
|
@ -4,4 +4,4 @@ OC.L10N.register(
|
|||
"Auditing / Logging" : "פיקוח / תיעוד",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "מספק יכולות תיעוד ל־Nextcloud כגון תיעוד גישה ליומן התיעוד או פעולות רגישות אחרות."
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");
|
||||
"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "פיקוח / תיעוד",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "מספק יכולות תיעוד ל־Nextcloud כגון תיעוד גישה ליומן התיעוד או פעולות רגישות אחרות."
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"
|
||||
}
|
||||
7
apps/admin_audit/l10n/ka.js
Normal file
7
apps/admin_audit/l10n/ka.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "აუდიტი / ჟურნალი",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "იძლევა ჟურნალის შესაძლებლობებს Nextcloud-ისთვის, როგორიცაა ფაილებზე წვდომის ან სხვა მგრძნობიარე ქმედებების ჩაწერა."
|
||||
},
|
||||
"nplurals=2; plural=(n!=1);");
|
||||
5
apps/admin_audit/l10n/ka.json
Normal file
5
apps/admin_audit/l10n/ka.json
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ "translations": {
|
||||
"Auditing / Logging" : "აუდიტი / ჟურნალი",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "იძლევა ჟურნალის შესაძლებლობებს Nextcloud-ისთვის, როგორიცაა ფაილებზე წვდომის ან სხვა მგრძნობიარე ქმედებების ჩაწერა."
|
||||
},"pluralForm" :"nplurals=2; plural=(n!=1);"
|
||||
}
|
||||
|
|
@ -29,7 +29,7 @@ namespace OCA\AdminAudit\Actions;
|
|||
|
||||
class Console extends Action {
|
||||
/**
|
||||
* @param $arguments
|
||||
* @param array $arguments
|
||||
*/
|
||||
public function runCommand(array $arguments): void {
|
||||
if (!isset($arguments[1]) || $arguments[1] === '_completion') {
|
||||
|
|
|
|||
|
|
@ -70,7 +70,6 @@ use Psr\Container\ContainerInterface;
|
|||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class Application extends App implements IBootstrap {
|
||||
|
||||
/** @var LoggerInterface */
|
||||
protected $logger;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,8 +32,7 @@ use Psr\Log\LoggerInterface;
|
|||
*/
|
||||
class AuditLogger implements IAuditLogger {
|
||||
|
||||
/** @var LoggerInterface */
|
||||
private $parentLogger;
|
||||
private LoggerInterface $parentLogger;
|
||||
|
||||
public function __construct(ILogFactory $logFactory, IConfig $config) {
|
||||
$auditType = $config->getSystemValueString('log_type_audit', 'file');
|
||||
|
|
@ -50,39 +49,39 @@ class AuditLogger implements IAuditLogger {
|
|||
$this->parentLogger = $logFactory->getCustomPsrLogger($logFile, $auditType, $auditTag);
|
||||
}
|
||||
|
||||
public function emergency($message, array $context = array()) {
|
||||
public function emergency($message, array $context = []): void {
|
||||
$this->parentLogger->emergency($message, $context);
|
||||
}
|
||||
|
||||
public function alert($message, array $context = array()) {
|
||||
public function alert($message, array $context = []): void {
|
||||
$this->parentLogger->alert($message, $context);
|
||||
}
|
||||
|
||||
public function critical($message, array $context = array()) {
|
||||
public function critical($message, array $context = []): void {
|
||||
$this->parentLogger->critical($message, $context);
|
||||
}
|
||||
|
||||
public function error($message, array $context = array()) {
|
||||
public function error($message, array $context = []): void {
|
||||
$this->parentLogger->error($message, $context);
|
||||
}
|
||||
|
||||
public function warning($message, array $context = array()) {
|
||||
public function warning($message, array $context = []): void {
|
||||
$this->parentLogger->warning($message, $context);
|
||||
}
|
||||
|
||||
public function notice($message, array $context = array()) {
|
||||
public function notice($message, array $context = []): void {
|
||||
$this->parentLogger->notice($message, $context);
|
||||
}
|
||||
|
||||
public function info($message, array $context = array()) {
|
||||
public function info($message, array $context = []): void {
|
||||
$this->parentLogger->info($message, $context);
|
||||
}
|
||||
|
||||
public function debug($message, array $context = array()) {
|
||||
public function debug($message, array $context = []): void {
|
||||
$this->parentLogger->debug($message, $context);
|
||||
}
|
||||
|
||||
public function log($level, $message, array $context = array()) {
|
||||
public function log($level, $message, array $context = []): void {
|
||||
$this->parentLogger->log($level, $message, $context);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,17 +30,15 @@ use OCA\AdminAudit\Actions\Security;
|
|||
use OCA\AdminAudit\AuditLogger;
|
||||
use OCP\Authentication\TwoFactorAuth\IProvider;
|
||||
use OCP\IUser;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Test\TestCase;
|
||||
|
||||
class SecurityTest extends TestCase {
|
||||
/** @var AuditLogger|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $logger;
|
||||
private AuditLogger|MockObject $logger;
|
||||
|
||||
/** @var Security */
|
||||
private $security;
|
||||
private Security $security;
|
||||
|
||||
/** @var IUser|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $user;
|
||||
private MockObject|IUser $user;
|
||||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<name>Cloud Federation API</name>
|
||||
<summary>Enable clouds to communicate with each other and exchange data</summary>
|
||||
<description>The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.</description>
|
||||
<version>1.12.0</version>
|
||||
<version>1.13.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Bjoern Schiessle</author>
|
||||
<namespace>CloudFederationAPI</namespace>
|
||||
|
|
@ -15,6 +15,6 @@
|
|||
<category>integration</category>
|
||||
<bugs>https://github.com/nextcloud/server/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="29" max-version="29"/>
|
||||
<nextcloud min-version="30" max-version="30"/>
|
||||
</dependencies>
|
||||
</info>
|
||||
|
|
|
|||
8
apps/cloud_federation_api/l10n/es_MX.js
Normal file
8
apps/cloud_federation_api/l10n/es_MX.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "API de la federación en la nube",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Permitir que las nubes se comuniquen entre sí e intercambien datos",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "La API de la federación en la nube permite que varias instancias de Nextcloud se comuniquen entre sí e intercambien datos."
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
6
apps/cloud_federation_api/l10n/es_MX.json
Normal file
6
apps/cloud_federation_api/l10n/es_MX.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ "translations": {
|
||||
"Cloud Federation API" : "API de la federación en la nube",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Permitir que las nubes se comuniquen entre sí e intercambien datos",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "La API de la federación en la nube permite que varias instancias de Nextcloud se comuniquen entre sí e intercambien datos."
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "API Cloud Federation",
|
||||
"Cloud Federation API" : "API de fédération Cloud",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Permettre aux clouds de communiquer entre eux et d'échanger des données",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "L'API Cloud Federation permet à diverses instances Nextcloud de communiquer entre elles et d'échanger des données."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "L’API de fédération cloud permet à différentes instances de Nextcloud de communiquer entre elles et d’échanger des données."
|
||||
},
|
||||
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{ "translations": {
|
||||
"Cloud Federation API" : "API Cloud Federation",
|
||||
"Cloud Federation API" : "API de fédération Cloud",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Permettre aux clouds de communiquer entre eux et d'échanger des données",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "L'API Cloud Federation permet à diverses instances Nextcloud de communiquer entre elles et d'échanger des données."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "L’API de fédération cloud permet à différentes instances de Nextcloud de communiquer entre elles et d’échanger des données."
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
|
|
@ -66,7 +66,7 @@ class Capabilities implements ICapability {
|
|||
$this->provider->setApiVersion(self::API_VERSION);
|
||||
|
||||
$pos = strrpos($url, '/');
|
||||
if (false === $pos) {
|
||||
if ($pos === false) {
|
||||
throw new OCMArgumentException('generated route should contains a slash character');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<name>Comments</name>
|
||||
<summary>Files app plugin to add comments to files</summary>
|
||||
<description>Files app plugin to add comments to files</description>
|
||||
<version>1.19.0</version>
|
||||
<version>1.20.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Arthur Schiwon</author>
|
||||
<author>Vincent Petry</author>
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
<category>social</category>
|
||||
<bugs>https://github.com/nextcloud/server/issues</bugs>
|
||||
<dependencies>
|
||||
<nextcloud min-version="29" max-version="29"/>
|
||||
<nextcloud min-version="30" max-version="30"/>
|
||||
</dependencies>
|
||||
|
||||
<activity>
|
||||
|
|
|
|||
|
|
@ -9,18 +9,18 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s كتب تعليق على %2$s",
|
||||
"{author} commented on {file}" : "{author} علّق على {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>تعليقات</strong> على الملفات",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "تمت الإشارة إليك في \"{file}\"، في تعليقٍ من قِبَل حسابٍ تمّ حذفه سلفاً",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "أشار إليك {user} في تعليق على {file}",
|
||||
"Files app plugin to add comments to files" : "المكوِّن الإضافي لتطبيق الملفات لإضافة تعليقات إلى الملفات",
|
||||
"Edit comment" : "تعديل التعليق",
|
||||
"Delete comment" : "حذف التعليق",
|
||||
"Cancel edit" : "إلغاء التعديل",
|
||||
"New comment" : "ملاحظة جديدة",
|
||||
"Write a comment …" : "أكتُب ملاحظةً ...",
|
||||
"New comment" : "تعليق جديد",
|
||||
"Write a comment …" : "أكتُب تعليق ...",
|
||||
"Post comment" : "أضف تعليق",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات، : للإيموجي، / للاقط الذكي",
|
||||
"Could not reload comments" : "تعذّرت إعادة تحميل الملاحظات",
|
||||
"No comments yet, start the conversation!" : "لا يوجد تعليقات, ابدأ النقاش الآن!",
|
||||
"Could not reload comments" : "تعذّرت إعادة تحميل التعليقات",
|
||||
"No comments yet, start the conversation!" : "لا توجد تعليقات, ابدأ النقاش الآن!",
|
||||
"No more messages" : "لامزيد من الرسائل",
|
||||
"Retry" : "أعد المحاولة",
|
||||
"Failed to mark comments as read" : "إخفاق في تعيين ملاحظات كمقرؤة",
|
||||
|
|
@ -28,9 +28,12 @@ OC.L10N.register(
|
|||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"Comment" : "تعليق",
|
||||
"An error occurred while trying to edit the comment" : "حدث خطأ أثناء محاولة تعديل التعليق",
|
||||
"Comment deleted" : "التعليق حُذف",
|
||||
"Comment deleted" : "التعليق محذوف",
|
||||
"An error occurred while trying to delete the comment" : "حدث خطأ أثناء محاولة حذف التعليق",
|
||||
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
|
||||
"Write a message …" : "أكتُب رسالةً ...",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" للإشارات, \":\" للإيموجي, \"/\" للاقط الذكي",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"]
|
||||
},
|
||||
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
|
||||
|
|
|
|||
|
|
@ -7,18 +7,18 @@
|
|||
"%1$s commented on %2$s" : "%1$s كتب تعليق على %2$s",
|
||||
"{author} commented on {file}" : "{author} علّق على {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>تعليقات</strong> على الملفات",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "تمت الإشارة إليك في \"{file}\"، في تعليقٍ من قِبَل حسابٍ تمّ حذفه سلفاً",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "أشار إليك {user} في تعليق على {file}",
|
||||
"Files app plugin to add comments to files" : "المكوِّن الإضافي لتطبيق الملفات لإضافة تعليقات إلى الملفات",
|
||||
"Edit comment" : "تعديل التعليق",
|
||||
"Delete comment" : "حذف التعليق",
|
||||
"Cancel edit" : "إلغاء التعديل",
|
||||
"New comment" : "ملاحظة جديدة",
|
||||
"Write a comment …" : "أكتُب ملاحظةً ...",
|
||||
"New comment" : "تعليق جديد",
|
||||
"Write a comment …" : "أكتُب تعليق ...",
|
||||
"Post comment" : "أضف تعليق",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات، : للإيموجي، / للاقط الذكي",
|
||||
"Could not reload comments" : "تعذّرت إعادة تحميل الملاحظات",
|
||||
"No comments yet, start the conversation!" : "لا يوجد تعليقات, ابدأ النقاش الآن!",
|
||||
"Could not reload comments" : "تعذّرت إعادة تحميل التعليقات",
|
||||
"No comments yet, start the conversation!" : "لا توجد تعليقات, ابدأ النقاش الآن!",
|
||||
"No more messages" : "لامزيد من الرسائل",
|
||||
"Retry" : "أعد المحاولة",
|
||||
"Failed to mark comments as read" : "إخفاق في تعيين ملاحظات كمقرؤة",
|
||||
|
|
@ -26,9 +26,12 @@
|
|||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"Comment" : "تعليق",
|
||||
"An error occurred while trying to edit the comment" : "حدث خطأ أثناء محاولة تعديل التعليق",
|
||||
"Comment deleted" : "التعليق حُذف",
|
||||
"Comment deleted" : "التعليق محذوف",
|
||||
"An error occurred while trying to delete the comment" : "حدث خطأ أثناء محاولة حذف التعليق",
|
||||
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
|
||||
"Write a message …" : "أكتُب رسالةً ...",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" للإشارات, \":\" للإيموجي, \"/\" للاقط الذكي",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"]
|
||||
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
|
||||
}
|
||||
|
|
@ -9,8 +9,9 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s comentó en: %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en: {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> pa ficheros",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Mentáronte en «{file}», nun comentariu d'una cuenta que ta desaniciada",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentóte nun comentariu de: «{file}»",
|
||||
"Files app plugin to add comments to files" : "Plugin de l'aplicación Ficheros p'amestar comentarios a los ficheros",
|
||||
"Edit comment" : "Editar el comentariu",
|
||||
"Delete comment" : "Desaniciar el comentariu",
|
||||
"Cancel edit" : "Anular la edición",
|
||||
|
|
@ -22,6 +23,7 @@ OC.L10N.register(
|
|||
"No comments yet, start the conversation!" : "Nun hai comentarios, ¡anicia una conversación!",
|
||||
"No more messages" : "Nun hai más mensaxes",
|
||||
"Retry" : "Retentar",
|
||||
"Failed to mark comments as read" : "Nun se pudieron marcar los comentarios como lleíos",
|
||||
"Unable to load the comments list" : "Nun ye posible cargar la llista de comentarios",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 comentariu nuevu","{unread} comentarios nuevos"],
|
||||
"Comment" : "Comentariu",
|
||||
|
|
@ -29,6 +31,9 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Desanicióse'l comentariu",
|
||||
"An error occurred while trying to delete the comment" : "Prodúxose un error mentanto se tentaba de desaniciar el comentariu",
|
||||
"An error occurred while trying to create the comment" : "Prodúxose un error mentanto se tentaba de crear el comentariu",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}",
|
||||
"Write a message …" : "Escribi un mensaxe…",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "«@» pa mentar, «.» p'amestar un fustaxe, «/» pa usar el selector intelixente",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,8 +7,9 @@
|
|||
"%1$s commented on %2$s" : "%1$s comentó en: %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en: {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> pa ficheros",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Mentáronte en «{file}», nun comentariu d'una cuenta que ta desaniciada",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentóte nun comentariu de: «{file}»",
|
||||
"Files app plugin to add comments to files" : "Plugin de l'aplicación Ficheros p'amestar comentarios a los ficheros",
|
||||
"Edit comment" : "Editar el comentariu",
|
||||
"Delete comment" : "Desaniciar el comentariu",
|
||||
"Cancel edit" : "Anular la edición",
|
||||
|
|
@ -20,6 +21,7 @@
|
|||
"No comments yet, start the conversation!" : "Nun hai comentarios, ¡anicia una conversación!",
|
||||
"No more messages" : "Nun hai más mensaxes",
|
||||
"Retry" : "Retentar",
|
||||
"Failed to mark comments as read" : "Nun se pudieron marcar los comentarios como lleíos",
|
||||
"Unable to load the comments list" : "Nun ye posible cargar la llista de comentarios",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 comentariu nuevu","{unread} comentarios nuevos"],
|
||||
"Comment" : "Comentariu",
|
||||
|
|
@ -27,6 +29,9 @@
|
|||
"Comment deleted" : "Desanicióse'l comentariu",
|
||||
"An error occurred while trying to delete the comment" : "Prodúxose un error mentanto se tentaba de desaniciar el comentariu",
|
||||
"An error occurred while trying to create the comment" : "Prodúxose un error mentanto se tentaba de crear el comentariu",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}",
|
||||
"Write a message …" : "Escribi un mensaxe…",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "«@» pa mentar, «.» p'amestar un fustaxe, «/» pa usar el selector intelixente",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
|
||||
"{author} commented on {file}" : "{author} коментира за {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} ви спомена в коментар за “{file}”",
|
||||
"Files app plugin to add comments to files" : "Добавка на приложението Файлове за добавяне на коментари към файловете",
|
||||
"Edit comment" : "Редактирай коментра",
|
||||
|
|
@ -26,6 +25,7 @@ OC.L10N.register(
|
|||
"Comment deleted" : " Изтрит е коментар",
|
||||
"An error occurred while trying to delete the comment" : "Възникна грешка при опит за изтриване на коментара",
|
||||
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
|
||||
"{author} commented on {file}" : "{author} коментира за {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} ви спомена в коментар за “{file}”",
|
||||
"Files app plugin to add comments to files" : "Добавка на приложението Файлове за добавяне на коментари към файловете",
|
||||
"Edit comment" : "Редактирай коментра",
|
||||
|
|
@ -24,6 +23,7 @@
|
|||
"Comment deleted" : " Изтрит е коментар",
|
||||
"An error occurred while trying to delete the comment" : "Възникна грешка при опит за изтриване на коментара",
|
||||
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,12 +9,14 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s ha escrit un comentari a %2$s",
|
||||
"{author} commented on {file}" : "{author} ha escrit un comentari a {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentaris</strong> per a fitxers",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un compte que s'ha suprimit",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} us ha esmentat en un comentari a «{file}»",
|
||||
"Files app plugin to add comments to files" : "Connector de l'aplicació Fitxers per a afegir comentaris als fitxers",
|
||||
"Edit comment" : "Edita el comentari",
|
||||
"Delete comment" : "Suprimeix el comentari",
|
||||
"Cancel edit" : "Cancel·la l'edició",
|
||||
"New comment" : "Comentari nou",
|
||||
"Write a comment …" : "Escriviu un comentari…",
|
||||
"Post comment" : "Publica el comentari",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ per a mencions, : per a emojis, / per al selector intel·ligent",
|
||||
"Could not reload comments" : "No s'han pogut tornar a carregar els comentaris",
|
||||
|
|
@ -29,6 +31,9 @@ OC.L10N.register(
|
|||
"Comment deleted" : "S'ha suprimit el comentari",
|
||||
"An error occurred while trying to delete the comment" : "S'ha produït un error en intentar suprimir el comentari",
|
||||
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
|
||||
"Write a message …" : "Escriviu un missatge…",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "«@» per a mencions, «:» per a emojis, «/» per al selector intel·ligent",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentari sense llegir","%n comentaris sense llegir"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,12 +7,14 @@
|
|||
"%1$s commented on %2$s" : "%1$s ha escrit un comentari a %2$s",
|
||||
"{author} commented on {file}" : "{author} ha escrit un comentari a {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentaris</strong> per a fitxers",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un compte que s'ha suprimit",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} us ha esmentat en un comentari a «{file}»",
|
||||
"Files app plugin to add comments to files" : "Connector de l'aplicació Fitxers per a afegir comentaris als fitxers",
|
||||
"Edit comment" : "Edita el comentari",
|
||||
"Delete comment" : "Suprimeix el comentari",
|
||||
"Cancel edit" : "Cancel·la l'edició",
|
||||
"New comment" : "Comentari nou",
|
||||
"Write a comment …" : "Escriviu un comentari…",
|
||||
"Post comment" : "Publica el comentari",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ per a mencions, : per a emojis, / per al selector intel·ligent",
|
||||
"Could not reload comments" : "No s'han pogut tornar a carregar els comentaris",
|
||||
|
|
@ -27,6 +29,9 @@
|
|||
"Comment deleted" : "S'ha suprimit el comentari",
|
||||
"An error occurred while trying to delete the comment" : "S'ha produït un error en intentar suprimir el comentari",
|
||||
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
|
||||
"Write a message …" : "Escriviu un missatge…",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "«@» per a mencions, «:» per a emojis, «/» per al selector intel·ligent",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentari sense llegir","%n comentaris sense llegir"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s okomentoval(a) %2$s",
|
||||
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> k souborům",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} vás zmínil(a) v komentáři u „{file}“",
|
||||
"Files app plugin to add comments to files" : "Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
|
||||
"Edit comment" : "Upravit komentář",
|
||||
|
|
@ -31,6 +30,8 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Komentář smazán",
|
||||
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
|
||||
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "„@“ pro zmínění, „:“ pro emotikony, „/“ pro inteligentní výběr",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtené komentáře"]
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
"%1$s commented on %2$s" : "%1$s okomentoval(a) %2$s",
|
||||
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> k souborům",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} vás zmínil(a) v komentáři u „{file}“",
|
||||
"Files app plugin to add comments to files" : "Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
|
||||
"Edit comment" : "Upravit komentář",
|
||||
|
|
@ -29,6 +28,8 @@
|
|||
"Comment deleted" : "Komentář smazán",
|
||||
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
|
||||
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "„@“ pro zmínění, „:“ pro emotikony, „/“ pro inteligentní výběr",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtené komentáře"]
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
|
||||
}
|
||||
|
|
@ -9,13 +9,17 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s kommenterede %2$s",
|
||||
"{author} commented on {file}" : "{author} kommenterede {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en konto, som siden er blevet slettet",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} nævnte dig i en kommentar til \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Files app plugin til at tilføje kommentarer til filer",
|
||||
"Edit comment" : "Rediger kommentar",
|
||||
"Delete comment" : "Slet kommentar",
|
||||
"Cancel edit" : "Annuller redigering",
|
||||
"New comment" : "Ny kommentar",
|
||||
"Write a comment …" : "Skriv kommentar…",
|
||||
"Post comment" : "Skriv kommentar",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "\"@\" for at nævne, \":\" for emojis, \"/\" for Smart Vælger",
|
||||
"Could not reload comments" : "Kunne ikke indlæse kommentarer",
|
||||
"No comments yet, start the conversation!" : "Ingen kommentarer endnu, start samtalen!",
|
||||
"No more messages" : "Ikke flere beskeder",
|
||||
"Retry" : "Prøv igen",
|
||||
|
|
@ -27,6 +31,9 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Kommentar slettet",
|
||||
"An error occurred while trying to delete the comment" : "Der opstod en fejl under forsøget på at slette kommentaren",
|
||||
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
|
||||
"Write a message …" : "Skriv en besked…",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" for at nævne, \":\" for emojis, \"/\" for Smart Vælger",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,13 +7,17 @@
|
|||
"%1$s commented on %2$s" : "%1$s kommenterede %2$s",
|
||||
"{author} commented on {file}" : "{author} kommenterede {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en konto, som siden er blevet slettet",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} nævnte dig i en kommentar til \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Files app plugin til at tilføje kommentarer til filer",
|
||||
"Edit comment" : "Rediger kommentar",
|
||||
"Delete comment" : "Slet kommentar",
|
||||
"Cancel edit" : "Annuller redigering",
|
||||
"New comment" : "Ny kommentar",
|
||||
"Write a comment …" : "Skriv kommentar…",
|
||||
"Post comment" : "Skriv kommentar",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "\"@\" for at nævne, \":\" for emojis, \"/\" for Smart Vælger",
|
||||
"Could not reload comments" : "Kunne ikke indlæse kommentarer",
|
||||
"No comments yet, start the conversation!" : "Ingen kommentarer endnu, start samtalen!",
|
||||
"No more messages" : "Ikke flere beskeder",
|
||||
"Retry" : "Prøv igen",
|
||||
|
|
@ -25,6 +29,9 @@
|
|||
"Comment deleted" : "Kommentar slettet",
|
||||
"An error occurred while trying to delete the comment" : "Der opstod en fejl under forsøget på at slette kommentaren",
|
||||
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
|
||||
"Write a message …" : "Skriv en besked…",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" for at nævne, \":\" for emojis, \"/\" for Smart Vælger",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
|
||||
"{author} commented on {file}" : "{author} hat {file} kommentiert",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat dich in einem Kommentar zu \"{file}\" erwähnt",
|
||||
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
|
||||
"Edit comment" : "Kommentar bearbeiten",
|
||||
|
|
@ -30,6 +29,7 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
|
||||
"{author} commented on {file}" : "{author} hat {file} kommentiert",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat dich in einem Kommentar zu \"{file}\" erwähnt",
|
||||
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
|
||||
"Edit comment" : "Kommentar bearbeiten",
|
||||
|
|
@ -28,6 +27,7 @@
|
|||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
|
||||
"{author} commented on {file}" : "{author} hat {file} kommentiert",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Sie wurden in einem Kommentar zu \"{file}\" von einem Konto erwähnt, das inzwischen gelöscht wurde.",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat Sie in einem Kommentar zu \"{file}\" erwähnt",
|
||||
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
|
||||
"Edit comment" : "Kommentar bearbeiten",
|
||||
|
|
@ -31,6 +31,9 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
|
||||
"Write a message …" : "Eine Nachricht schreiben …",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" für Erwähnungen, \":\" für Emoji, \"/\" für Smart Picker",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
|
||||
"{author} commented on {file}" : "{author} hat {file} kommentiert",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Sie wurden in einem Kommentar zu \"{file}\" von einem Konto erwähnt, das inzwischen gelöscht wurde.",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} hat Sie in einem Kommentar zu \"{file}\" erwähnt",
|
||||
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
|
||||
"Edit comment" : "Kommentar bearbeiten",
|
||||
|
|
@ -29,6 +29,9 @@
|
|||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
|
||||
"Write a message …" : "Eine Nachricht schreiben …",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" für Erwähnungen, \":\" für Emoji, \"/\" für Smart Picker",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s",
|
||||
"{author} commented on {file}" : "Ο {author} σχολίασε στο {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "Ο/η {user} σας ανέφερε σε σχόλιο στο “{file}”",
|
||||
"Files app plugin to add comments to files" : "Επέκταση της εφαρμογής Αρχεία που επιτρέπει την προσθήκη σχολίων σε αρχεία",
|
||||
"Edit comment" : "Επεξεργασία σχολίου",
|
||||
|
|
@ -27,6 +26,7 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Το σχόλιο διαγράφηκε",
|
||||
"An error occurred while trying to delete the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
|
||||
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
"%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s",
|
||||
"{author} commented on {file}" : "Ο {author} σχολίασε στο {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "Ο/η {user} σας ανέφερε σε σχόλιο στο “{file}”",
|
||||
"Files app plugin to add comments to files" : "Επέκταση της εφαρμογής Αρχεία που επιτρέπει την προσθήκη σχολίων σε αρχεία",
|
||||
"Edit comment" : "Επεξεργασία σχολίου",
|
||||
|
|
@ -25,6 +24,7 @@
|
|||
"Comment deleted" : "Το σχόλιο διαγράφηκε",
|
||||
"An error occurred while trying to delete the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
|
||||
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s commented on %2$s",
|
||||
"{author} commented on {file}" : "{author} commented on {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "You were mentioned on \"{file}\", in a comment by an account that has since been deleted",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentioned you in a comment on \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Files app plugin to add comments to files",
|
||||
"Edit comment" : "Edit comment",
|
||||
|
|
@ -31,6 +31,9 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Comment deleted",
|
||||
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
|
||||
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
|
||||
"Write a message …" : "Write a message …",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" for mentions, \":\" for emoji, \"/\" for smart picker",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
"%1$s commented on %2$s" : "%1$s commented on %2$s",
|
||||
"{author} commented on {file}" : "{author} commented on {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "You were mentioned on \"{file}\", in a comment by an account that has since been deleted",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentioned you in a comment on \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Files app plugin to add comments to files",
|
||||
"Edit comment" : "Edit comment",
|
||||
|
|
@ -29,6 +29,9 @@
|
|||
"Comment deleted" : "Comment deleted",
|
||||
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
|
||||
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
|
||||
"Write a message …" : "Write a message …",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" for mentions, \":\" for emoji, \"/\" for smart picker",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,8 +9,8 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} le mencionó en un comentario en “{file}”",
|
||||
"Files app plugin to add comments to files" : "Plugin de la app de Archivos para añadir comentarios a archivos.",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
|
|
@ -31,6 +31,9 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Comentario borrado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Le han mencionado en \"{file}\", en un comentario de un usuario que ha sido eliminado desde entonces",
|
||||
"Write a message …" : "Escribir un mensaje …",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" para menciones, \":\" para emojis, \"/\" para selector inteligente",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"]
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} le mencionó en un comentario en “{file}”",
|
||||
"Files app plugin to add comments to files" : "Plugin de la app de Archivos para añadir comentarios a archivos.",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
|
|
@ -29,6 +29,9 @@
|
|||
"Comment deleted" : "Comentario borrado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Le han mencionado en \"{file}\", en un comentario de un usuario que ha sido eliminado desde entonces",
|
||||
"Write a message …" : "Escribir un mensaje …",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" para menciones, \":\" para emojis, \"/\" para selector inteligente",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"]
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} te mencionó en un comentario en \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Plugin de la aplicación de archivos para agregar comentarios a los archivos",
|
||||
"Edit comment" : "Editar comentario",
|
||||
|
|
@ -27,6 +26,7 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Comentario eliminado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error al intentar eliminar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} te mencionó en un comentario en \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Plugin de la aplicación de archivos para agregar comentarios a los archivos",
|
||||
"Edit comment" : "Editar comentario",
|
||||
|
|
@ -25,6 +24,7 @@
|
|||
"Comment deleted" : "Comentario eliminado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error al intentar eliminar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
|
|
@ -9,12 +9,31 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} lo mencionó en un comentario en \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Un complemento a la aplicación de Archivos para agregar comentarios a los archivos",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Cancel edit" : "Cancelar edición",
|
||||
"New comment" : "Nuevo comentario",
|
||||
"Write a comment …" : "Escribir un comentario …",
|
||||
"Post comment" : "Publicar comentario",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoticonos, / para selector inteligente",
|
||||
"Could not reload comments" : "No se pudieron recargar los comentarios",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"No more messages" : "No hay más mensajes",
|
||||
"Retry" : "Reintentar",
|
||||
"Failed to mark comments as read" : "No se pudieron marcar los comentarios como leídos",
|
||||
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} nuevos comentarios","{unread} nuevos comentarios"],
|
||||
"Comment" : "Comentario",
|
||||
"An error occurred while trying to edit the comment" : "Ocurrió un error al intentar editar el comentario",
|
||||
"Comment deleted" : "Comentario borrado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"Write a message …" : "Escriba un mensaje …",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" para menciones, \":\" para emoticonos, \"/\" para selector inteligente",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
|
|
|||
|
|
@ -7,12 +7,31 @@
|
|||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} lo mencionó en un comentario en \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Un complemento a la aplicación de Archivos para agregar comentarios a los archivos",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Cancel edit" : "Cancelar edición",
|
||||
"New comment" : "Nuevo comentario",
|
||||
"Write a comment …" : "Escribir un comentario …",
|
||||
"Post comment" : "Publicar comentario",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoticonos, / para selector inteligente",
|
||||
"Could not reload comments" : "No se pudieron recargar los comentarios",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"No more messages" : "No hay más mensajes",
|
||||
"Retry" : "Reintentar",
|
||||
"Failed to mark comments as read" : "No se pudieron marcar los comentarios como leídos",
|
||||
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} nuevos comentarios","{unread} nuevos comentarios"],
|
||||
"Comment" : "Comentario",
|
||||
"An error occurred while trying to edit the comment" : "Ocurrió un error al intentar editar el comentario",
|
||||
"Comment deleted" : "Comentario borrado",
|
||||
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
|
||||
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
|
||||
"Write a message …" : "Escriba un mensaje …",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" para menciones, \":\" para emoticonos, \"/\" para selector inteligente",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s kommenteeris %2$s",
|
||||
"{author} commented on {file}" : "{author} kommenteeris faili {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentaarid</strong> failidele",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sind mainis faili \"{file}\" kommentaaris kasutaja, kes on praeguseks kustutatud.",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} mainis sind faili \"{file}\" kommentaaris",
|
||||
"Files app plugin to add comments to files" : "Failid rakenduse laiendus failidele kommentaaride lisamiseks",
|
||||
"Edit comment" : "Muuda kommentaari",
|
||||
|
|
@ -27,6 +26,7 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Kommentaar kustutatud",
|
||||
"An error occurred while trying to delete the comment" : "Kommentaari kustutamisel tekkis tõrge",
|
||||
"An error occurred while trying to create the comment" : "Kommentaari lisamisel tekkis tõrge",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sind mainis faili \"{file}\" kommentaaris kasutaja, kes on praeguseks kustutatud.",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n lugemata kommentaar","%n lugemata kommentaari"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
"%1$s commented on %2$s" : "%1$s kommenteeris %2$s",
|
||||
"{author} commented on {file}" : "{author} kommenteeris faili {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentaarid</strong> failidele",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sind mainis faili \"{file}\" kommentaaris kasutaja, kes on praeguseks kustutatud.",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} mainis sind faili \"{file}\" kommentaaris",
|
||||
"Files app plugin to add comments to files" : "Failid rakenduse laiendus failidele kommentaaride lisamiseks",
|
||||
"Edit comment" : "Muuda kommentaari",
|
||||
|
|
@ -25,6 +24,7 @@
|
|||
"Comment deleted" : "Kommentaar kustutatud",
|
||||
"An error occurred while trying to delete the comment" : "Kommentaari kustutamisel tekkis tõrge",
|
||||
"An error occurred while trying to create the comment" : "Kommentaari lisamisel tekkis tõrge",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sind mainis faili \"{file}\" kommentaaris kasutaja, kes on praeguseks kustutatud.",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n lugemata kommentaar","%n lugemata kommentaari"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,12 +9,14 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s-ek %2$s-en iruzkindu du",
|
||||
"{author} commented on {file}" : "{author}-(e)k {file}-en iruzkina egin du",
|
||||
"<strong>Comments</strong> for files" : "Fitxategientzako <strong>iruzkinak</strong>",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den erabiltzaile baten iruzkin batean",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den kontu baten iruzkin batean",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} erabiltzaileak aipatu zaitu \"{file}\"-eko iruzkin batean",
|
||||
"Files app plugin to add comments to files" : "Fitxategiak aplikazioko plugina, fitxategiei iruzkinak gehitzeko",
|
||||
"Edit comment" : "Editatu iruzkina",
|
||||
"Delete comment" : "Ezabatu iruzkina",
|
||||
"Cancel edit" : "Utzi editatzeari",
|
||||
"New comment" : "Iruzkin berria",
|
||||
"Write a comment …" : "Idatzi iruzkin bat ...",
|
||||
"Post comment" : "Argitaratu iruzkina",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ aipamenetarako, : emojientzako, / hautatzaile adimentsurako",
|
||||
"Could not reload comments" : "Ezin izan dira iruzkinak freskatu",
|
||||
|
|
@ -29,6 +31,9 @@ OC.L10N.register(
|
|||
"Comment deleted" : "Iruzkina ezabatu da",
|
||||
"An error occurred while trying to delete the comment" : "Errorea gertatu da iruzkina ezabatzen saiatzean",
|
||||
"An error occurred while trying to create the comment" : "Errorea gertatu da iruzkina sortzen saiatzean",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den erabiltzaile baten iruzkin batean",
|
||||
"Write a message …" : "Idatzi mezu bat ...",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" aipamenetarako, \":\" emojientzako, \"/\" hautatzaile adimentsurako",
|
||||
"_%n unread comment_::_%n unread comments_" : ["iruzkin %n irakurri gabe","%n iruzkin irakurri gabe"]
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
|||
|
|
@ -7,12 +7,14 @@
|
|||
"%1$s commented on %2$s" : "%1$s-ek %2$s-en iruzkindu du",
|
||||
"{author} commented on {file}" : "{author}-(e)k {file}-en iruzkina egin du",
|
||||
"<strong>Comments</strong> for files" : "Fitxategientzako <strong>iruzkinak</strong>",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den erabiltzaile baten iruzkin batean",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den kontu baten iruzkin batean",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} erabiltzaileak aipatu zaitu \"{file}\"-eko iruzkin batean",
|
||||
"Files app plugin to add comments to files" : "Fitxategiak aplikazioko plugina, fitxategiei iruzkinak gehitzeko",
|
||||
"Edit comment" : "Editatu iruzkina",
|
||||
"Delete comment" : "Ezabatu iruzkina",
|
||||
"Cancel edit" : "Utzi editatzeari",
|
||||
"New comment" : "Iruzkin berria",
|
||||
"Write a comment …" : "Idatzi iruzkin bat ...",
|
||||
"Post comment" : "Argitaratu iruzkina",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ aipamenetarako, : emojientzako, / hautatzaile adimentsurako",
|
||||
"Could not reload comments" : "Ezin izan dira iruzkinak freskatu",
|
||||
|
|
@ -27,6 +29,9 @@
|
|||
"Comment deleted" : "Iruzkina ezabatu da",
|
||||
"An error occurred while trying to delete the comment" : "Errorea gertatu da iruzkina ezabatzen saiatzean",
|
||||
"An error occurred while trying to create the comment" : "Errorea gertatu da iruzkina sortzen saiatzean",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den erabiltzaile baten iruzkin batean",
|
||||
"Write a message …" : "Idatzi mezu bat ...",
|
||||
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker" : "\"@\" aipamenetarako, \":\" emojientzako, \"/\" hautatzaile adimentsurako",
|
||||
"_%n unread comment_::_%n unread comments_" : ["iruzkin %n irakurri gabe","%n iruzkin irakurri gabe"]
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
|
|
@ -9,7 +9,6 @@ OC.L10N.register(
|
|||
"%1$s commented on %2$s" : "%1$s commented on %2$s",
|
||||
"{author} commented on {file}" : "{author} commented on {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentioned you in a comment on \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Files app plugin to add comments to files",
|
||||
"Edit comment" : "ویرایش توضیح",
|
||||
|
|
@ -27,6 +26,7 @@ OC.L10N.register(
|
|||
"Comment deleted" : "توضیح حذف",
|
||||
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
|
||||
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
|
||||
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"]
|
||||
},
|
||||
"nplurals=2; plural=(n > 1);");
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue