Skip to content

Commit 96552ae

Browse files
authored
NUTCH-2932 Create OpenAPI specification for Nutch 1.x REST API (#896)
1 parent da55708 commit 96552ae

3 files changed

Lines changed: 1378 additions & 0 deletions

File tree

‎.github/workflows/master-build.yml‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,29 @@ jobs:
8585
if: ${{ env.UNKNOWN_LICENSES != '0 Unknown Licenses' }}
8686
run: exit 1
8787

88+
openapi-lint:
89+
runs-on: ubuntu-latest
90+
steps:
91+
- uses: actions/checkout@v5
92+
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36
93+
id: filter
94+
with:
95+
filters: |
96+
openapi:
97+
- 'openapi.yaml'
98+
- '.spectral.yaml'
99+
- name: Set up Node.js
100+
if: steps.filter.outputs.openapi == 'true'
101+
uses: actions/setup-node@v4
102+
with:
103+
node-version: '18'
104+
- name: Install IBM OpenAPI Validator
105+
if: steps.filter.outputs.openapi == 'true'
106+
run: npm install --no-save ibm-openapi-validator
107+
- name: Validate OpenAPI specification
108+
if: steps.filter.outputs.openapi == 'true'
109+
run: ./node_modules/.bin/lint-openapi openapi.yaml
110+
88111
# Build verification with Java bytecode target matrix
89112
# Verifies bytecode compatibility for both Java 11 and Java 17 targets
90113
build:

‎.spectral.yaml‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one or more
2+
# contributor license agreements. See the NOTICE file distributed with
3+
# this work for additional information regarding copyright ownership.
4+
# The ASF licenses this file to You under the Apache License, Version 2.0
5+
# (the "License"); you may not use this file except in compliance with
6+
# the License. You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
16+
# Custom Spectral ruleset for the Apache Nutch REST API.
17+
# Extends the IBM Cloud Validation Ruleset and disables rules that conflict
18+
# with the existing Nutch Java wire format (camelCase properties, UPPER_CASE
19+
# enums, camelCase parameters, bare-array responses, map-typed responses,
20+
# and consecutive path parameter segments).
21+
22+
extends: "@ibm-cloud/openapi-ruleset"
23+
rules:
24+
ibm-property-casing-convention: off
25+
ibm-enum-casing-convention: off
26+
ibm-parameter-casing-convention: off
27+
ibm-no-array-responses: off
28+
ibm-accept-and-return-models: off
29+
ibm-no-consecutive-path-parameter-segments: off

0 commit comments

Comments
 (0)