Accessing GetAllComponentSchemas causes a race condition error during usage.
Adds a RWLock to ensure that the map object is safely created across go routines. This pattern is used for other similar fields
Add nil check on Document Render to avoid panic
Expanded the existing check during Render to generally check for a nil highOpenAPI3Model, with more specific error message depending on if it's Swagger or not.
Also added a check for the info which is a pointer, so could technically be nil.
Added a test case to ensure we error. Without my changes the test panics which we're trying to avoid.
Fix: resolve remote relative refs correctly
Some deep dark glitches in the index resulted in some random relative $ref's being missed under certain edge conditions.
Added a high level model cache that prevents the over production of schemas when walking the model.
A new cache interface and implementation have been added to index, so the cache design can be re-used anywhere else its needed as we work towards cleaning up memory use.
v0.18.4
Added GetIndex() and GetContext() to v3 low models.
Makes it much easier for downstream tools to know all the things
fix: indexing of operations which are $refs (#339)
Why
We have a linting rule which checks for duplicate operation IDs / duplicate operations. This linting rule wasn't catching duplicates if the operations were living in an external $ref.
What
Currently when building the index of operations we weren't checking for refs, this PR changes that.
This fixes vacuum rules that lookup operations in the index where:
The original spec (root.yaml) has an external reference to a file in a different directory ./paths/mypath.yaml
In that location, there is a relative reference to a path-item in a nearby file, e.g. ./components.yaml#/path-item
What was previously happening in [2] is that the ./components.yaml was being resolved in ./components.yaml (the parent directory) instead of ./paths/components.yaml (the right directory). This resulted in a failure to evaluate path item references and unexpected linting failures.
This changes adjusts the lookup to search through the index's nodeMap to find the location of the YAML $ref node value that's been evaluated. Once we find it, we lookup the associated index of that file and do a seek in that specific index.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/pb33f/libopenapi from 0.18.1 to 0.18.6.
Release notes
Sourced from github.com/pb33f/libopenapi's releases.
... (truncated)
Commits
27d7834
Bump project coveragec8c2d35
Ensure URL paths don't use Windows backslashes87abac5
Remove error message checka165dcd
Ensure external indexes are added to indexes84ee059
Remove remote file from processing only after building index4f962a6
Add comments for documentationf8424af
Cleanupc4d11e8
Strip trailing slashes from BaseURL966d379
Document that BaseURL should not lead to a file5fbecd0
Add bundler test casesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show