Content-Length: 8284 | pFad | http://github.com/github/github-mcp-server/pull/648.patch
thub.com
From e15b340bcfd308c9157283288ff817afbe74efd5 Mon Sep 17 00:00:00 2001
From: LuluBeatson
Date: Mon, 7 Jul 2025 13:20:46 +0100
Subject: [PATCH 1/3] rm State which does not exist on type Discussion
---
pkg/github/discussions.go | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/pkg/github/discussions.go b/pkg/github/discussions.go
index a7ec8e20f..07fcc6c81 100644
--- a/pkg/github/discussions.go
+++ b/pkg/github/discussions.go
@@ -195,7 +195,6 @@ func GetDiscussion(getGQLClient GetGQLClientFn, t translations.TranslationHelper
Discussion struct {
Number githubv4.Int
Body githubv4.String
- State githubv4.String
CreatedAt githubv4.DateTime
URL githubv4.String `graphql:"url"`
Category struct {
@@ -213,16 +212,13 @@ func GetDiscussion(getGQLClient GetGQLClientFn, t translations.TranslationHelper
return mcp.NewToolResultError(err.Error()), nil
}
d := q.Repository.Discussion
- discussion := &github.Issue{
+ discussion := &github.Discussion{
Number: github.Ptr(int(d.Number)),
Body: github.Ptr(string(d.Body)),
- State: github.Ptr(string(d.State)),
HTMLURL: github.Ptr(string(d.URL)),
CreatedAt: &github.Timestamp{Time: d.CreatedAt.Time},
- Labels: []*github.Label{
- {
- Name: github.Ptr(fmt.Sprintf("category:%s", string(d.Category.Name))),
- },
+ DiscussionCategory: &github.DiscussionCategory{
+ Name: github.Ptr(string(d.Category.Name)),
},
}
out, err := json.Marshal(discussion)
From 12f1278faf1425d7e462d87282c0ec9b245ba28a Mon Sep 17 00:00:00 2001
From: LuluBeatson
Date: Mon, 7 Jul 2025 13:30:33 +0100
Subject: [PATCH 2/3] update Test_GetDiscussion
---
pkg/github/discussions_test.go | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/pkg/github/discussions_test.go b/pkg/github/discussions_test.go
index 545d604f9..d15d8dbd4 100644
--- a/pkg/github/discussions_test.go
+++ b/pkg/github/discussions_test.go
@@ -200,7 +200,6 @@ func Test_GetDiscussion(t *testing.T) {
Discussion struct {
Number githubv4.Int
Body githubv4.String
- State githubv4.String
CreatedAt githubv4.DateTime
URL githubv4.String `graphql:"url"`
Category struct {
@@ -218,7 +217,7 @@ func Test_GetDiscussion(t *testing.T) {
name string
response githubv4mock.GQLResponse
expectError bool
- expected *github.Issue
+ expected *github.Discussion
errContains string
}{
{
@@ -227,23 +226,19 @@ func Test_GetDiscussion(t *testing.T) {
"repository": map[string]any{"discussion": map[string]any{
"number": 1,
"body": "This is a test discussion",
- "state": "open",
"url": "https://github.com/owner/repo/discussions/1",
"createdAt": "2025-04-25T12:00:00Z",
"category": map[string]any{"name": "General"},
}},
}),
expectError: false,
- expected: &github.Issue{
+ expected: &github.Discussion{
HTMLURL: github.Ptr("https://github.com/owner/repo/discussions/1"),
Number: github.Ptr(1),
Body: github.Ptr("This is a test discussion"),
- State: github.Ptr("open"),
CreatedAt: &github.Timestamp{Time: time.Date(2025, 4, 25, 12, 0, 0, 0, time.UTC)},
- Labels: []*github.Label{
- {
- Name: github.Ptr("category:General"),
- },
+ DiscussionCategory: &github.DiscussionCategory{
+ Name: github.Ptr("General"),
},
},
},
@@ -272,15 +267,13 @@ func Test_GetDiscussion(t *testing.T) {
}
require.NoError(t, err)
- var out github.Issue
+ var out github.Discussion
require.NoError(t, json.Unmarshal([]byte(text), &out))
assert.Equal(t, *tc.expected.HTMLURL, *out.HTMLURL)
assert.Equal(t, *tc.expected.Number, *out.Number)
assert.Equal(t, *tc.expected.Body, *out.Body)
- assert.Equal(t, *tc.expected.State, *out.State)
// Check category label
- require.Len(t, out.Labels, 1)
- assert.Equal(t, *tc.expected.Labels[0].Name, *out.Labels[0].Name)
+ assert.Equal(t, *tc.expected.DiscussionCategory.Name, *out.DiscussionCategory.Name)
})
}
}
From 9bb9ca669b781c23380a18e2aea4a43ebef39dc0 Mon Sep 17 00:00:00 2001
From: LuluBeatson
Date: Mon, 7 Jul 2025 13:58:10 +0100
Subject: [PATCH 3/3] use Discussion object instead of Issue
---
pkg/github/discussions.go | 22 +++++++++-------------
pkg/github/discussions_test.go | 9 ++++-----
2 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/pkg/github/discussions.go b/pkg/github/discussions.go
index 07fcc6c81..3e53a633b 100644
--- a/pkg/github/discussions.go
+++ b/pkg/github/discussions.go
@@ -62,7 +62,7 @@ func ListDiscussions(getGQLClient GetGQLClientFn, t translations.TranslationHelp
}
// Now execute the discussions query
- var discussions []*github.Issue
+ var discussions []*github.Discussion
if categoryID != nil {
// Query with category filter (server-side filtering)
var query struct {
@@ -89,17 +89,15 @@ func ListDiscussions(getGQLClient GetGQLClientFn, t translations.TranslationHelp
return mcp.NewToolResultError(err.Error()), nil
}
- // Map nodes to GitHub Issue objects
+ // Map nodes to GitHub Discussion objects
for _, n := range query.Repository.Discussions.Nodes {
- di := &github.Issue{
+ di := &github.Discussion{
Number: github.Ptr(int(n.Number)),
Title: github.Ptr(string(n.Title)),
HTMLURL: github.Ptr(string(n.URL)),
CreatedAt: &github.Timestamp{Time: n.CreatedAt.Time},
- Labels: []*github.Label{
- {
- Name: github.Ptr(fmt.Sprintf("category:%s", string(n.Category.Name))),
- },
+ DiscussionCategory: &github.DiscussionCategory{
+ Name: github.Ptr(string(n.Category.Name)),
},
}
discussions = append(discussions, di)
@@ -129,17 +127,15 @@ func ListDiscussions(getGQLClient GetGQLClientFn, t translations.TranslationHelp
return mcp.NewToolResultError(err.Error()), nil
}
- // Map nodes to GitHub Issue objects
+ // Map nodes to GitHub Discussion objects
for _, n := range query.Repository.Discussions.Nodes {
- di := &github.Issue{
+ di := &github.Discussion{
Number: github.Ptr(int(n.Number)),
Title: github.Ptr(string(n.Title)),
HTMLURL: github.Ptr(string(n.URL)),
CreatedAt: &github.Timestamp{Time: n.CreatedAt.Time},
- Labels: []*github.Label{
- {
- Name: github.Ptr(fmt.Sprintf("category:%s", string(n.Category.Name))),
- },
+ DiscussionCategory: &github.DiscussionCategory{
+ Name: github.Ptr(string(n.Category.Name)),
},
}
discussions = append(discussions, di)
diff --git a/pkg/github/discussions_test.go b/pkg/github/discussions_test.go
index d15d8dbd4..5132c6ce0 100644
--- a/pkg/github/discussions_test.go
+++ b/pkg/github/discussions_test.go
@@ -4,7 +4,6 @@ import (
"context"
"encoding/json"
"net/http"
- "strings"
"testing"
"time"
@@ -168,17 +167,17 @@ func Test_ListDiscussions(t *testing.T) {
}
require.NoError(t, err)
- var returnedDiscussions []*github.Issue
+ var returnedDiscussions []*github.Discussion
err = json.Unmarshal([]byte(text), &returnedDiscussions)
require.NoError(t, err)
assert.Len(t, returnedDiscussions, tc.expectedCount, "Expected %d discussions, got %d", tc.expectedCount, len(returnedDiscussions))
- // Verify that all returned discussions have a category label if filtered
+ // Verify that all returned discussions have a category if filtered
if _, hasCategory := tc.reqParams["category"]; hasCategory {
for _, discussion := range returnedDiscussions {
- require.NotEmpty(t, discussion.Labels, "Discussion should have category label")
- assert.True(t, strings.HasPrefix(*discussion.Labels[0].Name, "category:"), "Discussion should have category label prefix")
+ require.NotNil(t, discussion.DiscussionCategory, "Discussion should have category")
+ assert.NotEmpty(t, *discussion.DiscussionCategory.Name, "Discussion should have category name")
}
}
})
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/github/github-mcp-server/pull/648.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy