[PR #668] [MERGED] feat: add deterministic localizations diff command #697

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

📋 Pull Request Information

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

Base: mainHead: feat/metadata-diff-586


📝 Commits (10+)

  • 313c3e3 feat: add deterministic localizations diff command
  • b109a99 Remove duplicated localization mapping logic
  • 9f6777f Merge pull request #669 from rudrankriyam/cursor/diff-command-code-quality-8e47
  • fd083a2 test: cover exported localization helper contracts
  • 010a11e Fix UTF-8-safe truncation in localization diff cells
  • fc08ed2 fix: harden diff cell truncation and utf-8 coverage
  • daf839b Merge pull request #670 from rudrankriyam/cursor/diff-cell-utf-8-truncation-3c73
  • a871c8f fix: validate diff version ownership and direction contract
  • 440c257 refactor diff localization key validation to shared helper
  • 0086d28 Merge pull request #674 from rudrankriyam/cursor/duplicate-localization-validation-f0ce

📊 Changes

8 files changed (+1242 additions, -4 deletions)

View changed files

internal/cli/cmdtest/diff_localizations_test.go (+525 -0)
internal/cli/diffcmd/diff.go (+34 -0)
internal/cli/diffcmd/localizations.go (+489 -0)
internal/cli/diffcmd/localizations_test.go (+68 -0)
📝 internal/cli/docs/templates/ASC.md (+1 -0)
📝 internal/cli/registry/registry.go (+2 -0)
📝 internal/cli/shared/localizations.go (+24 -4)
📝 internal/cli/shared/localizations_test.go (+99 -0)

📄 Description

Summary

  • add a new asc diff command group with asc diff localizations for non-mutating metadata comparison
  • support both local-vs-remote (--path + --version) and remote-vs-remote (--from-version + --to-version) flows with strict usage validation
  • emit deterministic JSON plans (adds, updates, deletes) and human-friendly table/markdown output, plus cmdtest coverage for success/error paths

Test plan

  • make format
  • make lint
  • ASC_BYPASS_KEYCHAIN=1 make test
  • go test ./internal/cli/cmdtest -run DiffLocalizations -count=1
  • go build -o /tmp/asc .
  • /tmp/asc diff localizations --app app-1 returns usage error (exit code 2)

Closes #586.

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/668 **Author:** [@rudrankriyam](https://github.com/rudrankriyam) **Created:** 2/20/2026 **Status:** ✅ Merged **Merged:** 2/20/2026 **Merged by:** [@rudrankriyam](https://github.com/rudrankriyam) **Base:** `main` ← **Head:** `feat/metadata-diff-586` --- ### 📝 Commits (10+) - [`313c3e3`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/313c3e32e001e79e2182488a67e0b57dcb2a44cb) feat: add deterministic localizations diff command - [`b109a99`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/b109a99b5255cda5247b50ed90d4cc47747ab597) Remove duplicated localization mapping logic - [`9f6777f`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/9f6777f3331a2feebd679c395c89cc2a321cd1e9) Merge pull request #669 from rudrankriyam/cursor/diff-command-code-quality-8e47 - [`fd083a2`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/fd083a2cfa2ac3d0a1795bfa3e5d70c67e0049f1) test: cover exported localization helper contracts - [`010a11e`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/010a11e0a5bc999b3648be3eb1779fc61010e4a8) Fix UTF-8-safe truncation in localization diff cells - [`fc08ed2`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/fc08ed21d6b52330286709e2358f3ce5aa91c302) fix: harden diff cell truncation and utf-8 coverage - [`daf839b`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/daf839bb51ee3c85444b2d01c09c95fc79492d52) Merge pull request #670 from rudrankriyam/cursor/diff-cell-utf-8-truncation-3c73 - [`a871c8f`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/a871c8f524d376fc96ffc93a9f933e97d87ea859) fix: validate diff version ownership and direction contract - [`440c257`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/440c257ccfed1b89990d7296a2405396cb98f1a0) refactor diff localization key validation to shared helper - [`0086d28`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/0086d28b900ae988b89d4f2691b462c183456051) Merge pull request #674 from rudrankriyam/cursor/duplicate-localization-validation-f0ce ### 📊 Changes **8 files changed** (+1242 additions, -4 deletions) <details> <summary>View changed files</summary> ➕ `internal/cli/cmdtest/diff_localizations_test.go` (+525 -0) ➕ `internal/cli/diffcmd/diff.go` (+34 -0) ➕ `internal/cli/diffcmd/localizations.go` (+489 -0) ➕ `internal/cli/diffcmd/localizations_test.go` (+68 -0) 📝 `internal/cli/docs/templates/ASC.md` (+1 -0) 📝 `internal/cli/registry/registry.go` (+2 -0) 📝 `internal/cli/shared/localizations.go` (+24 -4) 📝 `internal/cli/shared/localizations_test.go` (+99 -0) </details> ### 📄 Description ## Summary - add a new `asc diff` command group with `asc diff localizations` for non-mutating metadata comparison - support both local-vs-remote (`--path` + `--version`) and remote-vs-remote (`--from-version` + `--to-version`) flows with strict usage validation - emit deterministic JSON plans (`adds`, `updates`, `deletes`) and human-friendly table/markdown output, plus cmdtest coverage for success/error paths ## Test plan - [x] `make format` - [x] `make lint` - [x] `ASC_BYPASS_KEYCHAIN=1 make test` - [x] `go test ./internal/cli/cmdtest -run DiffLocalizations -count=1` - [x] `go build -o /tmp/asc .` - [x] `/tmp/asc diff localizations --app app-1` returns usage error (exit code 2) Closes #586. 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:09 +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#697
No description provided.