github / github/github-mcp-server
Missing author_association field in list_issues and pull request responses
- Linguagem predominante
- Go
- Estrelas
- 33k
- Forks
- 5k
- Merge médio
- 2d 1h
- PRs com merge (30d)
- 52
Descrição
## 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()`
Guia de contribuição
Avaliação
Esta issue ainda não foi avaliada.