Skip to content

Commit 4aae0a6

Browse files
Merge pull request #118 from regulaforensics/develop
Develop -> stable
2 parents e5dd8ec + fcc517d commit 4aae0a6

File tree

13 files changed

+344
-145
lines changed

13 files changed

+344
-145
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @ikliashchou
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: Back Merge handler
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- stable
8+
9+
jobs:
10+
pr_master_to_stable:
11+
runs-on: ubuntu-latest
12+
if: github.ref_name == 'master'
13+
steps:
14+
- uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
17+
18+
- name: Check if PR exists
19+
env:
20+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
run: |
22+
prs=$(gh pr list \
23+
--repo "$GITHUB_REPOSITORY" \
24+
--json baseRefName,headRefName \
25+
--jq '
26+
map(select(.baseRefName == "stable" and .headRefName == "master"))
27+
| length
28+
')
29+
if ((prs > 0)); then
30+
echo "Pull Request already exists"
31+
echo "SKIP=true" >> $GITHUB_ENV
32+
fi
33+
34+
- name: Check if stable is ahead
35+
run: |
36+
commits=$(git rev-list origin/stable..origin/master --count)
37+
if ((commits == 0)); then
38+
echo "No diffs was found between branches"
39+
echo "SKIP=true" >> $GITHUB_ENV
40+
fi
41+
42+
- name: Create Pull Request
43+
if: env.SKIP != 'true'
44+
run: gh pr create -B stable -H master --title '[GitHub Actions] Merge master -> stable' --label back-merge --body 'Autogenerated Pull Request for `back-merge` triggered by Github Actions'
45+
env:
46+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47+
48+
pr_stable_to_develop:
49+
runs-on: ubuntu-latest
50+
if: github.ref_name == 'stable'
51+
steps:
52+
- uses: actions/checkout@v4
53+
with:
54+
fetch-depth: 0
55+
56+
- name: Check if PR exists
57+
env:
58+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
59+
run: |
60+
prs=$(gh pr list \
61+
--repo "$GITHUB_REPOSITORY" \
62+
--json baseRefName,headRefName \
63+
--jq '
64+
map(select(.baseRefName == "develop" and .headRefName == "stable"))
65+
| length
66+
')
67+
if ((prs > 0)); then
68+
echo "Pull Request already exists"
69+
echo "SKIP=true" >> $GITHUB_ENV
70+
fi
71+
72+
- name: Check if stable is ahead
73+
run: |
74+
commits=$(git rev-list origin/develop..origin/stable --count)
75+
if ((commits == 0)); then
76+
echo "No diffs was found between branches"
77+
echo "SKIP=true" >> $GITHUB_ENV
78+
fi
79+
80+
- name: Create Pull Request
81+
if: env.SKIP != 'true'
82+
run: gh pr create -B develop -H stable --title '[GitHub Actions] Merge stable -> develop' --label back-merge --body 'Autogenerated Pull Request for `back-merge` triggered by Github Actions'
83+
env:
84+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Make PRs for OpenAPI and client repositories
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
source_branch:
7+
description: "Source branch"
8+
default: "develop"
9+
type: choice
10+
required: true
11+
options:
12+
- develop
13+
- master
14+
- stable
15+
target_branch:
16+
description: "Target branch"
17+
default: "master"
18+
type: choice
19+
required: true
20+
options:
21+
- develop
22+
- master
23+
- stable
24+
25+
jobs:
26+
python-webclient-pr:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Create PR for Python WebClient Repo
30+
run: gh pr create --base ${{ inputs.target_branch }} --head ${{ inputs.source_branch }} --title '[GitHub Actions] Merge ${{ inputs.source_branch }} -> ${{ inputs.target_branch }}' --label OpenAPI --body 'Autogenerated Pull Request triggered by Github Actions in OpenAPI repository' --repo regulaforensics/FaceSDK-web-python-client
31+
env:
32+
GITHUB_TOKEN: ${{ secrets.REGULA_GITHUB_PUSH_TOKEN }}
33+
java-webclient-pr:
34+
runs-on: ubuntu-latest
35+
steps:
36+
- name: Create PR for Java WebClient Repo
37+
run: gh pr create --base ${{ inputs.target_branch }} --head ${{ inputs.source_branch }} --title '[GitHub Actions] Merge ${{ inputs.source_branch }} -> ${{ inputs.target_branch }}' --label OpenAPI --body 'Autogenerated Pull Request triggered by Github Actions in OpenAPI repository' --repo regulaforensics/FaceSDK-web-java-client
38+
env:
39+
GITHUB_TOKEN: ${{ secrets.REGULA_GITHUB_PUSH_TOKEN }}
40+
js-webclient-pr:
41+
runs-on: ubuntu-latest
42+
steps:
43+
- name: Create PR for JS WebClient Repo
44+
run: gh pr create --base ${{ inputs.target_branch }} --head ${{ inputs.source_branch }} --title '[GitHub Actions] Merge ${{ inputs.source_branch }} -> ${{ inputs.target_branch }}' --label OpenAPI --body 'Autogenerated Pull Request triggered by Github Actions in OpenAPI repository' --repo regulaforensics/FaceSDK-web-js-client
45+
env:
46+
GITHUB_TOKEN: ${{ secrets.REGULA_GITHUB_PUSH_TOKEN }}
47+
csharp-webclient-pr:
48+
runs-on: ubuntu-latest
49+
steps:
50+
- name: Create PR for CSharp WebClient Repo
51+
run: gh pr create --base ${{ inputs.target_branch }} --head ${{ inputs.source_branch }} --title '[GitHub Actions] Merge ${{ inputs.source_branch }} -> ${{ inputs.target_branch }}' --label OpenAPI --body 'Autogenerated Pull Request triggered by Github Actions in OpenAPI repository' --repo regulaforensics/FaceSDK-web-csharp-client
52+
env:
53+
GITHUB_TOKEN: ${{ secrets.REGULA_GITHUB_PUSH_TOKEN }}
54+
openapi-pr:
55+
runs-on: ubuntu-latest
56+
steps:
57+
- name: Create PR for OpenAPI Repo
58+
run: gh pr create --base ${{ inputs.target_branch }} --head ${{ inputs.source_branch }} --title '[GitHub Actions] Merge ${{ inputs.source_branch }} -> ${{ inputs.target_branch }}' --label OpenAPI --body 'Autogenerated Pull Request triggered by Github Actions in OpenAPI repository' --repo regulaforensics/FaceSDK-web-openapi
59+
env:
60+
GITHUB_TOKEN: ${{ secrets.REGULA_GITHUB_PUSH_TOKEN }}

common.yml

100755100644
Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ components:
3030
schema:
3131
type: string
3232
format: uuid
33+
tag:
34+
in: query
35+
name: tag
36+
required: true
37+
description: "A unique tag associated with a liveness transaction session. Used to identify and delete the corresponding transaction."
38+
schema:
39+
type: string
3340

3441
responses:
3542
BadLicense:
@@ -51,13 +58,13 @@ components:
5158
onlyCentralFace:
5259
type: boolean
5360
description: "Whether to process only the central face in the image. If set to `false`, all the faces are processed."
54-
example: false
61+
example: true
5562
outputImageParams:
5663
$ref: "#/components/schemas/OutputImageParams"
5764
quality:
5865
$ref: "#/components/schemas/QualityRequest"
5966
attributes:
60-
description: "If set, the selected attributes, such as age or emotions, are evaluated."
67+
description: "If set, the selected attributes, such as age or emotions, are evaluated. To check all the available attributes, you can set the `AttributesAll` scenario in `processParam.scenario`."
6168
type: object
6269
properties:
6370
config:
@@ -75,7 +82,7 @@ components:
7582

7683
QualityRequest:
7784
type: object
78-
description: "If set, the face image quality check is performed according to the set scenario or characteristics."
85+
description: "If set, the face image quality check is performed according to the given list of [characteristics](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/usage/face-detection/face-image-quality-check/) in `quality.config`."
7986
properties:
8087
backgroundMatchColor:
8188
description: "The RGB value for the background color: the silhouette of a person is cut out and the background is filled with this color."
@@ -85,7 +92,7 @@ components:
8592

8693
Crop:
8794
type: object
88-
description: "Whether to return a Base64-encoded image of an aligned and cropped portrait in the `crop` field. Alignment is performed according to `type`; if a head on the original image is tilted, for the returned portrait it is aligned in a straight vertical line. If there are more than one face in the photo, all the faces are detected and processed, and separate portraits for each face are returned. So, if there are five people in the photo, you'll get five processed portraits. Each portrait can be downloaded."
95+
description: "Whether to return a Base64-encoded image of each aligned and cropped portrait in the `crop` field. Faces are aligned to a straight vertical line based on the value in the `crop.type` field, correcting any tilt present in the original image. If the image contains multiple faces, the system will detect and process each face separately, returning individual portraits. For example, if there are five people in the photo, five processed portraits will be returned. Each portrait is available for download."
8996
properties:
9097
type:
9198
$ref: "#/components/schemas/FaceImageQualityAlignType"
@@ -102,10 +109,6 @@ components:
102109
maxItems: 2
103110
description: "The resize value in case `type` matches this value. If it doesn't, no resize is performed."
104111
example: [300, 400]
105-
returnOriginalRect:
106-
type: boolean
107-
description: "Whether to return the coordinates of the rectangle with the face in the original image prepared for the face crop."
108-
example: true
109112

110113
QualityConfigList:
111114
type: array
@@ -128,7 +131,7 @@ components:
128131
format: float
129132
minItems: 2
130133
maxItems: 2
131-
description: "The range of applicable values for this characteristic. If the returned in the response value fits this range, the characteristic is identified as compliant with the requirements."
134+
description: "The range of applicable values for this characteristic. If the returned in the response value fits this range, the characteristic is identified as compliant with the requirements. For recommended ranges, see [Face Image Quality Assessment](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/usage/face-detection/face-image-quality-check/)."
132135
example: [x, y]
133136

134137
AttributeConfigList:
@@ -177,7 +180,7 @@ components:
177180
example: "Roll"
178181
range:
179182
type: array
180-
description: "The range of set values for this characteristic."
183+
description: "The range of set values for this characteristic, see the [Recommended range column](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/usage/face-detection/face-image-quality-check/)."
181184
items:
182185
type: number
183186
format: float
@@ -191,7 +194,7 @@ components:
191194
value:
192195
type: number
193196
format: float
194-
description: "The assessed value for the characteristic, returned in the set units."
197+
description: "The result value for the characteristic, returned in set units."
195198
example: 0.0
196199

197200
RGB:
@@ -205,7 +208,7 @@ components:
205208

206209
FaceImageQualityStatus:
207210
type: integer
208-
description: "The processing status returned for each assessed quality characteristic."
211+
description: "The processing status returned for each quality characteristic, see the [FaceImageQualityStatus enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-image-quality-status/)."
209212
enum:
210213
- 0
211214
- 1
@@ -217,13 +220,8 @@ components:
217220

218221
FaceQualityScenarios:
219222
type: string
220-
description: "Face detection scenario. If applied and the scenario is found, the parameters are set automatically and any other parameters mentioned in the request are ignored.
221-
222-
223-
If not set, left empty, or the name is not found, the processing is performed according to the set parameters.
224-
225-
226-
You can find detailed descriptions of available scenarios on the [Scenarios page](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/usage/face-detection/scenarios/)."
223+
description: "Face detection scenario. If set and the scenario is found, it automatically applies the relevant parameters, overriding any other parameters specified in the request. If the scenario is not set, is empty, or the name is not recognized, processing will follow the parameters directly set in the request. For detailed descriptions of available scenarios, refer to the [Scenarios page](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/usage/face-detection/scenarios/)."
224+
example: "QualityICAO"
227225
enum:
228226
- "OldMode"
229227
- "QualityFull"
@@ -233,6 +231,7 @@ components:
233231
- "CropCentralFace"
234232
- "CropAllFaces"
235233
- "Thumbnail"
234+
- "AttributesAll"
236235
- ""
237236
x-enum-varnames:
238237
- OLD_MODE
@@ -243,11 +242,12 @@ components:
243242
- CROP_CENTRAL_FACE
244243
- CROP_ALL_FACES
245244
- THUMBNAIL
245+
- ATTRIBUTES_ALL
246246
- EMPTY
247247

248248
FaceImageQualityGroups:
249249
type: integer
250-
description: "Face image quality group types for face image quality assessment."
250+
description: "The group ID of the characteristic, see the [FaceImageQualityGroups enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-image-quality-groups/) for details."
251251
enum:
252252
- 1
253253
- 2
@@ -268,7 +268,7 @@ components:
268268
- BACKGROUND
269269
FaceImageQualityGroupsStrings:
270270
type: string
271-
description: "Face image quality group types for face image quality assessment."
271+
description: "Face image quality assessment group name, see [FaceImageQualityGroups](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-image-quality-groups/)."
272272
enum:
273273
- "ImageCharacteristics"
274274
- "HeadSizeAndPosition"
@@ -290,7 +290,7 @@ components:
290290

291291
FaceQualityConfigName:
292292
type: string
293-
description: "The name of the quality check characteristic. For definitions, see the [FaceQualityConfigName enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-quality-config-name/)."
293+
description: "The name of the characteristic. For definitions, see the [FaceQualityConfigName enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-quality-config-name/)."
294294
enum:
295295
- "ImageWidth"
296296
- "ImageHeight"

0 commit comments

Comments
 (0)