fix(API): improve get /projects/{project_id}/keys/{id}/key_links documentation#1188
Merged
Stephen Lumenta (sbl) merged 9 commits intoJul 1, 2026
Conversation
Contributor
API changelog (oasdiff)Doc-only edits (descriptions, examples) do not appear here. |
Apply the batch review conventions:
- Drop the scope/permission sentence ('Requires the translations:write
scope ...') from the description; the 403 response already documents it.
- Remove the 'return a 400 response with error code key_not_a_parent'
status sentence; the 400 response carries that detail. Keep the
parent-key precondition and the error-code-format note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Review feedback: error response descriptions should stay in the shared responses.yaml for consistency, not be re-authored inline per operation. Under OpenAPI 3.0 a description sibling of $ref is ignored anyway, so the inline text never rendered. Strip the inline $ref-sibling response descriptions (now bare $refs); the shared response owns the wording. Genuinely custom (non-$ref) response bodies are left intact. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Source walk (strings-app linked_keys_controller#index) confirms the 400 for
a non-parent key renders a bare message ("Key <code> is not a parent key"),
not an object with a stable machine-readable code. The custom 400 here
invented a top-level `error` code field (key_not_a_parent) the API does not
emit, and the description claimed "Error codes use lowercase snake_case".
Replace the custom 400 with the shared $ref and keep the genuine cause (the
key is not a parent) in the operation description, without inventing codes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Strings convention: never hand-author Curl or CLI v2 samples. Mintlify renders the request sample (curl + the multi-language playground) and the response from the OpenAPI operation itself, so a hand-written x-code-samples block drifts and overrides the correct auto-generated one; a CLI v2 sample is not spec-derivable at all. Remove the block so Mintlify renders. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Author
API surface change — reviewer noteThis PR replaces the inline Applying |
Apply the same dedup as #1192/#1193: the list response repeated a large inline example on top of the `$ref` to `schemas/key_link.yaml#/key_link`. Move the canonical example onto the shared schema and drop the inline copy, so every key_links operation renders one example through the `$ref`. Note: #1192 makes the identical addition to schemas/key_link.yaml; whichever of the two merges second will see a trivial add/add conflict on that file — keep one copy of the example. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Regenerated from source with `swagger-cli bundle -t json -w 300 main.yaml` (the exact command the lint/compare-output CI job runs), so the committed bundle matches a fresh bundle of the deduped YAML. Fixes the compare-output failure introduced by editing the source without rebundling. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Stephen Lumenta (sbl)
added a commit
that referenced
this pull request
Jun 25, 2026
Follow-up to @jablan's review: referencing the schema was only half of it — the 200 response still carried a large inline example that overrode the `$ref` and duplicated the shared model (with off-convention slug-style ids). Drop the inline example and put the canonical one on `schemas/key_link.yaml`, matching #1192 and #1188, so create, list, and batch unlink all render one example through the ref. Rebundled doc/compiled.json from source. Note: #1192 and #1188 make the identical addition to schemas/key_link.yaml; whichever of the three merges first wins and the others get a trivial add/add conflict on that file — keep one copy of the example. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jablan
approved these changes
Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Improves the documentation for
get /projects/{project_id}/keys/{id}/key_links: sharper descriptions, parameter docs, error responses, and usage examples.Drafted with AI assistance and grounded in the API implementation. Please review for technical accuracy before merging; nothing is merged automatically.
🤖 Generated with Claude Code