microsoft / StoreBroker

A PowerShell module that leverages the Windows Store Submission API to allow easy automation of application submissions to the Windows Store. The master branch is stable and the v2 branch is under active development.
Other
97 stars 40 forks source link

Consider create a way to easily update the release notes at listings #269

Closed Diegorro98 closed 3 weeks ago

Diegorro98 commented 1 month ago

With the new feature at the Microsoft Store where release notes are shown at the update page, I'm interested on be able to create release notes on my app submissions. My app submissions are automated in a GitHub Actions workflow, and currently I don't update listings. But now I'm trying to update them due to the fact that the release notes are at the listings, the issue I have with this is that every time that I use Update-ApplicationSubmission with UpdateListings switch parameter to update the listings with the json with the release notes, the screenshots are missing...

Currently this is the proccess that I do:

# Create the submission package
$msixPaths = (Get-ChildItem -Path $env:output_path -Filter *.msix -Recurse -Depth 2).FullName
$outName = "submission"
New-SubmissionPackage -ConfigPath $configPath -AppxPath $msixPaths -OutPath $env:output_path -OutName $outName

# Create submission
$submission = New-ApplicationSubmission -AppId $env:AppId -Force -NoStatus

# Set the release notes
foreach ($listing in $submission.listings.PSObject.Properties) {
  $listing.Value.baseListing.releaseNotes = "These are some test release notes"
}
$json = Get-Content -Path $env:output_path\$outName.json -Raw | ConvertFrom-Json
$json | Add-Member -MemberType NoteProperty -Name 'listings' -Value $lastPublishedApplicationSubmission.listings
$json | ConvertTo-Json -Depth 10 | Set-Content -Path $env:output_path\$outName.json

# Create and commit an application submission
Update-ApplicationSubmission -AppId $env:AppId -SubmissionId $submission.id -ReplacePackages -SubmissionDataPath $env:output_path\$outName.json -PackagePath $env:output_path\$outName.zip -UpdateListings -AutoCommit -NoStatus

I wish there was an easier way to update only the release notes, or a way to download the current submitted media, so that I could create a package with the updated listings without needing to have the media stored on the repo.

HowardWolosky commented 3 weeks ago

StoreBroker v1 (what you're using) fully leverages the capabilities of Store API v1. What you're asking for isn't a feature that is supported by Store API v1.

It is actually a feature supported by Store API v2, and StoreBroker v2 does support both of your requests (being able to download media and being able to update string listing metadata without needing to update binary (image) listing metadata), however Store API v2 was unfortunately never fully rolled out for public availability.