NOISSUE - Bump Schemathesis action from v1 to v2.0.0 (#2954)

Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
This commit is contained in:
Felix Gateru
2025-06-20 16:57:45 +03:00
committed by GitHub
parent ca93b8865a
commit 707ca54ef9
9 changed files with 90 additions and 249 deletions
+18 -27
View File
@@ -115,93 +115,84 @@ jobs:
- name: Run Users API tests
if: steps.changes.outputs.users == 'true'
uses: schemathesis/action@v1
uses: schemathesis/action@v2.0.0
with:
schema: apidocs/openapi/users.yaml
base-url: ${{ env.USERS_URL }}
checks: all
report: false
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --contrib-openapi-formats-uuid --hypothesis-suppress-health-check=filter_too_much --stateful=links'
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --suppress-health-check=filter_too_much --exclude-checks=positive_data_acceptance --phases=examples,stateful'
- name: Run Groups API tests
if: steps.changes.outputs.groups == 'true'
uses: schemathesis/action@v1
uses: schemathesis/action@v2.0.0
with:
schema: apidocs/openapi/groups.yaml
base-url: ${{ env.GROUPS_URL }}
checks: all
report: false
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --contrib-openapi-formats-uuid --hypothesis-suppress-health-check=filter_too_much --stateful=links'
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --suppress-health-check=filter_too_much --exclude-checks=positive_data_acceptance --phases=examples'
- name: Run Clients API tests
if: steps.changes.outputs.clients == 'true'
uses: schemathesis/action@v1
uses: schemathesis/action@v2.0.0
with:
schema: apidocs/openapi/clients.yaml
base-url: ${{ env.CLIENTS_URL }}
checks: all
report: false
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --contrib-openapi-formats-uuid --hypothesis-suppress-health-check=filter_too_much --stateful=links'
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --suppress-health-check=filter_too_much --exclude-checks=positive_data_acceptance --phases=examples'
- name: Run Channels API tests
if: steps.changes.outputs.channels == 'true'
uses: schemathesis/action@v1
uses: schemathesis/action@v2.0.0
with:
schema: apidocs/openapi/channels.yaml
base-url: ${{ env.CHANNELS_URL }}
checks: all
report: false
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --contrib-openapi-formats-uuid --hypothesis-suppress-health-check=filter_too_much --stateful=links'
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --suppress-health-check=filter_too_much --exclude-checks=positive_data_acceptance --phases=examples'
- name: Run HTTP Adapter API tests
if: steps.changes.outputs.http == 'true'
uses: schemathesis/action@v1
uses: schemathesis/action@v2.0.0
with:
schema: apidocs/openapi/http.yaml
base-url: ${{ env.HTTP_ADAPTER_URL }}
checks: all
report: false
args: '--header "Authorization: Client ${{ env.CLIENT_SECRET }}" --contrib-openapi-formats-uuid --hypothesis-suppress-health-check=filter_too_much --stateful=links'
args: '--header "Authorization: Client ${{ env.CLIENT_SECRET }}" --suppress-health-check=filter_too_much --exclude-checks=positive_data_acceptance --phases=examples'
- name: Run Auth API tests
if: steps.changes.outputs.auth == 'true'
uses: schemathesis/action@v1
uses: schemathesis/action@v2.0.0
with:
schema: apidocs/openapi/auth.yaml
base-url: ${{ env.AUTH_URL }}
checks: all
report: false
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --contrib-openapi-formats-uuid --hypothesis-suppress-health-check=filter_too_much --stateful=links'
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --suppress-health-check=filter_too_much --exclude-checks=positive_data_acceptance --phases=examples'
- name: Run Domains API tests
if: steps.changes.outputs.domains == 'true'
uses: schemathesis/action@v1
uses: schemathesis/action@v2.0.0
with:
schema: apidocs/openapi/domains.yaml
base-url: ${{ env.DOMAIN_URL }}
checks: all
report: false
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --contrib-openapi-formats-uuid --hypothesis-suppress-health-check=filter_too_much --stateful=links'
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --suppress-health-check=filter_too_much --exclude-checks=positive_data_acceptance --phases=examples'
- name: Run Journal API tests
if: steps.changes.outputs.journal == 'true'
uses: schemathesis/action@v1
uses: schemathesis/action@v2.0.0
with:
schema: apidocs/openapi/journal.yaml
base-url: ${{ env.JOURNAL_URL }}
checks: all
report: false
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --contrib-openapi-formats-uuid --hypothesis-suppress-health-check=filter_too_much --stateful=links'
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --suppress-health-check=filter_too_much --exclude-checks=positive_data_acceptance --phases=examples'
- name: Run Certs API tests
if: steps.changes.outputs.certs == 'true'
uses: schemathesis/action@v1
uses: schemathesis/action@v2.0.0
with:
schema: apidocs/openapi/certs.yaml
base-url: ${{ env.CERTS_URL }}
checks: all
report: false
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --contrib-openapi-formats-uuid --hypothesis-suppress-health-check=filter_too_much --stateful=links'
args: '--header "Authorization: Bearer ${{ env.USER_TOKEN }}" --suppress-health-check=filter_too_much --exclude-checks=positive_data_acceptance --phases=examples'
- name: Stop containers
if: always()
+10 -10
View File
@@ -148,21 +148,21 @@ define test_api_service
fi
@if [ "$(svc)" = "http" ]; then \
st run api/openapi/$(svc).yaml \
st run apidocs/openapi/$(svc).yaml \
--checks all \
--base-url $(2) \
--url $(2) \
--header "Authorization: Client $(CLIENT_SECRET)" \
--contrib-openapi-formats-uuid \
--hypothesis-suppress-health-check=filter_too_much \
--stateful=links; \
--suppress-health-check=filter_too_much \
--exclude-checks=positive_data_acceptance \
--phases=examples,stateful; \
else \
st run api/openapi/$(svc).yaml \
st run apidocs/openapi/$(svc).yaml \
--checks all \
--base-url $(2) \
--url $(2) \
--header "Authorization: Bearer $(USER_TOKEN)" \
--contrib-openapi-formats-uuid \
--hypothesis-suppress-health-check=filter_too_much \
--stateful=links; \
--suppress-health-check=filter_too_much \
--exclude-checks=positive_data_acceptance \
--phases=examples,stateful; \
fi
endef
+2
View File
@@ -365,6 +365,8 @@ paths:
description: PAT not found.
"415":
description: Missing or invalid content type.
"422":
description: Database cannot process the request.
"500":
$ref: "#/components/responses/ServiceError"
+10 -74
View File
@@ -931,18 +931,6 @@ components:
operationId: getChannel
parameters:
chanID: $response.body#/id
get_clients:
operationId: listClientsInaChannel
parameters:
chanID: $response.body#/id
get_users:
operationId: listChannelsConnectedToUser
parameters:
memberID: $response.body#/id
get_groups:
operationId: listChannelsConnectedToGroup
parameters:
memberID: $response.body#/id
update:
operationId: updateChannel
parameters:
@@ -955,22 +943,6 @@ components:
operationId: enableChannel
parameters:
chanID: $response.body#/id
assign_users:
operationId: assignUsersToChannel
parameters:
chanID: $response.body#/id
unassign_users:
operationId: unassignUsersFromChannel
parameters:
chanID: $response.body#/id
assign_groups:
operationId: assignGroupsToChannel
parameters:
chanID: $response.body#/id
unassign_groups:
operationId: unassignGroupsFromChannel
parameters:
chanID: $response.body#/id
ChannelsCreateRes:
description: Registered new channels.
@@ -991,18 +963,6 @@ components:
operationId: getChannel
parameters:
chanID: $response.body#/id
get_clients:
operationId: listClientsInaChannel
parameters:
chanID: $response.body#/id
get_users:
operationId: listChannelsConnectedToUser
parameters:
memberID: $response.body#/id
get_groups:
operationId: listChannelsConnectedToGroup
parameters:
memberID: $response.body#/id
update:
operationId: updateChannel
parameters:
@@ -1015,22 +975,6 @@ components:
operationId: enableChannel
parameters:
chanID: $response.body#/id
assign_users:
operationId: assignUsersToChannel
parameters:
chanID: $response.body#/id
unassign_users:
operationId: unassignUsersFromChannel
parameters:
chanID: $response.body#/id
assign_groups:
operationId: assignGroupsToChannel
parameters:
chanID: $response.body#/id
unassign_groups:
operationId: unassignGroupsFromChannel
parameters:
chanID: $response.body#/id
ChannelRes:
description: Data retrieved.
@@ -1039,32 +983,24 @@ components:
schema:
$ref: "#/components/schemas/Channel"
links:
get_clients:
operationId: listClientsInaChannel
update:
operationId: updateChannel
parameters:
chanID: $response.body#/id
get_users:
operationId: listChannelsConnectedToUser
parameters:
memberID: $response.body#/id
get_groups:
operationId: listChannelsConnectedToGroup
parameters:
memberID: $response.body#/id
assign_users:
operationId: assignUsersToChannel
disable:
operationId: disableChannel
parameters:
chanID: $response.body#/id
unassign_users:
operationId: unassignUsersFromChannel
enable:
operationId: enableChannel
parameters:
chanID: $response.body#/id
assign_groups:
operationId: assignGroupsToChannel
set_parent_group:
operationId: setChannelParentGroup
parameters:
chanID: $response.body#/id
unassign_groups:
operationId: unassignGroupsFromChannel
remove_parent_group:
operationId: removeChannelParentGroup
parameters:
chanID: $response.body#/id
+1 -62
View File
@@ -419,42 +419,6 @@ paths:
"500":
$ref: "#/components/responses/ServiceError"
/{domainID}/users/{userID}/clients:
get:
operationId: listUserClients
summary: List clients asssociated with a user.
description: |
Lists clients associated with a user identified by the user ID.
tags:
- Clients
parameters:
- $ref: "auth.yaml#/components/parameters/DomainID"
- $ref: "users.yaml#/components/parameters/UserID"
- $ref: "#/components/parameters/Limit"
- $ref: "#/components/parameters/Offset"
- $ref: "#/components/parameters/Metadata"
- $ref: "#/components/parameters/Status"
- $ref: "#/components/parameters/ClientName"
- $ref: "#/components/parameters/Tags"
security:
- bearerAuth: []
responses:
"200":
$ref: "#/components/responses/ClientPageRes"
"400":
description: Failed due to malformed query parameters.
"401":
description: |
Missing or invalid access token provided.
"403":
description: Failed to perform authorization over the entity.
"404":
description: A non-existent entity request.
"422":
description: Database can't process request.
"500":
$ref: "#/components/responses/ServiceError"
/{domainID}/clients/{clientID}/roles:
post:
operationId: createClientRole
@@ -1346,10 +1310,6 @@ components:
operationId: getClient
parameters:
clientID: $response.body#/id
get_channels:
operationId: listChannelsConnectedToClient
parameters:
clientID: $response.body#/id
update:
operationId: updateClient
parameters:
@@ -1362,14 +1322,6 @@ components:
operationId: updateClientSecret
parameters:
clientID: $response.body#/id
share:
operationId: shareClient
parameters:
clientID: $response.body#/id
unsahre:
operationId: unshareClient
parameters:
clientID: $response.body#/id
disable:
operationId: disableClient
parameters:
@@ -1385,20 +1337,7 @@ components:
application/json:
schema:
$ref: "#/components/schemas/Client"
links:
get_channels:
operationId: listChannelsConnectedToClient
parameters:
clientID: $response.body#/id
share:
operationId: shareClient
parameters:
clientID: $response.body#/id
unsahre:
operationId: unshareClient
parameters:
clientID: $response.body#/id
ClientPageRes:
description: Data retrieved.
content:
+6 -2
View File
@@ -871,6 +871,8 @@ paths:
description: Missing or invalid access token provided.
"404":
description: A non-existent entity request.
"422":
description: Database can't process request.
"500":
$ref: "#/components/responses/ServiceError"
@@ -895,6 +897,8 @@ paths:
description: Missing or invalid access token provided.
"404":
description: A non-existent entity request.
"422":
description: Database can't process request.
"500":
$ref: "#/components/responses/ServiceError"
@@ -1355,8 +1359,8 @@ components:
delete:
operationId: deleteInvitation
parameters:
user_id: $response.body#/user_id
domain_id: $response.body#/domain_id
userID: $response.body#/user_id
domainID: $response.body#/domain_id
InvitationPageRes:
description: Data retrieved.
+8 -36
View File
@@ -1590,21 +1590,9 @@ components:
parameters:
groupID: $response.body#/id
get_children:
operationId: listChildren
operationId: listChildrenGroups
parameters:
groupID: $response.body#/id
get_parent:
operationId: listParents
parameters:
groupID: $response.body#/id
get_channels:
operationId: listGroupsInChannel
parameters:
memberID: $response.body#/id
get_users:
operationId: listGroupsByUser
parameters:
memberID: $response.body#/id
update:
operationId: updateGroup
parameters:
@@ -1617,14 +1605,6 @@ components:
operationId: enableGroup
parameters:
groupID: $response.body#/id
assign:
operationId: assignUser
parameters:
groupID: $response.body#/id
unassign:
operationId: unassignUser
parameters:
groupID: $response.body#/id
GroupRes:
description: Data retrieved.
@@ -1634,27 +1614,19 @@ components:
$ref: "#/components/schemas/Group"
links:
get_children:
operationId: listChildren
operationId: listChildrenGroups
parameters:
groupID: $response.body#/id
get_parent:
operationId: listParents
update:
operationId: updateGroup
parameters:
groupID: $response.body#/id
get_channels:
operationId: listGroupsInChannel
parameters:
memberID: $response.body#/id
get_users:
operationId: listGroupsByUser
parameters:
memberID: $response.body#/id
assign:
operationId: assignUser
disable:
operationId: disableGroup
parameters:
groupID: $response.body#/id
unassign:
operationId: unassignUser
enable:
operationId: enableGroup
parameters:
groupID: $response.body#/id
+2
View File
@@ -136,6 +136,7 @@ components:
in: path
schema:
type: string
example: mydomain
required: true
channelPrefix:
name: channelPrefix
@@ -143,6 +144,7 @@ components:
in: path
schema:
type: string
example: mychannel
required: true
requestBodies:
+33 -38
View File
@@ -43,6 +43,7 @@ paths:
be uniquely identified by its email address.
requestBody:
$ref: "#/components/requestBodies/UserCreateReq"
security: []
responses:
"201":
$ref: "#/components/responses/UserCreateRes"
@@ -80,7 +81,7 @@ paths:
- $ref: "#/components/parameters/LastName"
- $ref: "#/components/parameters/Username"
- $ref: "#/components/parameters/Email"
- $ref: "#/components/parameters/Tags"
- $ref: "#/components/parameters/Tag"
security:
- bearerAuth: []
responses:
@@ -139,6 +140,8 @@ paths:
description: Failed due to malformed query parameters.
"401":
description: Missing or invalid access token provided.
"403":
description: Failed to perform authorization over the entity."
"404":
description: A non-existent entity request.
"422":
@@ -197,6 +200,8 @@ paths:
description: Failed due to malformed query parameters.
"401":
description: Missing or invalid access token provided.
"403":
description: Failed to perform authorization over the entity."
"404":
description: A non-existent entity request.
"405":
@@ -630,7 +635,7 @@ components:
description: User's last name.
email:
type: string
example: "admin@example.com"
example: "user@example.com"
description: User's email address will be used as its unique identifier.
tags:
type: array
@@ -644,14 +649,17 @@ components:
properties:
username:
type: string
example: "admin"
description: User's username for example 'admin' will be used as its unique identifier.
example: "userName"
description: User's username for example 'userName' will be used as its unique identifier.
secret:
type: string
format: password
example: password
minimum: 8
description: Free-form account secret used for acquiring auth token(s).
required:
- username
- secret
metadata:
type: object
example: { "domain": "example.com" }
@@ -665,8 +673,14 @@ components:
description: User Status
format: string
example: enabled
enum:
- enabled
- disabled
required:
- credentials
- first_name
- last_name
- email
User:
type: object
@@ -1009,6 +1023,7 @@ components:
in: header
schema:
type: string
example: "example.com"
required: true
UserID:
@@ -1071,18 +1086,14 @@ components:
required: false
example: enabled
Tags:
name: tags
description: User tags.
Tag:
name: tag
description: User tag.
in: query
schema:
type: array
minItems: 0
uniqueItems: true
items:
type: string
type: string
required: false
example: ["yello", "orange"]
example: "orange"
GroupName:
name: name
@@ -1197,8 +1208,12 @@ components:
description: Metadata filter. Filtering is performed matching the parameter with metadata on top level. Parameter is json.
in: query
schema:
type: string
minimum: 0
type: object
properties:
key:
type: string
description: Metadata key to filter by.
example: { "key": "value" }
required: false
Limit:
@@ -1324,11 +1339,8 @@ components:
email:
type: string
format: email
example: user@example.com
description: User email.
host:
type: string
example: examplehost
description: Email host.
PasswordReset:
description: Password reset request data, new password and token that is appended on password reset link received in email.
@@ -1341,13 +1353,13 @@ components:
type: string
format: password
description: New password.
example: 12345678
example: "12345678"
minimum: 8
confirm_password:
type: string
format: password
description: New confirmation password.
example: 12345678
example: "12345678"
minimum: 8
token:
type: string
@@ -1391,14 +1403,6 @@ components:
operationId: getUser
parameters:
userID: $response.body#/id
get_groups:
operationId: listUsersInGroup
parameters:
groupID: $response.body#/id
get_channels:
operationId: listUsersInChannel
parameters:
channelID: $response.body#/id
update:
operationId: updateUser
parameters:
@@ -1438,15 +1442,6 @@ components:
application/json:
schema:
$ref: "#/components/schemas/User"
links:
get_groups:
operationId: listUsersInGroup
parameters:
groupID: $response.body#/id
get_channels:
operationId: listUsersInChannel
parameters:
channelID: $response.body#/id
UserPageRes:
description: Data retrieved.