[PR #492] [MERGED] Asc pre-submission validation #566

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

📋 Pull Request Information

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

Base: mainHead: cursor/asc-pre-submission-validation-d668


📝 Commits (10+)

  • b4c0d68 test: add validate rule coverage
  • 6b92626 feat: add pre-submission validate command
  • b0a4a06 test: reuse cmdtest roundTrip helper
  • 01d271a fix: render validate table output
  • 7c5aadc chore: format validate additions
  • 1c02aba test: remove unused validation helper
  • 53ca9a9 test: remove unused helper import
  • 51ec3f8 Fix metadata rune counts and share app info helpers
  • 7c7ae4b Merge pull request #494 from rudrankriyam/cursor/validation-and-shared-utilities-8557
  • 68939d8 Fix migrate length validation and helper visibility

📊 Changes

23 files changed (+1831 additions, -108 deletions)

View changed files

📝 README.md (+22 -0)
📝 internal/asc/client_core.go (+17 -4)
internal/asc/output_validate.go (+75 -0)
internal/cli/cmdtest/validate_test.go (+278 -0)
📝 internal/cli/migrate/migrate.go (+34 -99)
📝 internal/cli/migrate/migrate_test.go (+58 -5)
📝 internal/cli/registry/registry.go (+2 -0)
internal/cli/shared/app_info_helpers.go (+71 -0)
internal/cli/validate/commands.go (+75 -0)
internal/cli/validate/test_hooks.go (+20 -0)
internal/cli/validate/validate.go (+201 -0)
internal/validation/age_rating.go (+149 -0)
internal/validation/age_rating_test.go (+45 -0)
internal/validation/helpers_test.go (+10 -0)
internal/validation/limits.go (+11 -0)
internal/validation/metadata.go (+90 -0)
internal/validation/metadata_test.go (+69 -0)
internal/validation/report.go (+41 -0)
internal/validation/required_fields.go (+144 -0)
internal/validation/required_fields_test.go (+36 -0)

...and 3 more files

📄 Description

Summary

This PR introduces the new top-level asc validate command, which performs client-side pre-submission checks for App Store Connect metadata, required fields, screenshot compatibility, and age rating completeness.

Key changes include:

  • A new internal/validation package with a reusable validation engine and shared metadata limit constants.
  • Data collection from App Store Connect to populate validation inputs.
  • Support for --output (JSON/table), --pretty, and --strict flags for CI gating.
  • Comprehensive unit and command tests for all validation rules and CLI behavior.

Validation

  • make format
  • make lint
  • make test

Wall of Apps (only if this PR adds/updates a Wall app)

  • I edited docs/wall-of-apps.json (not the generated Wall block in README.md directly)
  • I ran make update-wall-of-apps
  • I committed all generated files:
    • docs/wall-of-apps.json
    • README.md

Entry template:

{
  "app": "Your App Name",
  "link": "https://apps.apple.com/app/id1234567890",
  "creator": "your-github-handle",
  "platform": ["iOS"]
}

Common Apple labels: iOS, macOS, watchOS, tvOS, visionOS.


Open in Cursor Open in Web


🔄 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/492 **Author:** [@rudrankriyam](https://github.com/rudrankriyam) **Created:** 2/11/2026 **Status:** ✅ Merged **Merged:** 2/11/2026 **Merged by:** [@rudrankriyam](https://github.com/rudrankriyam) **Base:** `main` ← **Head:** `cursor/asc-pre-submission-validation-d668` --- ### 📝 Commits (10+) - [`b4c0d68`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/b4c0d68dfcd7b9b0efe530559151abbd0932975a) test: add validate rule coverage - [`6b92626`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/6b92626a7aefff0f7369696e860e3885c1760124) feat: add pre-submission validate command - [`b0a4a06`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/b0a4a061f6633cf97f9e75810e185bb7c0cdbe05) test: reuse cmdtest roundTrip helper - [`01d271a`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/01d271ad6b23a07d3a7cfdf81e779e077b4c794b) fix: render validate table output - [`7c5aadc`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/7c5aadc5b0ca59141326cd8402cb14ec50ac5f8c) chore: format validate additions - [`1c02aba`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/1c02abaf8efd64e5c3a53c7d56ff3724b50007e9) test: remove unused validation helper - [`53ca9a9`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/53ca9a9aa191e933e300b34fcaf37a58b3e66851) test: remove unused helper import - [`51ec3f8`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/51ec3f8064ee502be1667be025dc9c051d505813) Fix metadata rune counts and share app info helpers - [`7c7ae4b`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/7c7ae4b7173c52a3859c42c7af53ed80687798f1) Merge pull request #494 from rudrankriyam/cursor/validation-and-shared-utilities-8557 - [`68939d8`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/68939d83bb3df7789b8794335a86391bce20d3c9) Fix migrate length validation and helper visibility ### 📊 Changes **23 files changed** (+1831 additions, -108 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+22 -0) 📝 `internal/asc/client_core.go` (+17 -4) ➕ `internal/asc/output_validate.go` (+75 -0) ➕ `internal/cli/cmdtest/validate_test.go` (+278 -0) 📝 `internal/cli/migrate/migrate.go` (+34 -99) 📝 `internal/cli/migrate/migrate_test.go` (+58 -5) 📝 `internal/cli/registry/registry.go` (+2 -0) ➕ `internal/cli/shared/app_info_helpers.go` (+71 -0) ➕ `internal/cli/validate/commands.go` (+75 -0) ➕ `internal/cli/validate/test_hooks.go` (+20 -0) ➕ `internal/cli/validate/validate.go` (+201 -0) ➕ `internal/validation/age_rating.go` (+149 -0) ➕ `internal/validation/age_rating_test.go` (+45 -0) ➕ `internal/validation/helpers_test.go` (+10 -0) ➕ `internal/validation/limits.go` (+11 -0) ➕ `internal/validation/metadata.go` (+90 -0) ➕ `internal/validation/metadata_test.go` (+69 -0) ➕ `internal/validation/report.go` (+41 -0) ➕ `internal/validation/required_fields.go` (+144 -0) ➕ `internal/validation/required_fields_test.go` (+36 -0) _...and 3 more files_ </details> ### 📄 Description ## Summary This PR introduces the new top-level `asc validate` command, which performs client-side pre-submission checks for App Store Connect metadata, required fields, screenshot compatibility, and age rating completeness. Key changes include: - A new `internal/validation` package with a reusable validation engine and shared metadata limit constants. - Data collection from App Store Connect to populate validation inputs. - Support for `--output` (JSON/table), `--pretty`, and `--strict` flags for CI gating. - Comprehensive unit and command tests for all validation rules and CLI behavior. ## Validation - [x] `make format` - [x] `make lint` - [x] `make test` ## Wall of Apps (only if this PR adds/updates a Wall app) - [ ] I edited `docs/wall-of-apps.json` (not the generated Wall block in `README.md` directly) - [ ] I ran `make update-wall-of-apps` - [ ] I committed all generated files: - `docs/wall-of-apps.json` - `README.md` Entry template: ```json { "app": "Your App Name", "link": "https://apps.apple.com/app/id1234567890", "creator": "your-github-handle", "platform": ["iOS"] } ``` Common Apple labels: `iOS`, `macOS`, `watchOS`, `tvOS`, `visionOS`. --- <p><a href="https://cursor.com/background-agent?bcId=bc-fab7d7e8-15bb-46f4-8180-f622e47039aa"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?id=bc-fab7d7e8-15bb-46f4-8180-f622e47039aa"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a></p> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 22:31:32 +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#566
No description provided.