(ctx context.Context, client *githubv4.Client, args map[string]any)
| 967 | } |
| 968 | |
| 969 | func unmarkDiscussionCommentAsAnswer(ctx context.Context, client *githubv4.Client, args map[string]any) (*mcp.CallToolResult, any, error) { |
| 970 | commentNodeID, err := requiredCommentNodeID(args) |
| 971 | if err != nil { |
| 972 | return utils.NewToolResultError(err.Error()), nil, nil |
| 973 | } |
| 974 | |
| 975 | input := githubv4.UnmarkDiscussionCommentAsAnswerInput{ |
| 976 | ID: githubv4.ID(commentNodeID), |
| 977 | } |
| 978 | var mutation struct { |
| 979 | UnmarkDiscussionCommentAsAnswer struct { |
| 980 | Discussion struct { |
| 981 | ID githubv4.ID |
| 982 | URL githubv4.String `graphql:"url"` |
| 983 | } |
| 984 | } `graphql:"unmarkDiscussionCommentAsAnswer(input: $input)"` |
| 985 | } |
| 986 | if err := client.Mutate(ctx, &mutation, input, nil); err != nil { |
| 987 | return utils.NewToolResultError(err.Error()), nil, nil |
| 988 | } |
| 989 | |
| 990 | out, err := json.Marshal(struct { |
| 991 | DiscussionID string `json:"discussionID"` |
| 992 | DiscussionURL string `json:"discussionURL"` |
| 993 | }{ |
| 994 | DiscussionID: fmt.Sprintf("%v", mutation.UnmarkDiscussionCommentAsAnswer.Discussion.ID), |
| 995 | DiscussionURL: string(mutation.UnmarkDiscussionCommentAsAnswer.Discussion.URL), |
| 996 | }) |
| 997 | if err != nil { |
| 998 | return nil, nil, fmt.Errorf("failed to marshal discussion: %w", err) |
| 999 | } |
| 1000 | |
| 1001 | return utils.NewToolResultText(string(out)), nil, nil |
| 1002 | } |
| 1003 | |
| 1004 | func ListDiscussionCategories(t translations.TranslationHelperFunc) inventory.ServerTool { |
| 1005 | return NewTool( |
no test coverage detected