Repository navigation
add list automation tags tool - #3561
Open
notapopsicle wants to merge 7 commits into
Open
notapopsicle wants to merge 7 commits into
notapopsicle wants to merge 7 commits into
Conversation
This was referenced Oct 23, 2026
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Incomplete input validation can send authenticated requests to unintended API routes.
2 open issues
What changed in this PR
Adds the read-only list_automation_tags tool to the opt-in copilot_automations toolset so agents can discover repository automation tags and stable IDs.
Changes:
- Implements paginated REST retrieval with typed responses and API error handling.
- Adds discovery, protocol compatibility, pagination, and validation tests.
- Updates tool snapshots and generated documentation.
| File | Description |
|---|---|
| README.md | Documents the new toolset and tool parameters. |
| pkg/github/tools.go | Adds toolset metadata and registers the tool. |
| pkg/github/automation_tags.go | Implements tag retrieval, pagination, and error handling. |
| pkg/github/automation_tags_test.go | Tests discovery and mocked MCP-to-REST calls. |
| pkg/github/__toolsnaps__/list_automation_tags.snap | Records the tool’s description, annotations, and input schema. |
| docs/remote-server.md | Adds generated toolset endpoint and installation links. |
Review effort: Max
Enhance input validation by disallowing '.' and '..' as owner and repo values. Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
The input schema already rejects an empty owner or repo and an out-of-range page or perPage before the handler runs.
notapopsicle
added this pull request to stack #3570
October 23, 2026 19:44
Calls through ServerTool.Handler skip input schema validation, so check owner, repo, page and perPage before sending the request.
notapopsicle
removed this pull request from stack #3570
October 23, 2026 20:04
Tag names and descriptions are user-authored, so list results apply the same PlainText and Content filters used for release names and bodies.
Copilot started work to fix failing Actions workflows on behalf of
notapopsicle
October 23, 2026 21:05
notapopsicle
added this pull request to stack #3571
October 23, 2026 21:26
notapopsicle
marked this pull request as ready for review
October 23, 2026 23:03
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.


Summary
Add
list_automation_tagsto list caller-visible automation tags through public REST, with pagination, in the opt-incopilot_automationstoolset.Why
Agents need to find a repository's automation tags and their stable IDs. The tool is read-only and isn't enabled by default. Live REST availability and permission behavior still need integration testing.
What changed
MCP impact
list_automation_tags, available in read-only mode.Prompts tested (tool changes only)
No natural-language prompts or live API calls were tested. Automated tests exercise MCP discovery and
CallToolwith mocked REST responses in both supported protocol modes.Security / limits
reposcope filter.Tool renaming
Lint & tests
./script/lint./script/testPassed
env -u UPDATE_TOOLSNAPS go test ./pkg/github -run '^Test_ListAutomationTags$' -count=1 -json(package: 0.932s). The named test ran, including snapshot, discovery, HTTP, pagination, error and exact-dot regression assertions. Full lint and the full suite were left for CI.Docs