[GH-ISSUE #691] feat(metadata): add metadata push apply mode (create/update/delete) #191

Closed
opened 2026-02-26 21:33:57 +03:00 by kerem · 0 comments
Owner

Originally created by @rudrankriyam on GitHub (Feb 20, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/691

Parent

Summary

Implement mutation mode for asc metadata push that applies the computed plan to App Store Connect in a predictable, auditable way.

Scope

  • Execute create/update/delete actions from the plan engine.
  • Preserve deterministic execution ordering.
  • Provide explicit deletion controls for destructive operations.
  • Reuse the same normalized diff model as --dry-run to avoid planner/apply drift.

Proposed CLI Extensions

# Apply computed changes
asc metadata push --app "APP_ID" --version "1.2.3" --dir "./metadata"

# Guardrails for deletes
asc metadata push --app "APP_ID" --version "1.2.3" --dir "./metadata" --allow-deletes --confirm

Detailed Tasks

  • Implement apply executor from deterministic plan.
  • Define delete policy (field clear vs locale delete) and encode explicitly.
  • Add destructive-op guardrails (--allow-deletes, --confirm pattern).
  • Ensure idempotency when local and remote already match.
  • Emit apply result artifact with per-item status and API call summary.

Test Plan (TDD)

  • Cmdtest: apply performs expected mutation sequence against httptest server.
  • Cmdtest: delete attempts without required flags fail with usage error.
  • Cmdtest: successful apply returns deterministic structured output.
  • Unit: idempotent no-op behavior when plan is empty.
  • Unit: retry/error propagation preserves failing item context.

Acceptance Criteria

  • metadata push applies planned changes with deterministic behavior.
  • Destructive operations require explicit opt-in flags.
  • Planner and apply paths share a single source of truth.
  • Tests cover create/update/delete and guardrails.

Out of Scope

  • Fastlane-specific directory semantics (handled in parity/migration issues).
Originally created by @rudrankriyam on GitHub (Feb 20, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/691 ## Parent - #587 - Depends on #690 ## Summary Implement mutation mode for `asc metadata push` that applies the computed plan to App Store Connect in a predictable, auditable way. ## Scope - Execute create/update/delete actions from the plan engine. - Preserve deterministic execution ordering. - Provide explicit deletion controls for destructive operations. - Reuse the same normalized diff model as `--dry-run` to avoid planner/apply drift. ## Proposed CLI Extensions ```bash # Apply computed changes asc metadata push --app "APP_ID" --version "1.2.3" --dir "./metadata" # Guardrails for deletes asc metadata push --app "APP_ID" --version "1.2.3" --dir "./metadata" --allow-deletes --confirm ``` ## Detailed Tasks - [ ] Implement apply executor from deterministic plan. - [ ] Define delete policy (field clear vs locale delete) and encode explicitly. - [ ] Add destructive-op guardrails (`--allow-deletes`, `--confirm` pattern). - [ ] Ensure idempotency when local and remote already match. - [ ] Emit apply result artifact with per-item status and API call summary. ## Test Plan (TDD) - [ ] Cmdtest: apply performs expected mutation sequence against httptest server. - [ ] Cmdtest: delete attempts without required flags fail with usage error. - [ ] Cmdtest: successful apply returns deterministic structured output. - [ ] Unit: idempotent no-op behavior when plan is empty. - [ ] Unit: retry/error propagation preserves failing item context. ## Acceptance Criteria - [ ] `metadata push` applies planned changes with deterministic behavior. - [ ] Destructive operations require explicit opt-in flags. - [ ] Planner and apply paths share a single source of truth. - [ ] Tests cover create/update/delete and guardrails. ## Out of Scope - Fastlane-specific directory semantics (handled in parity/migration issues).
kerem 2026-02-26 21:33:57 +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#191
No description provided.