Add custom fields support, list_fields tool, and additional getters - #1
Open
dobobaie wants to merge 3 commits into
Open
Add custom fields support, list_fields tool, and additional getters#1dobobaie wants to merge 3 commits into
dobobaie wants to merge 3 commits into
Conversation
dobobaie
commented
Apr 13, 2026
- Add testmo_list_fields tool for listing custom fields per project
- Add custom field support (custom_preconditions, custom_steps, custom_expected) to testmo_update_case with additionalProperties passthrough
- Bypass SDK constructFromObject in create/update case handlers to preserve custom fields
- Pass additional fields (template_id, state_id, estimate) in single-case creation
- Improve error handling to extract body/status from API errors
- Update README to document all new tools (fields, get_case, get_folder, get_automation_source, get_group, get_role, get_user)
- Add testmo_list_fields tool for listing custom fields per project - Add custom field support (custom_preconditions, custom_steps, custom_expected) to testmo_update_case with additionalProperties passthrough - Bypass SDK constructFromObject in create/update case handlers to preserve custom fields - Pass additional fields (template_id, state_id, estimate) in single-case creation - Improve error handling to extract body/status from API errors - Update README to document all new tools (fields, get_case, get_folder, get_automation_source, get_group, get_role, get_user) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Declare `issues` and `tags` as arrays in the testmo_update_case and
testmo_create_case input schemas. Undeclared fields are serialized as
strings by the MCP client, so passing issue links previously failed with
"The issues field is not of type array" — the same class of bug already
handled for custom_* via coerceCustomValue. Generalize that coercion with
an ARRAY_FIELDS set so a stringified array is still recovered.
Payload per the SDK's UpdateRepositoryCase model: an array of issue ids or
of {display_id, integration_id, connection_project_id} objects. Note that
Testmo replaces the case's whole issue list, so callers must merge.
Also included (pre-existing work on this branch): custom_* field coercion,
raw-HTTP get_case to bypass SDK model deserialization stripping custom
fields, and API client exposure.
Verified end-to-end against project 2: 19 cases linked across 4 Jira keys,
with existing links preserved on the 4 cases that already had them.
testmo_get_case rebuilt its request as a raw HTTP call to keep custom fields, but dropped the caller's `expands` parameter. `issues` — the native Jira tracker links — is absent from the default case payload, so the field was unreadable through this server even though the schema advertised the parameter. Forward it. Also ignore package-lock.json and yarn.lock: this project declares pnpm and tracks pnpm-lock.yaml, so a stray npm lockfile is noise.
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.