Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/build/resolveOpenAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {DeRefedOpenAPI} from './open-api/types';

// SENTRY_API_SCHEMA_SHA is used in the sentry-docs GHA workflow in getsentry/sentry-api-schema.
// DO NOT change variable name unless you change it in the sentry-docs GHA workflow in getsentry/sentry-api-schema.
const SENTRY_API_SCHEMA_SHA = '870543550802cd0ec186a6e1c3f7e21e520b4361';
const SENTRY_API_SCHEMA_SHA = 'c40007183d071d4ef28a886be883697cc4fde251';

const activeEnv = process.env.GATSBY_ENV || process.env.NODE_ENV || 'development';

Comment on lines +11 to 14
Copy link

Choose a reason for hiding this comment

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

Bug: The resolveOpenAPI function does not check if the fetch request for the API schema is successful before parsing the response as JSON, risking a crash.
Severity: MEDIUM

Suggested Fix

Before calling response.json(), add a check to verify the response was successful. If !response.ok, throw a descriptive error to handle the failure gracefully. For example: if (!response.ok) { throw new Error(Failed to fetch API schema: ${response.statusText}); }.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: src/build/resolveOpenAPI.ts#L11-L14

Potential issue: The `resolveOpenAPI` function fetches an API schema from a raw content
URL. It directly calls `response.json()` on the fetch response without first checking if
the request was successful via `response.ok`. If the fetch fails for any reason, such as
a network error, an invalid commit SHA, or the file not being present at that commit,
the server will likely return a non-JSON response (e.g., a 404 HTML page). Attempting to
parse this response as JSON will cause an unhandled `SyntaxError`, leading to a crash in
the build process or at runtime.

Did we get this right? 👍 / 👎 to inform future reviews.

Expand Down
Loading