Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbd7ca66

Browse files
stephenotaloraSamMorrowDrums
authored andcommitted
updates mcp-server with latest google-go-github APIs
1 parentdf347e3 commitbd7ca66

File tree

1 file changed

+31
-75
lines changed

1 file changed

+31
-75
lines changed

‎pkg/github/projects.go‎

Lines changed: 31 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -256,30 +256,19 @@ func ListProjectFields(getClient GetClientFn, t translations.TranslationHelperFu
256256
returnmcp.NewToolResultError(err.Error()),nil
257257
}
258258

259+
varresp*github.Response
260+
varprojectFields []*github.ProjectV2Field
261+
259262
opts:=&github.ListProjectsOptions{
260263
ListProjectsPaginationOptions:pagination,
261264
}
262265

263-
varurlstring
264266
ifownerType=="org" {
265-
url=fmt.Sprintf("orgs/%s/projectsV2/%d/fields",owner,projectNumber)
267+
projectFields,resp,err=client.Projects.ListOrganizationProjectFields(ctx,owner,projectNumber,opts)
266268
}else {
267-
url=fmt.Sprintf("users/%s/projectsV2/%d/fields",owner,projectNumber)
268-
}
269-
270-
url,err=addOptions(url,opts)
271-
iferr!=nil {
272-
returnmcp.NewToolResultError(err.Error()),nil
269+
projectFields,resp,err=client.Projects.ListUserProjectFields(ctx,owner,projectNumber,opts)
273270
}
274271

