gr2m / gr2m/github-openapi-graphql-query

Fails when an endpoint has no `requestBody` schema defined

Offen
#195 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
7
Forks
3
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

It seems that there has been a change in the OpenAPI spec from GitHub, and the package now fails because an endpoint has a requestBody property but no schema defined.

In this case, it's the `GET /repos/{owner}/{repo}/contents/{path}` endpoint

```
$ VERSION="23.0.0" npm run update-endpoints:fetch-json
> node scripts/update-endpoints/fetch-json.mjs

Downloading releases from https://api.github.com/repos/octokit/openapi/releases?per_page=100&page=1
Downloading releases from https://api.github.com/repos/octokit/openapi/releases?per_page=100&page=2
downloading https://raw.githubusercontent.com/octokit/openapi/v23.0.0/generated/api.github.com.deref.json ...
{
errors: [
TypeError: Cannot read properties of undefined (reading 'oneOf')
at schemaToParameters (file://types.ts/node_modules/github-openapi-graphql-query/lib/schema-to-parameters.js:4:14)
at definitionToEndpoint (file://types.ts/node_modules/github-openapi-graphql-query/lib/definition-to-endpoint.js:66:7)
at schemaToEndpoints (file://types.ts/node_modules/github-openapi-graphql-query/lib/schema-to-endpoints.js:10:24)
at getEndpoints (file://types.ts/node_modules/github-openapi-graphql-query/lib/get-endpoints.js:32:16)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async Promise.all (index 0)
at async main (file://types.ts/scripts/update-endpoints/fetch-json.mjs:40:18) {
path: [ 'endpoints' ],
locations: [ { line: 3, column: 5 } ],
extensions: [Object: null prototype] {}
}
],
data: null
}
Waiting for the debugger to disconnect...
file://types.ts/scripts/update-endpoints/fetch-json.mjs:48
data: { endpoints },
^

TypeError: Cannot read properties of null (reading 'endpoints')
at main (file://types.ts/scripts/update-endpoints/fetch-json.mjs:48:13)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)

Node.js v22.22.2
```

```json
{

}

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Start by running VERSION="23.0.0" npm run update-endpoints:fetch-json and inspect scripts/update-endpoints/fetch-json.mjs together with the schemaToParameters and definitionToEndpoint stack frames. Trace how the GET /repos/{owner}/{repo}/contents/{path} requestBody is handled when no schema exists. Done means endpoint generation completes without the undefined oneOf error and includes this endpoint correctly.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, openapi
Bereich
api, tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
64/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.