Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
e9e0a31
schema test: error if schema doesn't validate
ralfhandl Nov 8, 2024
80b9c87
Bump schema-validator
ralfhandl Nov 12, 2024
b97a146
Measure schema test coverage
ralfhandl Nov 12, 2024
aca2b44
make executable
ralfhandl Nov 12, 2024
6d0bc24
feat(test): add schema tests and schema
jeremyfiel Oct 22, 2024
ed7b13b
Add sets of working input/output examples from the openapi-overlays-j…
lornajane Nov 19, 2024
ef6d5a2
schema-publish workflow
ralfhandl Nov 22, 2024
e517822
Generate minor-version symlinks
ralfhandl Nov 26, 2024
ecd94e6
Merge pull request #103 from ralfhandl/respec-publishing-script
lornajane Nov 26, 2024
1d28463
Merge pull request #94 from jeremyfiel/schema-test
ralfhandl Dec 3, 2024
fbeb941
Merge pull request #95 from ralfhandl/schema-test-invalid-schema
ralfhandl Dec 3, 2024
c2611ff
Merge pull request #97 from ralfhandl/schema-test-coverage
ralfhandl Dec 3, 2024
d494492
Merge pull request #102 from ralfhandl/schema-publish
ralfhandl Dec 3, 2024
7a8f0fe
Can't be on the reviewer's list
ralfhandl Dec 3, 2024
658f3b2
Merge pull request #106 from ralfhandl/schema-publish-fix-reviewers
ralfhandl Dec 3, 2024
7ca5ce2
return code 1 if schema test coverage below 100%
ralfhandl Dec 4, 2024
0268923
Add branching strategy info and some key information to the contribut…
lornajane Dec 17, 2024
8a9ca7a
Update CONTRIBUTING.md
lornajane Dec 17, 2024
115d603
Update CONTRIBUTING.md
lornajane Dec 17, 2024
e6bcf1b
Merge pull request #110 from lornajane/update-branch-structure
ralfhandl Dec 17, 2024
6520991
Correct the file location of the specification
lornajane Dec 17, 2024
404b210
Merge pull request #112 from lornajane/update-spec-file-location
ralfhandl Dec 18, 2024
bde9489
Use app-generated access token
ralfhandl Dec 22, 2024
cd94bed
Use app-generated access token
ralfhandl Dec 22, 2024
8b9f7f8
Use ubuntu-22.04
ralfhandl Dec 23, 2024
cbe01ff
Use reviewers instead of team-reviewers
ralfhandl Dec 23, 2024
cf5a209
Added OpenAPI-Format as Overlay tool
thim81 Dec 31, 2024
f90ed11
Merge pull request #114 from thim81/patch-1
lornajane Jan 2, 2025
939d06f
Merge pull request #113 from OAI/workflows-with-app-token
lornajane Jan 5, 2025
73f016b
Remove the many operations example as it has strange refs in
lornajane Mar 11, 2025
4078a24
Merge pull request #109 from ralfhandl/schema-test-coverage-checkf
lornajane Mar 14, 2025
223435e
Reformat all input openapi files to match format of output openapi files
lornajane Mar 25, 2025
e217c65
Add oas-patch to tools section
mcroissant Apr 4, 2025
99be55f
Merge pull request #126 from mcroissant/patch-1
lornajane Apr 15, 2025
ff1f423
Merge pull request #99 from lornajane/add-compliant-examples
lornajane Apr 22, 2025
08b2de6
Add oas-overlay-java to tools section
crshnburn Mar 27, 2025
1a5b292
Merge pull request #125 from crshnburn/add-oas-overlay
lornajane Apr 22, 2025
f7b84ba
doc: Add Specmatic to the list tools that support Overlay 1.0
harikrishnan83 May 27, 2025
1c027bb
Merge pull request #134 from specmatic/main
lornajane May 30, 2025
1c696f6
docs: adds documentation for overlay-dotnet
baywet Jul 7, 2025
fd86233
Merge pull request #139 from baywet/docs/overlay-dotnet
lornajane Jul 10, 2025
063c646
Add the meeting link to the new platform
lornajane Jul 29, 2025
131e87f
Merge pull request #143 from lornajane/update-meeting-link
ralfhandl Jul 29, 2025
64c23ba
ci: adds a schedule for automated creation of bi-weekly meetings
baywet Aug 21, 2025
f9e9447
fix: run after the meeting time to avoid skew
baywet Aug 21, 2025
98a24a0
fix: removes un relevant time
baywet Aug 21, 2025
545bc6a
Merge pull request #148 from baywet/ci/agenda-schedule
lornajane Sep 16, 2025
69beab8
ci: adds code owners definition so people are notified of pull reques…
baywet Oct 14, 2025
1df0fee
Merge pull request #151 from baywet/ci/code-owners
ralfhandl Oct 16, 2025
7f65deb
Merge branch 'main' into chore/sync-main-tov1.1-dev
baywet Oct 17, 2025
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
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @oai/tsc
2 changes: 1 addition & 1 deletion .github/templates/agenda.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@



