github / github/github-mcp-server

http: classify missing token, invalid token, and insufficient scope distinctly

Đang mở
#2,213 0 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ả

## Problem
Authentication and authorization failures currently collapse into generic HTTP errors even though missing credentials, invalid/expired credentials, and insufficient scopes require different remediation. That weakens machine-readable diagnostics for hosts and operators.

## Why now
This server sits directly on GitHub token-policy boundaries. Clients and wrappers need explicit failure classification to decide whether to prompt for auth, refresh a token, or request additional scopes.

## Expected behavior
Missing token, invalid/expired token, and insufficient scope paths should each expose a distinct machine-readable error code while preserving the existing auth challenge semantics.

## Claim-to-codepath map
- `pkg/http/middleware/token.go`
- `pkg/http/middleware/pat_scope.go`
- `pkg/http/middleware/scope_challenge.go`
- `pkg/errors/error.go`
- `docs/error-handling.md`

## Evidence packet
- Commit under test: `fa87e4fc9e4cd1f514cf4c236b9135987a328512`
- Runtime: Go HTTP middleware tests on macOS
- Repro concept: exercise requests with no token, malformed/invalid token, and OAuth requests lacking required scopes.

## Validation requirements
- Add targeted middleware/error tests for each classification.
- Preserve `WWW-Authenticate` challenge behavior where applicable.
- Document the new machine-readable codes.

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.