diff --git a/.github/instructions/dictation.instructions.md b/.github/instructions/dictation.instructions.md index 63817305149..2f2a22fb73a 100644 --- a/.github/instructions/dictation.instructions.md +++ b/.github/instructions/dictation.instructions.md @@ -106,7 +106,7 @@ test-unit timeout timeout-minutes title-prefix -toolset +toolsets tools triggers update-issue diff --git a/.github/instructions/github-mcp-server.instructions.md b/.github/instructions/github-mcp-server.instructions.md index cf6271ccd41..dec9b47d9f4 100644 --- a/.github/instructions/github-mcp-server.instructions.md +++ b/.github/instructions/github-mcp-server.instructions.md @@ -31,7 +31,7 @@ The GitHub MCP server provides AI agents with programmatic access to GitHub's AP tools: github: mode: "local" - toolset: [default] # or [repos, issues, pull_requests] + toolsets: [default] # or [repos, issues, pull_requests] ``` **Remote Mode (Hosted)**: @@ -39,7 +39,7 @@ tools: tools: github: mode: "remote" - toolset: [default] # or [repos, issues, pull_requests] + toolsets: [default] # or [repos, issues, pull_requests] ``` ### Read-Only Mode @@ -51,7 +51,7 @@ tools: github: mode: "remote" read-only: true - toolset: [repos, issues] + toolsets: [repos, issues] ``` ### Custom Authentication @@ -63,7 +63,7 @@ tools: github: mode: "remote" github-token: "${{ secrets.CUSTOM_GITHUB_PAT }}" - toolset: [repos, issues] + toolsets: [repos, issues] ``` ## Available Toolsets @@ -118,11 +118,11 @@ The local mode uses environment variables: Ensure your GitHub token has appropriate permissions for the toolsets you're enabling: -- `repos` toolset: Requires repository read/write permissions -- `issues` toolset: Requires issues read/write permissions -- `pull_requests` toolset: Requires pull requests read/write permissions -- `actions` toolset: Requires actions read/write permissions -- `discussions` toolset: Requires discussions read/write permissions +- `repos` toolsets: Requires repository read/write permissions +- `issues` toolsets: Requires issues read/write permissions +- `pull_requests` toolsets: Requires pull requests read/write permissions +- `actions` toolsets: Requires actions read/write permissions +- `discussions` toolsets: Requires discussions read/write permissions ### Remote vs Local Mode diff --git a/.github/workflows/artifacts-summary.md b/.github/workflows/artifacts-summary.md index 97ba31dd601..7ea9bd34eef 100644 --- a/.github/workflows/artifacts-summary.md +++ b/.github/workflows/artifacts-summary.md @@ -13,7 +13,7 @@ tools: edit: bash: github: - toolset: [actions, repos] + toolsets: [actions, repos] safe-outputs: create-discussion: category: "artifacts" diff --git a/.github/workflows/commit-changes-analyzer.md b/.github/workflows/commit-changes-analyzer.md index 322fbc023b0..00238134aac 100644 --- a/.github/workflows/commit-changes-analyzer.md +++ b/.github/workflows/commit-changes-analyzer.md @@ -15,7 +15,7 @@ engine: max-turns: 100 tools: github: - toolset: [default] + toolsets: [default] bash: - "*" edit: diff --git a/.github/workflows/daily-firewall-report.md b/.github/workflows/daily-firewall-report.md index dfe1c0eaf65..61753ed26f7 100644 --- a/.github/workflows/daily-firewall-report.md +++ b/.github/workflows/daily-firewall-report.md @@ -16,7 +16,7 @@ safe-outputs: tools: github: - toolset: + toolsets: - default - actions allowed: diff --git a/.github/workflows/daily-perf-improver.md b/.github/workflows/daily-perf-improver.md index 74188404032..f6b01deae76 100644 --- a/.github/workflows/daily-perf-improver.md +++ b/.github/workflows/daily-perf-improver.md @@ -28,7 +28,7 @@ tools: web-fetch: web-search: github: - toolset: [all] + toolsets: [all] # Configure bash build commands here, or in .github/workflows/agentics/daily-dependency-updates.config.md # # By default this workflow allows all bash commands within the confine of Github Actions VM diff --git a/.github/workflows/daily-test-improver.md b/.github/workflows/daily-test-improver.md index 40cd69c8f77..a5e00e57d8a 100644 --- a/.github/workflows/daily-test-improver.md +++ b/.github/workflows/daily-test-improver.md @@ -29,7 +29,7 @@ tools: # By default this workflow allows all bash commands within the confine of Github Actions VM bash: [ ":*" ] github: - toolset: [all] + toolsets: [all] steps: - name: Checkout repository diff --git a/.github/workflows/dev-hawk.md b/.github/workflows/dev-hawk.md index 9252997b93e..ac932e3f4d5 100644 --- a/.github/workflows/dev-hawk.md +++ b/.github/workflows/dev-hawk.md @@ -17,7 +17,7 @@ engine: copilot tools: agentic-workflows: github: - toolset: [pull_requests, actions, repos] + toolsets: [pull_requests, actions, repos] safe-outputs: add-comment: max: 1 diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index 2db9e382585..b8585284f9c 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -1178,7 +1178,7 @@ jobs: - **Repository**: ${{ github.repository }} - **Report Date**: Today's date - - **MCP Server**: GitHub MCP Remote (mode: remote, toolset: all) + - **MCP Server**: GitHub MCP Remote (mode: remote, toolsets: all) ## Report Generation Process @@ -1280,7 +1280,7 @@ jobs: ### New Tools Added ✨ - List any tools that were added since the last report, organized by toolset: + List any tools that were added since the last report, organized by toolsets: | Toolset | Tool Name | Purpose | |---------|-----------|---------| @@ -1308,7 +1308,7 @@ jobs: Organize tools into their respective toolset categories. For each toolset that has tools, create a section with a table listing all tools. - **Example format for each toolset:** + **Example format for each toolsets:** ### [Toolset Name] Toolset Brief description of the toolset. @@ -1341,7 +1341,7 @@ jobs: tools: github: mode: "remote" # or "local" - toolset: [all] # or specific toolsets like [repos, issues, pull_requests] + toolsets: [all] # or specific toolsets like [repos, issues, pull_requests] ``` **Available toolset options**: diff --git a/.github/workflows/github-mcp-tools-report.md b/.github/workflows/github-mcp-tools-report.md index a5131b3dc74..0109ad492ca 100644 --- a/.github/workflows/github-mcp-tools-report.md +++ b/.github/workflows/github-mcp-tools-report.md @@ -10,7 +10,7 @@ engine: claude tools: github: mode: "remote" - toolset: [all] + toolsets: [all] cache-memory: true edit: safe-outputs: @@ -39,7 +39,7 @@ Generate a comprehensive report of all tools/functions available in the GitHub M - **Repository**: ${{ github.repository }} - **Report Date**: Today's date -- **MCP Server**: GitHub MCP Remote (mode: remote, toolset: all) +- **MCP Server**: GitHub MCP Remote (mode: remote, toolsets: all) ## Report Generation Process @@ -141,7 +141,7 @@ Report any inconsistencies discovered during the systematic exploration: ### New Tools Added ✨ -List any tools that were added since the last report, organized by toolset: +List any tools that were added since the last report, organized by toolsets: | Toolset | Tool Name | Purpose | |---------|-----------|---------| @@ -169,7 +169,7 @@ List any tools that changed their toolset categorization: Organize tools into their respective toolset categories. For each toolset that has tools, create a section with a table listing all tools. -**Example format for each toolset:** +**Example format for each toolsets:** ### [Toolset Name] Toolset Brief description of the toolset. @@ -202,7 +202,7 @@ When configuring the GitHub MCP server in agentic workflows, you can enable spec tools: github: mode: "remote" # or "local" - toolset: [all] # or specific toolsets like [repos, issues, pull_requests] + toolsets: [all] # or specific toolsets like [repos, issues, pull_requests] ``` **Available toolset options**: diff --git a/.github/workflows/mergefest.md b/.github/workflows/mergefest.md index 5fb3a40e813..2c6d840e6d6 100644 --- a/.github/workflows/mergefest.md +++ b/.github/workflows/mergefest.md @@ -34,7 +34,7 @@ tools: - "grep" edit: github: - toolset: [pull_requests, repos] + toolsets: [pull_requests, repos] safe-outputs: push-to-pull-request-branch: timeout_minutes: 10 diff --git a/.github/workflows/plan.md b/.github/workflows/plan.md index 18daf958b3b..53c946e2830 100644 --- a/.github/workflows/plan.md +++ b/.github/workflows/plan.md @@ -10,7 +10,7 @@ permissions: engine: copilot tools: github: - toolset: [default, discussions] + toolsets: [default, discussions] safe-outputs: create-issue: title-prefix: "[task] " diff --git a/.github/workflows/schema-consistency-checker.md b/.github/workflows/schema-consistency-checker.md index a8bed8e7fa4..b9cbb0aa300 100644 --- a/.github/workflows/schema-consistency-checker.md +++ b/.github/workflows/schema-consistency-checker.md @@ -14,7 +14,7 @@ tools: github: mode: remote read-only: false - toolset: [default, discussions] + toolsets: [default, discussions] cache-memory: key: schema-consistency-cache-${{ github.workflow }} safe-outputs: diff --git a/.github/workflows/security-fix-pr.md b/.github/workflows/security-fix-pr.md index ffed14ab4ab..a2b97e73853 100644 --- a/.github/workflows/security-fix-pr.md +++ b/.github/workflows/security-fix-pr.md @@ -9,7 +9,7 @@ permissions: engine: claude tools: github: - toolset: [context, repos, code_security, pull_requests] + toolsets: [context, repos, code_security, pull_requests] allowed: - list_code_scanning_alerts - get_code_scanning_alert diff --git a/.github/workflows/smoke-detector.md b/.github/workflows/smoke-detector.md index 1aebe15af84..eea7bff1718 100644 --- a/.github/workflows/smoke-detector.md +++ b/.github/workflows/smoke-detector.md @@ -26,7 +26,7 @@ imports: tools: cache-memory: true github: - toolset: [default, actions] + toolsets: [default, actions] strict: false --- # Smoke Detector - Smoke Test Failure Investigator diff --git a/.github/workflows/smoke-opencode.md b/.github/workflows/smoke-opencode.md index 334c36e930a..b2615a14668 100644 --- a/.github/workflows/smoke-opencode.md +++ b/.github/workflows/smoke-opencode.md @@ -12,7 +12,7 @@ imports: - shared/opencode.md tools: github: - toolset: [pull_requests] + toolsets: [pull_requests] allowed: - list_pull_requests - get_pull_request diff --git a/docs/src/content/docs/reference/frontmatter-full.md b/docs/src/content/docs/reference/frontmatter-full.md index e139e5f49c1..624fe141703 100644 --- a/docs/src/content/docs/reference/frontmatter-full.md +++ b/docs/src/content/docs/reference/frontmatter-full.md @@ -987,7 +987,7 @@ tools: # Array of GitHub MCP server toolset names to enable specific groups of GitHub API # functionalities # (optional) - toolset: [] + toolsets: [] # Array of Toolset name # Bash shell command execution tool for running command-line programs and scripts diff --git a/pkg/parser/schemas/main_workflow_schema.json b/pkg/parser/schemas/main_workflow_schema.json index ba690224694..3d7263f033a 100644 --- a/pkg/parser/schemas/main_workflow_schema.json +++ b/pkg/parser/schemas/main_workflow_schema.json @@ -1813,7 +1813,7 @@ "$ref": "#/$defs/github_token", "description": "Optional custom GitHub token (e.g., '${{ secrets.CUSTOM_PAT }}'). For 'remote' type, defaults to GH_AW_GITHUB_TOKEN if not specified." }, - "toolset": { + "toolsets": { "type": "array", "description": "Array of GitHub MCP server toolset names to enable specific groups of GitHub API functionalities", "items": { @@ -1847,7 +1847,7 @@ "additionalProperties": false, "examples": [ { - "toolset": ["pull_requests", "actions", "repos"] + "toolsets": ["pull_requests", "actions", "repos"] }, { "allowed": [ @@ -1863,7 +1863,7 @@ "read-only": true }, { - "toolset": ["pull_requests", "repos"] + "toolsets": ["pull_requests", "repos"] } ] } @@ -1871,7 +1871,7 @@ "examples": [ null, { - "toolset": ["pull_requests", "actions", "repos"] + "toolsets": ["pull_requests", "actions", "repos"] }, { "allowed": [ @@ -1882,7 +1882,7 @@ }, { "read-only": true, - "toolset": ["repos", "issues"] + "toolsets": ["repos", "issues"] } ] }, diff --git a/pkg/workflow/github_toolset_integration_test.go b/pkg/workflow/github_toolset_integration_test.go index 3df2f4b0014..26e98d853e8 100644 --- a/pkg/workflow/github_toolset_integration_test.go +++ b/pkg/workflow/github_toolset_integration_test.go @@ -21,7 +21,7 @@ on: push engine: claude tools: github: - toolset: [repos, issues, pull_requests] + toolsets: [repos, issues, pull_requests] --- # Test Workflow @@ -41,7 +41,7 @@ on: push engine: copilot tools: github: - toolset: [repos, issues, actions] + toolsets: [repos, issues, actions] --- # Test Workflow @@ -61,7 +61,7 @@ on: push engine: codex tools: github: - toolset: [all] + toolsets: [all] --- # Test Workflow @@ -99,7 +99,7 @@ on: push engine: claude tools: github: - toolset: [repos, issues] + toolsets: [repos, issues] read-only: true --- @@ -168,7 +168,7 @@ engine: claude tools: github: mode: remote - toolset: [repos, issues] + toolsets: [repos, issues] --- # Test Workflow @@ -228,7 +228,7 @@ engine: claude tools: github: mode: remote - toolset: [repos, issues, pull_requests] + toolsets: [repos, issues, pull_requests] --- # Test Workflow @@ -246,7 +246,7 @@ engine: copilot tools: github: mode: remote - toolset: [actions, discussions] + toolsets: [actions, discussions] --- # Test Workflow @@ -264,7 +264,7 @@ engine: claude tools: github: mode: remote - toolset: [all] + toolsets: [all] --- # Test Workflow @@ -299,7 +299,7 @@ engine: copilot tools: github: mode: remote - toolset: [repos, issues] + toolsets: [repos, issues] read-only: true --- diff --git a/pkg/workflow/github_toolset_test.go b/pkg/workflow/github_toolset_test.go index dbe40dd7c03..f99e68e1822 100644 --- a/pkg/workflow/github_toolset_test.go +++ b/pkg/workflow/github_toolset_test.go @@ -19,35 +19,35 @@ func TestGetGitHubToolsets(t *testing.T) { { name: "Toolsets as array of strings", input: map[string]any{ - "toolset": []string{"repos", "issues", "pull_requests"}, + "toolsets": []string{"repos", "issues", "pull_requests"}, }, expected: "repos,issues,pull_requests", }, { name: "Toolsets as array of any", input: map[string]any{ - "toolset": []any{"repos", "issues", "actions"}, + "toolsets": []any{"repos", "issues", "actions"}, }, expected: "repos,issues,actions", }, { name: "Special 'all' toolset as array", input: map[string]any{ - "toolset": []string{"all"}, + "toolsets": []string{"all"}, }, expected: "all", }, { name: "Special 'default' toolset as array", input: map[string]any{ - "toolset": []string{"default"}, + "toolsets": []string{"default"}, }, expected: "default", }, { name: "Default with additional toolsets", input: map[string]any{ - "toolset": []string{"default", "discussions"}, + "toolsets": []string{"default", "discussions"}, }, expected: "default,discussions", }, @@ -78,7 +78,7 @@ func TestClaudeEngineGitHubToolsetsRendering(t *testing.T) { { name: "Toolsets configured with array", githubTool: map[string]any{ - "toolset": []string{"repos", "issues", "pull_requests"}, + "toolsets": []string{"repos", "issues", "pull_requests"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=repos,issues,pull_requests"`, @@ -98,7 +98,7 @@ func TestClaudeEngineGitHubToolsetsRendering(t *testing.T) { { name: "All toolset as array", githubTool: map[string]any{ - "toolset": []string{"all"}, + "toolsets": []string{"all"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=all"`, @@ -108,7 +108,7 @@ func TestClaudeEngineGitHubToolsetsRendering(t *testing.T) { { name: "Default toolset as array", githubTool: map[string]any{ - "toolset": []string{"default"}, + "toolsets": []string{"default"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=default"`, @@ -118,7 +118,7 @@ func TestClaudeEngineGitHubToolsetsRendering(t *testing.T) { { name: "Default with additional toolsets", githubTool: map[string]any{ - "toolset": []string{"default", "discussions"}, + "toolsets": []string{"default", "discussions"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=default,discussions"`, @@ -161,7 +161,7 @@ func TestCopilotEngineGitHubToolsetsRendering(t *testing.T) { { name: "Toolsets configured with array", githubTool: map[string]any{ - "toolset": []string{"repos", "issues", "pull_requests"}, + "toolsets": []string{"repos", "issues", "pull_requests"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=repos,issues,pull_requests"`, @@ -181,7 +181,7 @@ func TestCopilotEngineGitHubToolsetsRendering(t *testing.T) { { name: "Default toolset as array", githubTool: map[string]any{ - "toolset": []string{"default"}, + "toolsets": []string{"default"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=default"`, @@ -191,7 +191,7 @@ func TestCopilotEngineGitHubToolsetsRendering(t *testing.T) { { name: "Default with additional toolsets", githubTool: map[string]any{ - "toolset": []string{"default", "actions"}, + "toolsets": []string{"default", "actions"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=default,actions"`, @@ -233,7 +233,7 @@ func TestCodexEngineGitHubToolsetsRendering(t *testing.T) { { name: "Toolsets configured with array", githubTool: map[string]any{ - "toolset": []string{"repos", "issues"}, + "toolsets": []string{"repos", "issues"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=repos,issues"`, @@ -253,7 +253,7 @@ func TestCodexEngineGitHubToolsetsRendering(t *testing.T) { { name: "Default toolset as array", githubTool: map[string]any{ - "toolset": []string{"default"}, + "toolsets": []string{"default"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=default"`, @@ -263,7 +263,7 @@ func TestCodexEngineGitHubToolsetsRendering(t *testing.T) { { name: "Default with additional toolsets", githubTool: map[string]any{ - "toolset": []string{"default", "discussions"}, + "toolsets": []string{"default", "discussions"}, }, expectedInYAML: []string{ `"GITHUB_TOOLSETS=default,discussions"`, @@ -305,7 +305,7 @@ func TestGitHubToolsetsWithOtherConfiguration(t *testing.T) { { name: "Toolsets with read-only mode", githubTool: map[string]any{ - "toolset": []string{"repos", "issues"}, + "toolsets": []string{"repos", "issues"}, "read-only": true, }, expectedInYAML: []string{ @@ -317,7 +317,7 @@ func TestGitHubToolsetsWithOtherConfiguration(t *testing.T) { { name: "Toolsets with custom token", githubTool: map[string]any{ - "toolset": []string{"all"}, + "toolsets": []string{"all"}, "github-token": "${{ secrets.CUSTOM_PAT }}", }, expectedInYAML: []string{ @@ -329,8 +329,8 @@ func TestGitHubToolsetsWithOtherConfiguration(t *testing.T) { { name: "Toolsets with custom Docker version", githubTool: map[string]any{ - "toolset": []string{"repos", "issues", "pull_requests"}, - "version": "latest", + "toolsets": []string{"repos", "issues", "pull_requests"}, + "version": "latest", }, expectedInYAML: []string{ `GITHUB_TOOLSETS`, diff --git a/pkg/workflow/mcp-config.go b/pkg/workflow/mcp-config.go index 4a9f63b3286..483c84b789b 100644 --- a/pkg/workflow/mcp-config.go +++ b/pkg/workflow/mcp-config.go @@ -961,7 +961,7 @@ func getRawMCPConfig(toolConfig map[string]any) (map[string]any, error) { "mode": true, // for github tool "github-token": true, // for github tool "read-only": true, // for github tool - "toolset": true, // for github tool + "toolsets": true, // for github tool "id": true, // for cache-memory (array notation) "key": true, // for cache-memory "description": true, // for cache-memory diff --git a/pkg/workflow/mcp_servers.go b/pkg/workflow/mcp_servers.go index 1fb8e38d9fe..f41daac966f 100644 --- a/pkg/workflow/mcp_servers.go +++ b/pkg/workflow/mcp_servers.go @@ -197,7 +197,7 @@ func getGitHubReadOnly(githubTool any) bool { // Defaults to "default" for recommended toolset func getGitHubToolsets(githubTool any) string { if toolConfig, ok := githubTool.(map[string]any); ok { - if toolsetsSetting, exists := toolConfig["toolset"]; exists { + if toolsetsSetting, exists := toolConfig["toolsets"]; exists { // Handle array format only switch v := toolsetsSetting.(type) { case []any: