diff --git a/pkg/workflow/data/github_tool_to_toolset.json b/pkg/workflow/data/github_tool_to_toolset.json index 5a71fa89699..07a3cd72f7e 100644 --- a/pkg/workflow/data/github_tool_to_toolset.json +++ b/pkg/workflow/data/github_tool_to_toolset.json @@ -17,6 +17,8 @@ "list_tags": "repos", "list_branches": "repos", + "issue_dependency_read": "issues", + "issue_dependency_write": "issues", "issue_read": "issues", "list_issues": "issues", "create_issue": "issues", diff --git a/pkg/workflow/data/github_toolsets_permissions.json b/pkg/workflow/data/github_toolsets_permissions.json index da415572f9d..87b11ac7e42 100644 --- a/pkg/workflow/data/github_toolsets_permissions.json +++ b/pkg/workflow/data/github_toolsets_permissions.json @@ -78,7 +78,7 @@ "description": "Issue management", "read_permissions": ["issues"], "write_permissions": ["issues"], - "tools": ["add_issue_comment", "issue_read", "issue_write", "list_issue_fields", "list_issue_types", "list_issues", "search_issues", "sub_issue_write"] + "tools": ["add_issue_comment", "issue_dependency_read", "issue_dependency_write", "issue_read", "issue_write", "list_issue_fields", "list_issue_types", "list_issues", "search_issues", "sub_issue_write"] }, "labels": { "description": "Label management", diff --git a/pkg/workflow/github_tool_to_toolset_test.go b/pkg/workflow/github_tool_to_toolset_test.go index 656621abd57..ec969ffac96 100644 --- a/pkg/workflow/github_tool_to_toolset_test.go +++ b/pkg/workflow/github_tool_to_toolset_test.go @@ -120,6 +120,32 @@ func TestValidateGitHubToolsAgainstToolsets(t *testing.T) { enabledToolsets: []string{"discussions", "gists"}, expectError: false, }, + { + name: "issue_dependency_read belongs to issues toolset", + allowedTools: []string{"issue_dependency_read"}, + enabledToolsets: []string{"issues"}, + expectError: false, + }, + { + name: "issue_dependency_write belongs to issues toolset", + allowedTools: []string{"issue_dependency_write"}, + enabledToolsets: []string{"issues"}, + expectError: false, + }, + { + name: "issue_dependency_read fails without issues toolset", + allowedTools: []string{"issue_dependency_read"}, + enabledToolsets: []string{"repos"}, + expectError: true, + errorContains: []string{"issues", "issue_dependency_read"}, + }, + { + name: "issue_dependency_write fails without issues toolset", + allowedTools: []string{"issue_dependency_write"}, + enabledToolsets: []string{"repos"}, + expectError: true, + errorContains: []string{"issues", "issue_dependency_write"}, + }, { name: "Security-related toolsets", allowedTools: []string{"list_code_scanning_alerts", "list_secret_scanning_alerts"}, @@ -298,6 +324,8 @@ func TestGitHubToolToToolsetMap_ConsistencyWithDocumentation(t *testing.T) { "get_file_contents": "repos", "list_issues": "issues", "create_issue": "issues", + "issue_dependency_read": "issues", + "issue_dependency_write": "issues", "pull_request_read": "pull_requests", "search_pull_requests": "pull_requests", "actions_list": "actions",