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 = 'd218ebe064fe5ec8cb383688e80cbf36c0a6a5e8';
const SENTRY_API_SCHEMA_SHA = '259e6bfcd1b0e68776314ec2b0f96567d49a941d';
Copy link

Choose a reason for hiding this comment

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

Bug: The fetch call to retrieve the OpenAPI schema lacks response validation, which can cause an unhandled rejection and crash the build if the request fails.
Severity: HIGH

Suggested Fix

After the fetch call in resolveOpenAPI.ts, add a check for response.ok. If the response is not successful, throw a descriptive error to prevent the response.json() call from executing on an invalid body and to ensure build failures are clear and debuggable.

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 `fetch` call in `resolveOpenAPI` to retrieve the OpenAPI schema
from `raw.githubusercontent.com` does not validate the HTTP response status. If the
request returns a non-2xx status code (e.g., 404 Not Found), the code will still attempt
to parse the response body using `response.json()`. This will likely throw an error if
the body is not valid JSON, such as an HTML error page. Because the callers of the
parent function `apiCategories()` do not have `try/catch` blocks, this unhandled promise
rejection will crash the build process or the server component at runtime.

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


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

Expand Down
Loading