Consume SVProgressHUD via SPM getting rid of Carthage
This commit is contained in:
parent
025ef069cc
commit
e297ef9086
10 changed files with 40 additions and 43 deletions
11
.github/workflows/deploying.yml
vendored
11
.github/workflows/deploying.yml
vendored
|
|
@ -25,13 +25,6 @@ jobs:
|
||||||
- name: Installing packages
|
- name: Installing packages
|
||||||
run: |
|
run: |
|
||||||
gem install bundler
|
gem install bundler
|
||||||
- uses: actions/cache@v3
|
|
||||||
id: carthage-cache
|
|
||||||
with:
|
|
||||||
path: Carthage
|
|
||||||
key: ${{ runner.os }}-carthage-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/Cartfile.resolved') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-carthage-${{ secrets.CACHE_VERSION }}-
|
|
||||||
- uses: actions/cache@v3
|
- uses: actions/cache@v3
|
||||||
id: gopenpgp-cache
|
id: gopenpgp-cache
|
||||||
with:
|
with:
|
||||||
|
|
@ -43,10 +36,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
bundle config path vendor/bundle
|
bundle config path vendor/bundle
|
||||||
bundle install --jobs 4 --retry 3
|
bundle install --jobs 4 --retry 3
|
||||||
- name: Carthage
|
|
||||||
if: ${{ steps.carthage-cache.outputs.cache-hit == false }}
|
|
||||||
run: |
|
|
||||||
carthage bootstrap --no-use-binaries --cache-builds --use-xcframeworks
|
|
||||||
- name: GopenPGP
|
- name: GopenPGP
|
||||||
if: ${{ steps.gopenpgp-cache.outputs.cache-hit == false }}
|
if: ${{ steps.gopenpgp-cache.outputs.cache-hit == false }}
|
||||||
run: |
|
run: |
|
||||||
|
|
|
||||||
11
.github/workflows/testing.yml
vendored
11
.github/workflows/testing.yml
vendored
|
|
@ -18,13 +18,6 @@ jobs:
|
||||||
- name: Installing packages
|
- name: Installing packages
|
||||||
run: |
|
run: |
|
||||||
gem install bundler
|
gem install bundler
|
||||||
- uses: actions/cache@v3
|
|
||||||
id: carthage-cache
|
|
||||||
with:
|
|
||||||
path: Carthage
|
|
||||||
key: ${{ runner.os }}-carthage-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/Cartfile.resolved') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-carthage-${{ secrets.CACHE_VERSION }}-
|
|
||||||
- uses: actions/cache@v3
|
- uses: actions/cache@v3
|
||||||
id: gopenpgp-cache
|
id: gopenpgp-cache
|
||||||
with:
|
with:
|
||||||
|
|
@ -36,10 +29,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
bundle config path vendor/bundle
|
bundle config path vendor/bundle
|
||||||
bundle install --jobs 4 --retry 3
|
bundle install --jobs 4 --retry 3
|
||||||
- name: Carthage
|
|
||||||
if: ${{ steps.carthage-cache.outputs.cache-hit == false }}
|
|
||||||
run: |
|
|
||||||
carthage bootstrap --no-use-binaries --cache-builds --use-xcframeworks
|
|
||||||
- name: GopenPGP
|
- name: GopenPGP
|
||||||
if: ${{ steps.gopenpgp-cache.outputs.cache-hit == false }}
|
if: ${{ steps.gopenpgp-cache.outputs.cache-hit == false }}
|
||||||
run: ./scripts/gopenpgp_build.sh
|
run: ./scripts/gopenpgp_build.sh
|
||||||
|
|
|
||||||
6
.gitignore
vendored
6
.gitignore
vendored
|
|
@ -46,12 +46,6 @@ playground.xcworkspace
|
||||||
Pods/
|
Pods/
|
||||||
Podfile.lock
|
Podfile.lock
|
||||||
|
|
||||||
# Carthage
|
|
||||||
#
|
|
||||||
# Add this line if you want to avoid checking in source code from Carthage dependencies.
|
|
||||||
Carthage/Checkouts
|
|
||||||
Carthage/Build
|
|
||||||
|
|
||||||
# Go Mobile Build results and dependency sources
|
# Go Mobile Build results and dependency sources
|
||||||
go/
|
go/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
## Excluded folders
|
## Excluded folders
|
||||||
|
|
||||||
--exclude \
|
--exclude \
|
||||||
Carthage, \
|
|
||||||
go, \
|
go, \
|
||||||
Pods, \
|
Pods, \
|
||||||
vendor
|
vendor
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
## Folders to exclude from linting
|
## Folders to exclude from linting
|
||||||
|
|
||||||
excluded:
|
excluded:
|
||||||
- Carthage
|
|
||||||
- go
|
- go
|
||||||
- Pods
|
- Pods
|
||||||
- vendor
|
- vendor
|
||||||
|
|
|
||||||
1
Cartfile
1
Cartfile
|
|
@ -1 +0,0 @@
|
||||||
github "SVProgressHUD/SVProgressHUD" "master"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
github "SVProgressHUD/SVProgressHUD" "de1d4dba816a19454329031156b8788692bcfa2c"
|
|
||||||
|
|
@ -47,11 +47,10 @@ For more, please read the [wiki page](https://github.com/mssun/passforios/wiki).
|
||||||
|
|
||||||
## Building Pass for iOS
|
## Building Pass for iOS
|
||||||
|
|
||||||
1. Install Carthage and Go: `brew install carthage go`.
|
1. Install Go: `brew install go`.
|
||||||
2. Install dependencies via Carthage. Therefore, execute `carthage bootstrap --platform iOS --use-xcframeworks` in the root directory of the project.
|
1. Run `./scripts/gopenpgp_build.sh` to build GopenPGP.
|
||||||
3. Run `./scripts/gopenpgp_build.sh` to build GopenPGP.
|
1. Open the `pass.xcodeproj` file in Xcode.
|
||||||
5. Open the `pass.xcodeproj` file in Xcode.
|
1. Build & Run.
|
||||||
6. Build & Run.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@
|
||||||
3032328E22CBD4CD009EBD9C /* CryptographicKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032328D22CBD4CD009EBD9C /* CryptographicKeys.swift */; };
|
3032328E22CBD4CD009EBD9C /* CryptographicKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032328D22CBD4CD009EBD9C /* CryptographicKeys.swift */; };
|
||||||
3032DA5426DAF4C200A7728C /* ObjectivePGP in Frameworks */ = {isa = PBXBuildFile; productRef = 3032DA5326DAF4C200A7728C /* ObjectivePGP */; };
|
3032DA5426DAF4C200A7728C /* ObjectivePGP in Frameworks */ = {isa = PBXBuildFile; productRef = 3032DA5326DAF4C200A7728C /* ObjectivePGP */; };
|
||||||
3032DA5626DAF4E500A7728C /* ObjectivePGP in Frameworks */ = {isa = PBXBuildFile; productRef = 3032DA5526DAF4E500A7728C /* ObjectivePGP */; };
|
3032DA5626DAF4E500A7728C /* ObjectivePGP in Frameworks */ = {isa = PBXBuildFile; productRef = 3032DA5526DAF4E500A7728C /* ObjectivePGP */; };
|
||||||
|
30333B2B2CF924DC008A2EA2 /* SVProgressHUD in Frameworks */ = {isa = PBXBuildFile; productRef = 30333B2A2CF924DC008A2EA2 /* SVProgressHUD */; };
|
||||||
|
30333B2D2CF9252E008A2EA2 /* SVProgressHUD in Frameworks */ = {isa = PBXBuildFile; productRef = 30333B2C2CF9252E008A2EA2 /* SVProgressHUD */; };
|
||||||
30650E7123F82AF8005CCD5E /* SSHKeyFileImportTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30650E7023F82AF8005CCD5E /* SSHKeyFileImportTableViewController.swift */; };
|
30650E7123F82AF8005CCD5E /* SSHKeyFileImportTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30650E7023F82AF8005CCD5E /* SSHKeyFileImportTableViewController.swift */; };
|
||||||
30650E7323F847FC005CCD5E /* KeyImporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30650E7223F847FC005CCD5E /* KeyImporter.swift */; };
|
30650E7323F847FC005CCD5E /* KeyImporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30650E7223F847FC005CCD5E /* KeyImporter.swift */; };
|
||||||
306623332406F1A8000E2AD6 /* PasswordGeneratorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 306623322406F1A7000E2AD6 /* PasswordGeneratorTest.swift */; };
|
306623332406F1A8000E2AD6 /* PasswordGeneratorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 306623322406F1A7000E2AD6 /* PasswordGeneratorTest.swift */; };
|
||||||
|
|
@ -141,8 +143,6 @@
|
||||||
9A5D070225A5769A00FA59D4 /* PasswordTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A8F9EE1259EDD520027CE15 /* PasswordTableViewCell.swift */; };
|
9A5D070225A5769A00FA59D4 /* PasswordTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A8F9EE1259EDD520027CE15 /* PasswordTableViewCell.swift */; };
|
||||||
9A652414244BB33300DA0A41 /* UIAlertActionExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A652413244BB33300DA0A41 /* UIAlertActionExtension.swift */; };
|
9A652414244BB33300DA0A41 /* UIAlertActionExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A652413244BB33300DA0A41 /* UIAlertActionExtension.swift */; };
|
||||||
9A74D2E0277D2F8C00F7BC44 /* UIAlertControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A74D2DF277D2F8C00F7BC44 /* UIAlertControllerExtension.swift */; };
|
9A74D2E0277D2F8C00F7BC44 /* UIAlertControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A74D2DF277D2F8C00F7BC44 /* UIAlertControllerExtension.swift */; };
|
||||||
9A78A7CC277BECE80093222D /* SVProgressHUD.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30F6C1B327664C7200BE5AB2 /* SVProgressHUD.xcframework */; };
|
|
||||||
9A78A7CD277BECE80093222D /* SVProgressHUD.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 30F6C1B327664C7200BE5AB2 /* SVProgressHUD.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
|
||||||
9A8F9EBD259EA4C50027CE15 /* PasswordsTableDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A8F9EBC259EA4C50027CE15 /* PasswordsTableDataSource.swift */; };
|
9A8F9EBD259EA4C50027CE15 /* PasswordsTableDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A8F9EBC259EA4C50027CE15 /* PasswordsTableDataSource.swift */; };
|
||||||
9A8F9ECC259ECB410027CE15 /* PasswordSelectionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A8F9ECB259ECB410027CE15 /* PasswordSelectionDelegate.swift */; };
|
9A8F9ECC259ECB410027CE15 /* PasswordSelectionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A8F9ECB259ECB410027CE15 /* PasswordSelectionDelegate.swift */; };
|
||||||
9A8F9F4025A1A91F0027CE15 /* CredentialProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A8F9F3F25A1A91F0027CE15 /* CredentialProvider.swift */; };
|
9A8F9F4025A1A91F0027CE15 /* CredentialProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A8F9F3F25A1A91F0027CE15 /* CredentialProvider.swift */; };
|
||||||
|
|
@ -309,7 +309,6 @@
|
||||||
dstSubfolderSpec = 10;
|
dstSubfolderSpec = 10;
|
||||||
files = (
|
files = (
|
||||||
9A996C5926DEB0D200A4485D /* passKit.framework in Embed Frameworks */,
|
9A996C5926DEB0D200A4485D /* passKit.framework in Embed Frameworks */,
|
||||||
9A78A7CD277BECE80093222D /* SVProgressHUD.xcframework in Embed Frameworks */,
|
|
||||||
);
|
);
|
||||||
name = "Embed Frameworks";
|
name = "Embed Frameworks";
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
|
@ -549,6 +548,7 @@
|
||||||
30A3001426DA6692002A734E /* KeychainAccess in Frameworks */,
|
30A3001426DA6692002A734E /* KeychainAccess in Frameworks */,
|
||||||
9A996C5726DDF65900A4485D /* Base32 in Frameworks */,
|
9A996C5726DDF65900A4485D /* Base32 in Frameworks */,
|
||||||
9A1D1CE526E5D1CE0052028E /* OneTimePassword in Frameworks */,
|
9A1D1CE526E5D1CE0052028E /* OneTimePassword in Frameworks */,
|
||||||
|
30333B2D2CF9252E008A2EA2 /* SVProgressHUD in Frameworks */,
|
||||||
30A3001626DA6697002A734E /* SwiftyUserDefaults in Frameworks */,
|
30A3001626DA6697002A734E /* SwiftyUserDefaults in Frameworks */,
|
||||||
3032DA5626DAF4E500A7728C /* ObjectivePGP in Frameworks */,
|
3032DA5626DAF4E500A7728C /* ObjectivePGP in Frameworks */,
|
||||||
9A2C7D862783FF9600BD9AF3 /* YubiKit in Frameworks */,
|
9A2C7D862783FF9600BD9AF3 /* YubiKit in Frameworks */,
|
||||||
|
|
@ -591,10 +591,10 @@
|
||||||
files = (
|
files = (
|
||||||
5F9D7B0D27AF6F7500A8AB22 /* CryptoTokenKit.framework in Frameworks */,
|
5F9D7B0D27AF6F7500A8AB22 /* CryptoTokenKit.framework in Frameworks */,
|
||||||
3010CB6026DA4F87008964D2 /* SwiftyUserDefaults in Frameworks */,
|
3010CB6026DA4F87008964D2 /* SwiftyUserDefaults in Frameworks */,
|
||||||
|
30333B2B2CF924DC008A2EA2 /* SVProgressHUD in Frameworks */,
|
||||||
3010CB6326DA4FE9008964D2 /* FavIcon in Frameworks */,
|
3010CB6326DA4FE9008964D2 /* FavIcon in Frameworks */,
|
||||||
9A1F47FA26E5CF4B000C0E01 /* OneTimePassword in Frameworks */,
|
9A1F47FA26E5CF4B000C0E01 /* OneTimePassword in Frameworks */,
|
||||||
9A996C5326DDF61F00A4485D /* Base32 in Frameworks */,
|
9A996C5326DDF61F00A4485D /* Base32 in Frameworks */,
|
||||||
9A78A7CC277BECE80093222D /* SVProgressHUD.xcframework in Frameworks */,
|
|
||||||
3032DA5426DAF4C200A7728C /* ObjectivePGP in Frameworks */,
|
3032DA5426DAF4C200A7728C /* ObjectivePGP in Frameworks */,
|
||||||
9A2C7D822782CB2F00BD9AF3 /* YubiKit in Frameworks */,
|
9A2C7D822782CB2F00BD9AF3 /* YubiKit in Frameworks */,
|
||||||
3010CB6626DA500F008964D2 /* KeychainAccess in Frameworks */,
|
3010CB6626DA500F008964D2 /* KeychainAccess in Frameworks */,
|
||||||
|
|
@ -1154,6 +1154,7 @@
|
||||||
9A996C5626DDF65900A4485D /* Base32 */,
|
9A996C5626DDF65900A4485D /* Base32 */,
|
||||||
9A1D1CE426E5D1CE0052028E /* OneTimePassword */,
|
9A1D1CE426E5D1CE0052028E /* OneTimePassword */,
|
||||||
9A2C7D852783FF9600BD9AF3 /* YubiKit */,
|
9A2C7D852783FF9600BD9AF3 /* YubiKit */,
|
||||||
|
30333B2C2CF9252E008A2EA2 /* SVProgressHUD */,
|
||||||
);
|
);
|
||||||
productName = passKit;
|
productName = passKit;
|
||||||
productReference = A26075781EEC6F34005DB03E /* passKit.framework */;
|
productReference = A26075781EEC6F34005DB03E /* passKit.framework */;
|
||||||
|
|
@ -1256,6 +1257,7 @@
|
||||||
9A1F47F926E5CF4B000C0E01 /* OneTimePassword */,
|
9A1F47F926E5CF4B000C0E01 /* OneTimePassword */,
|
||||||
30ED1776276F8842009BA876 /* ObjectiveGit */,
|
30ED1776276F8842009BA876 /* ObjectiveGit */,
|
||||||
9A2C7D812782CB2F00BD9AF3 /* YubiKit */,
|
9A2C7D812782CB2F00BD9AF3 /* YubiKit */,
|
||||||
|
30333B2A2CF924DC008A2EA2 /* SVProgressHUD */,
|
||||||
);
|
);
|
||||||
productName = pass;
|
productName = pass;
|
||||||
productReference = DC917BD31E2E8231000FDF54 /* Pass.app */;
|
productReference = DC917BD31E2E8231000FDF54 /* Pass.app */;
|
||||||
|
|
@ -1361,8 +1363,9 @@
|
||||||
9A1F47F826E5CF4B000C0E01 /* XCRemoteSwiftPackageReference "OneTimePassword" */,
|
9A1F47F826E5CF4B000C0E01 /* XCRemoteSwiftPackageReference "OneTimePassword" */,
|
||||||
30ED1775276F8842009BA876 /* XCRemoteSwiftPackageReference "objective-git-swift-package" */,
|
30ED1775276F8842009BA876 /* XCRemoteSwiftPackageReference "objective-git-swift-package" */,
|
||||||
9A2C7D802782CB2F00BD9AF3 /* XCRemoteSwiftPackageReference "yubikit-ios" */,
|
9A2C7D802782CB2F00BD9AF3 /* XCRemoteSwiftPackageReference "yubikit-ios" */,
|
||||||
307CA2312CF346D40099F6DE /* XCRemoteSwiftPackageReference "SwiftLintPlugins" */,
|
|
||||||
307CA2322CF348260099F6DE /* XCRemoteSwiftPackageReference "SwiftFormat" */,
|
307CA2322CF348260099F6DE /* XCRemoteSwiftPackageReference "SwiftFormat" */,
|
||||||
|
307CB7522CF9219100D0931F /* XCRemoteSwiftPackageReference "SVProgressHUD" */,
|
||||||
|
30333B292CF922D9008A2EA2 /* XCRemoteSwiftPackageReference "SwiftLintPlugins" */,
|
||||||
);
|
);
|
||||||
productRefGroup = DC917BD41E2E8231000FDF54 /* Products */;
|
productRefGroup = DC917BD41E2E8231000FDF54 /* Products */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
|
|
@ -2864,6 +2867,14 @@
|
||||||
minimumVersion = 0.55.2;
|
minimumVersion = 0.55.2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
307CB7522CF9219100D0931F /* XCRemoteSwiftPackageReference "SVProgressHUD" */ = {
|
||||||
|
isa = XCRemoteSwiftPackageReference;
|
||||||
|
repositoryURL = "https://github.com/SVProgressHUD/SVProgressHUD";
|
||||||
|
requirement = {
|
||||||
|
kind = upToNextMajorVersion;
|
||||||
|
minimumVersion = 2.3.1;
|
||||||
|
};
|
||||||
|
};
|
||||||
30A3000C26DA62F4002A734E /* XCRemoteSwiftPackageReference "Base32" */ = {
|
30A3000C26DA62F4002A734E /* XCRemoteSwiftPackageReference "Base32" */ = {
|
||||||
isa = XCRemoteSwiftPackageReference;
|
isa = XCRemoteSwiftPackageReference;
|
||||||
repositoryURL = "https://github.com/mattrubin/Base32";
|
repositoryURL = "https://github.com/mattrubin/Base32";
|
||||||
|
|
@ -2924,6 +2935,16 @@
|
||||||
package = 3032DA5226DAF4C200A7728C /* XCRemoteSwiftPackageReference "ObjectivePGP" */;
|
package = 3032DA5226DAF4C200A7728C /* XCRemoteSwiftPackageReference "ObjectivePGP" */;
|
||||||
productName = ObjectivePGP;
|
productName = ObjectivePGP;
|
||||||
};
|
};
|
||||||
|
30333B2A2CF924DC008A2EA2 /* SVProgressHUD */ = {
|
||||||
|
isa = XCSwiftPackageProductDependency;
|
||||||
|
package = 307CB7522CF9219100D0931F /* XCRemoteSwiftPackageReference "SVProgressHUD" */;
|
||||||
|
productName = SVProgressHUD;
|
||||||
|
};
|
||||||
|
30333B2C2CF9252E008A2EA2 /* SVProgressHUD */ = {
|
||||||
|
isa = XCSwiftPackageProductDependency;
|
||||||
|
package = 307CB7522CF9219100D0931F /* XCRemoteSwiftPackageReference "SVProgressHUD" */;
|
||||||
|
productName = SVProgressHUD;
|
||||||
|
};
|
||||||
30A3001326DA6692002A734E /* KeychainAccess */ = {
|
30A3001326DA6692002A734E /* KeychainAccess */ = {
|
||||||
isa = XCSwiftPackageProductDependency;
|
isa = XCSwiftPackageProductDependency;
|
||||||
package = 3010CB6426DA500F008964D2 /* XCRemoteSwiftPackageReference "KeychainAccess" */;
|
package = 3010CB6426DA500F008964D2 /* XCRemoteSwiftPackageReference "KeychainAccess" */;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"originHash" : "cfd99fa2de57765d4ea0531870a48806df8e3971c39177b2ec90b24da2c77efb",
|
"originHash" : "de205d1658853b135e2fee45e9118ceb0bbe55870b93f6b78a0eaf19a36af915",
|
||||||
"pins" : [
|
"pins" : [
|
||||||
{
|
{
|
||||||
"identity" : "base32",
|
"identity" : "base32",
|
||||||
|
|
@ -54,6 +54,15 @@
|
||||||
"revision" : "8d59e4abba762d0f1e9aed161081f7b3fe21daa0"
|
"revision" : "8d59e4abba762d0f1e9aed161081f7b3fe21daa0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"identity" : "svprogresshud",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/SVProgressHUD/SVProgressHUD",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "c33f7c775ba7feea6047a1fc3257f2e5863b44f7",
|
||||||
|
"version" : "2.3.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"identity" : "swiftformat",
|
"identity" : "swiftformat",
|
||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue