digital-gravy/Deploy to SureCart

Attach a release to one or more SureCart products. v1: use an existing SureCart-hosted media (media_uuid). v2/v3: pull a GitHub release asset — upload to Cloudflare R2 and attach the external URL (upload_target=r2), or upload to SureCart so the version is recognised for WordPress updates (upload_target=surecart).

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
media_uuidThe media UUID of a file already uploaded to SureCart. Triggers v1 mode. Mutually exclusive with release_tag.no""
release_tagGitHub release tag to publish. Accepts "latest". Triggers v2/v3 mode (the action downloads the matching release asset). The upload_target input decides R2 (v2) vs SureCart (v3). Mutually exclusive with media_uuid.no""
upload_targetWhere to upload the release asset when release_tag is used. "r2" (default) → upload to Cloudflare R2 and attach the external URL (v2; does NOT surface a version to WordPress). "surecart" → upload to SureCart so the version is recognised and the WP update prompt works (v3).nor2
asset_patternGlob filter over release asset names. v2/v3 mode. In v3, narrow this to the plugin/theme zip(s) you ship as updates — a matched asset that is not a versioned update will fail the run.no*.zip
current_release_asset_patternGlob picking which asset (by name) becomes the current_release_download when set_as_current_release=true. Empty = first matched asset. v2/v3 mode.no""
object_key_prefixR2 object-key prefix. Final key is <prefix>/<asset-basename>-<sha16>.<ext>. v2 mode only.noreleases
r2_account_idCloudflare R2 account ID. Required in v2 mode.no""
r2_access_key_idR2 S3-compatible access key. Required in v2 mode.no""
r2_secret_access_keyR2 S3-compatible secret. Required in v2 mode.no""
r2_bucketR2 bucket name. Required in v2 mode.no""
r2_public_base_urlPublic URL base (e.g. https://dl.example.com — no trailing slash). Required in v2 mode.no""
github_tokenToken for reading the release and its assets (needed for private repos). Defaults to the workflow GITHUB_TOKEN.no${{ github.token }}
release_ingest_timeout_secondsv3 mode. Max seconds to wait for the version to be recognised after upload. Fails the run on timeout.no30
release_ingest_poll_interval_secondsv3 mode. Seconds between checks while waiting for the version to be recognised.no2
expected_versionv3 mode (optional). If set, the run aborts unless the recognised version matches this exactly.no""
product_uuidsComma-separated list of SureCart product UUIDs to attach the Download(s) to.yes
set_as_current_releaseWhen true, PATCH each product so current_release_download points at the new Download.nofalse
duplicate_behaviorHow to handle a duplicate (already-attached media or URL): "warn" (continue, reuse the existing Download id when surfaced) or "error" (fail).nowarn
duplicate_media_behaviorDEPRECATED alias for duplicate_behavior. Kept for backwards compatibility with v1 callers.no""
dry_runWhen true, log the planned uploads + SureCart POST/PATCH calls without executing them.nofalse
surecart_api_tokenSureCart API token (Bearer).yes
namedescription
download_idsComma-separated list of created/found Download IDs (product × asset).
public_urlsComma-separated list of R2 public URLs uploaded this run. v2 mode only — empty in v1/v3 modes.
object_keysComma-separated list of R2 object keys created. v2 mode only.
media_idsComma-separated list of SureCart media UUIDs created this run. v3 mode only — empty in v1/v2 modes.
action_takenOne of "created", "partial" (some duplicates surfaced), or "skipped" (dry-run).