Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1290 commits
Select commit Hold shift + click to select a range
0461153
Add test for paginated enumeration
claucambra May 19, 2025
12fd939
Add warning comment
claucambra May 19, 2025
8df87f2
Purge fast enumeration
claucambra May 26, 2025
ad647f9
Extract paged read result handling into separate method
claucambra May 26, 2025
6856441
Handle infinite depth paged read results
claucambra May 26, 2025
815ee3c
Perform full depth enumeration for working set
claucambra May 26, 2025
9db4e5e
Fix now invalid error type with latest NextcloudKit
claucambra May 29, 2025
38a6c5e
Upgrade to NextcloudKit 6.0.9
claucambra May 29, 2025
4ad01ce
Fix MockRemoteInterface paginate total returned
claucambra May 29, 2025
af9f484
Merge pull request #81 from claucambra/feature/pagination
claucambra May 30, 2025
72d1fb2
Add userInfo entry for items if they are shareable
claucambra May 30, 2025
8cd22c1
Add test for displayShare in userInfo of Item
claucambra May 30, 2025
39c95f7
Merge pull request #83 from claucambra/feature/report-display-shareable
claucambra May 30, 2025
ac86508
Add init to EnumeratorPageResponse for next server url to scan
claucambra May 30, 2025
45c30d6
Nuke enumeration listening
claucambra Jun 3, 2025
87dbd90
Enumerate items for working set on a depth 1 basis, implement queue s…
claucambra Jun 3, 2025
8fee54c
Apply serverUrl at the object instance level if necessary in enumerat…
claucambra Jun 5, 2025
9e445e0
Add assert checking for used indices in mock remote interface paginat…
claucambra Jun 5, 2025
9c84f38
Add new tests for paginated working set enumeration
claucambra Jun 5, 2025
0ae485b
Add further tests for non-working set enumeration
claucambra Jun 5, 2025
5092ec4
Apply pageNum directly onto object property
claucambra Jun 5, 2025
36ba86a
Merge pull request #85 from claucambra/feature/fix-pagination
claucambra Jun 5, 2025
649f066
Properly handle all aspects of permissions in relation to item capabi…
claucambra Jun 6, 2025
a11b504
Add further tests for permissions and their effects on capabilities o…
claucambra Jun 6, 2025
ad0ac2c
Use formUnion rather than insert for capabilities set
claucambra Jun 6, 2025
9d24b70
Avoid repetition of metadata.lock check in each if
claucambra Jun 6, 2025
41168e0
Merge pull request #86 from claucambra/bugfix/capabilities
claucambra Jun 6, 2025
87cd6e3
Retain download state for paginated enumeration target too
claucambra Jun 6, 2025
fc53728
Maintain download state for paged enumeration target directory
claucambra Jun 6, 2025
6a99e8f
Add convenience method to check match with a given url string for an …
claucambra Jun 6, 2025
cddc6ea
Properly handle root metadata in paged read results handling
claucambra Jun 6, 2025
ddd3ded
Match expected empty name for root items received from real server in…
claucambra Jun 6, 2025
4a4577f
Ensure root item is not enumerated in paged enumeration test
claucambra Jun 6, 2025
1922b01
Ensure root container URL is not treated as a file during initial pag…
claucambra Jun 6, 2025
bfcf896
Add test for follow up pagination handling
claucambra Jun 6, 2025
9a0a733
Add test for paged read results handling
claucambra Jun 6, 2025
d7a8b48
Merge pull request #87 from claucambra/bugfix/pagination-pt3
claucambra Jun 6, 2025
f364ed4
More carefully guard against the returned root folder NKFile returned…
claucambra Jun 9, 2025
cff3a91
Match mock remote item root item filename to NKFile for it
claucambra Jun 9, 2025
992b5ff
More NKFile handling for root directory
claucambra Jun 9, 2025
8b3edd6
Add some additional logging around pagination
claucambra Jun 9, 2025
24d70b0
Log if added item metadata is a directory or not
claucambra Jun 9, 2025
869a7c6
Log page
claucambra Jun 9, 2025
db5225e
Add further logging around next page behaviour
claucambra Jun 9, 2025
c195e01
Add logging to enumerator page response
claucambra Jun 9, 2025
2500c29
Log page information in the enumerator's readServerUrl
claucambra Jun 9, 2025
fe604e9
Log nil page token in enumerator
claucambra Jun 9, 2025
b8e2170
Further enumerator page response logging
claucambra Jun 9, 2025
90e63ab
Further log next page state through enumerator
claucambra Jun 9, 2025
5884db8
Fix log typo
claucambra Jun 10, 2025
afd311e
Merge pull request #88 from claucambra/bugfix/pagination-pt4
claucambra Jun 10, 2025
5c692b8
Log the specific error occurring during auth check
claucambra May 30, 2025
e4817eb
Only instantiate logger once in NextcloudKit RemoteInterface
claucambra Jun 10, 2025
3423917
Merge pull request #84 from claucambra/feature/auth-error-log
claucambra Jun 10, 2025
02beb6a
Add conformity to Codable for EnumeratorPageResponse
claucambra Jun 11, 2025
4eca695
Add next server URL and server url queue properties to page response …
claucambra Jun 11, 2025
ffc20fe
Move all pagination related state into a JSON-encoded representation …
claucambra Jun 11, 2025
f881d78
Add ability to independently enumerate a single page on MockEnumerati…
claucambra Jun 11, 2025
102940c
Add test for paginated enumeration using separate enumerator instances
claucambra Jun 11, 2025
a869466
Merge pull request #89 from claucambra/bugfix/paginate-pt5
claucambra Jun 11, 2025
65800ba
Give soft non-error return when handling case where server provides n…
claucambra Jun 11, 2025
faa45bd
Count on total to stop making paged requests to server
claucambra Jun 11, 2025
f2a616d
Add toggle to MockRemoteInterface to imitate buggy real server behaviour
claucambra Jun 11, 2025
0622638
Add test to check handling of empty remote page return
claucambra Jun 11, 2025
044f351
Merge pull request #90 from claucambra/bugfix/pagination-pt6
claucambra Jun 11, 2025
b26d454
Remove codecov from workflow
claucambra Jun 12, 2025
71d48fa
Merge pull request #91 from nextcloud/bugfix/remove-codecov
claucambra Jun 12, 2025
1b4b156
Update README.md to the new repo name
Rello Jun 13, 2025
c894a6e
Pin NextcloudKit to 6.0.9
claucambra Jun 16, 2025
26c6cac
Merge pull request #94 from nextcloud/bugfix/nckit-broken
claucambra Jun 16, 2025
109370b
Add materialisation-relevant property to item metadatas for folders
claucambra Jun 13, 2025
30f849a
Add method to retrieve all materialised items from database
claucambra Jun 13, 2025
2023a23
Add method to test retrieval of all materialised files from database
claucambra Jun 13, 2025
3cd9b6c
Observe both newly unmaterialised and newly materialised items
claucambra Jun 13, 2025
1eef898
Fix visitedDirectory state in conversions to RealmItemMetadata
claucambra Jun 13, 2025
4af5e9e
Check corrected state in FilesDatabaseManager
claucambra Jun 13, 2025
0c2b5c5
Add logging to MaterialisedEnumerationObserver
claucambra Jun 13, 2025
1399ff9
Improve tests for MaterialisedEnumerationObserver
claucambra Jun 13, 2025
f00b988
Log visitedDirectory state
claucambra Jun 13, 2025
4ce0b0d
Modify readServerUrl to mark directories as visited where relevant AN…
claucambra Jun 13, 2025
6220410
Amend Item fetch behaviour to account for new readServerUrl behaviour
claucambra Jun 13, 2025
996d8f0
Amend Item pakcage/bundle modify to account for new readServerUrl beh…
claucambra Jun 13, 2025
46549ce
Modify database manager handling of depth 1 read and account for read…
claucambra Jun 13, 2025
6ad99ab
Make MockRemoteItem versionIdentifier modifiable
claucambra Jun 13, 2025
d7a98c7
Return 404 when enumerating non-existent item URL in MockRemoteInterface
claucambra Jun 13, 2025
37cdea9
Modify working set enumeration to only return materialised items
claucambra Jun 13, 2025
9d71867
Modify change enumeration for working set to only check for materiali…
claucambra Jun 13, 2025
10e9a4f
Remove unused recursive scan components from sync engine
claucambra Jun 13, 2025
83fd374
Remove unused components of EnumeratorPageResponse
claucambra Jun 13, 2025
f149ab2
Address readServerUrl related changes in enumerator tests
claucambra Jun 13, 2025
50350b9
Avoid scanning materialised children of materialised parents we have …
claucambra Jun 13, 2025
051bb9a
Imitate NextcloudKit behaviour in MockRemoteItem conversion to NKFile
claucambra Jun 16, 2025
65f0b63
Try to clean up received path a bit in MockRemoteInterface
claucambra Jun 16, 2025
5f2d1cd
Prevent bad trimming of serverUrl for root item in MockRemoteItem con…
claucambra Jun 16, 2025
d4cf03f
Fix up mangling of root container metadata performed by NextcloudKit
claucambra Jun 16, 2025
77a2e17
Ingest metadata for the root container
claucambra Jun 16, 2025
91703b1
Do not create fake root metadata for working set enumeration
claucambra Jun 16, 2025
a0b83bd
Exclude root container from child metadata change calculation
claucambra Jun 16, 2025
8c0e0b5
Fix sorting of filenames
claucambra Jun 16, 2025
8f9c974
Improve deleted metadata log formatting
claucambra Jun 16, 2025
10d04ab
Mark moved metadatas as updated and not deleted in working set change…
claucambra Jun 16, 2025
97235f9
Explain optimisation with examined urls
claucambra Jun 16, 2025
1c6ae15
Also catch non-bungled root metadata metadatas
claucambra Jun 16, 2025
5d206aa
Make sure to check for root container metadata after changing target …
claucambra Jun 16, 2025
2ad7290
Make chunkedConcurrentMap compatible with all random access collections
claucambra Jun 16, 2025
355a625
Ensure we do not repeat the target metadata in the child metadatas du…
claucambra Jun 16, 2025
aca2c44
Add tests for nkfile conversions
claucambra Jun 16, 2025
d661817
Move root correction to nkfile conversion
claucambra Jun 16, 2025
cf7fec3
Merge pull request #93 from nextcloud/feature/fast-enumeration-try2
claucambra Jun 16, 2025
a0729b6
Add test verifying directories enumerated as files is server bug
claucambra Jun 17, 2025
9015a53
Merge pull request #95 from nextcloud/bugfix/verify-server-pages-fold…
claucambra Jun 17, 2025
e69647b
Quickly and dirtily disable pagination
claucambra Jun 17, 2025
ce40c93
Add syncTime and deleted properties to item metadata
claucambra Jun 17, 2025
f3d2e69
Add method to get items modified since a given date in files database…
claucambra Jun 17, 2025
69f6fa7
Add test for database pending working set changes database method
claucambra Jun 17, 2025
9e1d7bf
Return all modified items since sync anchor date for changes enumeration
claucambra Jul 1, 2025
b630c03
Do not actually delete deleted metadatas
claucambra Jul 1, 2025
7112baa
Use simpler syntax for going to last array index
claucambra Jul 1, 2025
3263c9d
During depth 1 read handling, mark deleted files as deleted
claucambra Jul 1, 2025
1d2ae02
Fix changed folder enumerator test
claucambra Jul 1, 2025
406deb2
Adapt FIlesDatabaseManagerTests to deleted item changes
claucambra Jul 1, 2025
1c6097f
Add passable anchor to enumeate changes in mock change observer
claucambra Jul 1, 2025
3b7e65a
Amend testWorkingSetEnumerateChanges to test current behaviour of wor…
claucambra Jul 1, 2025
24cc81c
Perform a check of the working set's items via the remote change obse…
claucambra Jul 1, 2025
fe2b69e
Implement tests for new behaviour in remote change observer
claucambra Jul 1, 2025
f1a8f67
Store deletion state in db
claucambra Jul 1, 2025
69afa7a
Assert database state in remote change observer test
claucambra Jul 2, 2025
a95f0d6
Expand remote change observer detected change test
claucambra Jul 2, 2025
7c24e92
Add more logging regarding parent missing in enumerator
claucambra Jul 2, 2025
e550fb3
Add sync anchor logging
claucambra Jul 2, 2025
cc269c4
Complete change enumeration with correct sync anchor
claucambra Jul 2, 2025
ceeb717
Add more logging to remote change observer change calculation
claucambra Jul 2, 2025
ae7b6df
Log sync time on items
claucambra Jul 2, 2025
cf723b0
Mark items as deleted, do not delete actual db items
claucambra Jul 2, 2025
059ee9f
In pending working set changes also return children to updated/delete…
claucambra Jul 2, 2025
f008cd3
Improve testPendingWorkingSetChanges
claucambra Jul 2, 2025
0453b5e
Improve new item metadata creation during update logging
claucambra Jul 2, 2025
054a335
Ensure sync time is updated during deletion
claucambra Jul 2, 2025
cc28569
TEMP: Debug logging
claucambra Jul 2, 2025
398ee72
Properly handle root item server url
claucambra Jul 2, 2025
d9a91e7
Fix handling of visitedDirectory state
claucambra Jul 2, 2025
7195d1a
Handle deleted files properly in pending working set retrieval
claucambra Jul 2, 2025
9bf90bd
Ensure marking of deleted files in depth1 handling
claucambra Jul 2, 2025
b841e59
Fix crash from improper metadata modification
claucambra Jul 2, 2025
ee4eeff
Fix tests to conform to new item metadata deletion approach
claucambra Jul 4, 2025
f2c2a57
Improve testPendingWorkingSetChanges
claucambra Jul 4, 2025
11b7c94
Test for updated sync time on deleted item during remote change obser…
claucambra Jul 4, 2025
b6ead3e
Test for visitedDirectory state in enumerator tests
claucambra Jul 4, 2025
b25a3a1
Add method to invalidate the RCO
claucambra Jul 7, 2025
43fd059
Use weak self in websocket reconnect task
claucambra Jul 7, 2025
aca7968
Also handle invalidation after server read
claucambra Jul 8, 2025
e65461a
Ensure unchanged directories don't get examined even if they are mate…
claucambra Jul 8, 2025
1350e18
Add RCO optimisation test
claucambra Jul 8, 2025
67de21f
Remove duplicate dbManager from RCO tests, just use one
claucambra Jul 8, 2025
ded8c16
Target item should be enumerated
claucambra Jul 8, 2025
6bb20a4
Do not check page count in enumerator tests
claucambra Jul 8, 2025
18f674a
Merge pull request #108 from nextcloud/bugfix/disable-pagination
claucambra Jul 8, 2025
1c7d2c8
Merge pull request #105 from nextcloud/feature/async-working-set-chan…
claucambra Jul 8, 2025
d5edcbd
Retain keep downloaded state when metadata updates are done
claucambra Jul 9, 2025
0fe8a2e
Test that keepDownloaded is kept on depth 1 read handling in db manager
claucambra Jul 9, 2025
bd977ca
More database keep downloaded checks
claucambra Jul 9, 2025
02ed1cf
Add test for keepDownloaded returned on enumeration
claucambra Jul 9, 2025
4cd885d
Merge pull request #110 from nextcloud/bugfix/retain-keep-dl
claucambra Jul 9, 2025
b08b031
fix(ios): compiler errors and build.
i2h3 Jul 9, 2025
7d14a48
Added logo to README as existent in NextcloudKit and SwiftNextcloudUI…
i2h3 Jul 10, 2025
0ff791e
fix: Added Package.resolved to .gitignore
i2h3 Jul 17, 2025
437991f
feat(doc): Xcode documentation catalog with deployment to GitHub pages.
i2h3 Jul 10, 2025
317d9ca
fix(tests): Replaced constant time delays with expectations.
i2h3 Jul 17, 2025
a97cf8d
feat(doc): Added documentation about the special handling of lock fil…
i2h3 Jul 17, 2025
26d00a8
feat(doc): Another small method documentation block comment.
i2h3 Jul 17, 2025
2973d7f
fix(doc): Correct Xcode scheme to build documentation from.
i2h3 Jul 17, 2025
1637784
fix(doc): Correct hosting base path.
i2h3 Jul 17, 2025
3ad6fe1
fix(doc): Suggested fix by GitHub Copilot.
i2h3 Jul 17, 2025
4ea80aa
fix(doc): Fixed case of hosting base path for documentation.
i2h3 Jul 17, 2025
7a16f47
feat(doc): Added root redirect.
i2h3 Jul 17, 2025
d6cdbc8
fix: Do not report file provider items as shared.
i2h3 Aug 14, 2025
7715d6f
fix: Ensure existence of required file provider extension database di…
i2h3 Aug 22, 2025
58c1b19
fix: Use dedicated container of file provider extension bundle for ap…
i2h3 Aug 22, 2025
e2633ed
fix: Not creating unnecessary "Database" subdirectory in file provide…
i2h3 Aug 22, 2025
3e00b22
Rename 'circle' case to 'team' in ShareType
Rello Sep 5, 2025
628d78e
feat: Dedicated directories for file provider domain support files.
i2h3 Sep 10, 2025
52acf9f
fix: Updated NextcloudKit dependency to version 7.1.3 and updated fil…
i2h3 Sep 12, 2025
f26f1b1
fix: Add writing capability for directories with CK permission
Rello Sep 22, 2025
8add813
feat: Replaced Unified Logging System with Custom Solution.
i2h3 Aug 13, 2025
37b1a3d
feat: Supporting file lock types.
i2h3 Sep 25, 2025
64c9e41
feat: search db for matching original filename based on the lock file…
camilasan Sep 28, 2025
5396dce
ref(FilesDatabaseManager): simplify calling to return an empty array …
camilasan Sep 29, 2025
6a7c420
ref(originalFileName): return nil if database search fails instead of…
camilasan Sep 30, 2025
b879261
style(LocalFiles): rename FileProviderLogger category to the file name.
camilasan Sep 30, 2025
0864b0d
fix(NKFile+Extensions): prevent `__NC_ROOT__` from appearing
nilsding Oct 6, 2025
ed5deb7
fix: Lock file handling.
i2h3 Oct 1, 2025
0df9377
fix: Log details.
i2h3 Oct 9, 2025
a44fe94
fix: Moved isLockFileOfLocalOrigin.
i2h3 Oct 9, 2025
09ea49d
fix: Retaining the lock token during synchronization.
i2h3 Oct 9, 2025
a5a1ca7
fix: Adapting to the changes of c0ee0c3 in NextcloudKit.
i2h3 Oct 9, 2025
16cffe5
fix: Maintaining associated lock data.
i2h3 Oct 9, 2025
fdaecbc
fix: Refactored logging calls in Item+Modify.swift
i2h3 Oct 9, 2025
7f17f7d
fix: Conditionally adding HTTP header for token lock.
i2h3 Oct 9, 2025
74eaffd
fix: Capabilities and file system flags taking token lock into account.
i2h3 Oct 9, 2025
6720d03
fix: Refactored logging calls.
i2h3 Oct 10, 2025
8285fec
fix: Code readability improvements.
i2h3 Oct 10, 2025
ad374f0
fix: Retain lock token during metadata updates from remote.
i2h3 Oct 10, 2025
bb34ab3
fix: Accept lock file modifications without returning a semantically …
i2h3 Oct 10, 2025
1c84cbc
fix: Unit tests.
i2h3 Oct 13, 2025
62bb0e8
fix: Correct value for logging details.
i2h3 Oct 13, 2025
3c28f9c
fix: Restored removed property initializer for lock token.
i2h3 Oct 13, 2025
bf4d890
fix: Log only account identifier instead of the whole struct.
i2h3 Oct 13, 2025
9d3a90e
fix: Directory enumeration.
i2h3 Oct 14, 2025
a775cdd
fix: Added missing log formatting support for Date and URL.
i2h3 Oct 15, 2025
c485186
fix: Updated documentation.
i2h3 Oct 15, 2025
25d999b
fix: Removed dead code.
i2h3 Oct 15, 2025
8403a2c
feat(logging): Added support for NSFileProviderRequest.
i2h3 Oct 16, 2025
9ef2cf9
feat: Introduced SwiftFormat.
i2h3 Oct 15, 2025
5c286d3
feat: Applied SwiftFormat.
i2h3 Oct 16, 2025
ee149ae
fix: Resolved Xcode code warnings.
i2h3 Oct 16, 2025
fe662ba
fix: Exclude lock files from synchronization in case server is missin…
i2h3 Oct 17, 2025
e7b0f52
fix(tests): expect a different NSFileProviderError depending on avail…
nilsding Oct 17, 2025
aef90f0
refactor(metadata): provide a single method for assembling the full r…
nilsding Oct 17, 2025
8af7dde
fix(swiftformat): Enforced omission of trailing commas.
i2h3 Oct 20, 2025
62a7b4a
chore: Changed casting switch in unified logging implementation.
i2h3 Oct 23, 2025
3aed8ec
fix: NextcloudKit compatibility.
i2h3 Oct 30, 2025
cbede62
fix: Metadata lookup for items with hashtag in name.
i2h3 Nov 12, 2025
863cefb
fix: Tests.
i2h3 Nov 13, 2025
7e7acc8
fix: Added missing handling of root container identifier in enumerati…
i2h3 Nov 18, 2025
28b9667
chore: Applied SwiftFormat.
i2h3 Nov 18, 2025
e96a2db
fix: Tests.
i2h3 Nov 18, 2025
11b4f88
chore: Applied SwiftFormat.
i2h3 Nov 18, 2025
83ce74c
chore: Pinned NextcloudKit dependency to 7.2.2 for now.
i2h3 Nov 18, 2025
6a4b5a5
chore: Removed unnecessary convenience property.
i2h3 Nov 19, 2025
3ff19ff
fix: Compiler warnings about Swift 6 compatibility and Sendable confo…
i2h3 Nov 19, 2025
de71e05
chore: Updated comment.
i2h3 Nov 24, 2025
ff75f45
chore: Updated NextcloudKit dependency to version 7.2.3.
i2h3 Nov 24, 2025
bd2298a
feat: Migrated to Swift 6.2
i2h3 Oct 16, 2025
0cccd74
fix: Updated GitHub action job labels.
i2h3 Oct 16, 2025
e545f06
feat: Introduced REUSE compliance check.
i2h3 Oct 16, 2025
b739241
fix: Removed code coverage collection from GitHub action.
i2h3 Oct 16, 2025
65d8feb
fix: Updated NextcloudCapabilitiesKit dependency from 2.3.0 → 2.4.0
i2h3 Oct 17, 2025
7bb1d19
chore: Outsourced AuthenticationAttemptResultState and EnumerateDepth…
i2h3 Oct 17, 2025
271f279
Work in progress: Required Sendable conformances.
i2h3 Oct 17, 2025
bb52897
fix: Tests.
i2h3 Oct 30, 2025
f89122a
chore: Applied SwiftFormat.
i2h3 Nov 27, 2025
2533a33
fix: Refactored failing test.
i2h3 Nov 27, 2025
cb9c976
fix: Proper sandbox support.
i2h3 Nov 10, 2025
6f66393
chore(file-provider): Moved NextcloudFileProviderKit into subdirectory.
i2h3 Dec 3, 2025
c4ca1d6
Merge branch 'i2h3/chore/nextcloudfileproviderkit-migration' into i2h…
i2h3 Dec 19, 2025
347d417
chore(macOS): Replaced NextcloudFileProviderKit GitHub reference with…
i2h3 Dec 19, 2025
d357677
fix(macOS): Added missing reference to NextcloudFileProviderKit in Fi…
i2h3 Dec 19, 2025
14cfdcb
chore(macOS): Removed references to no longer existing files in Xcode…
i2h3 Dec 19, 2025
eb1ec30
chore(macOS): Migrated GitHub actions workflows of NextcloudFileProvi…
i2h3 Dec 19, 2025
2bfe561
fix(CI): Updated NextcloudFileProviderKit trigger branch name.
i2h3 Dec 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/nextcloudfileproviderkit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# SPDX-FileCopyrightText: Nextcloud GmbH
# SPDX-FileCopyrightText: 2025 Iva Horn
# SPDX-License-Identifier: LGPL-3.0-or-later