Meeting link:
Meeting link: <https://zoom-lfx.platform.linuxfoundation.org/meeting/99628896838?password=f3ff9796-d6a0-4749-b39e-93dc7eafe7cd>



Expand Down
10 changes: 9 additions & 1 deletion .github/workflows/agenda.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ name: Create meeting template

on:
workflow_dispatch: {}
schedule:
# every two weeks on tuesday at 10AM PST (with DST)
- cron: '0 17 */14 * 2'

jobs:
create-discussion:
Expand All @@ -16,6 +19,11 @@ jobs:
echo 'AGENDA<<EOF' >> $GITHUB_ENV
cat .github/templates/agenda.md >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- name: Get Next Meeting Date
id: get-next-meeting-date
run: |
NEXT_MEETING_DATE=$(date -d "next Tuesday" +%Y-%m-%d)
echo "NEXT_MEETING_DATE=$NEXT_MEETING_DATE" >> $GITHUB_ENV
- name: Create discussion with agenda
id: create-repository-discussion
uses: octokit/[email protected]
Expand All @@ -24,7 +32,7 @@ jobs:
with:
variables: |
body: "${{ env.AGENDA }}"
title: "Overlays Meeting"
title: "Overlays Meeting (${{ env.NEXT_MEETING_DATE }})"
repositoryId: 'MDEwOlJlcG9zaXRvcnkzNTk4NjU5MDI='
categoryId: 'DIC_kwDOFXMeLs4COVB8'
query: |
Expand Down
21 changes: 14 additions & 7 deletions .github/workflows/respec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,18 @@ jobs:
respec:
if: github.repository == 'OAI/Overlay-Specification'

runs-on: ubuntu-latest
runs-on: ubuntu-22.04

steps:
- name: Generate access token
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.OAI_SPEC_PUBLISHER_APPID }}
private-key: ${{ secrets.OAI_SPEC_PUBLISHER_PRIVATE_KEY }}
owner: OAI
repositories: OpenAPI-Specification

- uses: actions/checkout@v4 # checkout main branch
with:
fetch-depth: 0
Expand All @@ -35,7 +44,7 @@ jobs:

