Implement sync testflight config command
Implement Sync TestFlight Configuration Command for syncing local and server TestFlight configs.
Support:
- [x] Create Group
- [x] Delete Group
- [x] Modify Group
- [x] Add Testers to App
- [x] Add Testers to Group
- [x] Remove Testers from App
- [x] Remove Testers from Group
📝 Summary of Changes
Changes proposed in this pull request:
- Create
TestFlightConfigLoaderandTestFlightConfiguration - Create
BetaGroupandBetaTesterin new FileSystem module - Create
SyncResourceComparatorfor comparing local and server resources - Implement push and pull command.
⚠️ Items of Note
Due to the number of API calls, the pull config from server command will take a considerable amount of time.
Limitations:
- Can't perform creating a group and adding testers to the group at the same time.
🧐🗒 Reviewer Notes
💁 Example
Usage:
asc testflight sync pull [--output-path <output-path>]
asc testflight sync push [--input-path <input-path>] [--dry-run] [--refresh-local]
🔨 How To Test
swift run asc testflight sync pull
swift run asc testflight sync push --dry-run
swift run asc testflight sync push
Regarding the speed of the process, is there any way we could use the ASC API's ability to include sub-resources in requests to create/update? See the WWDC20 video https://developer.apple.com/videos/play/wwdc2020/10004/ from about the 9 minute mark.