diff --git a/README.md b/README.md index 6bfc6ab58..288d7548b 100644 --- a/README.md +++ b/README.md @@ -436,6 +436,7 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description - `ref`: Git reference (string, optional) - `state`: Alert state (string, optional) - `severity`: Alert severity (string, optional) + - `tool_name`: The name of the tool used for code scanning (string, optional) ## Resources diff --git a/pkg/github/code_scanning.go b/pkg/github/code_scanning.go index 5dbac0d55..b33f32c12 100644 --- a/pkg/github/code_scanning.go +++ b/pkg/github/code_scanning.go @@ -94,6 +94,9 @@ func ListCodeScanningAlerts(getClient GetClientFn, t translations.TranslationHel mcp.Description("Filter code scanning alerts by severity"), mcp.Enum("critical", "high", "medium", "low", "warning", "note", "error"), ), + mcp.WithString("tool_name", + mcp.Description("The name of the tool used for code scanning."), + ), ), func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { owner, err := requiredParam[string](request, "owner") @@ -116,12 +119,16 @@ func ListCodeScanningAlerts(getClient GetClientFn, t translations.TranslationHel if err != nil { return mcp.NewToolResultError(err.Error()), nil } + toolName, err := OptionalParam[string](request, "tool_name") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil + } client, err := getClient(ctx) if err != nil { return nil, fmt.Errorf("failed to get GitHub client: %w", err) } - alerts, resp, err := client.CodeScanning.ListAlertsForRepo(ctx, owner, repo, &github.AlertListOptions{Ref: ref, State: state, Severity: severity}) + alerts, resp, err := client.CodeScanning.ListAlertsForRepo(ctx, owner, repo, &github.AlertListOptions{Ref: ref, State: state, Severity: severity, ToolName: toolName}) if err != nil { return nil, fmt.Errorf("failed to list alerts: %w", err) } diff --git a/pkg/github/code_scanning_test.go b/pkg/github/code_scanning_test.go index c9895e269..40dabebdf 100644 --- a/pkg/github/code_scanning_test.go +++ b/pkg/github/code_scanning_test.go @@ -127,6 +127,7 @@ func Test_ListCodeScanningAlerts(t *testing.T) { assert.Contains(t, tool.InputSchema.Properties, "ref") assert.Contains(t, tool.InputSchema.Properties, "state") assert.Contains(t, tool.InputSchema.Properties, "severity") + assert.Contains(t, tool.InputSchema.Properties, "tool_name") assert.ElementsMatch(t, tool.InputSchema.Required, []string{"owner", "repo"}) // Setup mock alerts for success case @@ -159,20 +160,22 @@ func Test_ListCodeScanningAlerts(t *testing.T) { mock.WithRequestMatchHandler( mock.GetReposCodeScanningAlertsByOwnerByRepo, expectQueryParams(t, map[string]string{ - "ref": "main", - "state": "open", - "severity": "high", + "ref": "main", + "state": "open", + "severity": "high", + "tool_name": "codeql", }).andThen( mockResponse(t, http.StatusOK, mockAlerts), ), ), ), requestArgs: map[string]interface{}{ - "owner": "owner", - "repo": "repo", - "ref": "main", - "state": "open", - "severity": "high", + "owner": "owner", + "repo": "repo", + "ref": "main", + "state": "open", + "severity": "high", + "tool_name": "codeql", }, expectError: false, expectedAlerts: mockAlerts, pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy