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

Function updateProjectItem

pkg/github/projects.go:1077–1114  ·  view source on GitHub ↗
(ctx context.Context, client *github.Client, owner, ownerType string, projectNumber int, itemID int64, fieldValue map[string]any)

Source from the content-addressed store, hash-verified

1075}
1076
1077func updateProjectItem(ctx context.Context, client *github.Client, owner, ownerType string, projectNumber int, itemID int64, fieldValue map[string]any) (*mcp.CallToolResult, any, error) {
1078 updatePayload, err := buildUpdateProjectItem(fieldValue)
1079 if err != nil {
1080 return utils.NewToolResultError(err.Error()), nil, nil
1081 }
1082
1083 var resp *github.Response
1084 var updatedItem *github.ProjectV2Item
1085
1086 if ownerType == "org" {
1087 updatedItem, resp, err = client.Projects.UpdateOrganizationProjectItem(ctx, owner, projectNumber, itemID, updatePayload)
1088 } else {
1089 updatedItem, resp, err = client.Projects.UpdateUserProjectItem(ctx, owner, projectNumber, itemID, updatePayload)
1090 }
1091
1092 if err != nil {
1093 return ghErrors.NewGitHubAPIErrorResponse(ctx,
1094 ProjectUpdateFailedError,
1095 resp,
1096 err,
1097 ), nil, nil
1098 }
1099 defer func() { _ = resp.Body.Close() }()
1100
1101 if resp.StatusCode != http.StatusOK {
1102 body, err := io.ReadAll(resp.Body)
1103 if err != nil {
1104 return nil, nil, fmt.Errorf("failed to read response body: %w", err)
1105 }
1106 return ghErrors.NewGitHubAPIStatusErrorResponse(ctx, ProjectUpdateFailedError, resp, body), nil, nil
1107 }
1108 r, err := json.Marshal(convertToMinimalProjectItem(updatedItem))
1109 if err != nil {
1110 return nil, nil, fmt.Errorf("failed to marshal response: %w", err)
1111 }
1112
1113 return utils.NewToolResultText(string(r)), nil, nil
1114}
1115
1116func deleteProjectItem(ctx context.Context, client *github.Client, owner, ownerType string, projectNumber int, itemID int64) (*mcp.CallToolResult, any, error) {
1117 var resp *github.Response

Callers 1

ProjectsWriteFunction · 0.85

Calls 6

NewToolResultErrorFunction · 0.92
NewToolResultTextFunction · 0.92
buildUpdateProjectItemFunction · 0.85
CloseMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected