Skip to content

Commit 23e01ae

Browse files
ADD: Add the feature to automatically sync the schema to Postman API schema (#102)
- The github actions are created which triggers when the new changes are added for any OpenAPI specs
1 parent 57cd79b commit 23e01ae

8 files changed

Lines changed: 256 additions & 0 deletions

File tree

.github/workflows/sync-admin.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Postman API Integration for Admin
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- './admin.rest.swagger-v2.1.json'
9+
10+
jobs:
11+
upload-swagger:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Send Swagger Spec to Postman API Admin
19+
env:
20+
POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
21+
run: |
22+
SWAGGER_FILE="./admin.rest.swagger-v2.1.json"
23+
API_ID=${{vars.API_ID}}
24+
SCHEMA_ID=${{vars.DEFINITION_ID}}
25+
FILE_PATH="admin/schema.json"
26+
27+
CONTENT=$(jq -Rs . < ${SWAGGER_FILE})
28+
curl --location --request PUT "https://api.getpostman.com/apis/$API_ID/schemas/$SCHEMA_ID/files/$FILE_PATH" \
29+
--header "Accept: application/vnd.api.v10+json" \
30+
--header "Content-Type: application/json" \
31+
--header "X-Api-Key: $POSTMAN_API_KEY" \
32+
--data "{\"content\": ${CONTENT}}"

.github/workflows/sync-click.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Postman API Integration for Click
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- './click.rest.swagger-v1.json'
9+
10+
jobs:
11+
upload-swagger:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Send Swagger Spec to Postman API Click
19+
env:
20+
POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
21+
run: |
22+
SWAGGER_FILE="./click.rest.swagger-v1.json"
23+
API_ID=${{vars.API_ID}}
24+
SCHEMA_ID=${{vars.DEFINITION_ID}}
25+
FILE_PATH="click/schema.json"
26+
27+
CONTENT=$(jq -Rs . < ${SWAGGER_FILE})
28+
curl --location --request PUT "https://api.getpostman.com/apis/$API_ID/schemas/$SCHEMA_ID/files/$FILE_PATH" \
29+
--header "Accept: application/vnd.api.v10+json" \
30+
--header "Content-Type: application/json" \
31+
--header "X-Api-Key: $POSTMAN_API_KEY" \
32+
--data "{\"content\": ${CONTENT}}"

.github/workflows/sync-connect.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Postman API Integration for Connect
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- './connect.schema-v2.json'
9+
10+
jobs:
11+
upload-swagger:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Send Swagger Spec to Postman API Connect
19+
env:
20+
POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
21+
run: |
22+
SWAGGER_FILE="./connect.schema-v2.json"
23+
API_ID=${{vars.API_ID}}
24+
SCHEMA_ID=${{vars.DEFINITION_ID}}
25+
FILE_PATH="connect/schema.json"
26+
27+
CONTENT=$(jq -Rs . < ${SWAGGER_FILE})
28+
curl --location --request PUT "https://api.getpostman.com/apis/$API_ID/schemas/$SCHEMA_ID/files/$FILE_PATH" \
29+
--header "Accept: application/vnd.api.v10+json" \
30+
--header "Content-Type: application/json" \
31+
--header "X-Api-Key: $POSTMAN_API_KEY" \
32+
--data "{\"content\": ${CONTENT}}"

.github/workflows/sync-esign.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Postman API Integration for ESign
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- './esignature.rest.swagger-v2.1.json'
9+
10+
jobs:
11+
upload-swagger:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Send Swagger Spec to Postman API ESign
19+
env:
20+
POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
21+
run: |
22+
SWAGGER_FILE="./esignature.rest.swagger-v2.1.json"
23+
API_ID=${{vars.API_ID}}
24+
SCHEMA_ID=${{vars.DEFINITION_ID}}
25+
FILE_PATH="esignature/schema.json"
26+
27+
CONTENT=$(jq -Rs . < ${SWAGGER_FILE})
28+
curl --location --request PUT "https://api.getpostman.com/apis/$API_ID/schemas/$SCHEMA_ID/files/$FILE_PATH" \
29+
--header "Accept: application/vnd.api.v10+json" \
30+
--header "Content-Type: application/json" \
31+
--header "X-Api-Key: $POSTMAN_API_KEY" \
32+
--data "{\"content\": ${CONTENT}}"

.github/workflows/sync-maestro.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Postman API Integration for Maestro
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- './maestro.rest.swagger-v1.0.0.json'
9+
10+
jobs:
11+
upload-swagger:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Send Swagger Spec to Postman API Maestro
19+
env:
20+
POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
21+
run: |
22+
SWAGGER_FILE="./maestro.rest.swagger-v1.0.0.json"
23+
API_ID=${{vars.API_ID}}
24+
SCHEMA_ID=${{vars.DEFINITION_ID}}
25+
FILE_PATH="maestro/schema.json"
26+
27+
CONTENT=$(jq -Rs . < ${SWAGGER_FILE})
28+
curl --location --request PUT "https://api.getpostman.com/apis/$API_ID/schemas/$SCHEMA_ID/files/$FILE_PATH" \
29+
--header "Accept: application/vnd.api.v10+json" \
30+
--header "Content-Type: application/json" \
31+
--header "X-Api-Key: $POSTMAN_API_KEY" \
32+
--data "{\"content\": ${CONTENT}}"

.github/workflows/sync-monitor.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Postman API Integration for Monitor
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- './monitor.rest.swagger-v2.0.json'
9+
10+
jobs:
11+
upload-swagger:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Send Swagger Spec to Postman API Monitor
19+
env:
20+
POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
21+
run: |
22+
SWAGGER_FILE="./monitor.rest.swagger-v2.0.json"
23+
API_ID=${{vars.API_ID}}
24+
SCHEMA_ID=${{vars.DEFINITION_ID}}
25+
FILE_PATH="monitor/schema.json"
26+
27+
CONTENT=$(jq -Rs . < ${SWAGGER_FILE})
28+
curl --location --request PUT "https://api.getpostman.com/apis/$API_ID/schemas/$SCHEMA_ID/files/$FILE_PATH" \
29+
--header "Accept: application/vnd.api.v10+json" \
30+
--header "Content-Type: application/json" \
31+
--header "X-Api-Key: $POSTMAN_API_KEY" \
32+
--data "{\"content\": ${CONTENT}}"

.github/workflows/sync-rooms.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Postman API Integration for Rooms
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- './rooms.rest.swagger-v2.json'
9+
10+
jobs:
11+
upload-swagger:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Send Swagger Spec to Postman API Rooms
19+
env:
20+
POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
21+
run: |
22+
SWAGGER_FILE="./rooms.rest.swagger-v2.json"
23+
API_ID=${{vars.API_ID}}
24+
SCHEMA_ID=${{vars.DEFINITION_ID}}
25+
FILE_PATH="rooms/schema.json"
26+
27+
CONTENT=$(jq -Rs . < ${SWAGGER_FILE})
28+
curl --location --request PUT "https://api.getpostman.com/apis/$API_ID/schemas/$SCHEMA_ID/files/$FILE_PATH" \
29+
--header "Accept: application/vnd.api.v10+json" \
30+
--header "Content-Type: application/json" \
31+
--header "X-Api-Key: $POSTMAN_API_KEY" \
32+
--data "{\"content\": ${CONTENT}}"
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Postman API Integration for Webforms
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- './webforms.rest.swagger-v1.1.0.json'
9+
10+
jobs:
11+
upload-swagger:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Send Swagger Spec to Postman API Webforms
19+
env:
20+
POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
21+
run: |
22+
SWAGGER_FILE="./webforms.rest.swagger-v1.1.0.json"
23+
API_ID=${{vars.API_ID}}
24+
SCHEMA_ID=${{vars.DEFINITION_ID}}
25+
FILE_PATH="webforms/schema.json"
26+
27+
CONTENT=$(jq -Rs . < ${SWAGGER_FILE})
28+
curl --location --request PUT "https://api.getpostman.com/apis/$API_ID/schemas/$SCHEMA_ID/files/$FILE_PATH" \
29+
--header "Accept: application/vnd.api.v10+json" \
30+
--header "Content-Type: application/json" \
31+
--header "X-Api-Key: $POSTMAN_API_KEY" \
32+
--data "{\"content\": ${CONTENT}}"

0 commit comments

Comments
 (0)