name: NextcloudFileProviderKit

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]

jobs:
Lint:
runs-on: macos-latest

defaults:
run:
working-directory: shell_integration/MacOSX/NextcloudFileProviderKit

steps:
- uses: actions/checkout@v4

- name: SwiftFormat
run: swiftformat --lint . --reporter github-actions-log

Tests:
runs-on: macos-latest

defaults:
run:
working-directory: shell_integration/MacOSX/NextcloudFileProviderKit

steps:
- uses: actions/checkout@v4

- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable

- name: Run Tests
run: xcodebuild clean build test -scheme NextcloudFileProviderKit -destination "platform=macOS,name=My Mac"
92 changes: 92 additions & 0 deletions shell_integration/MacOSX/NextcloudFileProviderKit/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

.DS_Store

## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3

## Obj-C/Swift specific
*.hmap

## App packaging
*.ipa
*.dSYM.zip
*.dSYM

## Playgrounds
timeline.xctimeline
playground.xcworkspace

# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
Package.resolved
# *.xcodeproj
#
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
# .swiftpm

.build/

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
#
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build/

# Accio dependency management
Dependencies/
.accio/

# fastlane
#
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output

# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6.2
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--indent-case true
--trailing-commas never
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
Creative Commons Legal Code

CC0 1.0 Universal

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.

Statement of Purpose

The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").

Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.

For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.

1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:

i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.

2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.

3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.

4. Limitations and Disclaimers.

a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.
Loading
Loading