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 = '5a0d5fe82ce41ee6933a00d3b80a17a25bb575fc';
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 doesn't check if the fetch response was successful before parsing it as JSON, which can cause an unhandled error during the build.
Severity: HIGH

Suggested Fix

Before calling await response.json(), add a check for the response status. If !response.ok, throw a new error with a descriptive message, such as "Failed to fetch API schema," to prevent the build from crashing with a cryptic JSON parsing error.

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

Potential issue: The `resolveOpenAPI` function fetches an OpenAPI schema from a GitHub
URL using `fetch`. However, it does not check the HTTP response status via `response.ok`
before attempting to parse the body with `response.json()`. If the request fails (e.g.,
a 404 error if the file at the specified commit SHA doesn't exist), the `fetch` promise
still resolves, but `response.json()` will be called on a non-JSON body, causing a JSON
parsing error. Since this function is called during the build process without error
handling, this will crash the entire build.

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


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

Expand Down
Loading