github / github/github-mcp-server

Missing author_association field in list_issues and pull request responses

Aperta
#2,250 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Go
Stelle
33k
Fork
5k
Merge medio
2g 1h
PR unite (30g)
52

Descrizione

## 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()`

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.