Skip to content

fix(release): include actions, subscriptions, UI extensions in release (DEVX-540)#100

Merged
jpage-godaddy merged 1 commit into
godaddy:rust-portfrom
smukherjee-godaddy:DEVX-540-release-input
Jul 15, 2026
Merged

fix(release): include actions, subscriptions, UI extensions in release (DEVX-540)#100
jpage-godaddy merged 1 commit into
godaddy:rust-portfrom
smukherjee-godaddy:DEVX-540-release-input

Conversation

@smukherjee-godaddy

Copy link
Copy Markdown
Contributor

Problem

gddy application release built its createRelease input from CLI args only — { applicationId, version, description }. Everything a developer adds to godaddy.toml via application addactions, webhook subscriptions, and UI extensions — was silently dropped from the release, so those configs never reached the platform.

Fix

Ports the TS release input (PR #58). release_command now reads godaddy.toml and includes:

  • actions — from config.actions ({ name, url })
  • subscriptions — flattened from config.subscriptions.webhook ({ name, events, url })
  • uiExtensions — from config.extensions (embed / checkout / blocks), mapped to the release shape { name, handle, source, type, target? }

Details:

  • Missing godaddy.toml is non-fatal (empty arrays), matching the TS behavior.
  • One target per extension is enforced (API limit) — more than one is a hard error.
  • blocks maps to name: "Blocks", handle: "blocks" (same fixed identifiers as the TS path); target is omitted when an extension has no targets.
  • createRelease now also returns uiExtensions in its selection set, for verification (PR fix: UI extension release deploy #58).

Impact

Action hooks, webhook subscriptions, and UI extensions configured via application add are now actually included in the release instead of being dropped.

Testing

  • Unit tests: ui_extension_entry field/target mapping (no target omitted, one target set) and multi-target rejection.
  • cargo test / cargo clippy --all-targets -- -D warnings / cargo fmt --check — all clean.
  • Full release-flow integration test (mock credential) deferred to the test-layer ticket; the mapping/validation logic is unit-tested directly.

Context

Track A ("ship an app"). Pairs with DEVX-539 (deploy activation) and DEVX-541 (UI extension targets on application add, which populates the targets this maps from).

…e (DEVX-540)

`application release` sent only { applicationId, version, description }, so every
action, webhook subscription, and UI extension configured in godaddy.toml (via
`application add`) was silently dropped from the release. Ports the TS release
input (PR godaddy#58).

- release_command: read godaddy.toml and include `actions`, `subscriptions`
  (flattened webhook list), and `uiExtensions` in the createRelease input. Missing
  config is non-fatal (empty arrays); >1 target per extension is a hard error
  (API allows one target per extension per release).
- build_ui_extensions / ui_extension_entry: map embed/checkout/blocks to the
  release shape (blocks -> name "Blocks"/handle "blocks"), target optional.
- client: createRelease now also returns uiExtensions for verification (PR godaddy#58).
- tests: field/target mapping + multi-target rejection.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jpage-godaddy jpage-godaddy merged commit afd8d9b into godaddy:rust-port Jul 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants