Repository navigation
ci(publish): move Chrome Web Store to API v2 - #24
Merged
Merged
Conversation
Chrome Web Store API v1.1, and the OAuth client/refresh-token auth the workflow used, stopped working on 2026-10-15 (publish-browser-extension v6 warns about this). Switch to API v2: - Mint a short-lived access token from a service-account JSON key (secret CHROME_SERVICE_ACCOUNT_KEY) by signing a JWT with node's crypto, and share it between the version check and the upload. - Check the store version with v2 fetchStatus (published and submitted revisions), failing the step on API errors rather than guessing. - Publish with --chrome-api-version v2 and CHROME_PUBLISHER_ID. Also let Firefox and Edge publish even if Chrome fails (the job still fails), report per-store failures in the summary, point release notes at CHANGELOG.md, and update PUBLISHING.md for the new setup. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #24 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 1 1
Lines 4 4
Branches 1 1
=========================================
Hits 4 4 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Edge uses --edge-skip-submit-review, so the run only uploads a draft that still has to be submitted in Partner Center. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop --edge-skip-submit-review so Edge, like Chrome and Firefox, is submitted for review after upload instead of left as a draft. It was added to avoid 'already in review' rejections; with stores now isolated, that case fails only the Edge step and can be re-run. Also point PUBLISHING.md at Publisher > Settings, where the dashboard actually puts the service account field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Chrome Web Store API v1.1 — and the OAuth client ID / refresh-token auth this workflow uses — stopped working on 2026-10-15 (
publish-browser-extensionv6 logs this deprecation). Without this, the v1.2.1 publish fails at the Chrome step and, because it's one job, skips Firefox and Edge too.Chrome (API v2, service account)
crypto(no new actions/deps); token is masked and shared by the check and upload steps.fetchStatusand skips if the local version is already published or in review.curl -fmakes API errors fail the step instead of silently re-publishing.publish-browser-extension --chrome-api-version v2 --chrome-publisher-id ….Resilience
!cancelled(), gated on a successful build); the job still ends red.CHANGELOG.md(wasdescription.md#version-history, which no longer exists).Edge auto-submit
--edge-skip-submit-review: Edge uploads are now submitted for review like Chrome and Firefox. If a previous version is still in review, only the Edge step fails and can be re-run.Setup required before merging the release (documented in
PUBLISHING.md)CHROME_SERVICE_ACCOUNT_KEY: full JSON key of a service account in a project with the Chrome Web Store API enabled, added under Account in the Developer DashboardCHROME_PUBLISHER_ID: fromhttps://chrome.google.com/webstore/devconsole/<publisher-id>Tested offline: the JWT is verified against a throwaway RSA key, and the
jqversion extraction against sample v2 responses. The live API calls only run on a real publish.🤖 Generated with Claude Code