From 525603156f2f6bec6c7ff8eec3b70b64ea78622d Mon Sep 17 00:00:00 2001 From: Phrase Date: Wed, 4 Nov 2026 09:16:57 +0100 Subject: [PATCH 01/13] chore(main): release php 3.30.0 (#1345) --- clients/php/CHANGELOG.md | 8 ++++++++ openapi-generator/php_lang.yaml | 2 +- release-please/manifest-php.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/clients/php/CHANGELOG.md b/clients/php/CHANGELOG.md index 4afaa828e..231cd9e06 100644 --- a/clients/php/CHANGELOG.md +++ b/clients/php/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [3.30.0](https://github.com/phrase/strings-openapi/compare/php-v3.29.0...php-v3.30.0) (2026-11-04) + + +### Features + +* **API:** add exclude_linked_child_keys to jobs and job templates #STRINGS-4424 ([#1356](https://github.com/phrase/strings-openapi/issues/1356)) ([46690ee](https://github.com/phrase/strings-openapi/commit/46690ee15758d6d500aa5eec5e264f1686f50200)) +* **API:** add uploads array to repo sync import event show response #STRINGS-3739 ([#1342](https://github.com/phrase/strings-openapi/issues/1342)) ([b5a07de](https://github.com/phrase/strings-openapi/commit/b5a07decfa83958869e9ce9363d45646cc8fa523)) + ## [3.29.0](https://github.com/phrase/strings-openapi/compare/php-v3.28.0...php-v3.29.0) (2026-10-23) diff --git a/openapi-generator/php_lang.yaml b/openapi-generator/php_lang.yaml index d78225226..0f391bd59 100644 --- a/openapi-generator/php_lang.yaml +++ b/openapi-generator/php_lang.yaml @@ -2,7 +2,7 @@ generatorName: php outputDir: clients/php invokerPackage: Phrase -artifactVersion: 3.29.0 +artifactVersion: 3.30.0 gitUserId: phrase gitRepoId: phrase-php packageName: phrase-php diff --git a/release-please/manifest-php.json b/release-please/manifest-php.json index e5b34d4e3..1f11f5b3f 100644 --- a/release-please/manifest-php.json +++ b/release-please/manifest-php.json @@ -1,3 +1,3 @@ { - ".": "3.29.0" + ".": "3.30.0" } \ No newline at end of file From 15b52c2ed262292ec5b9ecfa229e6b352d6e9739 Mon Sep 17 00:00:00 2001 From: Phrase Date: Wed, 4 Nov 2026 09:17:09 +0100 Subject: [PATCH 02/13] chore(main): release java 3.30.0 (#1347) --- clients/java/CHANGELOG.md | 8 ++++++++ openapi-generator/java_lang.yaml | 2 +- release-please/manifest-java.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/clients/java/CHANGELOG.md b/clients/java/CHANGELOG.md index efa39d830..c05893e52 100644 --- a/clients/java/CHANGELOG.md +++ b/clients/java/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [3.30.0](https://github.com/phrase/strings-openapi/compare/java-v3.29.0...java-v3.30.0) (2026-11-04) + + +### Features + +* **API:** add exclude_linked_child_keys to jobs and job templates #STRINGS-4424 ([#1356](https://github.com/phrase/strings-openapi/issues/1356)) ([46690ee](https://github.com/phrase/strings-openapi/commit/46690ee15758d6d500aa5eec5e264f1686f50200)) +* **API:** add uploads array to repo sync import event show response #STRINGS-3739 ([#1342](https://github.com/phrase/strings-openapi/issues/1342)) ([b5a07de](https://github.com/phrase/strings-openapi/commit/b5a07decfa83958869e9ce9363d45646cc8fa523)) + ## [3.29.0](https://github.com/phrase/strings-openapi/compare/java-v3.28.0...java-v3.29.0) (2026-10-22) diff --git a/openapi-generator/java_lang.yaml b/openapi-generator/java_lang.yaml index 3e2a81184..10ce83c68 100644 --- a/openapi-generator/java_lang.yaml +++ b/openapi-generator/java_lang.yaml @@ -4,7 +4,7 @@ outputDir: clients/java apiPackage: com.phrase.client.api artifactId: phrase-java artifactUrl: https://developers.phrase.com -artifactVersion: 3.29.0 +artifactVersion: 3.30.0 artifactDescription: Java Client for Phrase Strings API developerEmail: support@phrase.com developerName: Phrase diff --git a/release-please/manifest-java.json b/release-please/manifest-java.json index e5b34d4e3..1f11f5b3f 100644 --- a/release-please/manifest-java.json +++ b/release-please/manifest-java.json @@ -1,3 +1,3 @@ { - ".": "3.29.0" + ".": "3.30.0" } \ No newline at end of file From 7ba6873def6629d8bbc03c438ee2b549144ce25a Mon Sep 17 00:00:00 2001 From: Phrase Date: Wed, 4 Nov 2026 09:17:18 +0100 Subject: [PATCH 03/13] chore(main): release python 3.32.0 (#1348) --- clients/python/CHANGELOG.md | 8 ++++++++ openapi-generator/python_lang.yaml | 2 +- release-please/manifest-python.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/clients/python/CHANGELOG.md b/clients/python/CHANGELOG.md index db9ad55f1..10adbac61 100644 --- a/clients/python/CHANGELOG.md +++ b/clients/python/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [3.32.0](https://github.com/phrase/strings-openapi/compare/python-v3.31.0...python-v3.32.0) (2026-11-04) + + +### Features + +* **API:** add exclude_linked_child_keys to jobs and job templates #STRINGS-4424 ([#1356](https://github.com/phrase/strings-openapi/issues/1356)) ([46690ee](https://github.com/phrase/strings-openapi/commit/46690ee15758d6d500aa5eec5e264f1686f50200)) +* **API:** add uploads array to repo sync import event show response #STRINGS-3739 ([#1342](https://github.com/phrase/strings-openapi/issues/1342)) ([b5a07de](https://github.com/phrase/strings-openapi/commit/b5a07decfa83958869e9ce9363d45646cc8fa523)) + ## [3.31.0](https://github.com/phrase/strings-openapi/compare/python-v3.30.0...python-v3.31.0) (2026-10-23) diff --git a/openapi-generator/python_lang.yaml b/openapi-generator/python_lang.yaml index 424244e0e..e5d7a1bc4 100644 --- a/openapi-generator/python_lang.yaml +++ b/openapi-generator/python_lang.yaml @@ -3,7 +3,7 @@ generatorName: python outputDir: clients/python packageName: phrase_api projectName: phrase-api -packageVersion: 3.31.0 +packageVersion: 3.32.0 packageUrl: https://github.com/phrase/phrase-python gitUserId: phrase gitRepoId: phrase-python diff --git a/release-please/manifest-python.json b/release-please/manifest-python.json index 1287b3ed2..89303d577 100644 --- a/release-please/manifest-python.json +++ b/release-please/manifest-python.json @@ -1,3 +1,3 @@ { - ".": "3.31.0" + ".": "3.32.0" } \ No newline at end of file From 6fe785e33d2056b2042168bb3fddf7d02ef7eccf Mon Sep 17 00:00:00 2001 From: Phrase Date: Wed, 4 Nov 2026 09:17:28 +0100 Subject: [PATCH 04/13] chore(main): release typescript 3.32.0 (#1357) --- clients/typescript/CHANGELOG.md | 7 +++++++ openapi-generator/typescript_lang.yaml | 2 +- release-please/manifest-typescript.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/clients/typescript/CHANGELOG.md b/clients/typescript/CHANGELOG.md index 6517ff675..2ffbdeb3b 100644 --- a/clients/typescript/CHANGELOG.md +++ b/clients/typescript/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [3.32.0](https://github.com/phrase/strings-openapi/compare/typescript-v3.31.0...typescript-v3.32.0) (2026-11-04) + + +### Features + +* **API:** add exclude_linked_child_keys to jobs and job templates #STRINGS-4424 ([#1356](https://github.com/phrase/strings-openapi/issues/1356)) ([46690ee](https://github.com/phrase/strings-openapi/commit/46690ee15758d6d500aa5eec5e264f1686f50200)) + ## [3.31.0](https://github.com/phrase/strings-openapi/compare/typescript-v3.30.0...typescript-v3.31.0) (2026-10-23) diff --git a/openapi-generator/typescript_lang.yaml b/openapi-generator/typescript_lang.yaml index aed9586d5..d9eb4a1f7 100644 --- a/openapi-generator/typescript_lang.yaml +++ b/openapi-generator/typescript_lang.yaml @@ -2,7 +2,7 @@ generatorName: typescript-fetch outputDir: clients/typescript npmName: phrase-js -npmVersion: 3.31.0 +npmVersion: 3.32.0 typescriptThreePlus: true templateDir: openapi-generator/templates/typescript-fetch repositoryUrl: https://github.com/phrase/phrase-js diff --git a/release-please/manifest-typescript.json b/release-please/manifest-typescript.json index 1287b3ed2..89303d577 100644 --- a/release-please/manifest-typescript.json +++ b/release-please/manifest-typescript.json @@ -1,3 +1,3 @@ { - ".": "3.31.0" + ".": "3.32.0" } \ No newline at end of file From 5ca4aa9e8de29cccd88f1d161797764c03ee2c5a Mon Sep 17 00:00:00 2001 From: Phrase Date: Wed, 4 Nov 2026 09:17:37 +0100 Subject: [PATCH 05/13] chore(main): release go 4.37.0 (#1358) --- clients/cli/go.mod | 2 +- clients/go/CHANGELOG.md | 7 +++++++ openapi-generator/go_lang.yaml | 2 +- release-please/manifest-go.json | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/clients/cli/go.mod b/clients/cli/go.mod index 8e36ab7f6..05a3feb9d 100644 --- a/clients/cli/go.mod +++ b/clients/cli/go.mod @@ -9,7 +9,7 @@ require ( github.com/daviddengcn/go-colortext v1.0.0 github.com/jpillora/backoff v1.0.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/phrase/phrase-go/v4 v4.36.0 // x-release-please-version + github.com/phrase/phrase-go/v4 v4.37.0 // x-release-please-version github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.7.1 golang.org/x/sync v0.23.0 diff --git a/clients/go/CHANGELOG.md b/clients/go/CHANGELOG.md index 31fb84b5f..85e6faa3a 100644 --- a/clients/go/CHANGELOG.md +++ b/clients/go/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [4.37.0](https://github.com/phrase/strings-openapi/compare/go-v4.36.0...go-v4.37.0) (2026-11-04) + + +### Features + +* **API:** add exclude_linked_child_keys to jobs and job templates #STRINGS-4424 ([#1356](https://github.com/phrase/strings-openapi/issues/1356)) ([46690ee](https://github.com/phrase/strings-openapi/commit/46690ee15758d6d500aa5eec5e264f1686f50200)) + ## [4.36.0](https://github.com/phrase/strings-openapi/compare/go-v4.35.0...go-v4.36.0) (2026-10-29) diff --git a/openapi-generator/go_lang.yaml b/openapi-generator/go_lang.yaml index c82abeb8f..b71b06722 100644 --- a/openapi-generator/go_lang.yaml +++ b/openapi-generator/go_lang.yaml @@ -2,7 +2,7 @@ generatorName: go outputDir: clients/go packageName: phrase -packageVersion: 4.36.0 +packageVersion: 4.37.0 gitUserId: phrase gitRepoId: phrase-go httpUserAgent: Phrase Strings go diff --git a/release-please/manifest-go.json b/release-please/manifest-go.json index ea3d667ed..0a7c04585 100644 --- a/release-please/manifest-go.json +++ b/release-please/manifest-go.json @@ -1,3 +1,3 @@ { - ".": "4.36.0" + ".": "4.37.0" } \ No newline at end of file From ea29330321766a1919046bee00a360c4485ce76d Mon Sep 17 00:00:00 2001 From: Phrase Date: Wed, 4 Nov 2026 09:18:09 +0100 Subject: [PATCH 06/13] chore(main): release cli 2.72.0 (#1346) --- clients/cli/CHANGELOG.md | 8 ++++++++ openapi-generator/cli_lang.yaml | 2 +- release-please/manifest-cli.json | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/clients/cli/CHANGELOG.md b/clients/cli/CHANGELOG.md index 996e3b82e..dd959d347 100644 --- a/clients/cli/CHANGELOG.md +++ b/clients/cli/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.72.0](https://github.com/phrase/strings-openapi/compare/cli-v2.71.0...cli-v2.72.0) (2026-11-04) + + +### Features + +* **API:** add exclude_linked_child_keys to jobs and job templates #STRINGS-4424 ([#1356](https://github.com/phrase/strings-openapi/issues/1356)) ([46690ee](https://github.com/phrase/strings-openapi/commit/46690ee15758d6d500aa5eec5e264f1686f50200)) +* **API:** add uploads array to repo sync import event show response #STRINGS-3739 ([#1342](https://github.com/phrase/strings-openapi/issues/1342)) ([b5a07de](https://github.com/phrase/strings-openapi/commit/b5a07decfa83958869e9ce9363d45646cc8fa523)) + ## [2.71.0](https://github.com/phrase/strings-openapi/compare/cli-v2.70.0...cli-v2.71.0) (2026-10-23) diff --git a/openapi-generator/cli_lang.yaml b/openapi-generator/cli_lang.yaml index ab0ecc565..8d396531a 100644 --- a/openapi-generator/cli_lang.yaml +++ b/openapi-generator/cli_lang.yaml @@ -2,6 +2,6 @@ generatorName: go outputDir: clients/cli packageName: phrase -packageVersion: 2.71.0 +packageVersion: 2.72.0 templateDir: openapi-generator/templates/cli apiNameSuffix: Api diff --git a/release-please/manifest-cli.json b/release-please/manifest-cli.json index d11ae99e5..f63be26c3 100644 --- a/release-please/manifest-cli.json +++ b/release-please/manifest-cli.json @@ -1,3 +1,3 @@ { - ".": "2.71.0" + ".": "2.72.0" } From f18c4c5069947a8450750288c8600db22ca0f030 Mon Sep 17 00:00:00 2001 From: Phrase Date: Thu, 5 Nov 2026 11:08:16 +0100 Subject: [PATCH 07/13] docs(webhook_schemas): Update webhook schemas (#1360) Co-authored-by: github-actions[bot] --- webhook_schemas/branches_merge_conflict.json | 197 ++++++++++++++++++ .../branches_merge_conflict_example.json | 37 ++++ webhook_schemas/branches_merge_error.json | 197 ++++++++++++++++++ .../branches_merge_error_example.json | 37 ++++ 4 files changed, 468 insertions(+) create mode 100644 webhook_schemas/branches_merge_conflict.json create mode 100644 webhook_schemas/branches_merge_conflict_example.json create mode 100644 webhook_schemas/branches_merge_error.json create mode 100644 webhook_schemas/branches_merge_error_example.json diff --git a/webhook_schemas/branches_merge_conflict.json b/webhook_schemas/branches_merge_conflict.json new file mode 100644 index 000000000..bb183733c --- /dev/null +++ b/webhook_schemas/branches_merge_conflict.json @@ -0,0 +1,197 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "sent_at": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "base_project_id": { + "type": [ + "string", + "null" + ] + }, + "branch_project_id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "merged_at": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "merged_by": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "created_by": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "state": { + "type": "string" + } + }, + "required": [ + "name", + "base_project_id", + "branch_project_id", + "created_at", + "updated_at", + "merged_at", + "state", + "created_by", + "merged_by" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch" + ] +} diff --git a/webhook_schemas/branches_merge_conflict_example.json b/webhook_schemas/branches_merge_conflict_example.json new file mode 100644 index 000000000..8408f979f --- /dev/null +++ b/webhook_schemas/branches_merge_conflict_example.json @@ -0,0 +1,37 @@ +{ + "event": "branches:merge_conflict", + "message": "john.smith could not merge branch new-feature-1 in project Translation Project due to a conflict", + "sent_at": "2025-02-07 16:44:04 UTC", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1", + "base_project_id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "branch_project_id": "8228978fc13f5eb3c4cbbe8ac9882b64", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "merged_at": null, + "state": "merge_conflict", + "created_by": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "merged_by": null + } +} \ No newline at end of file diff --git a/webhook_schemas/branches_merge_error.json b/webhook_schemas/branches_merge_error.json new file mode 100644 index 000000000..bb183733c --- /dev/null +++ b/webhook_schemas/branches_merge_error.json @@ -0,0 +1,197 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "message": { + "type": "string" + }, + "sent_at": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "main_format": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "main_format", + "created_at", + "updated_at" + ] + }, + "branch": { + "type": "object", + "properties": { + "base_project_id": { + "type": [ + "string", + "null" + ] + }, + "branch_project_id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "merged_at": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "merged_by": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "created_by": { + "type": [ + "object", + "null" + ], + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "gravatar_uid": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "username", + "name", + "gravatar_uid" + ] + }, + "state": { + "type": "string" + } + }, + "required": [ + "name", + "base_project_id", + "branch_project_id", + "created_at", + "updated_at", + "merged_at", + "state", + "created_by", + "merged_by" + ] + } + }, + "required": [ + "event", + "message", + "user", + "project", + "branch" + ] +} diff --git a/webhook_schemas/branches_merge_error_example.json b/webhook_schemas/branches_merge_error_example.json new file mode 100644 index 000000000..8bd2a5a06 --- /dev/null +++ b/webhook_schemas/branches_merge_error_example.json @@ -0,0 +1,37 @@ +{ + "event": "branches:merge_error", + "message": "john.smith could not merge branch new-feature-1 in project Translation Project due to an unexpected error", + "sent_at": "2025-02-07 16:44:04 UTC", + "user": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "project": { + "id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "name": "Translation Project", + "slug": "translation-project", + "main_format": "yml", + "project_image_url": null, + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:18:13 UTC", + "point_of_contact": null + }, + "branch": { + "name": "new-feature-1", + "base_project_id": "b2abd3bd2c23ff0ac546e0a2d9aa0be1", + "branch_project_id": "8228978fc13f5eb3c4cbbe8ac9882b64", + "created_at": "2025-02-07 16:18:13 UTC", + "updated_at": "2025-02-07 16:44:04 UTC", + "merged_at": null, + "state": "merge_error", + "created_by": { + "id": "24b9a53ad72e198ca332fba91bb95f57", + "username": "john.smith", + "name": "John Smith", + "gravatar_uid": "1bc5edb4799fd8eec67c66122f47eb73" + }, + "merged_by": null + } +} \ No newline at end of file From e2cd0cdf327bed106f7c37f97324e77e997f0994 Mon Sep 17 00:00:00 2001 From: Phrase Date: Thu, 5 Nov 2026 12:31:03 +0100 Subject: [PATCH 08/13] feat(API): add linked_key field to key list responses #STRINGS-4425 (#1361) Co-authored-by: github-actions[bot] Co-authored-by: Varpuspaavi Co-authored-by: Claude Sonnet 5.5 --- .../com/phrase/client/api/KeysApiTest.java | 6 +- doc/compiled.json | 70 +++++++++++++++++++ openapi-generator/templates/go/model.mustache | 2 +- paths/keys/index.yaml | 12 ++++ paths/keys/search.yaml | 12 ++++ schemas.yaml | 4 ++ schemas/translation_key.yaml | 5 ++ schemas/translation_key_linked_key.yaml | 24 +++++++ .../translation_key_linked_key_parent.yaml | 15 ++++ 9 files changed, 147 insertions(+), 3 deletions(-) create mode 100644 schemas/translation_key_linked_key.yaml create mode 100644 schemas/translation_key_linked_key_parent.yaml diff --git a/clients/java/src/test/java/com/phrase/client/api/KeysApiTest.java b/clients/java/src/test/java/com/phrase/client/api/KeysApiTest.java index ba407e1aa..0b8edc427 100644 --- a/clients/java/src/test/java/com/phrase/client/api/KeysApiTest.java +++ b/clients/java/src/test/java/com/phrase/client/api/KeysApiTest.java @@ -240,7 +240,8 @@ public void keysListTest() throws ApiException { String order = null; String q = null; String localeId = null; - List response = api.keysList(projectId, xPhraseAppOTP, page, perPage, branch, sort, order, q, localeId); + Boolean includeLinkedKeys = null; + List response = api.keysList(projectId, xPhraseAppOTP, page, perPage, branch, sort, order, q, localeId, includeLinkedKeys); // TODO: test validations } @@ -260,7 +261,8 @@ public void keysSearchTest() throws ApiException { String xPhraseAppOTP = null; Integer page = null; Integer perPage = null; - List response = api.keysSearch(projectId, keysSearchParameters, xPhraseAppOTP, page, perPage); + Boolean includeLinkedKeys = null; + List response = api.keysSearch(projectId, keysSearchParameters, xPhraseAppOTP, page, perPage, includeLinkedKeys); // TODO: test validations } diff --git a/doc/compiled.json b/doc/compiled.json index 73278953c..680ca6476 100644 --- a/doc/compiled.json +++ b/doc/compiled.json @@ -2880,6 +2880,10 @@ "updated_at": { "type": "string", "format": "date-time" + }, + "linked_key": { + "description": "Only returned by the list and search endpoints when `include_linked_keys=true` is passed. `null` means the key is not linked.\n", + "$ref": "#/components/schemas/translation_key_linked_key" } }, "example": { @@ -2965,6 +2969,54 @@ } ] }, + "translation_key_linked_key": { + "type": "object", + "nullable": true, + "title": "translation_key_linked_key", + "description": "Describes a key's role in a parent–child link relationship.", + "properties": { + "role": { + "type": "string", + "description": "Whether this key is the parent or the child in the link relationship.", + "enum": [ + "parent", + "child" + ] + }, + "parent": { + "$ref": "#/components/schemas/translation_key_linked_key_parent" + }, + "children_count": { + "type": "integer", + "nullable": true, + "description": "The number of linked child keys. Set for parent keys.", + "example": 3 + } + }, + "example": { + "role": "parent", + "parent": null, + "children_count": 3 + } + }, + "translation_key_linked_key_parent": { + "type": "object", + "nullable": true, + "description": "The parent key's public identifier and name. Set for child keys.", + "title": "translation_key_linked_key_parent", + "properties": { + "id": { + "type": "string", + "description": "The parent key's public identifier (code).", + "example": "abc12345def67890abc12345def67890" + }, + "name": { + "type": "string", + "description": "The parent key's name.", + "example": "home.welcome.title" + } + } + }, "affected_resources": { "type": "object", "title": "affected_resources", @@ -24355,6 +24407,15 @@ "schema": { "type": "string" } + }, + { + "name": "include_linked_keys", + "in": "query", + "description": "When set to `true`, each key object in the response includes a `linked_key` field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent's id and name (for child keys). Keys with no active link return `linked_key: null`. Omit this parameter or set it to `false` to leave the `linked_key` field out of the response entirely.\n", + "required": false, + "schema": { + "type": "boolean" + } } ], "responses": { @@ -24727,6 +24788,15 @@ }, { "$ref": "#/components/parameters/per_page" + }, + { + "name": "include_linked_keys", + "in": "query", + "description": "When set to `true`, each key object in the response includes a `linked_key` field describing whether the key is a parent or child in a key-link relationship, and the number of children (for parent keys) or the parent's id and name (for child keys). Keys with no active link return `linked_key: null`. Omit this parameter or set it to `false` to leave the `linked_key` field out of the response entirely.\n", + "required": false, + "schema": { + "type": "boolean" + } } ], "responses": { diff --git a/openapi-generator/templates/go/model.mustache b/openapi-generator/templates/go/model.mustache index 72bcb58af..fd7d1f116 100644 --- a/openapi-generator/templates/go/model.mustache +++ b/openapi-generator/templates/go/model.mustache @@ -34,7 +34,7 @@ type {{classname}} struct { {{#description}} // {{{description}}} {{/description}} - {{name}} {{#isNullable}}*{{/isNullable}}{{^isNullable}}{{#isBoolean}}*{{/isBoolean}}{{/isNullable}}{{{dataType}}} `{{#vendorExtensions.x-json-tag}}{{{.}}}{{/vendorExtensions.x-json-tag}}{{^vendorExtensions.x-json-tag}}json:"{{baseName}}{{^required}},omitempty{{/required}}"{{/vendorExtensions.x-json-tag}}{{#withXml}} xml:"{{baseName}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` + {{name}} {{#isNullable}}*{{/isNullable}}{{^isNullable}}{{#isBoolean}}*{{/isBoolean}}{{/isNullable}}{{#isModel}}{{#isNullable}}{{{complexType}}}{{/isNullable}}{{^isNullable}}{{{dataType}}}{{/isNullable}}{{/isModel}}{{^isModel}}{{{dataType}}}{{/isModel}} `{{#vendorExtensions.x-json-tag}}{{{.}}}{{/vendorExtensions.x-json-tag}}{{^vendorExtensions.x-json-tag}}json:"{{baseName}}{{^required}},omitempty{{/required}}"{{/vendorExtensions.x-json-tag}}{{#withXml}} xml:"{{baseName}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` {{/allVars}} } {{/isEnum}} diff --git a/paths/keys/index.yaml b/paths/keys/index.yaml index 46cc1c029..06860617c 100644 --- a/paths/keys/index.yaml +++ b/paths/keys/index.yaml @@ -34,6 +34,18 @@ parameters: in: query schema: type: string +- name: include_linked_keys + in: query + description: > + When set to `true`, each key object in the response includes a + `linked_key` field describing whether the key is a parent or child in a + key-link relationship, and the number of children (for parent keys) or + the parent's id and name (for child keys). Keys with no active link + return `linked_key: null`. Omit this parameter or set it to `false` to + leave the `linked_key` field out of the response entirely. + required: false + schema: + type: boolean responses: '200': description: OK diff --git a/paths/keys/search.yaml b/paths/keys/search.yaml index e565c50ba..6a354595b 100644 --- a/paths/keys/search.yaml +++ b/paths/keys/search.yaml @@ -9,6 +9,18 @@ parameters: - "$ref": "../../parameters.yaml#/project_id" - "$ref": "../../parameters.yaml#/page" - "$ref": "../../parameters.yaml#/per_page" +- name: include_linked_keys + in: query + description: > + When set to `true`, each key object in the response includes a + `linked_key` field describing whether the key is a parent or child in a + key-link relationship, and the number of children (for parent keys) or + the parent's id and name (for child keys). Keys with no active link + return `linked_key: null`. Omit this parameter or set it to `false` to + leave the `linked_key` field out of the response entirely. + required: false + schema: + type: boolean responses: '200': description: OK diff --git a/schemas.yaml b/schemas.yaml index 7765a2245..88b4dec09 100644 --- a/schemas.yaml +++ b/schemas.yaml @@ -96,6 +96,10 @@ schemas: "$ref": schemas/translation_key.yaml#/translation_key translation_key_details: "$ref": schemas/translation_key_details.yaml#/translation_key_details + translation_key_linked_key: + "$ref": schemas/translation_key_linked_key.yaml#/translation_key_linked_key + translation_key_linked_key_parent: + "$ref": schemas/translation_key_linked_key_parent.yaml#/translation_key_linked_key_parent affected_resources: "$ref": schemas/affected_resources.yaml#/affected_resources translation_order: diff --git a/schemas/translation_key.yaml b/schemas/translation_key.yaml index 7229131ad..7f63cbcf5 100644 --- a/schemas/translation_key.yaml +++ b/schemas/translation_key.yaml @@ -27,6 +27,11 @@ translation_key: updated_at: type: string format: date-time + linked_key: + description: > + Only returned by the list and search endpoints when + `include_linked_keys=true` is passed. `null` means the key is not linked. + "$ref": "./translation_key_linked_key.yaml#/translation_key_linked_key" example: id: abcd1234cdef1234abcd1234cdef1234 name: home.index.headline diff --git a/schemas/translation_key_linked_key.yaml b/schemas/translation_key_linked_key.yaml new file mode 100644 index 000000000..b7da8e4f0 --- /dev/null +++ b/schemas/translation_key_linked_key.yaml @@ -0,0 +1,24 @@ +--- +translation_key_linked_key: + type: object + nullable: true + title: translation_key_linked_key + description: Describes a key's role in a parent–child link relationship. + properties: + role: + type: string + description: Whether this key is the parent or the child in the link relationship. + enum: + - parent + - child + parent: + "$ref": "./translation_key_linked_key_parent.yaml#/translation_key_linked_key_parent" + children_count: + type: integer + nullable: true + description: The number of linked child keys. Set for parent keys. + example: 3 + example: + role: parent + parent: + children_count: 3 diff --git a/schemas/translation_key_linked_key_parent.yaml b/schemas/translation_key_linked_key_parent.yaml new file mode 100644 index 000000000..ab2dba74c --- /dev/null +++ b/schemas/translation_key_linked_key_parent.yaml @@ -0,0 +1,15 @@ +--- +translation_key_linked_key_parent: + type: object + nullable: true + description: The parent key's public identifier and name. Set for child keys. + title: translation_key_linked_key_parent + properties: + id: + type: string + description: The parent key's public identifier (code). + example: abc12345def67890abc12345def67890 + name: + type: string + description: The parent key's name. + example: home.welcome.title From 4879d48b4ed13e5631634455eb9fa4c8bf80fdc6 Mon Sep 17 00:00:00 2001 From: Phrase Date: Thu, 5 Nov 2026 12:38:12 +0100 Subject: [PATCH 09/13] chore(main): release typescript 3.33.0 (#1363) --- clients/typescript/CHANGELOG.md | 7 +++++++ openapi-generator/typescript_lang.yaml | 2 +- release-please/manifest-typescript.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/clients/typescript/CHANGELOG.md b/clients/typescript/CHANGELOG.md index 2ffbdeb3b..51091ab40 100644 --- a/clients/typescript/CHANGELOG.md +++ b/clients/typescript/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [3.33.0](https://github.com/phrase/strings-openapi/compare/typescript-v3.32.0...typescript-v3.33.0) (2026-11-05) + + +### Features + +* **API:** add linked_key field to key list responses #STRINGS-4425 ([#1361](https://github.com/phrase/strings-openapi/issues/1361)) ([e2cd0cd](https://github.com/phrase/strings-openapi/commit/e2cd0cdf327bed106f7c37f97324e77e997f0994)) + ## [3.32.0](https://github.com/phrase/strings-openapi/compare/typescript-v3.31.0...typescript-v3.32.0) (2026-11-04) diff --git a/openapi-generator/typescript_lang.yaml b/openapi-generator/typescript_lang.yaml index d9eb4a1f7..e7c136165 100644 --- a/openapi-generator/typescript_lang.yaml +++ b/openapi-generator/typescript_lang.yaml @@ -2,7 +2,7 @@ generatorName: typescript-fetch outputDir: clients/typescript npmName: phrase-js -npmVersion: 3.32.0 +npmVersion: 3.33.0 typescriptThreePlus: true templateDir: openapi-generator/templates/typescript-fetch repositoryUrl: https://github.com/phrase/phrase-js diff --git a/release-please/manifest-typescript.json b/release-please/manifest-typescript.json index 89303d577..df68d3d26 100644 --- a/release-please/manifest-typescript.json +++ b/release-please/manifest-typescript.json @@ -1,3 +1,3 @@ { - ".": "3.32.0" + ".": "3.33.0" } \ No newline at end of file From f589073e40fb3cd0b6bc75765e32ba9a6d1cc733 Mon Sep 17 00:00:00 2001 From: Phrase Date: Thu, 5 Nov 2026 12:38:41 +0100 Subject: [PATCH 10/13] chore(main): release php 3.31.0 (#1364) --- clients/php/CHANGELOG.md | 7 +++++++ openapi-generator/php_lang.yaml | 2 +- release-please/manifest-php.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/clients/php/CHANGELOG.md b/clients/php/CHANGELOG.md index 231cd9e06..998611f3c 100644 --- a/clients/php/CHANGELOG.md +++ b/clients/php/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [3.31.0](https://github.com/phrase/strings-openapi/compare/php-v3.30.0...php-v3.31.0) (2026-11-05) + + +### Features + +* **API:** add linked_key field to key list responses #STRINGS-4425 ([#1361](https://github.com/phrase/strings-openapi/issues/1361)) ([e2cd0cd](https://github.com/phrase/strings-openapi/commit/e2cd0cdf327bed106f7c37f97324e77e997f0994)) + ## [3.30.0](https://github.com/phrase/strings-openapi/compare/php-v3.29.0...php-v3.30.0) (2026-11-04) diff --git a/openapi-generator/php_lang.yaml b/openapi-generator/php_lang.yaml index 0f391bd59..7793283e3 100644 --- a/openapi-generator/php_lang.yaml +++ b/openapi-generator/php_lang.yaml @@ -2,7 +2,7 @@ generatorName: php outputDir: clients/php invokerPackage: Phrase -artifactVersion: 3.30.0 +artifactVersion: 3.31.0 gitUserId: phrase gitRepoId: phrase-php packageName: phrase-php diff --git a/release-please/manifest-php.json b/release-please/manifest-php.json index 1f11f5b3f..1287b3ed2 100644 --- a/release-please/manifest-php.json +++ b/release-please/manifest-php.json @@ -1,3 +1,3 @@ { - ".": "3.30.0" + ".": "3.31.0" } \ No newline at end of file From 1402364df709ff8789af17d5c7737e3f54e1ed52 Mon Sep 17 00:00:00 2001 From: Phrase Date: Thu, 5 Nov 2026 12:38:52 +0100 Subject: [PATCH 11/13] chore(main): release python 3.33.0 (#1366) --- clients/python/CHANGELOG.md | 7 +++++++ openapi-generator/python_lang.yaml | 2 +- release-please/manifest-python.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/clients/python/CHANGELOG.md b/clients/python/CHANGELOG.md index 10adbac61..92643eec0 100644 --- a/clients/python/CHANGELOG.md +++ b/clients/python/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [3.33.0](https://github.com/phrase/strings-openapi/compare/python-v3.32.0...python-v3.33.0) (2026-11-05) + + +### Features + +* **API:** add linked_key field to key list responses #STRINGS-4425 ([#1361](https://github.com/phrase/strings-openapi/issues/1361)) ([e2cd0cd](https://github.com/phrase/strings-openapi/commit/e2cd0cdf327bed106f7c37f97324e77e997f0994)) + ## [3.32.0](https://github.com/phrase/strings-openapi/compare/python-v3.31.0...python-v3.32.0) (2026-11-04) diff --git a/openapi-generator/python_lang.yaml b/openapi-generator/python_lang.yaml index e5d7a1bc4..0cda8c8f1 100644 --- a/openapi-generator/python_lang.yaml +++ b/openapi-generator/python_lang.yaml @@ -3,7 +3,7 @@ generatorName: python outputDir: clients/python packageName: phrase_api projectName: phrase-api -packageVersion: 3.32.0 +packageVersion: 3.33.0 packageUrl: https://github.com/phrase/phrase-python gitUserId: phrase gitRepoId: phrase-python diff --git a/release-please/manifest-python.json b/release-please/manifest-python.json index 89303d577..df68d3d26 100644 --- a/release-please/manifest-python.json +++ b/release-please/manifest-python.json @@ -1,3 +1,3 @@ { - ".": "3.32.0" + ".": "3.33.0" } \ No newline at end of file From ea0f73bc0b87efcc906469d5dc95d344a3830480 Mon Sep 17 00:00:00 2001 From: Phrase Date: Thu, 5 Nov 2026 12:39:01 +0100 Subject: [PATCH 12/13] chore(main): release java 3.31.0 (#1365) --- clients/java/CHANGELOG.md | 7 +++++++ openapi-generator/java_lang.yaml | 2 +- release-please/manifest-java.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/clients/java/CHANGELOG.md b/clients/java/CHANGELOG.md index c05893e52..17aec3859 100644 --- a/clients/java/CHANGELOG.md +++ b/clients/java/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [3.31.0](https://github.com/phrase/strings-openapi/compare/java-v3.30.0...java-v3.31.0) (2026-11-05) + + +### Features + +* **API:** add linked_key field to key list responses #STRINGS-4425 ([#1361](https://github.com/phrase/strings-openapi/issues/1361)) ([e2cd0cd](https://github.com/phrase/strings-openapi/commit/e2cd0cdf327bed106f7c37f97324e77e997f0994)) + ## [3.30.0](https://github.com/phrase/strings-openapi/compare/java-v3.29.0...java-v3.30.0) (2026-11-04) diff --git a/openapi-generator/java_lang.yaml b/openapi-generator/java_lang.yaml index 10ce83c68..1e6dd8819 100644 --- a/openapi-generator/java_lang.yaml +++ b/openapi-generator/java_lang.yaml @@ -4,7 +4,7 @@ outputDir: clients/java apiPackage: com.phrase.client.api artifactId: phrase-java artifactUrl: https://developers.phrase.com -artifactVersion: 3.30.0 +artifactVersion: 3.31.0 artifactDescription: Java Client for Phrase Strings API developerEmail: support@phrase.com developerName: Phrase diff --git a/release-please/manifest-java.json b/release-please/manifest-java.json index 1f11f5b3f..1287b3ed2 100644 --- a/release-please/manifest-java.json +++ b/release-please/manifest-java.json @@ -1,3 +1,3 @@ { - ".": "3.30.0" + ".": "3.31.0" } \ No newline at end of file From 856962dfa71b112ccfb460366e0406287221a398 Mon Sep 17 00:00:00 2001 From: Phrase Date: Thu, 5 Nov 2026 12:39:09 +0100 Subject: [PATCH 13/13] chore(main): release ruby 4.34.0 (#1368) --- clients/ruby/CHANGELOG.md | 7 +++++++ openapi-generator/ruby_lang.yaml | 2 +- release-please/manifest-ruby.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/clients/ruby/CHANGELOG.md b/clients/ruby/CHANGELOG.md index 2d3636aaa..d4acb034b 100644 --- a/clients/ruby/CHANGELOG.md +++ b/clients/ruby/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [4.34.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.33.0...ruby-v4.34.0) (2026-11-05) + + +### Features + +* **API:** add linked_key field to key list responses #STRINGS-4425 ([#1361](https://github.com/phrase/strings-openapi/issues/1361)) ([e2cd0cd](https://github.com/phrase/strings-openapi/commit/e2cd0cdf327bed106f7c37f97324e77e997f0994)) + ## [4.33.0](https://github.com/phrase/strings-openapi/compare/ruby-v4.32.0...ruby-v4.33.0) (2026-11-04) diff --git a/openapi-generator/ruby_lang.yaml b/openapi-generator/ruby_lang.yaml index a4c08bb04..51fb06354 100644 --- a/openapi-generator/ruby_lang.yaml +++ b/openapi-generator/ruby_lang.yaml @@ -3,7 +3,7 @@ generatorName: ruby outputDir: clients/ruby moduleName: Phrase gemName: phrase -gemVersion: 4.33.0 +gemVersion: 4.34.0 gemDescription: Phrase Strings is a translation management platform for software projects. gemSummary: >- You can collaborate on language file translation with your team or order diff --git a/release-please/manifest-ruby.json b/release-please/manifest-ruby.json index 5304d0ace..7dc692e1f 100644 --- a/release-please/manifest-ruby.json +++ b/release-please/manifest-ruby.json @@ -1,3 +1,3 @@ { - ".": "4.33.0" + ".": "4.34.0" } \ No newline at end of file