MCPcopy Index your code
hub / github.com/github/github-mcp-server / markDiscussionCommentAsAnswer

Function markDiscussionCommentAsAnswer

pkg/github/discussions.go:934–967  ·  view source on GitHub ↗
(ctx context.Context, client *githubv4.Client, args map[string]any)

Source from the content-addressed store, hash-verified

932}
933
934func markDiscussionCommentAsAnswer(ctx context.Context, client *githubv4.Client, args map[string]any) (*mcp.CallToolResult, any, error) {
935 commentNodeID, err := requiredCommentNodeID(args)
936 if err != nil {
937 return utils.NewToolResultError(err.Error()), nil, nil
938 }
939
940 input := githubv4.MarkDiscussionCommentAsAnswerInput{
941 ID: githubv4.ID(commentNodeID),
942 }
943 var mutation struct {
944 MarkDiscussionCommentAsAnswer struct {
945 Discussion struct {
946 ID githubv4.ID
947 URL githubv4.String `graphql:"url"`
948 }
949 } `graphql:"markDiscussionCommentAsAnswer(input: $input)"`
950 }
951 if err := client.Mutate(ctx, &mutation, input, nil); err != nil {
952 return utils.NewToolResultError(err.Error()), nil, nil
953 }
954
955 out, err := json.Marshal(struct {
956 DiscussionID string `json:"discussionID"`
957 DiscussionURL string `json:"discussionURL"`
958 }{
959 DiscussionID: fmt.Sprintf("%v", mutation.MarkDiscussionCommentAsAnswer.Discussion.ID),
960 DiscussionURL: string(mutation.MarkDiscussionCommentAsAnswer.Discussion.URL),
961 })
962 if err != nil {
963 return nil, nil, fmt.Errorf("failed to marshal discussion: %w", err)
964 }
965
966 return utils.NewToolResultText(string(out)), nil, nil
967}
968
969func unmarkDiscussionCommentAsAnswer(ctx context.Context, client *githubv4.Client, args map[string]any) (*mcp.CallToolResult, any, error) {
970 commentNodeID, err := requiredCommentNodeID(args)

Callers 1

DiscussionCommentWriteFunction · 0.85

Calls 4

NewToolResultErrorFunction · 0.92
NewToolResultTextFunction · 0.92
requiredCommentNodeIDFunction · 0.85
ErrorMethod · 0.45

Tested by

no test coverage detected