Skip to content

Commit a589920

Browse files
committed
Merge main; remove multi-select feature flag
Resolves conflicts from merging origin/main into the multi-select branch. main added the `fields_param` feature which also split `list_issues` into flag-gated variants, colliding with this branch's `remote_mcp_issue_fields_multiselect` split. Rather than gate `list_issues` on two independent flags (which the inventory's single FeatureFlagEnable can't express for the "both on" case), the multi-select feature flag is removed entirely — multi-select is now unconditional, matching the already-unconditional read paths: - issue_write / list_issue_fields collapse to their single multi-select-aware variant; the legacy siblings and issues_legacy_multiselect.go are deleted - list_issues adopts main's fields_param split (ListIssues / LegacyListIssues) with the multi-select `values` slot always advertised - optionalIssueWriteFields / resolveIssueRequestFieldValues / parseRawFieldFilters drop the now-constant multiSelectEnabled bool and their dead single-select-only branches - FeatureFlagIssueFieldsMultiSelect const, allowlist and insiders entries removed - toolsnaps + generated docs regenerated Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2 parents 60ebbe1 + c36e4e4 commit a589920

104 files changed

Lines changed: 5771 additions & 1635 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docker-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ jobs:
106106
# https://github.com/docker/build-push-action
107107
- name: Build and push Docker image
108108
id: build-and-push
109-
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
109+
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
110110
with:
111111
context: .
112112
push: ${{ github.event_name != 'pull_request' }}

.github/workflows/goreleaser.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
run: go mod download
2929

3030
- name: Run GoReleaser
31-
uses: goreleaser/goreleaser-action@5daf1e915a5f0af01ddbcd89a43b8061ff4f1a89
31+
uses: goreleaser/goreleaser-action@f06c13b6b1a9625abc9e6e439d9c05a8f2190e94
3232
with:
3333
distribution: goreleaser
3434
# GoReleaser version

