gr2m / gr2m/github-openapi-graphql-query
Fails when an endpoint has no `requestBody` schema defined
- 主要语言
- JavaScript
- 星标
- 7
- 派生
- 3
- PR 合并指标
- 30 天内没有已合并 PR
描述
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
{
}
贡献指南
这个仓库没有索引到贡献指南
调研方向
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.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- javascript, openapi
- 领域
- api, tooling
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 活跃
- 描述清晰度
- 基本清楚
- 新手友好度
- 64/100