[PR #682] [MERGED] feat: add subscription prices CSV import command #711

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

📋 Pull Request Information

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

Base: mainHead: feat/subscriptions-prices-import-csv-648


📝 Commits (1)

  • f6cf02d feat(subscriptions): add CSV import for subscription prices

📊 Changes

8 files changed (+1144 additions, -1 deletions)

View changed files

📝 go.mod (+1 -0)
📝 go.sum (+2 -0)
📝 internal/asc/subscriptions.go (+1 -1)
📝 internal/cli/cmdtest/commands_test.go (+10 -0)
internal/cli/cmdtest/subscriptions_prices_import_test.go (+239 -0)
internal/cli/subscriptions/prices_import.go (+800 -0)
internal/cli/subscriptions/prices_import_test.go (+89 -0)
📝 internal/cli/subscriptions/subscriptions.go (+2 -0)

📄 Description

Summary

  • Add asc subscriptions prices import to bulk-import per-territory subscription prices from CSV, including dry-run and per-row failure reporting.
  • Support canonical and App Store Connect export-style headers, territory name-to-ID normalization, optional direct price_point_id, and price-point lookup by territory + customer price.
  • Add coverage for parsing/validation and command behavior, and align subscription price create payload attributes to preserveCurrentPrice.

Test plan

  • make format
  • make lint
  • ASC_BYPASS_KEYCHAIN=1 make test
  • ASC_BYPASS_KEYCHAIN=1 go test ./internal/cli/subscriptions -run "SubscriptionPricesImport|ResolveSubscriptionPriceImportTerritoryID|ReadSubscriptionPricesImportCSV" -count=1
  • ASC_BYPASS_KEYCHAIN=1 go test ./internal/cli/cmdtest -run "SubscriptionsPricesImport|TestSubscriptionsValidationErrors" -count=1
  • go build -o /tmp/asc .
  • /tmp/asc subscriptions prices import --input ./prices.csv exits with code 2 and usage error when --id is missing
  • /tmp/asc subscriptions prices import --id sub-1 --input ./prices.csv --start-date invalid exits with code 2 and usage error

Closes #648.

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/682 **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/subscriptions-prices-import-csv-648` --- ### 📝 Commits (1) - [`f6cf02d`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/f6cf02d40a329d396b7a315ea7fceb31727e40a4) feat(subscriptions): add CSV import for subscription prices ### 📊 Changes **8 files changed** (+1144 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `go.mod` (+1 -0) 📝 `go.sum` (+2 -0) 📝 `internal/asc/subscriptions.go` (+1 -1) 📝 `internal/cli/cmdtest/commands_test.go` (+10 -0) ➕ `internal/cli/cmdtest/subscriptions_prices_import_test.go` (+239 -0) ➕ `internal/cli/subscriptions/prices_import.go` (+800 -0) ➕ `internal/cli/subscriptions/prices_import_test.go` (+89 -0) 📝 `internal/cli/subscriptions/subscriptions.go` (+2 -0) </details> ### 📄 Description ## Summary - Add `asc subscriptions prices import` to bulk-import per-territory subscription prices from CSV, including dry-run and per-row failure reporting. - Support canonical and App Store Connect export-style headers, territory name-to-ID normalization, optional direct `price_point_id`, and price-point lookup by territory + customer price. - Add coverage for parsing/validation and command behavior, and align subscription price create payload attributes to `preserveCurrentPrice`. ## Test plan - [x] `make format` - [x] `make lint` - [x] `ASC_BYPASS_KEYCHAIN=1 make test` - [x] `ASC_BYPASS_KEYCHAIN=1 go test ./internal/cli/subscriptions -run "SubscriptionPricesImport|ResolveSubscriptionPriceImportTerritoryID|ReadSubscriptionPricesImportCSV" -count=1` - [x] `ASC_BYPASS_KEYCHAIN=1 go test ./internal/cli/cmdtest -run "SubscriptionsPricesImport|TestSubscriptionsValidationErrors" -count=1` - [x] `go build -o /tmp/asc .` - [x] `/tmp/asc subscriptions prices import --input ./prices.csv` exits with code `2` and usage error when `--id` is missing - [x] `/tmp/asc subscriptions prices import --id sub-1 --input ./prices.csv --start-date invalid` exits with code `2` and usage error Closes #648. 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:13 +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#711
No description provided.