README.md

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -891,7 +891,7 @@ The following sets of tools are available:
891891
- `issue_number`: The number of the issue (number, required)
892892
- `method`: The read operation to perform on a single issue.
893893
Options are:
894-
1. get - Get details of a specific issue.
894+
1. get - Get issue details. Also returns best-effort hierarchy flags (`has_parent`, `has_children`); `parent` and `sub_issues_summary` are optional relationship summaries.
895895
2. get_comments - Get issue comments.
896896
3. get_sub_issues - Get sub-issues (children) of the issue.
897897
4. get_parent - Get the parent issue, if this issue is a sub-issue of another.
@@ -907,7 +907,7 @@ The following sets of tools are available:
907907
- `assignees`: Usernames to assign to this issue (string[], optional)
908908
- `body`: Issue body content (string, optional)
909909
- `duplicate_of`: Issue number that this issue is a duplicate of. Only used when state_reason is 'duplicate'. (number, optional)
910-
- `issue_fields`: Issue field values to set or clear. Each item requires 'field_name' and exactly one of 'value', 'field_option_name', or 'delete: true'. (object[], optional)
910+
- `issue_fields`: Issue field values to set or clear. Each item requires 'field_name' and exactly one of 'value', 'field_option_name', 'field_option_names', or 'delete: true'. (object[], optional)
911911
- `issue_number`: Issue number to update (number, optional)
912912
- `labels`: Labels to apply to this issue (string[], optional)
913913
- `method`: Write operation to perform on a single issue.
@@ -939,7 +939,7 @@ The following sets of tools are available:
939939
- **Required OAuth Scopes**: `repo`
940940
- `after`: Cursor for pagination. Use the cursor from the previous response. (string, optional)
941941
- `direction`: Order direction. If provided, the 'orderBy' also needs to be provided. (string, optional)
942-
- `field_filters`: Filter by custom issue field values. Each entry takes a field_name and a value; the server looks up the field and coerces the value to its type (single-select option name, text, number, or YYYY-MM-DD date). (object[], optional)
942+
- `field_filters`: Filter by custom issue field values. Each entry takes a field_name and either 'value' (text, number, YYYY-MM-DD date, or single-select option name) or 'values' (multi-select option names). For multi-select fields, all listed values must be set on an issue for it to match (AND semantics) — to match any-of, make multiple list_issues calls and union the results. (object[], optional)
943943
- `labels`: Filter by labels (string[], optional)
944944
- `orderBy`: Order issues by field. If provided, the 'direction' also needs to be provided. (string, optional)
945945
- `owner`: Repository owner (string, required)
@@ -968,7 +968,8 @@ The following sets of tools are available:
968968
- 'add' - add a sub-issue to a parent issue in a GitHub repository.
969969
- 'remove' - remove a sub-issue from a parent issue in a GitHub repository.
970970
- 'reprioritize' - change the order of sub-issues within a parent issue in a GitHub repository. Use either 'after_id' or 'before_id' to specify the new position.
971-
(string, required)
971+
Writes issue hierarchy. To move a sub-issue to a new parent, use `add` with `replace_parent=true`; there is no writable parent field.
972+
(string, required)
972973
- `owner`: Repository owner (string, required)
973974
- `replace_parent`: When true, replaces the sub-issue's current parent issue. Use with 'add' method only. (boolean, optional)
974975
- `repo`: Repository name (string, required)
@@ -1068,7 +1069,8 @@ The following sets of tools are available:
10681069
- **Required OAuth Scopes**: `read:project`
10691070
- **Accepted OAuth Scopes**: `project`, `read:project`
10701071
- `field_id`: The field's ID. Required for 'get_project_field' method. (number, optional)
1071-
- `fields`: Specific list of field IDs to include in the response when getting a project item (e.g. ["102589", "985201", "169875"]). If not provided, only the title field is included. Only used for 'get_project_item' method. (string[], optional)
1072+
- `field_names`: Specific list of field names to include in the response when getting a project item (e.g. ["Status", "Priority"]). Resolved server-side to field IDs — pass this instead of 'fields' when you only know the human-readable names. Mutually exclusive with 'fields' — provide one, not both. Only used for 'get_project_item' method. (string[], optional)
1073+
- `fields`: Specific list of field IDs to include in the response when getting a project item (e.g. ["102589", "985201", "169875"]). If neither 'fields' nor 'field_names' is provided, only the title field is included. Mutually exclusive with 'field_names' — provide one, not both. Only used for 'get_project_item' method. (string[], optional)
10721074
- `item_id`: The item's ID. Required for 'get_project_item' method. (number, optional)
10731075
- `method`: The method to execute (string, required)
10741076
- `owner`: The owner (user or organization login). The name is not case sensitive. (string, optional)
@@ -1081,7 +1083,8 @@ The following sets of tools are available:
10811083
- **Accepted OAuth Scopes**: `project`, `read:project`
10821084
- `after`: Forward pagination cursor from previous pageInfo.nextCursor. (string, optional)
10831085
- `before`: Backward pagination cursor from previous pageInfo.prevCursor (rare). (string, optional)
1084-
- `fields`: Field IDs to include when listing project items (e.g. ["102589", "985201"]). CRITICAL: Always provide to get field values. Without this, only titles returned. Only used for 'list_project_items' method. (string[], optional)
1086+
- `field_names`: Field names to include when listing project items (e.g. ["Status", "Priority"]). Resolved server-side to field IDs — pass this instead of 'fields' when you only know the human-readable names. Names that fail to resolve return a structured error. Mutually exclusive with 'fields' — provide one, not both. Only used for 'list_project_items' method. (string[], optional)
1087+
- `fields`: Field IDs to include when listing project items (e.g. ["102589", "985201"]). CRITICAL: Always provide to get field values. Without this (and without 'field_names'), only titles returned. Mutually exclusive with 'field_names' — provide one, not both. Only used for 'list_project_items' method. (string[], optional)
10851088
- `method`: The action to perform (string, required)
10861089
- `owner`: The owner (user or organization login). The name is not case sensitive. (string, required)
10871090
- `owner_type`: Owner type (user or org). If not provided, will automatically try both. (string, optional)
@@ -1093,10 +1096,10 @@ The following sets of tools are available:
10931096
- **Required OAuth Scopes**: `project`
10941097
- `body`: The body of the status update (markdown). Used for 'create_project_status_update' method. (string, optional)
10951098
- `field_name`: The name of the iteration field (e.g. 'Sprint'). Required for 'create_iteration_field' method. (string, optional)
1096-
- `issue_number`: The issue number (use when item_type is 'issue' for 'add_project_item' method). Provide either issue_number or pull_request_number. (number, optional)
1097-
- `item_id`: The project item ID. Required for 'update_project_item' and 'delete_project_item' methods. (number, optional)
1098-
- `item_owner`: The owner (user or organization) of the repository containing the issue or pull request. Required for 'add_project_item' method. (string, optional)
1099-
- `item_repo`: The name of the repository containing the issue or pull request. Required for 'add_project_item' method. (string, optional)
1099+
- `issue_number`: The issue number. Required for 'add_project_item' when item_type is 'issue'. Also accepted by 'update_project_item' to resolve the item by issue number (combine with item_owner and item_repo). (number, optional)
1100+
- `item_id`: The project item ID. Required for 'delete_project_item'. For 'update_project_item', provide either item_id, or (item_owner + item_repo + issue_number) to resolve the item by issue. (number, optional)
1101+
- `item_owner`: The owner (user or organization) of the repository containing the issue or pull request. Required for 'add_project_item' method. Also accepted by 'update_project_item' when resolving the item by issue number. (string, optional)
1102+
- `item_repo`: The name of the repository containing the issue or pull request. Required for 'add_project_item' method. Also accepted by 'update_project_item' when resolving the item by issue number. (string, optional)
11001103
- `item_type`: The item's type, either issue or pull_request. Required for 'add_project_item' method. (string, optional)
11011104
- `iteration_duration`: Duration in days for iterations of the field (e.g. 7 for weekly, 14 for bi-weekly). Required for 'create_iteration_field' method. (number, optional)
11021105
- `iterations`: Custom iterations for 'create_iteration_field' method. Only set this when you need iterations with varying durations, breaks between them, or specific titles. Otherwise omit it: GitHub auto-creates three iterations of 'iteration_duration' days starting on 'start_date', which is the right choice for most cases. (object[], optional)
@@ -1109,7 +1112,7 @@ The following sets of tools are available:
11091112
- `status`: The status of the project. Used for 'create_project_status_update' method. (string, optional)
11101113
- `target_date`: The target date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method. (string, optional)
11111114
- `title`: The project title. Required for 'create_project' method. (string, optional)
1112-
- `updated_field`: Object consisting of the ID of the project field to update and the new value for the field. To clear the field, set value to null. Example: {"id": 123456, "value": "New Value"}. Required for 'update_project_item' method. (object, optional)
1115+
- `updated_field`: Object describing the field to update and its new value. Required for 'update_project_item'. Two shapes are accepted: (1) by ID — {"id": 123456, "value": "..."}; (2) by name — {"name": "Status", "value": "In Progress"}. For single-select fields, option-name resolution requires the by-name shape; on the by-ID shape, pass the option ID. Set value to null to clear the field. (object, optional)
11131116

11141117
</details>
11151118

@@ -1655,6 +1658,18 @@ export GITHUB_MCP_SERVER_TITLE="GHES MCP Server"
16551658

16561659
The exported Go API of this module should currently be considered unstable, and subject to breaking changes. In the future, we may offer stability; please file an issue if there is a use case where this would be valuable.
16571660

1661+
## Contributing
1662+
1663+
Contributions are welcome. Before opening a pull request, please read the [contributing guide](CONTRIBUTING.md) for setup, testing, linting, and documentation generation instructions.
1664+
1665+
## Support
1666+
1667+
For help using the GitHub MCP Server, see the [support guide](SUPPORT.md). If you have found a bug or want to request a feature, please search existing issues before opening a new one.
1668+
1669+
## Security
1670+
1671+
Please do not report security vulnerabilities through public issues. Follow the instructions in the [security policy](SECURITY.md) to report vulnerabilities responsibly.
1672+
16581673
## License
16591674

16601675
This project is licensed under the terms of the MIT open source license. Please refer to [MIT](./LICENSE) for the full terms.

0 commit comments

Comments
 (0)