Skip to content

Automate Microsoft Store listing updates - #34

Merged
FaulMit merged 1 commit into
mainfrom
feat/store-listing-sync
Aug 21, 2026
Merged

Automate Microsoft Store listing updates#34
FaulMit merged 1 commit into
mainfrom
feat/store-listing-sync

Conversation

@FaulMit

@FaulMit FaulMit commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • keep English and Russian Microsoft Store listing copy and release notes in the repository
  • generate five Store-sized screenshots from current real Captail captures
  • validate Store text, keyword, locale, image-count, format, size, and resolution limits in CI
  • upload package and listing assets into one Partner Center draft, then commit only after synchronization succeeds
  • document repeatable Store-listing release steps

Safety

  • Store credentials remain in the protected GitHub environment
  • package upload always stops at a draft before listing synchronization
  • failed listing synchronization leaves an uncommitted draft
  • listing synchronization can be disabled for package-only tests

Verification

  • ./tools/SyncStoreListing.ps1 -Version 0.2.1 -ValidateOnly
  • ./tools/New-StoreListingScreenshots.ps1
  • dotnet build ./Captail.sln -c Release --no-restore -p:ContinuousIntegrationBuild=true
  • PowerShell parser checks for both new scripts
  • Prettier validation for workflow YAML and listing JSON
  • visual review of all five generated 1920 x 1080 screenshots

@FaulMit
FaulMit merged commit 32d6352 into main Aug 21, 2026
6 of 7 checks passed
@FaulMit
FaulMit deleted the feat/store-listing-sync branch August 21, 2026 13:56

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b48942023f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +322 to +323
$nonScreenshotImages = @($baseListing.Images |
Where-Object { [string]$_.ImageType -ne "Screenshot" })

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Mark prior screenshots for deletion before adding replacements

When the draft is cloned from an existing published submission, BaseListing.Images contains the currently published screenshots. Filtering those objects out of the PUT payload does not request their removal; the Store submission API uses FileStatus = "PendingDelete" for that operation. Consequently, synchronization can retain stale screenshots alongside the new set, eventually exceeding the screenshot limit or publishing outdated images. Preserve the existing screenshot entries and mark them pending deletion before appending the replacements.

Useful? React with 👍 / 👎.

Comment on lines +139 to +140
[IO.Path]::GetExtension($fileName) -ine ".png" -or
[IO.Path]::GetFileName($fileName) -ne $fileName) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Validate the source image encoding instead of its target name

When a manifest points Source at a JPEG, GIF, or renamed non-PNG image while giving it a .png FileName, this check passes and Image.FromFile also loads the asset successfully. The script then copies the original bytes under a PNG filename, so CI's advertised PNG validation succeeds but the Store upload can receive an incorrectly encoded asset and reject the submission. Check RawFormat or the source signature, or explicitly transcode it to PNG.

Useful? React with 👍 / 👎.

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.

1 participant