Get this on every PR automatically. Webhook fires, AI reviews, you approve.
Install on vercel/wait-for-deployment-action →
// reviewed by pulllight
PullLight found 3 issues
1 high
2 medium
// convert to your repo
PullLight caught 3 1 high, 2 medium on this PR.
Install on vercel/wait-for-deployment-action to get this on every PR automatically — 60 seconds.
Findings
3 issues
high
logic
When `vercelToken` is set, the `source` is of type `'vercel'`, but the outer guard is still `if (config.statusContext)`. This means that if a user supplies `vercel-token` but leaves `status-context` empty (or clears it), the Vercel path is never entered and `deploymentId` stays `''`. The Vercel resolution path should be gated on `config.vercelToken`, not on `config.statusContext`.
// src/run.ts:151
medium
error-handling
`assert(response.ok, ...)` throws an `AssertionError` whose `message` is the string passed. However, for non-2xx responses the body may contain a useful Vercel error message that is silently discarded. More importantly, the response body is never consumed, which can leave the underlying socket in a bad state in some runtimes. Consider reading (and discarding or logging) the body on error before asserting.
// src/vercel.ts:23
medium
auth
The Vercel token (`source.token`) is interpolated directly into the `Authorization` header and will appear in any debug/verbose HTTP logs or error messages that print request headers. There is no sanitisation or masking. In a GitHub Actions context this is particularly risky because `core.setSecret` is never called for `vercelToken`, so the token value could leak into the action's log output if the fetch library or any error handler prints headers.
// src/vercel.ts:14