Skip to content

Release workflow: sign .xpi via AMO and publish to Chrome Web Store#19

Merged
ShiosOS merged 3 commits into
mainfrom
cursor/store-publish-automation-1cf5
Jul 14, 2026
Merged

Release workflow: sign .xpi via AMO and publish to Chrome Web Store#19
ShiosOS merged 3 commits into
mainfrom
cursor/store-publish-automation-1cf5

Conversation

@ShiosOS

@ShiosOS ShiosOS commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Both steps are gated on their secrets being configured, so the workflow
keeps producing a plain GitHub Release until AMO_JWT_ISSUER/SECRET and
the CWS_* secrets are added. With secrets present, the .xpi attached to
the release is the Mozilla-signed (unlisted channel) file, and the .zip
is uploaded to the Chrome Web Store and submitted for publication.

Co-authored-by: Julius Walton ShiosOS@users.noreply.github.com


Note

Low Risk
CI-only conditional changes with no application code impact; reduces failed release runs when secrets are partially configured.

Overview
Release workflow now skips Mozilla signing and Chrome Web Store publishing unless every credential for that step is configured, not just a single secret.

The AMO sign step runs only when both AMO_JWT_ISSUER and AMO_JWT_SECRET are non-empty (previously only the issuer was checked). The CWS publish step requires CWS_EXTENSION_ID, CWS_CLIENT_ID, CWS_CLIENT_SECRET, and CWS_REFRESH_TOKEN together (previously only the extension id). Partial secret setup no longer triggers steps that would fail at runtime; the job still falls back to a plain GitHub Release when secrets are missing.

Reviewed by Cursor Bugbot for commit 1f4fc47. Bugbot is set up for automated code reviews on this repo. Configure here.

cursoragent and others added 2 commits July 14, 2026 18:15
Both steps are gated on their secrets being configured, so the workflow
keeps producing a plain GitHub Release until AMO_JWT_ISSUER/SECRET and
the CWS_* secrets are added. With secrets present, the .xpi attached to
the release is the Mozilla-signed (unlisted channel) file, and the .zip
is uploaded to the Chrome Web Store and submitted for publication.

Co-authored-by: Julius Walton <ShiosOS@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

# CWS_EXTENSION_ID / CWS_CLIENT_ID / CWS_CLIENT_SECRET / CWS_REFRESH_TOKEN
# Chrome Web Store item id + OAuth credentials for the CWS API
# (see https://developer.chrome.com/docs/webstore/using-api).
env:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Agentic Security Review
Severity: HIGH
Job-level env exports AMO and Chrome Web Store credentials to all steps in this job, including npm ci and npm run build.

If any dependency lifecycle script or build-time tool is compromised, it can read and exfiltrate publishing credentials before the guarded publish steps run.

Fix in Cursor Fix in Web

Reviewed by Cursor Security Reviewer for commit 1e77cc1. Configure here.

version="$(node -p "require('./manifest.json').version")"
mkdir -p /tmp/xpi-src /tmp/xpi-signed
unzip -q "github-pr-reverse-comments-${version}.xpi" -d /tmp/xpi-src
npx web-ext@8 sign \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Agentic Security Review
Severity: MEDIUM
This release path runs npx web-ext@8 (and later npx chrome-webstore-upload-cli@3) with publishing credentials available, which resolves mutable package versions at runtime.

A compromised upstream release in these ranges could execute attacker-controlled code in CI and steal store-signing/publishing secrets.

Fix in Cursor Fix in Web

Reviewed by Cursor Security Reviewer for commit 1e77cc1. Configure here.

…NGELOG conflicts)

Co-authored-by: Julius Walton <ShiosOS@users.noreply.github.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot completed successfully with no findings, but unresolved Security Reviewer findings (HIGH and MEDIUM) remain on this PR. Not approving per policy; human review is needed and no additional reviewers were assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Risk: medium. Approved: Cursor Bugbot completed with no findings. No reviewers assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@ShiosOS
ShiosOS merged commit d885831 into main Jul 14, 2026
9 checks passed
@ShiosOS
ShiosOS deleted the cursor/store-publish-automation-1cf5 branch July 14, 2026 19:26
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.

2 participants