- uses: actions/checkout@v4 # checkout gh-pages branch
with:
token: ${{ secrets.OAS_REPO_TOKEN }}
token: ${{ steps.generate-token.outputs.token }}
repository: OAI/OpenAPI-Specification # TODO: change to OAI/...
ref: gh-pages
path: deploy
Expand All @@ -46,16 +55,14 @@ jobs:
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
# A personal access token is required to push changes to the repository.
# This token needs to be refreshed regularly and stored in the repository secrets.
token: ${{ secrets.OAS_REPO_TOKEN }}
token: ${{ steps.generate-token.outputs.token }}
branch: update-overlay-respec-version
base: gh-pages
delete-branch: true
path: deploy
labels: Housekeeping
team-reviewers: OAI/tsc
title: Update ReSpec-rendered specification versions for Overlay
reviewers: darrelmiller,webron,earth2marsh,lornajane,mikekistler,miqui,handrews,ralfhandl
title: Overlay - Update ReSpec-rendered specification versions
commit-message: Update ReSpec-rendered specification versions
signoff: true
body: |
Expand Down
66 changes: 66 additions & 0 deletions .github/workflows/schema-publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: schema-publish

# author: @ralfhandl

#
# This workflow copies the x.y schemas to the gh-pages branch
#

# run this on push to main
on:
push:
branches:
- main
workflow_dispatch: {}

jobs:
publish:
runs-on: ubuntu-latest

steps:
- name: Generate access token
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.OAI_SPEC_PUBLISHER_APPID }}
private-key: ${{ secrets.OAI_SPEC_PUBLISHER_PRIVATE_KEY }}
owner: OAI
repositories: OpenAPI-Specification

- uses: actions/checkout@v4 # checkout main branch
with:
fetch-depth: 0

- uses: actions/setup-node@v4 # setup Node.js
with:
node-version: 20.x

- name: Install dependencies
run: npm ci

- uses: actions/checkout@v4 # checkout gh-pages branch
with:
token: ${{ steps.generate-token.outputs.token }}
repository: OAI/OpenAPI-Specification
ref: gh-pages
path: deploy

- name: run main script
run: scripts/schema-publish.sh

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ steps.generate-token.outputs.token }}
branch: publish-overlay-schema-iteration
base: gh-pages
delete-branch: true
path: deploy
labels: Housekeeping,Schema
reviewers: darrelmiller,webron,earth2marsh,lornajane,mikekistler,miqui,handrews,ralfhandl
title: Overlay - Publish Schema Iterations
commit-message: New Overlay schema iterations
signoff: true
body: |
This pull request is automatically triggered by GitHub action `schema-publish` in the OAI/Overlay-Specification repo.
The `schemas/**/*.yaml` files have changed and JSON files are automatically generated.
32 changes: 32 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,38 @@ Pull requests are also welcome, but it is recommended to create an issue first,
Questions and comments are also welcome - use the GitHub Discussions feature.
You will also find notes from past meetings in the Discussion tab.

## Key information