275-
httpRequest,err:=client.NewRequest("GET",url,nil)
276-
iferr!=nil {
277-
returnnil,fmt.Errorf("failed to create request: %w",err)
278-
}
279-
280-
varprojectFields []projectV2Field
281-
resp,err:=client.Do(ctx,httpRequest,&projectFields)
282-
283272
iferr!=nil {
284273
returnghErrors.NewGitHubAPIErrorResponse(ctx,
285274
"failed to list project fields",
@@ -452,7 +441,7 @@ func ListProjectItems(getClient GetClientFn, t translations.TranslationHelperFun
452441
}
453442

454443
varresp*github.Response
455-
varprojectItems []projectV2Item
444+
varprojectItems []*github.ProjectV2Item
456445
varqueryPtr*string
457446

458447
ifqueryStr!="" {
@@ -467,25 +456,12 @@ func ListProjectItems(getClient GetClientFn, t translations.TranslationHelperFun
467456
},
468457
}
469458

470-
varurlstring
471459
ifownerType=="org" {
472-
url=fmt.Sprintf("orgs/%s/projectsV2/%d/items",owner,projectNumber)
460+
projectItems,resp,err=client.Projects.ListOrganizationProjectItems(ctx,owner,projectNumber,opts)
473461
}else {
474-
url=fmt.Sprintf("users/%s/projectsV2/%d/items",owner,projectNumber)
462+
projectItems,resp,err=client.Projects.ListUserProjectItems(ctx,owner,projectNumber,opts)
475463
}
476464

477-
url,err=addOptions(url,opts)
478-
iferr!=nil {
479-
returnmcp.NewToolResultError(err.Error()),nil
480-
}
481-
482-
httpRequest,err:=client.NewRequest("GET",url,nil)
483-
iferr!=nil {
484-
returnnil,fmt.Errorf("failed to create request: %w",err)
485-
}
486-
487-
resp,err=client.Do(ctx,httpRequest,&projectItems)
488-
489465
iferr!=nil {
490466
returnghErrors.NewGitHubAPIErrorResponse(ctx,
491467
ProjectListFailedError,
@@ -566,32 +542,22 @@ func GetProjectItem(getClient GetClientFn, t translations.TranslationHelperFunc)
566542
returnmcp.NewToolResultError(err.Error()),nil
567543
}
568544

569-
varurlstring
570-
ifownerType=="org" {
571-
url=fmt.Sprintf("orgs/%s/projectsV2/%d/items/%d",owner,projectNumber,itemID)
572-
}else {
573-
url=fmt.Sprintf("users/%s/projectsV2/%d/items/%d",owner,projectNumber,itemID)
574-
}
575-
576-
opts:=fieldSelectionOptions{}
545+
resp:=&github.Response{}
546+
projectItem:=&github.ProjectV2Item{}
547+
varopts*github.GetProjectItemOptions
577548

578549
iflen(fields)>0 {
579-
opts.Fields=fields
580-
}
581-
582-
url,err=addOptions(url,opts)
583-
iferr!=nil {
584-
returnmcp.NewToolResultError(err.Error()),nil
550+
opts=&github.GetProjectItemOptions{
551+
Fields:fields,
552+
}
585553
}
586554

587-
projectItem:=projectV2Item{}
588-
589-
httpRequest,err:=client.NewRequest("GET",url,nil)
590-
iferr!=nil {
591-
returnnil,fmt.Errorf("failed to create request: %w",err)
555+
ifownerType=="org" {
556+
projectItem,resp,err=client.Projects.GetOrganizationProjectItem(ctx,owner,projectNumber,itemID,opts)
557+
}else {
558+
projectItem,resp,err=client.Projects.GetUserProjectItem(ctx,owner,projectNumber,itemID,opts)
592559
}
593560

594-
resp,err:=client.Do(ctx,httpRequest,&projectItem)
595561
iferr!=nil {
596562
returnghErrors.NewGitHubAPIErrorResponse(ctx,
597563
"failed to get project item",
@@ -748,7 +714,7 @@ func UpdateProjectItem(getClient GetClientFn, t translations.TranslationHelperFu
748714
iferr!=nil {
749715
returnmcp.NewToolResultError(err.Error()),nil
750716
}
751-
itemID,err:=RequiredInt(req,"item_id")
717+
itemID,err:=RequiredBigInt(req,"item_id")
752718
iferr!=nil {
753719
returnmcp.NewToolResultError(err.Error()),nil
754720
}
@@ -773,21 +739,15 @@ func UpdateProjectItem(getClient GetClientFn, t translations.TranslationHelperFu
773739
returnmcp.NewToolResultError(err.Error()),nil
774740
}
775741

776-
varprojectsURLstring
742+
varresp*github.Response
743+
varupdatedItem*github.ProjectV2Item
744+
777745
ifownerType=="org" {
778-
projectsURL=fmt.Sprintf("orgs/%s/projectsV2/%d/items/%d",owner,projectNumber,itemID)
746+
updatedItem,resp,err=client.Projects.UpdateOrganizationProjectItem(ctx,owner,projectNumber,itemID,updatePayload)
779747
}else {
780-
projectsURL=fmt.Sprintf("users/%s/projectsV2/%d/items/%d",owner,projectNumber,itemID)
781-
}
782-
httpRequest,err:=client.NewRequest("PATCH",projectsURL,updateProjectItemPayload{
783-
Fields: []updateProjectItem{*updatePayload},
784-
})
785-
iferr!=nil {
786-
returnnil,fmt.Errorf("failed to create request: %w",err)
748+
updatedItem,resp,err=client.Projects.UpdateUserProjectItem(ctx,owner,projectNumber,itemID,updatePayload)
787749
}
788-
updatedItem:=projectV2Item{}
789750

790-
resp,err:=client.Do(ctx,httpRequest,&updatedItem)
791751
iferr!=nil {
792752
returnghErrors.NewGitHubAPIErrorResponse(ctx,
793753
ProjectUpdateFailedError,
@@ -892,15 +852,6 @@ type fieldSelectionOptions struct {
892852
Fields []int64`url:"fields,omitempty,comma"`
893853
}
894854

895-
typeupdateProjectItemPayloadstruct {
896-
Fields []updateProjectItem`json:"fields"`
897-
}
898-
899-
typeupdateProjectItemstruct {
900-
IDint`json:"id"`
901-
Valueany`json:"value"`
902-
}
903-
904855
typeprojectV2ItemFieldValuestruct {
905856
ID*int64`json:"id,omitempty"`
906857
Namestring`json:"name,omitempty"`
@@ -967,7 +918,7 @@ func toNewProjectType(projType string) string {
967918
}
968919
}
969920

970-
funcbuildUpdateProjectItem(inputmap[string]any) (*updateProjectItem,error) {
921+
funcbuildUpdateProjectItem(inputmap[string]any) (*github.UpdateProjectItemOptions,error) {
971922
ifinput==nil {
972923
returnnil,fmt.Errorf("updated_field must be an object")
973924
}
@@ -986,7 +937,12 @@ func buildUpdateProjectItem(input map[string]any) (*updateProjectItem, error) {
986937
if!ok {
987938
returnnil,fmt.Errorf("updated_field.value is required")
988939
}
989-
payload:=&updateProjectItem{ID:int(idFieldAsFloat64),Value:valueField}
940+
payload:=&github.UpdateProjectItemOptions{
941+
Fields: []*github.UpdateProjectV2Field{{
942+
ID:int64(idFieldAsFloat64),
943+
Value:valueField,
944+
}},
945+
}
990946

991947
returnpayload,nil
992948
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp