Repository navigation
Conversation
Contributor License AgreementAll contributors are covered by a CLA. |
There was a problem hiding this comment.
Devin Review found 3 potential issues.
2 flags not posted on this PR by your GitHub settings — view them in Devin Review. (Configure)
| "@computesdk/anchorbrowser": "^0.2.10", | ||
| "@computesdk/archil": "^0.4.14", | ||
| "@computesdk/arker": "^0.1.7", | ||
| "@computesdk/beam": "^0.3.7", | ||
| "@computesdk/blaxel": "^1.6.24", | ||
| "@computesdk/browserbase": "^0.3.14", | ||
| "@computesdk/browseruse": "^0.2.12", | ||
| "@computesdk/cloud-run": "^0.1.11", | ||
| "@computesdk/cloudflare": "^2.0.0", | ||
| "@computesdk/codesandbox": "^1.5.55", | ||
| "@computesdk/collimate": "^0.1.5", | ||
| "@computesdk/createos-sandbox": "^0.1.11", | ||
| "@computesdk/daytona": "^1.7.36", | ||
| "@computesdk/declaw": "0.2.12", |
There was a problem hiding this comment.
🔴 Frozen installs block every benchmark run
With the downgraded specifiers, pnpm install --frozen-lockfile rejects the unchanged lockfile. The FC workflow and existing benchmark workflows stop before running any providers.
Learn more
The lockfile's root importer still records the previous specifiers, including @computesdk/declaw: 0.2.13, while the manifest now pins 0.2.12. The new install step and the existing install step both request a frozen lockfile. pnpm rejects a manifest whose dependency specifiers disagree with that lockfile, so no benchmark runs.
Example: The manifest requests @computesdk/declaw version 0.2.12, but the root lockfile importer still requests 0.2.13. A manual FC workflow dispatch fails during dependency installation rather than reaching sandbox creation.
Recommended fix: Restore the original dependency ranges if these downgrades were unintended, or regenerate and commit pnpm-lock.yaml for every changed range. Verify both workflows with pnpm install --frozen-lockfile.
Was this helpful? React with 👍 or 👎 to provide feedback.
| --iterations ${{ github.event.inputs.iterations }} \ | ||
| --concurrency ${{ github.event.inputs.concurrency }} \ |
There was a problem hiding this comment.
| const response = await fetch(gatewayUrl(options.gatewayUrl, path), { | ||
| method: 'POST', | ||
| headers, | ||
| body: JSON.stringify(body), | ||
| }); |
There was a problem hiding this comment.
| runs-on: ${{ github.event.inputs.runner_label || 'ubuntu-latest' }} | ||
| timeout-minutes: 30 | ||
| steps: | ||
| - uses: actions/checkout@v4 |
There was a problem hiding this comment.
P1: Secret-bearing workflow uses mutable action tags without an explicit token permission boundary
New workflow runs mutable actions while exposing FC gateway secrets and leaves token permissions/checkout credentials at defaults.
Pin actions to SHAs, set least-privilege permissions, and disable checkout credential persistence.
AI prompt
Check if this security scanner issue is valid. If so, understand the root cause and fix it. If appropriate, update or add tests. Keep the change focused and preserve intended behavior.
<file name=".github/workflows/fc-benchmark.yml">
<violation number="1" location=".github/workflows/fc-benchmark.yml:36">
<priority>P1</priority>
<title>Secret-bearing workflow uses mutable action tags without an explicit token permission boundary</title>
<evidence>The new workflow checks out code with `actions/checkout@v4` at line 36 and later uses `pnpm/action-setup@v4`, `actions/setup-node@v4`, and `actions/upload-artifact@v4` by mutable tags. The same job exposes `BENCHMARKS_PLATFORM_API_KEY`, `ALIYUN_FC_GATEWAY_URL`, `ALIYUN_FC_GATEWAY_SECRET`, and `ALIYUN_FC_REGION` to the benchmark at lines 59-62, while the workflow declares no `permissions:` block and checkout does not disable credential persistence. A compromised or retagged action can therefore execute in this job's secret-bearing context and access the newly introduced gateway credentials and default GITHUB_TOKEN.</evidence>
<recommendation>Pin every `uses:` reference to the intended full commit SHA with a version comment, add a workflow-level `permissions: {}` (or the minimum required permissions), and set `persist-credentials: false` on checkout unless a later step demonstrably needs Git credentials. Keep secrets scoped only to the benchmark step.</recommendation>
</violation>
</file>
Uh oh!
There was an error while loading. Please reload this page.