This project is covered by our [Code of Conduct](https://github.com/OAI/OpenAPI-Specification?tab=coc-ov-file#readme).
All participants are expected to read and follow this code.

No changes, however trivial, are ever made to the contents of published specifications (the files in the `versions/` folder).
Exceptions may be made when links to external documents have been changed by a 3rd party, in order to keep our documents accurate.

Published versions of the specification are in the `versions/` folder.
The under-development versions of the specification are in the file `src/overlay.md` on the appropriately-versioned branch.
For example, work on the next release for 1.1 is on `v1.1-dev` in the file `src/overlay.md`.

The [spec site](https://spec.openapis.org) is the source of truth for the OpenAPI Overlay specification as it contains all the citations and author credits.

The OpenAPI project is almost entirely staffed by volunteers.
Please be patient with the people in this project, who all have other jobs and are active here because we believe this project has a positive impact in the world.

## Pull Requests

Pull requests are always welcome but please read the section below on [branching strategy](#branching-strategy) before you start.

Pull requests must come from a fork; create a fresh branch on your fork based on the target branch for your change.

### Branching Strategy

Overview of branches:

- `main` holds the published versions of the specification, utility scripts and supporting documentation.
- `dev` is for development infrastructure and other changes that apply to multiple versions of development.
- Branches named `vX.Y-dev` are the active development branches for future releases.
All changes should be applied to the _earliest_ branch where the changes are relevant in the first instance.

## Build the HTML version to publish

We use ReSpec to render the markdown specification as HTML for publishing and easier reading.
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ If you are looking for tools to use with Overlays, try these:
- [Speakeasy CLI](https://www.speakeasy.com/docs/speakeasy-cli/getting-started)
- [overlays-js](https://github.com/lornajane/openapi-overlays-js)
- [apigee-go-gen CLI](https://apigee.github.io/apigee-go-gen/transform/commands/oas-overlay/)
- [openapi-format CLI/UI](https://github.com/thim81/openapi-format)
- [oas-patch CLI](https://github.com/mcroissant/oas_patcher)
- [oas-overlay-java](https://github.com/IBM/oas-overlay-java)
- [Specmatic](https://specmatic.io/) - [Docs](https://docs.specmatic.io/documentation/contract_tests.html#overlays)
- [BinkyLabs.OpenApi.Overlays - dotnet](https://github.com/BinkyLabs/openapi-overlays-dotnet)

(Is something missing from the list? Send us a pull request to add it!)

Expand Down
9 changes: 9 additions & 0 deletions compliant-sets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# OpenAPI Overlay Compliant Sets

The folders in this directory contain sets of "known good" Overlays, along with OpenAPI descriptions before and after the Overlay.
These files are offered as examples of how a series of Overlays are expected to be applied, with the aim of supporting people building tools that apply Overlays.

Each directory contains:
- `overlay.yaml` - the Overlay
- `openapi.yaml` - an OpenAPI description to use
- `output.yaml` - the OpenAPI description after the Overlay has been applied
70 changes: 70 additions & 0 deletions compliant-sets/add-a-license/openapi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
openapi: 3.1.0
info:
version: 1.0.0
title: Imaginary town
servers:
- url: 'https://example.com'
description: Example server
paths:
/buildings:
get:
summary: All buildings
operationId: buildingsList
responses:
'200':
description: Return all known buildings
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Building'
'/buildings/{buildingId}':
get:
summary: Specific building
operationId: buildingById
parameters:
- name: buildingId
in: path
required: true
description: Which building to return
schema:
type: string
responses:
'200':
description: Return a building
content:
application/json:
schema:
$ref: '#/components/schemas/Building'
/locations:
get:
summary: All locations
operationId: locationList
responses:
'200':
description: Returns all locations
content:
application/json:
schema:
type: array
items:
type: object
properties:
location_id:
type: integer
example: 44
name:
type: string
example: North Village
components:
schemas:
Building:
type: object
properties:
building:
type: string
example: house
location_id:
type: integer
example: 44
74 changes: 74 additions & 0 deletions compliant-sets/add-a-license/output.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
openapi: 3.1.0
info:
version: 1.0.0
title: Imaginary town
license:
name: MIT
url: 'https://opensource.org/licenses/MIT'
servers:
- url: 'https://example.com'
description: Example server
paths:
/buildings:
get:
summary: All buildings
operationId: buildingsList
responses:
'200':
description: Return all known buildings
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Building'
'/buildings/{buildingId}':
get:
summary: Specific building
operationId: buildingById
parameters:
- name: buildingId
in: path
required: true
description: Which building to return
schema:
type: string
responses:
'200':
description: Return a building
content:
application/json:
schema:
$ref: '#/components/schemas/Building'
/locations:
get:
summary: All locations
operationId: locationList
responses:
'200':
description: Returns all locations
content:
application/json:
schema:
type: array
items:
type: object
properties:
location_id:
type: integer
example: 44
name:
type: string
example: North Village
components:
schemas:
Building:
type: object
properties:
building:
type: string
example: house
location_id:
type: integer
example: 44

10 changes: 10 additions & 0 deletions compliant-sets/add-a-license/overlay.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
overlay: '1.0.0'
info:
title: Add MIT license
version: '1.0.0'
actions:
- target: '$.info'
update:
license:
name: MIT
url: https://opensource.org/licenses/MIT
Loading