Open
Description
Description
Considering target 'GitHubAPI':
- Trying OpenAPI code generation.
Error: Failed to satisfy: JSONSchema reference can be found in components/schemas at path: .webhooks.branch-protection-configuration-disabled.post.requestBody.content['application/json'].schema
Failed to satisfy: JSONSchema reference can be found in components/schemas at path: .webhooks.branch-protection-configuration-enabled.post.requestBody.content['application/json'].schema
There are a lot more similar Failed to satisfy
errors.
Reproduction
Try to use the OpenAPI Generator on https://github.com/github/rest-api-description/blob/main/descriptions-next/api.github.com/api.github.com.yaml
Package version(s)
generator 1.6.0
runtime 1.7.0
Expected behavior
work.
Environment
Swift 6.0.3
Additional information
No response
Activity
MahdiBM commentedon Jan 3, 2025
commenting out all
paths.webhooks
make things work, though there are still a lot of these warnings:czechboy0 commentedon Jan 3, 2025
Can you confirm the exact commit of the GitHub OpenAPI doc you're using? I just pulled the latest and it generates successfully for me (with warnings, but without errors).
MahdiBM commentedon Jan 4, 2025
@czechboy0 didn't use any special documents, just the one linked which is the latest committed to the main branch. This to be precise.
I simply substituted this file with the one in Penny's Lambdas/GitHubAPI folder, and reran the command plugin.
MahdiBM commentedon Jan 4, 2025
I also noticed the problems only happen when using the 3.1.0 OpenAPI document, not the 3.0.3 one.
MahdiBM commentedon Jan 4, 2025
Also these all happened before the latest PR ... so if you want to try something in Penny, you should checkout https://github.com/vapor/penny-bot/tree/b3fea03e431d81edf0edc4b04ca78bb83b7450e6.
I went through updating the openapi file and i used the filter feature to only create stuff that we need, so it might not try to create those stuff that result in errors.
czechboy0 commentedon Jan 4, 2025
I'm saying I can't reproduce this issue on a new empty sample project. And are you saying the error isn't occurring once you've filtered only to the parts of the document you use? That'd be a good hint at which part of the pipeline is failing
MahdiBM commentedon Jan 4, 2025
@czechboy0 surely yes ... the generator doesn't totally fail, it just stops since it sees some things that it thinks are errors.
If you comment out the stuff that the generator doesn't like, then it does work to some extent.
Though now that we're talking I also want to mention that even after the comment-outs and the generator working, it was super confusing to me that with the 3.1.0 OpenAPI document there were a lot more of those e.g.
warning: Schema
warnings, and how the generator just completely skipped generating some important properties that Penny was using. I thought the OpenAPI spec has just changed that much but after 1-2 hours of debugging noticed that the problem is that the generator is just skipping some properties since they seem erroneous to it.This can be its own issue, but just wanted to mention it.
czechboy0 commentedon Jan 4, 2025
Please file individual issues if you find anything that's well-formed under the OpenAPI specification (we do skip malformed content in some places), the generator claims to support it, but isn't generating it. That'd be considered a bug.
Let me take a look at the commit hash you shared of Penny to try to reproduce it, I wasn't able to repro on a clean project yesterday.
czechboy0 commentedon Feb 7, 2025
I tried again today, with the latest GitHub OpenAPI doc, and the latest Swift OpenAPI Generator, and I can successfully generate code from it for both client and server. I'm using the 3.1 docs, from here: https://raw.githubusercontent.com/github/rest-api-description/main/descriptions-next/api.github.com/api.github.com.yaml
Are you still able to reproduce the issue? If so, can you reproduce it outside of Penny?
MahdiBM commentedon Feb 9, 2025
Just tried. Still getting the same errors in Penny. Haven't tried outside Penny but I would be surprised if it's a Penny thing.
This is the Penny openapi config file but I don't think that matters either?
czechboy0 commentedon Feb 9, 2025
Might be your version of the tools or something. Can you try with any of the hello world projects in Swift OpenAPI Generator's Examples directory? Just drop in the OpenAPI doc. Does it successfully generate? (It does for me)
MahdiBM commentedon Feb 9, 2025
Simply replacing the
openapi.yaml
file inhello-world-async-http-client-example
with the GitHub one, emits a lot of warnings but does not fail (Swift 6.0.3 RELEASE, generator 1.7.0, runtime 1.8.0).Using Penny's openapi config file does make it throw errors.
Removing
filter
for some reason makes things work (so warnings but not errors). So:Removing only one of
filter.schemas
andfilter.operations
is not enough, you need to remove both to avoid getting errors.You don't need to remove
filter:
apparently, as long as it's empty.[-]Problems with GitHub's OpenAPI 3.1 spec[/-][+]OpenAPI docs with webhooks + schema refs fail with filtering[/+]5 remaining items