diff --git a/api/queries_projects_v2.go b/api/queries_projects_v2.go index e55127f02..68681f2e8 100644 --- a/api/queries_projects_v2.go +++ b/api/queries_projects_v2.go @@ -150,8 +150,9 @@ func ProjectsV2ItemsForPullRequest(client *Client, repo ghrepo.Interface, pr *Pu Repository struct { PullRequest struct { ProjectItems struct { - Nodes []*projectV2Item - PageInfo struct { + TotalCount int + Nodes []*projectV2Item + PageInfo struct { HasNextPage bool EndCursor string } diff --git a/pkg/cmd/pr/view/view.go b/pkg/cmd/pr/view/view.go index 8a39d1134..564cce913 100644 --- a/pkg/cmd/pr/view/view.go +++ b/pkg/cmd/pr/view/view.go @@ -85,7 +85,7 @@ var defaultFields = []string{ "url", "number", "title", "state", "body", "author", "autoMergeRequest", "isDraft", "maintainerCanModify", "mergeable", "additions", "deletions", "commitsCount", "baseRefName", "headRefName", "headRepositoryOwner", "headRepository", "isCrossRepository", - "reviewRequests", "reviews", "assignees", "labels", "projectCards", "milestone", + "reviewRequests", "reviews", "assignees", "labels", "projectCards", "projectItems", "milestone", "comments", "reactionGroups", "createdAt", "statusCheckRollup", } @@ -439,11 +439,23 @@ func prLabelList(pr api.PullRequest, cs *iostreams.ColorScheme) string { } func prProjectList(pr api.PullRequest) string { - if len(pr.ProjectCards.Nodes) == 0 { + totalCount := pr.ProjectCards.TotalCount + pr.ProjectItems.TotalCount + count := len(pr.ProjectCards.Nodes) + len(pr.ProjectItems.Nodes) + + if count == 0 { return "" } projectNames := make([]string, 0, len(pr.ProjectCards.Nodes)) + + for _, project := range pr.ProjectItems.Nodes { + colName := project.Status.Name + if colName == "" { + colName = "No Status" + } + projectNames = append(projectNames, fmt.Sprintf("%s (%s)", project.Project.Title, colName)) + } + for _, project := range pr.ProjectCards.Nodes { if project == nil { continue @@ -456,7 +468,7 @@ func prProjectList(pr api.PullRequest) string { } list := strings.Join(projectNames, ", ") - if pr.ProjectCards.TotalCount > len(pr.ProjectCards.Nodes) { + if totalCount > count { list += ", …" } return list