github / github/github-mcp-server

Missing author_association field in list_issues and pull request responses

Đang mở
#2,250 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Go
Star
33k
Fork
5k
Merge trung bình
2 ngày 1 giờ
Pull request đã merge (30 ngày)
52

Mô tả

## Summary

The `author_association` field is missing from several MCP response types, which prevents downstream consumers from determining author permissions (e.g., OWNER, MEMBER, COLLABORATOR, CONTRIBUTOR, NONE).

## Affected Endpoints

### 1. `list_issues` (GraphQL path)
- `IssueFragment` struct does not request `authorAssociation` in the GraphQL query
- `fragmentToMinimalIssue()` does not populate `AuthorAssociation` in `MinimalIssue`
- Note: The REST path in `convertToMinimalIssue()` correctly sets `AuthorAssociation: issue.GetAuthorAssociation()`

### 2. `list_pull_requests` and `pull_request_read` (REST path)
- `MinimalPullRequest` struct is missing the `author_association` field entirely
- `convertToMinimalPullRequest()` does not set it
- The raw `*github.PullRequest` from the go-github library has `AuthorAssociation` available via `pr.GetAuthorAssociation()`

### Already Working
- `issue_read` (single issue GET) — uses REST `convertToMinimalIssue()` which includes `author_association` ✅
- `get_review_comments` — `MinimalPullRequestReview` includes `author_association` ✅

## Impact

Consumers that rely on `author_association` to determine author trust level (OWNER, MEMBER, COLLABORATOR, CONTRIBUTOR, NONE) cannot make correct decisions when this field is missing from `list_issues` and pull request responses.

For example, a repo admin's issues are incorrectly treated as untrusted because their `author_association` of "MEMBER" is not present in the response.

## Suggested Fix

### For `list_issues` (GraphQL):
1. Add `AuthorAssociation githubv4.String` to `IssueFragment` struct in `issues.go`
2. Set `AuthorAssociation: string(fragment.AuthorAssociation)` in `fragmentToMinimalIssue()` in `minimal_types.go`

### For pull requests (REST):
1. Add `AuthorAssociation string \x60json:"author_association,omitempty"\x60` to `MinimalPullRequest` struct in `minimal_types.go`
2. Set `AuthorAssociation: pr.GetAuthorAssociation()` in `convertToMinimalPullRequest()` in `minimal_types.go`

## References
- `pkg/github/issues.go` — `IssueFragment` struct
- `pkg/github/minimal_types.go` — `MinimalIssue`, `MinimalPullRequest`, `fragmentToMinimalIssue()`, `convertToMinimalPullRequest()`

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.