fix merge conflicts
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Build and Test Go Project / build (macos-latest) (push) Has been cancelled
Build and Test Go Project / build (ubuntu-latest) (push) Has been cancelled
Build and Test Go Project / build (windows-latest) (push) Has been cancelled
License Check / license-check (push) Has been cancelled

This commit is contained in:
tonytrg
2025-10-28 12:53:23 +01:00
61 changed files with 231 additions and 172 deletions
+1 -1
View File
@@ -74,7 +74,7 @@
"type": "string"
},
"type": {
"description": "Type of this issue",
"description": "Type of this issue. Only use if the repository has issue types configured. Use list_issue_types tool to get valid type values for the organization. If the repository doesn't support issue types, omit this parameter.",
"type": "string"
}
},
+1 -1
View File
@@ -12,7 +12,7 @@ import (
buffer "github.com/github/github-mcp-server/pkg/buffer"
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -15,7 +15,7 @@ import (
"github.com/github/github-mcp-server/internal/profiler"
buffer "github.com/github/github-mcp-server/pkg/buffer"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -9,7 +9,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/github/github-mcp-server/internal/githubv4mock"
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/shurcooL/githubv4"
"github.com/stretchr/testify/assert"
+1 -1
View File
@@ -9,7 +9,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"github.com/github/github-mcp-server/pkg/translations"
"github.com/go-viper/mapstructure/v2"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
"github.com/shurcooL/githubv4"
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"github.com/github/github-mcp-server/internal/githubv4mock"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/shurcooL/githubv4"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"net/http"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"time"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+6 -3
View File
@@ -12,7 +12,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/go-viper/mapstructure/v2"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
"github.com/shurcooL/githubv4"
@@ -881,7 +881,7 @@ Options are:
mcp.Description("Milestone number"),
),
mcp.WithString("type",
mcp.Description("Type of this issue"),
mcp.Description("Type of this issue. Only use if the repository has issue types configured. Use list_issue_types tool to get valid type values for the organization. If the repository doesn't support issue types, omit this parameter."),
),
mcp.WithString("state",
mcp.Description("New state"),
@@ -1004,7 +1004,10 @@ func CreateIssue(ctx context.Context, client *github.Client, owner string, repo
Body: github.Ptr(body),
Assignees: &assignees,
Labels: &labels,
Milestone: &milestoneNum,
}
if milestoneNum != 0 {
issueRequest.Milestone = &milestoneNum
}
if issueType != "" {
+1 -1
View File
@@ -12,7 +12,7 @@ import (
"github.com/github/github-mcp-server/internal/githubv4mock"
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/shurcooL/githubv4"
"github.com/stretchr/testify/assert"
+1 -1
View File
@@ -1,6 +1,6 @@
package github
import "github.com/google/go-github/v74/github"
import "github.com/google/go-github/v76/github"
// MinimalUser is the output type for user and organization search results.
type MinimalUser struct {
+1 -1
View File
@@ -11,7 +11,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+17 -39
View File
@@ -12,7 +12,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/google/go-querystring/query"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
@@ -67,31 +67,21 @@ func ListProjects(getClient GetClientFn, t translations.TranslationHelperFunc) (
return mcp.NewToolResultError(err.Error()), nil
}
var url string
if ownerType == "org" {
url = fmt.Sprintf("orgs/%s/projectsV2", owner)
} else {
url = fmt.Sprintf("users/%s/projectsV2", owner)
}
projects := []github.ProjectV2{}
var resp *github.Response
var projects []*github.ProjectV2
minimalProjects := []MinimalProject{}
opts := listProjectsOptions{
paginationOptions: paginationOptions{PerPage: perPage},
filterQueryOptions: filterQueryOptions{Query: queryStr},
opts := &github.ListProjectsOptions{
ListProjectsPaginationOptions: github.ListProjectsPaginationOptions{PerPage: perPage},
Query: queryStr,
}
url, err = addOptions(url, opts)
if err != nil {
return nil, fmt.Errorf("failed to add options to request: %w", err)
if ownerType == "org" {
projects, resp, err = client.Projects.ListProjectsForOrg(ctx, owner, opts)
} else {
projects, resp, err = client.Projects.ListProjectsForUser(ctx, owner, opts)
}
httpRequest, err := client.NewRequest("GET", url, nil)
if err != nil {
return nil, fmt.Errorf("failed to create request: %w", err)
}
resp, err := client.Do(ctx, httpRequest, &projects)
if err != nil {
return ghErrors.NewGitHubAPIErrorResponse(ctx,
"failed to list projects",
@@ -102,7 +92,7 @@ func ListProjects(getClient GetClientFn, t translations.TranslationHelperFunc) (
defer func() { _ = resp.Body.Close() }()
for _, project := range projects {
minimalProjects = append(minimalProjects, *convertToMinimalProject(&project))
minimalProjects = append(minimalProjects, *convertToMinimalProject(project))
}
if resp.StatusCode != http.StatusOK {
@@ -163,21 +153,14 @@ func GetProject(getClient GetClientFn, t translations.TranslationHelperFunc) (to
return mcp.NewToolResultError(err.Error()), nil
}
var url string
var resp *github.Response
var project *github.ProjectV2
if ownerType == "org" {
url = fmt.Sprintf("orgs/%s/projectsV2/%d", owner, projectNumber)
project, resp, err = client.Projects.GetProjectForOrg(ctx, owner, projectNumber)
} else {
url = fmt.Sprintf("users/%s/projectsV2/%d", owner, projectNumber)
project, resp, err = client.Projects.GetProjectForUser(ctx, owner, projectNumber)
}
project := github.ProjectV2{}
httpRequest, err := client.NewRequest("GET", url, nil)
if err != nil {
return nil, fmt.Errorf("failed to create request: %w", err)
}
resp, err := client.Do(ctx, httpRequest, &project)
if err != nil {
return ghErrors.NewGitHubAPIErrorResponse(ctx,
"failed to get project",
@@ -195,7 +178,7 @@ func GetProject(getClient GetClientFn, t translations.TranslationHelperFunc) (to
return mcp.NewToolResultError(fmt.Sprintf("failed to get project: %s", string(body))), nil
}
minimalProject := convertToMinimalProject(&project)
minimalProject := convertToMinimalProject(project)
r, err := json.Marshal(minimalProject)
if err != nil {
return nil, fmt.Errorf("failed to marshal response: %w", err)
@@ -957,11 +940,6 @@ type fieldSelectionOptions struct {
Fields []string `url:"fields,omitempty"`
}
type listProjectsOptions struct {
paginationOptions
filterQueryOptions
}
type listProjectItemsOptions struct {
paginationOptions
filterQueryOptions
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
gh "github.com/google/go-github/v74/github"
gh "github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"net/http"
"github.com/go-viper/mapstructure/v2"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
"github.com/shurcooL/githubv4"
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/github/github-mcp-server/internal/githubv4mock"
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/shurcooL/githubv4"
"github.com/migueleliasweb/go-github-mock/src/mock"
+1 -1
View File
@@ -9,7 +9,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+2 -2
View File
@@ -9,7 +9,7 @@ import (
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
@@ -209,7 +209,7 @@ func Test_ReleaseRead(t *testing.T) {
expectedErrMsg: "failed to get release by tag",
},
{
name: "get release by tag missing tag parameter",
name: "get release by tag missing tag parameter",
mockedClient: mock.NewMockedHTTPClient(),
requestArgs: map[string]interface{}{
"method": "get_by_tag",
+15 -8
View File
@@ -13,7 +13,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/raw"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
@@ -723,9 +723,9 @@ func CreateBranch(getClient GetClientFn, t translations.TranslationHelperFunc) (
defer func() { _ = resp.Body.Close() }()
// Create new branch
newRef := &github.Reference{
Ref: github.Ptr("refs/heads/" + branch),
Object: &github.GitObject{SHA: ref.Object.SHA},
newRef := github.CreateRef{
Ref: "refs/heads/" + branch,
SHA: *ref.Object.SHA,
}
createdRef, resp, err := client.Git.CreateRef(ctx, owner, repo, newRef)
@@ -1304,7 +1304,7 @@ func DeleteFileMethod(ctx context.Context, client *github.Client, owner, repo, b
}
// Create a new commit with the new tree
commit := &github.Commit{
commit := github.Commit{
Message: github.Ptr(message),
Tree: newTree,
Parents: []*github.Commit{{SHA: baseCommit.SHA}},
@@ -1329,7 +1329,10 @@ func DeleteFileMethod(ctx context.Context, client *github.Client, owner, repo, b
// Update the branch reference to point to the new commit
ref.Object.SHA = newCommit.SHA
_, resp, err = client.Git.UpdateRef(ctx, owner, repo, ref, false)
_, resp, err = client.Git.UpdateRef(ctx, owner, repo, *ref.Ref,
github.UpdateRef{
SHA: *newCommit.SHA,
Force: github.Ptr(false)})
if err != nil {
return ghErrors.NewGitHubAPIErrorResponse(ctx,
"failed to update reference",
@@ -1430,7 +1433,7 @@ func PushFilesMethod(ctx context.Context, client *github.Client, owner, repo, br
defer func() { _ = resp.Body.Close() }()
// Create a new commit
commit := &github.Commit{
commit := github.Commit{
Message: github.Ptr(message),
Tree: newTree,
Parents: []*github.Commit{{SHA: baseCommit.SHA}},
@@ -1447,7 +1450,11 @@ func PushFilesMethod(ctx context.Context, client *github.Client, owner, repo, br
// Update the reference to point to the new commit
ref.Object.SHA = newCommit.SHA
updatedRef, resp, err := client.Git.UpdateRef(ctx, owner, repo, ref, false)
updatedRef, resp, err := client.Git.UpdateRef(ctx, owner, repo, *ref.Ref,
github.UpdateRef{
SHA: *newCommit.SHA,
Force: github.Ptr(false),
})
if err != nil {
return ghErrors.NewGitHubAPIErrorResponse(ctx,
"failed to update reference",
+1 -2
View File
@@ -13,7 +13,7 @@ import (
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/raw"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
@@ -1759,7 +1759,6 @@ func Test_TagRead(t *testing.T) {
}
}
func Test_filterPaths(t *testing.T) {
tests := []struct {
name string
+1 -1
View File
@@ -14,7 +14,7 @@ import (
"github.com/github/github-mcp-server/pkg/raw"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"github.com/github/github-mcp-server/pkg/raw"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -8,7 +8,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"net/http"
"regexp"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
)
+1 -1
View File
@@ -9,7 +9,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"testing"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"net/http"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"testing"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"testing"
"github.com/github/github-mcp-server/pkg/raw"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/shurcooL/githubv4"
"github.com/stretchr/testify/assert"
)
+1 -1
View File
@@ -8,7 +8,7 @@ import (
ghErrors "github.com/github/github-mcp-server/pkg/errors"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"github.com/github/github-mcp-server/internal/toolsnaps"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/mcp"
"github.com/migueleliasweb/go-github-mock/src/mock"
"github.com/stretchr/testify/assert"
+2 -2
View File
@@ -8,7 +8,7 @@ import (
"github.com/github/github-mcp-server/pkg/raw"
"github.com/github/github-mcp-server/pkg/toolsets"
"github.com/github/github-mcp-server/pkg/translations"
"github.com/google/go-github/v74/github"
"github.com/google/go-github/v76/github"
"github.com/mark3labs/mcp-go/server"
"github.com/shurcooL/githubv4"
)
@@ -162,7 +162,7 @@ func GetDefaultToolsetIDs() []string {
func DefaultToolsetGroup(readOnly bool, getClient GetClientFn, getGQLClient GetGQLClientFn, getRawClient raw.GetRawClientFn, t translations.TranslationHelperFunc, contentWindowSize int) *toolsets.ToolsetGroup {
tsg := toolsets.NewToolsetGroup(readOnly)
// Define all available features with their default state (disabled)
// Define all available features with their default state (disabled)
// Create toolsets
repos := toolsets.NewToolset(ToolsetMetadataRepos.ID, ToolsetMetadataRepos.Description).
AddReadTools(