[PR #694] [MERGED] feat(metadata): add fastlane-parity metadata workflows and migration aliases #715

Closed
opened 2026-02-26 22:32:14 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/694
Author: @rudrankriyam
Created: 2/20/2026
Status: Merged
Merged: 2/21/2026
Merged by: @rudrankriyam

Base: mainHead: feat/metadata-fastlane-parity-587


📝 Commits (10+)

  • 5d70241 feat(metadata): add canonical metadata workflows and migration aliases
  • cb97fea Fix metadata push default locale casing and API call counts
  • 8e7653b Merge pull request #695 from rudrankriyam/cursor/metadata-push-issues-cb88
  • 7369ddf test(metadata): harden metadata edge-case coverage
  • c8d459d Fix validateDir path casing for default locale files
  • 77942a4 metadata: remove unused WriteVersionLocalizationFile helper
  • 9dde68d Merge pull request #696 from rudrankriyam/cursor/default-locale-path-casing-0e39
  • 94b9ada Merge pull request #698 from rudrankriyam/cursor/unused-localization-writer-7302
  • b1d4633 Fix metadata push version validation and validate default locale parity
  • 763bdb7 Merge pull request #699 from rudrankriyam/cursor/cli-metadata-issues-b37e

📊 Changes

18 files changed (+5593 additions, -71 deletions)

View changed files

internal/cli/cmdtest/metadata_pull_test.go (+625 -0)
internal/cli/cmdtest/metadata_push_test.go (+1315 -0)
internal/cli/cmdtest/metadata_validate_test.go (+293 -0)
internal/cli/cmdtest/migrate_metadata_alias_test.go (+83 -0)
📝 internal/cli/docs/templates/ASC.md (+1 -0)
internal/cli/metadata/command.go (+43 -0)
internal/cli/metadata/foundation.go (+419 -0)
internal/cli/metadata/foundation_test.go (+196 -0)
internal/cli/metadata/pull.go (+351 -0)
internal/cli/metadata/push.go (+1250 -0)
internal/cli/metadata/push_test.go (+220 -0)
internal/cli/metadata/render_helpers_test.go (+140 -0)
internal/cli/metadata/validate.go (+347 -0)
internal/cli/metadata/validate_test.go (+142 -0)
internal/cli/migrate/metadata_aliases.go (+44 -0)
📝 internal/cli/migrate/migrate.go (+3 -1)
📝 internal/cli/registry/registry.go (+2 -0)
📝 internal/validation/metadata.go (+119 -70)

📄 Description

Summary

  • add a new asc metadata command group with pull, validate, and push flows backed by strict canonical JSON schemas, deterministic file planning/writes, and safe no-symlink file handling
  • implement metadata push dry-run planning and apply execution with deterministic add/update/delete plans, default-locale parity fallback, and destructive-operation guardrails (--allow-deletes + --confirm)
  • add migration UX aliases via asc migrate metadata <pull|push|validate> and update docs template command groups so fastlane users can transition without changing workflows immediately

Test plan

  • make format
  • make lint
  • ASC_BYPASS_KEYCHAIN=1 make test
  • ASC_BYPASS_KEYCHAIN=1 go test ./internal/cli/cmdtest -run "Metadata(Pull|Validate|Push)" -count=1
  • ASC_BYPASS_KEYCHAIN=1 go test ./internal/cli/migrate ./internal/cli/metadata -count=1

Closes #587
Closes #687
Closes #688
Closes #689
Closes #690
Closes #691
Closes #692
Closes #693

Made with Cursor


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/694 **Author:** [@rudrankriyam](https://github.com/rudrankriyam) **Created:** 2/20/2026 **Status:** ✅ Merged **Merged:** 2/21/2026 **Merged by:** [@rudrankriyam](https://github.com/rudrankriyam) **Base:** `main` ← **Head:** `feat/metadata-fastlane-parity-587` --- ### 📝 Commits (10+) - [`5d70241`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/5d70241d35838e07e7a84d242bf3451532daf535) feat(metadata): add canonical metadata workflows and migration aliases - [`cb97fea`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/cb97fea07971db243aa24c62b57125879f69e974) Fix metadata push default locale casing and API call counts - [`8e7653b`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/8e7653bdb923c03b4fef2fdde12315cd4430cca3) Merge pull request #695 from rudrankriyam/cursor/metadata-push-issues-cb88 - [`7369ddf`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/7369ddf86537d116df904c1fb2ed9c4d561c295d) test(metadata): harden metadata edge-case coverage - [`c8d459d`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/c8d459d631eb59f0a7501280a8596724e0233ee1) Fix validateDir path casing for default locale files - [`77942a4`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/77942a45a4968d0e520d0610c1a2eac6f3f585c7) metadata: remove unused WriteVersionLocalizationFile helper - [`9dde68d`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/9dde68d124a3f25e2f4f011a99145317d4241167) Merge pull request #696 from rudrankriyam/cursor/default-locale-path-casing-0e39 - [`94b9ada`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/94b9adacd495d1ad17283a41b41fb1bca7cf2e74) Merge pull request #698 from rudrankriyam/cursor/unused-localization-writer-7302 - [`b1d4633`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/b1d4633fc0169a8b7f0cf95b4679e293d3c93c7d) Fix metadata push version validation and validate default locale parity - [`763bdb7`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/763bdb714a9b3b0ea88cbd069c399ed4f8926de5) Merge pull request #699 from rudrankriyam/cursor/cli-metadata-issues-b37e ### 📊 Changes **18 files changed** (+5593 additions, -71 deletions) <details> <summary>View changed files</summary> ➕ `internal/cli/cmdtest/metadata_pull_test.go` (+625 -0) ➕ `internal/cli/cmdtest/metadata_push_test.go` (+1315 -0) ➕ `internal/cli/cmdtest/metadata_validate_test.go` (+293 -0) ➕ `internal/cli/cmdtest/migrate_metadata_alias_test.go` (+83 -0) 📝 `internal/cli/docs/templates/ASC.md` (+1 -0) ➕ `internal/cli/metadata/command.go` (+43 -0) ➕ `internal/cli/metadata/foundation.go` (+419 -0) ➕ `internal/cli/metadata/foundation_test.go` (+196 -0) ➕ `internal/cli/metadata/pull.go` (+351 -0) ➕ `internal/cli/metadata/push.go` (+1250 -0) ➕ `internal/cli/metadata/push_test.go` (+220 -0) ➕ `internal/cli/metadata/render_helpers_test.go` (+140 -0) ➕ `internal/cli/metadata/validate.go` (+347 -0) ➕ `internal/cli/metadata/validate_test.go` (+142 -0) ➕ `internal/cli/migrate/metadata_aliases.go` (+44 -0) 📝 `internal/cli/migrate/migrate.go` (+3 -1) 📝 `internal/cli/registry/registry.go` (+2 -0) 📝 `internal/validation/metadata.go` (+119 -70) </details> ### 📄 Description ## Summary - add a new `asc metadata` command group with `pull`, `validate`, and `push` flows backed by strict canonical JSON schemas, deterministic file planning/writes, and safe no-symlink file handling - implement `metadata push` dry-run planning and apply execution with deterministic add/update/delete plans, default-locale parity fallback, and destructive-operation guardrails (`--allow-deletes` + `--confirm`) - add migration UX aliases via `asc migrate metadata <pull|push|validate>` and update docs template command groups so fastlane users can transition without changing workflows immediately ## Test plan - [x] `make format` - [x] `make lint` - [x] `ASC_BYPASS_KEYCHAIN=1 make test` - [x] `ASC_BYPASS_KEYCHAIN=1 go test ./internal/cli/cmdtest -run "Metadata(Pull|Validate|Push)" -count=1` - [x] `ASC_BYPASS_KEYCHAIN=1 go test ./internal/cli/migrate ./internal/cli/metadata -count=1` Closes #587 Closes #687 Closes #688 Closes #689 Closes #690 Closes #691 Closes #692 Closes #693 Made with [Cursor](https://cursor.com) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 22:32:14 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/App-Store-Connect-CLI#715
No description provided.