Guide a user end-to-end through setting up Chrome Web Store API release automation in any repository. Use when asked to walk someone through OAuth/CWS credential setup, refresh token creation, local/CI secret setup, version-based publish automation, and submission status checks.
69
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill as a hands-on setup guide. The agent should lead the user step-by-step, ask for confirmations, and only automate the parts that can be done locally/in CI.
PUBLISHED, PENDING_REVIEW, etc.).gh is available, offer secret upload automation; if not, provide manual fallback.Collect these inputs:
main, tags, or manual dispatch).env, .env.local, etc.)Ask explicitly:
gh?"Tell user to open:
https://console.cloud.google.com/apis/library/chromewebstore.googleapis.comUser actions:
Enable for Chrome Web Store API.Agent prompt example:
Tell user to open one of:
https://console.cloud.google.com/apis/credentials/consentUser actions:
External user type (for non-Workspace internal apps).Agent guidance:
Tell user to open:
https://console.cloud.google.com/apis/credentialsUser actions:
Create Credentials -> OAuth client ID.Web application.https://developers.google.com/oauthplaygroundCapture values:
CWS_CLIENT_IDCWS_CLIENT_SECRETAgent prompt example:
CWS_CLIENT_ID and CWS_CLIENT_SECRET when ready (I will treat them as secrets)."Tell user to open:
https://developers.google.com/oauthplayground/User actions:
Use your own OAuth credentials.CWS_CLIENT_ID and CWS_CLIENT_SECRET.https://www.googleapis.com/auth/chromewebstoreAuthorize APIs.Exchange authorization code for tokens.Capture value:
CWS_REFRESH_TOKENAgent prompt example:
CWS_REFRESH_TOKEN now. I will only place it in local secret storage/CI secrets."Capture:
CWS_EXTENSION_ID (the extension item ID from store/developer listing URL)CWS_PUBLISHER_ID (developer/publisher ID from Chrome Web Store developer account context)Agent instruction:
Do not proceed until all five exist:
CWS_CLIENT_IDCWS_CLIENT_SECRETCWS_REFRESH_TOKENCWS_PUBLISHER_IDCWS_EXTENSION_IDCreate a local template file (no real values committed):
CWS_CLIENT_ID=
CWS_CLIENT_SECRET=
CWS_REFRESH_TOKEN=
CWS_PUBLISHER_ID=
CWS_EXTENSION_ID=Ensure real secret file path is gitignored.
If using GitHub Actions, ask user if gh automation is desired.
If yes, verify:
gh --version
gh auth statusIf gh auth is missing, tell user to run:
gh auth loginThen implement a helper script that:
--dry-rungh secret set ... --repo ...If user declines gh, provide manual secret entry checklist for repository settings.
Design the CI workflow around this logic:
POST https://oauth2.googleapis.com/tokenGET https://chromewebstore.googleapis.com/v2/publishers/<publisherId>/items/<extensionId>:fetchStatuspublishedItemRevisionStatus.distributionChannels[0].crxVersionPOST https://chromewebstore.googleapis.com/upload/v2/publishers/<publisherId>/items/<extensionId>:uploadPOST https://chromewebstore.googleapis.com/v2/publishers/<publisherId>/items/<extensionId>:publishTreat these publish states as successful submission:
PENDING_REVIEWPUBLISHEDPUBLISHED_TO_TESTERSSTAGEDCreate a script dedicated to "what is the latest submission state?".
Required behavior:
--env-file)--manifest for local version comparison--jsonfetchStatusitemIdlocalVersionpublishedVersionpublishedStatesubmittedVersionsubmittedStateupToDatependingReviewHelpful checks to include:
--json is not usedRun this with the user:
PENDING_REVIEW first in many casesinvalid_grant:403 from CWS endpoint:https://developer.chrome.com/docs/webstore/using-apihttps://developer.chrome.com/docs/webstore/publishhttps://developers.google.com/oauthplayground/https://console.cloud.google.com/apis/library/chromewebstore.googleapis.comhttps://console.cloud.google.com/apis/credentials1a9819e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.