From 5f5428f0bf383f6458c18e336c2dc23addedd3fb Mon Sep 17 00:00:00 2001 From: LiHaohua Date: Tue, 21 Jul 2026 20:44:50 +0800 Subject: [PATCH] fix(worker): nest binary fields to stay within repository_dispatch 10-property cap Submitting with store metadata pushed client_payload to 12 top-level properties; GitHub's repository_dispatch API rejects >10 with HTTP 422 ("No more than 10 properties are allowed"). Group url/sha256/size under a single `binary` key (10 with store, 9 without) and read them as client_payload.binary.* in process-web-submission. Co-authored-by: Cursor --- packages-workflows/process-web-submission.yml | 10 +++++----- worker/src/index.js | 7 ++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packages-workflows/process-web-submission.yml b/packages-workflows/process-web-submission.yml index 683218c..062cc14 100644 --- a/packages-workflows/process-web-submission.yml +++ b/packages-workflows/process-web-submission.yml @@ -36,8 +36,8 @@ jobs: id: validate env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DEB_URL: ${{ github.event.client_payload.url }} - WANT_SHA: ${{ github.event.client_payload.sha256 }} + DEB_URL: ${{ github.event.client_payload.binary.url }} + WANT_SHA: ${{ github.event.client_payload.binary.sha256 }} SUBMITTER: ${{ github.event.client_payload.login }} # JSON array of the submitter's verified emails (from the Worker, # which read them via the user's OAuth token — trusted). @@ -271,9 +271,9 @@ jobs: if: steps.validate.outputs.errors == '' && steps.meta.outputs.errors == '' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DEB_URL: ${{ github.event.client_payload.url }} - WANT_SHA: ${{ github.event.client_payload.sha256 }} - SIZE: ${{ github.event.client_payload.size }} + DEB_URL: ${{ github.event.client_payload.binary.url }} + WANT_SHA: ${{ github.event.client_payload.binary.sha256 }} + SIZE: ${{ github.event.client_payload.binary.size }} SUBMITTER: ${{ github.event.client_payload.login }} EMAILS_JSON: ${{ toJSON(github.event.client_payload.emails) }} PKG: ${{ steps.validate.outputs.pkg }} diff --git a/worker/src/index.js b/worker/src/index.js index 9a63a18..91d2154 100644 --- a/worker/src/index.js +++ b/worker/src/index.js @@ -254,9 +254,10 @@ async function apiSubmit(request, env) { version, architecture: arch, filename: canonical, - url: asset.browser_download_url, - sha256, - size: buf.byteLength, + // url/sha256/size are nested under one key: repository_dispatch caps + // client_payload at 10 top-level properties, and with `store` we'd + // otherwise hit 12 → GitHub returns HTTP 422. + binary: { url: asset.browser_download_url, sha256, size: buf.byteLength }, source_repo: sourceRepo, ...(store && store.payload ? { store: store.payload } : {}), },