Skip to content

Commit 2f66518

Browse files
updates ListProjects to leverage google/go-github APIs for projects retrieval
1 parent a73d2b4 commit 2f66518

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

pkg/github/projects.go

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -67,31 +67,33 @@ func ListProjects(getClient GetClientFn, t translations.TranslationHelperFunc) (
6767
return mcp.NewToolResultError(err.Error()), nil
6868
}
6969

70-
var url string
71-
if ownerType == "org" {
72-
url = fmt.Sprintf("orgs/%s/projectsV2", owner)
73-
} else {
74-
url = fmt.Sprintf("users/%s/projectsV2", owner)
75-
}
7670
projects := []github.ProjectV2{}
7771
minimalProjects := []MinimalProject{}
7872

79-
opts := listProjectsOptions{
80-
paginationOptions: paginationOptions{PerPage: perPage},
81-
filterQueryOptions: filterQueryOptions{Query: queryStr},
73+
opts := github.ListProjectsOptions{
74+
ListProjectsPaginationOptions: github.ListProjectsPaginationOptions{PerPage: perPage},
75+
Query: queryStr,
8276
}
8377

84-
url, err = addOptions(url, opts)
85-
if err != nil {
86-
return nil, fmt.Errorf("failed to add options to request: %w", err)
87-
}
78+
resp, err := func() (*github.Response, error) {
79+
var projectsData []*github.ProjectV2
80+
var response *github.Response
81+
var err error
8882

89-
httpRequest, err := client.NewRequest("GET", url, nil)
90-
if err != nil {
91-
return nil, fmt.Errorf("failed to create request: %w", err)
92-
}
83+
if ownerType == "org" {
84+
projectsData, response, err = client.Projects.ListProjectsForOrg(ctx, owner, &opts)
85+
} else {
86+
projectsData, response, err = client.Projects.ListProjectsForUser(ctx, owner, &opts)
87+
}
88+
89+
if err == nil && projectsData != nil {
90+
for _, p := range projectsData {
91+
projects = append(projects, *p)
92+
}
93+
}
94+
return response, err
95+
}()
9396

94-
resp, err := client.Do(ctx, httpRequest, &projects)
9597
if err != nil {
9698
return ghErrors.NewGitHubAPIErrorResponse(ctx,
9799
"failed to list projects",

0 commit comments

Comments
 (0)