mirror of
https://github.com/rudrankriyam/App-Store-Connect-CLI.git
synced 2026-04-25 23:55:51 +03:00
[GH-ISSUE #485] Pre-submission guardrails: add asc validate for metadata, assets, required fields, and age-rating completeness #136
Labels
No labels
bug
bug
documentation
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/App-Store-Connect-CLI#136
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @rudrankriyam on GitHub (Feb 10, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/485
Summary
Add a new
asc validatecommand that performs client-side release-readiness checks before submission.Why this matters
Teams commonly run lightweight metadata checks before upload/submit to catch preventable failures early.
Today, validation is split across commands and misses a single pre-submission gate.
Proposed command
Checks in scope (phase 1)
Current state (verified)
migrate validatehas offline character-limit checks, but only for imported local files.internal/cli/submit/submit.go) does not run a holistic pre-submission validator.Output model
Return structured check results with severity:
error: blocks submissionwarning: non-blockinginfo: informationalJSON shape should include:
Detailed implementation plan
internal/cli/validate/withvalidate.go+commands.go.internal/cli/registry/registry.go.internal/validation/) for reusable rules.--strictbehavior to elevate warnings to errors for CI use.README.mdand submission workflow docs.Acceptance criteria
asc validateexists as a top-level command and supports JSON/table/markdown output.make testpasses with full coverage for validator behavior.@rudrankriyam commented on GitHub (Feb 11, 2026):
@cursor Please implement this issue end-to-end.
What to build
Add top-level
asc validatecommand for pre-submission client-side checks across metadata, required fields, screenshot compatibility, and age-rating completeness.Implementation plan
internal/cli/validate/package withvalidate.go+commands.go.internal/cli/registry/registry.go.--output,--pretty) and strict mode.internal/validation/).--strictescalates warnings to blocking behavior for CI.New tests to write
A) Rule unit tests (
internal/validation)B) CLI cmdtests (
internal/cli/cmdtest)C) Regression coverage
How to test locally
Run exactly:
make formatmake lintmake testTargeted tests:
go test ./internal/validation -run 'Metadata|Required|Screenshot|AgeRating'go test ./internal/cli/cmdtest -run 'validate'Done criteria
asc validateis available and documented.--strictincluded).format,lint,test).@cursor[bot] commented on GitHub (Feb 11, 2026):
asc validatecommand with a reusableinternal/validationengine that checks metadata length limits, required fields/locales, screenshot size compatibility, and age-rating completeness, plus--strictCI gating and table/markdown output registration. I also moved metadata limit constants into the shared validation package so migrate and validate use the same source of truth.Tests run:
go test ./internal/validation -run 'Metadata|Required|Screenshot|AgeRating'go test ./internal/cli/cmdtest -run 'validate'(no tests matched due to case sensitivity)go test ./internal/cli/cmdtest -run 'Validate'make tools(to install gofumpt/golangci-lint), thenmake formatmake lintmake test@rudrankriyam commented on GitHub (Feb 11, 2026):
Resolved by PR #492 (https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/492), which is merged into main.