Skip to content

Commit 22e1a45

Browse files
committed
chore(model-server-openapi): whitelist and fix for error-free linting
We don't want to introduce arbitrary breaking changes just to get linting error-free. Therefore, fix what is easily possible and whitelist all other occurrences of errors.
1 parent cff02ec commit 22e1a45

File tree

3 files changed

+75
-1
lines changed

3 files changed

+75
-1
lines changed

.github/workflows/linting.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ jobs:
2525
steps:
2626
- name: Clone repo
2727
uses: actions/checkout@v4
28-
- uses: stoplightio/[email protected].9
28+
- uses: stoplightio/[email protected].11
2929
with:
3030
file_glob: 'model-server-openapi/specifications/model-server-*.yaml'
31+
spectral_ruleset: .spectral.yaml
3132
continue-on-error: true
3233

3334
openapi-breaking-changes:

.spectral.yaml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,72 @@ rules:
1414

1515
# We would lose enum support from openapi-generator
1616
should-use-x-extensible-enum: false
17+
18+
overrides:
19+
# Get error-free for what's present at the time of introducing the linter. New things should follow the conventions.
20+
- files:
21+
- 'model-server-v2.yaml'
22+
rules:
23+
must-use-lowercase-with-hypens-for-path-segements: warn
24+
- files:
25+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1branches~1%7Bbranch%7D/get/parameters/0/name'
26+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1branches~1%7Bbranch%7D~1poll/get/parameters/0/name'
27+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1branches~1%7Bbranch%7D~1pollHash/get/parameters/0/name'
28+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1branches~1%7Bbranch%7D~1pollHash/get/parameters/1/name'
29+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1init/post/parameters/0/name'
30+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1init/post/parameters/1/name'
31+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1versions~1%7BversionHash%7D/get/parameters/0/name'
32+
- 'model-server-v2.yaml#/paths/~1versions~1%7BversionHash%7D/get/parameters/0/name'
33+
rules:
34+
must-use-snake-case-for-query-parameters: warn
35+
- files:
36+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1branches~1%7Bbranch%7D/get/responses/200/content/application~1x-modelix-objects-v2/schema'
37+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1branches~1%7Bbranch%7D/get/responses/200/content/application~1x-modelix-objects/schema'
38+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1branches~1%7Bbranch%7D/get/responses/200/content/text~1plain/schema'
39+
- 'model-server-v2.yaml#/paths/~1repositories~1%7Brepository%7D~1delete/post/responses/204/content/text~1plain/schema'
40+
- 'model-server-v2.yaml#/components/responses/200/content/text~1plain/schema'
41+
- 'model-server-v2.yaml#/components/responses/200json/content/application~1json/schema'
42+
- 'model-server-v2.yaml#/components/responses/versionDelta/content/application~1x-modelix-objects/schema'
43+
- 'model-server-v2.yaml#/components/responses/versionDelta/content/application~1x-modelix-objects-v2/schema'
44+
- 'model-server-v2.yaml#/components/responses/versionDelta/content/text~1plain/schema'
45+
rules:
46+
must-always-return-json-objects-as-top-level-data-structures: warn
47+
- files:
48+
- 'model-server-v2.yaml#/components/responses/modelql-404'
49+
rules:
50+
must-use-problem-json-for-errors: warn
51+
- files:
52+
- 'model-server-v1.yaml#/paths/~1getAll'
53+
- 'model-server-v1.yaml#/paths/~1getEmail'
54+
- 'model-server-v1.yaml#/paths/~1getRecursively~1%7Bkey%7D'
55+
- 'model-server-v1.yaml#/paths/~1putAll'
56+
rules:
57+
must-use-lowercase-with-hypens-for-path-segements: warn
58+
- files:
59+
- 'model-server-v1.yaml#/paths/~1poll~1%7Bkey%7D/get/parameters/1/name'
60+
rules:
61+
must-use-snake-case-for-query-parameters: warn
62+
- files:
63+
- 'model-server-v1.yaml#/components/responses/200/content/text~1plain/schema'
64+
- 'model-server-v1.yaml#/components/responses/200json/content/application~1json/schema'
65+
rules:
66+
must-always-return-json-objects-as-top-level-data-structures: warn
67+
- files:
68+
- 'model-server-operative.yaml#/paths/~1metrics/get/responses'
69+
- 'model-server-operative.yaml#/paths/~1about/get/responses'
70+
rules:
71+
must-specify-default-response: warn
72+
- files:
73+
- 'model-server-operative.yaml#/components/responses/Healthy/content/text~1plain/schema'
74+
rules:
75+
must-always-return-json-objects-as-top-level-data-structures: warn
76+
77+
# Mandatory format for metrics
78+
- files:
79+
- 'model-server-operative.yaml#/components/responses/MetricsResponse/content/text~1plain/schema'
80+
rules:
81+
must-always-return-json-objects-as-top-level-data-structures: off
82+
- files:
83+
- 'model-server-operative.yaml#/components/responses/MetricsResponse/content/text~1plain'
84+
rules:
85+
should-prefer-standard-media-type-names: off

model-server-openapi/specifications/model-server-v2.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ paths:
9494
responses:
9595
"200":
9696
$ref: '#/components/responses/200'
97+
default:
98+
$ref: '#/components/responses/GeneralError'
9799
/repositories/{repository}/branches:
98100
get:
99101
tags:
@@ -378,6 +380,8 @@ paths:
378380
type: string
379381
"404":
380382
$ref: '#/components/responses/404'
383+
default:
384+
$ref: '#/components/responses/GeneralError'
381385
/repositories/{repository}/versions/{versionHash}:
382386
get:
383387
tags:

0 commit comments

Comments
 (0)