From 2fc7526cd7924e99dca3fed8efb5d6fcef8176e7 Mon Sep 17 00:00:00 2001 From: tonytrg Date: Thu, 9 Oct 2025 18:01:36 +0200 Subject: [PATCH 1/2] rename tooling --- README.md | 30 +++++++++---------- .../{write_label.snap => label_write.snap} | 2 +- pkg/github/labels.go | 10 +++---- pkg/github/labels_test.go | 6 ++-- pkg/github/tools.go | 4 +-- 5 files changed, 26 insertions(+), 26 deletions(-) rename pkg/github/__toolsnaps__/{write_label.snap => label_write.snap} (98%) diff --git a/README.md b/README.md index 396fb1661..5246f6d8a 100644 --- a/README.md +++ b/README.md @@ -605,6 +605,15 @@ The following sets of tools are available (all are on by default): - `owner`: Repository owner (username or organization name) (string, required) - `repo`: Repository name (string, required) +- **label_write** - Write operations on repository labels. + - `color`: Label color as 6-character hex code without '#' prefix (e.g., 'f29513'). Required for 'create', optional for 'update'. (string, optional) + - `description`: Label description text. Optional for 'create' and 'update'. (string, optional) + - `method`: Operation to perform: 'create', 'update', or 'delete' (string, required) + - `name`: Label name - required for all operations (string, required) + - `new_name`: New name for the label (used only with 'update' method to rename) (string, optional) + - `owner`: Repository owner (username or organization name) (string, required) + - `repo`: Repository name (string, required) + - **list_issue_types** - List available issue types - `owner`: The organization owner of the repository (string, required) @@ -668,15 +677,6 @@ The following sets of tools are available (all are on by default): - `title`: New title (string, optional) - `type`: New issue type (string, optional) -- **write_label** - Write operations on repository labels. - - `color`: Label color as 6-character hex code without '#' prefix (e.g., 'f29513'). Required for 'create', optional for 'update'. (string, optional) - - `description`: Label description text. Optional for 'create' and 'update'. (string, optional) - - `method`: Operation to perform: 'create', 'update', or 'delete' (string, required) - - `name`: Label name - required for all operations (string, required) - - `new_name`: New name for the label (used only with 'update' method to rename) (string, optional) - - `owner`: Repository owner (username or organization name) (string, required) - - `repo`: Repository name (string, required) -
@@ -688,12 +688,7 @@ The following sets of tools are available (all are on by default): - `owner`: Repository owner (username or organization name) (string, required) - `repo`: Repository name (string, required) -- **list_label** - List labels from a repository or an issue - - `issue_number`: Issue number - if provided, lists labels on the specific issue (number, optional) - - `owner`: Repository owner (username or organization name) - required for all operations (string, required) - - `repo`: Repository name - required for all operations (string, required) - -- **write_label** - Write operations on repository labels. +- **label_write** - Write operations on repository labels. - `color`: Label color as 6-character hex code without '#' prefix (e.g., 'f29513'). Required for 'create', optional for 'update'. (string, optional) - `description`: Label description text. Optional for 'create' and 'update'. (string, optional) - `method`: Operation to perform: 'create', 'update', or 'delete' (string, required) @@ -702,6 +697,11 @@ The following sets of tools are available (all are on by default): - `owner`: Repository owner (username or organization name) (string, required) - `repo`: Repository name (string, required) +- **list_label** - List labels from a repository or an issue + - `issue_number`: Issue number - if provided, lists labels on the specific issue (number, optional) + - `owner`: Repository owner (username or organization name) - required for all operations (string, required) + - `repo`: Repository name - required for all operations (string, required) +
diff --git a/pkg/github/__toolsnaps__/write_label.snap b/pkg/github/__toolsnaps__/label_write.snap similarity index 98% rename from pkg/github/__toolsnaps__/write_label.snap rename to pkg/github/__toolsnaps__/label_write.snap index cb13f8bbb..12d0bd441 100644 --- a/pkg/github/__toolsnaps__/write_label.snap +++ b/pkg/github/__toolsnaps__/label_write.snap @@ -48,5 +48,5 @@ ], "type": "object" }, - "name": "write_label" + "name": "label_write" } \ No newline at end of file diff --git a/pkg/github/labels.go b/pkg/github/labels.go index 91eae4274..f0cc0e630 100644 --- a/pkg/github/labels.go +++ b/pkg/github/labels.go @@ -239,13 +239,13 @@ func ListLabels(getGQLClient GetGQLClientFn, t translations.TranslationHelperFun } } -// WriteLabel handles create, update, and delete operations for GitHub labels -func WriteLabel(getGQLClient GetGQLClientFn, t translations.TranslationHelperFunc) (mcp.Tool, server.ToolHandlerFunc) { +// LabelWrite handles create, update, and delete operations for GitHub labels +func LabelWrite(getGQLClient GetGQLClientFn, t translations.TranslationHelperFunc) (mcp.Tool, server.ToolHandlerFunc) { return mcp.NewTool( - "write_label", - mcp.WithDescription(t("TOOL_WRITE_LABEL_DESCRIPTION", "Perform write operations on repository labels. To set labels on issues, use the 'update_issue' tool.")), + "label_write", + mcp.WithDescription(t("TOOL_LABEL_WRITE_DESCRIPTION", "Perform write operations on repository labels. To set labels on issues, use the 'update_issue' tool.")), mcp.WithToolAnnotation(mcp.ToolAnnotation{ - Title: t("TOOL_WRITE_LABEL_TITLE", "Write operations on repository labels."), + Title: t("TOOL_LABEL_WRITE_TITLE", "Write operations on repository labels."), ReadOnlyHint: ToBoolPtr(false), }), mcp.WithString("method", diff --git a/pkg/github/labels_test.go b/pkg/github/labels_test.go index 8e1d7688e..96b9f7f85 100644 --- a/pkg/github/labels_test.go +++ b/pkg/github/labels_test.go @@ -291,10 +291,10 @@ func TestWriteLabel(t *testing.T) { // Verify tool definition mockClient := githubv4.NewClient(nil) - tool, _ := WriteLabel(stubGetGQLClientFn(mockClient), translations.NullTranslationHelper) + tool, _ := LabelWrite(stubGetGQLClientFn(mockClient), translations.NullTranslationHelper) require.NoError(t, toolsnaps.Test(tool.Name, tool)) - assert.Equal(t, "write_label", tool.Name) + assert.Equal(t, "label_write", tool.Name) assert.NotEmpty(t, tool.Description) assert.Contains(t, tool.InputSchema.Properties, "method") assert.Contains(t, tool.InputSchema.Properties, "owner") @@ -520,7 +520,7 @@ func TestWriteLabel(t *testing.T) { for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { client := githubv4.NewClient(tc.mockedClient) - _, handler := WriteLabel(stubGetGQLClientFn(client), translations.NullTranslationHelper) + _, handler := LabelWrite(stubGetGQLClientFn(client), translations.NullTranslationHelper) request := createMCPRequest(tc.requestArgs) result, err := handler(context.Background(), request) diff --git a/pkg/github/tools.go b/pkg/github/tools.go index 796ebccf2..1ffcf07f6 100644 --- a/pkg/github/tools.go +++ b/pkg/github/tools.go @@ -188,7 +188,7 @@ func DefaultToolsetGroup(readOnly bool, getClient GetClientFn, getGQLClient GetG toolsets.NewServerTool(AddSubIssue(getClient, t)), toolsets.NewServerTool(RemoveSubIssue(getClient, t)), toolsets.NewServerTool(ReprioritizeSubIssue(getClient, t)), - toolsets.NewServerTool(WriteLabel(getGQLClient, t)), + toolsets.NewServerTool(LabelWrite(getGQLClient, t)), ).AddPrompts( toolsets.NewServerPrompt(AssignCodingAgentPrompt(t)), toolsets.NewServerPrompt(IssueToFixWorkflowPrompt(t)), @@ -335,7 +335,7 @@ func DefaultToolsetGroup(readOnly bool, getClient GetClientFn, getGQLClient GetG ). AddWriteTools( // create or update - toolsets.NewServerTool(WriteLabel(getGQLClient, t)), + toolsets.NewServerTool(LabelWrite(getGQLClient, t)), ) // Add toolsets to the group tsg.AddToolset(contextTools) From 928234d7bfdb1631b204ca9c137e0725e16c24c3 Mon Sep 17 00:00:00 2001 From: tonytrg Date: Thu, 9 Oct 2025 18:05:30 +0200 Subject: [PATCH 2/2] fix double tool --- README.md | 9 --------- pkg/github/tools.go | 1 - 2 files changed, 10 deletions(-) diff --git a/README.md b/README.md index 5246f6d8a..13b0586e4 100644 --- a/README.md +++ b/README.md @@ -605,15 +605,6 @@ The following sets of tools are available (all are on by default): - `owner`: Repository owner (username or organization name) (string, required) - `repo`: Repository name (string, required) -- **label_write** - Write operations on repository labels. - - `color`: Label color as 6-character hex code without '#' prefix (e.g., 'f29513'). Required for 'create', optional for 'update'. (string, optional) - - `description`: Label description text. Optional for 'create' and 'update'. (string, optional) - - `method`: Operation to perform: 'create', 'update', or 'delete' (string, required) - - `name`: Label name - required for all operations (string, required) - - `new_name`: New name for the label (used only with 'update' method to rename) (string, optional) - - `owner`: Repository owner (username or organization name) (string, required) - - `repo`: Repository name (string, required) - - **list_issue_types** - List available issue types - `owner`: The organization owner of the repository (string, required) diff --git a/pkg/github/tools.go b/pkg/github/tools.go index 1ffcf07f6..495135ae4 100644 --- a/pkg/github/tools.go +++ b/pkg/github/tools.go @@ -188,7 +188,6 @@ func DefaultToolsetGroup(readOnly bool, getClient GetClientFn, getGQLClient GetG toolsets.NewServerTool(AddSubIssue(getClient, t)), toolsets.NewServerTool(RemoveSubIssue(getClient, t)), toolsets.NewServerTool(ReprioritizeSubIssue(getClient, t)), - toolsets.NewServerTool(LabelWrite(getGQLClient, t)), ).AddPrompts( toolsets.NewServerPrompt(AssignCodingAgentPrompt(t)), toolsets.NewServerPrompt(IssueToFixWorkflowPrompt(t)),