Skip to content

Add Microsoft Store auto-submit via Partner Center API - #104

Open
sgf36 wants to merge 2 commits into
mainfrom
feat/store-submission-api
Open

sgf36 wants to merge 2 commits into
mainfrom
feat/store-submission-api

Conversation

@sgf36

@sgf36 sgf36 commented Oct 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • New packaging/submit_to_store.py script that automates Microsoft Store MSIX submissions via the Partner Center submission API (manage.devcenter.microsoft.com), mirroring the MAS auto-submit flow on macOS.
  • CI step added to the Windows leg of build.yml, gated on PARTNER_CENTER_CLIENT_SECRET — no-op until secrets are configured.
  • CI-STORE-SUBMISSION-SETUP.md documents the one-time Azure AD app association and repo secret setup.

How it works

  1. Authenticates with Azure AD client credentials (tenant ID, client ID, client secret)
  2. Creates a new submission (clone of last published)
  3. Marks old packages for deletion, adds the new signed MSIX
  4. Updates releaseNotes across all listing locales from store_assets/RELEASE-NOTES-{version}.md
  5. Uploads the MSIX (in a ZIP) to the SAS blob URL
  6. Commits the submission and polls until accepted for certification

Secrets needed (once this PR merges)

Secret Value
PARTNER_CENTER_TENANT_ID Azure AD tenant ID
PARTNER_CENTER_CLIENT_ID Azure AD app client ID
PARTNER_CENTER_CLIENT_SECRET Client secret from Partner Center
PARTNER_CENTER_APP_ID Internal Partner Center application ID

Test plan

  • CI passes on this PR (the Store submission step is gated — it will be skipped since secrets don't exist)
  • After merge: add the four secrets, push a commit to main, verify the "Submit MSIX to Microsoft Store" step runs in the Windows leg
  • Confirm the submission appears in Partner Center with the correct MSIX and release notes

🤖 Generated with Claude Code

sgf36 and others added 2 commits October 26, 2026 21:13
New script packaging/submit_to_store.py mirrors the MAS auto-submit:
authenticates with Azure AD client credentials, creates a submission
(clone of last published), uploads the signed MSIX, sets release notes
across all listing locales, and commits for certification.

CI step added to the Windows leg of build.yml, gated on
PARTNER_CENTER_CLIENT_SECRET — no-op until the secrets are configured.
CI-STORE-SUBMISSION-SETUP.md documents the one-time Azure AD app
association and secret setup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The MAS auto-submit step failed with 403 on appStoreVersionSubmissions
but the traceback showed only "403 Client Error: Forbidden" with no
Apple error code.  Now ASCClient._raise() prints every error object
from Apple's response body before raising, and submit_for_review()
prints a diagnostic hint when the 403 is specifically on submission
(API key role must be App Manager or Admin, not Developer).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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