ci(ogpeek-extension): auto-publish to Chrome Web Store on release#35
Conversation
Wire chrome-webstore-upload-cli into the existing release-please publish-ogpeek-extension job so that every cut tag pushes the same ogpeek-chrome.zip to the store and submits it for review. Gated by vars.CHROME_AUTOPUBLISH so the step is a no-op until the first manual upload provides an item ID and the four CHROME_* secrets are filled — existing GitHub Release zip distribution keeps working unchanged. Document the bootstrap (developer registration, first manual listing, OAuth refresh token) in AGENTS.md and replace the "no web store" claim in the extension's README (en/ko) so future agents pick the configured channels.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
ogpeek | fc1604a | Commit Preview URL Branch Preview URL |
May 06 2026, 10:57 PM |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fc1604af52
ℹ️ 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".
| CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }} | ||
| CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }} | ||
| REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }} | ||
| run: npx -y chrome-webstore-upload-cli@3 upload --source dist/ogpeek-chrome.zip --auto-publish |
There was a problem hiding this comment.
Invoke the CLI without
upload to actually publish
With chrome-webstore-upload-cli@3, this command will only upload the zip and will not submit it for review. I checked the v3 CLI docs/source: the README says omitting the command “will both upload and publish the extension,” while upload is the upload-only command, and the config sets auto-publish only when no command is provided. In releases where CHROME_AUTOPUBLISH is enabled, the workflow can therefore succeed without performing the promised Chrome Web Store publish step; use chrome-webstore-upload --source dist/ogpeek-chrome.zip (or equivalent publish flow) instead.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
This PR extends the existing release automation for ogpeek-extension by optionally uploading the generated ogpeek-chrome.zip to the Chrome Web Store (and submitting it for review) as part of the release-please workflow, while keeping the behavior gated behind a repo variable to avoid disrupting current releases.
Changes:
- Add a gated Chrome Web Store upload + auto-publish (review submission) step to the
publish-ogpeek-extensionjob. - Update release/developer documentation (
AGENTS.md) with required secrets/variable and one-time bootstrap steps. - Update extension README (EN/KR) to reflect dual distribution channels (GitHub Releases + Chrome Web Store).
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
packages/ogpeek-extension/README.md |
Updates distribution section to describe GitHub Releases + optional Chrome Web Store publishing. |
packages/ogpeek-extension/README.ko.md |
Korean equivalent distribution doc update. |
AGENTS.md |
Adds “Chrome Web Store auto-publish” release documentation (secrets/vars + bootstrap). |
.github/workflows/release-please.yml |
Adds gated chrome-webstore-upload-cli@3 step to upload/submit the extension zip to the Chrome Web Store. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Upload and publish to Chrome Web Store | ||
| if: ${{ vars.CHROME_AUTOPUBLISH == 'true' }} | ||
| working-directory: packages/ogpeek-extension | ||
| env: | ||
| EXTENSION_ID: ${{ secrets.CHROME_EXTENSION_ID }} |
Summary
chrome-webstore-upload-cli@3step to the existingpublish-ogpeek-extensionrelease job. After the GitHub Release zip is uploaded, the sameogpeek-chrome.zipis pushed to the Chrome Web Store and submitted for review (--auto-publish).vars.CHROME_AUTOPUBLISH == 'true'. Until the variable is set, the step is a no-op, so the next release ships through the existing GitHub Release path without surprises.AGENTS.md## Releases(developer registration → first manual upload + listing → OAuth client + refresh token → flip the variable) and update the extension README (en/ko) so the "no web store" claim no longer contradicts the workflow.Why gated
The Chrome Web Store API can only update an existing item — the first upload, store listing, screenshots, privacy policy, single-purpose justification, and
<all_urls>host-permission justification have to be filled in by hand in the Developer Dashboard before any API call can succeed. The variable lets that bootstrap happen at the user's pace without breaking releases.What's needed before the first auto-publish run
CHROME_AUTOPUBLISH('true')CHROME_EXTENSION_IDCHROME_CLIENT_IDCHROME_CLIENT_SECRETCHROME_REFRESH_TOKENTest plan
CHROME_AUTOPUBLISHunset and confirm the new step is skipped (no impact on existing release flow).CHROME_*secrets, setCHROME_AUTOPUBLISH=true, then cut the next release-please tag and confirm the upload + review-submit step succeeds.package.json#versionofpackages/ogpeek-extension.Korean
릴리스 잡(
publish-ogpeek-extension) 끝에chrome-webstore-upload-cli@3스텝을 추가해 GitHub Release에 올라가는 zip을 그대로 Chrome Web Store에 업로드하고 심사 제출까지 자동화합니다. 다만 Chrome Web Store API는 이미 존재하는 아이템만 갱신할 수 있어서, 첫 등록(개발자 계정·스토어 리스팅·스크린샷·프라이버시 정책 등)은 반드시 Developer Dashboard에서 수동으로 마쳐야 합니다.이 시점에 secrets/vars가 비어 있을 수 있으므로
vars.CHROME_AUTOPUBLISH == 'true'로 게이트했습니다 — 변수가 비어 있는 동안에는 step이 통째로 skip돼 기존 GitHub Releases zip 배포 흐름은 그대로 유지됩니다. 부트스트랩 절차와 필요한 4 개의 secret + 1 개의 variable 목록은AGENTS.md의## Releases섹션을 보세요. 익스텐션 README의 "웹 스토어 배포 안 함" 문구도 두 채널 병행으로 갱신했습니다.Generated by Claude Code