Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Repository resource completions hide branch, tag, and commit lookup errors

Aperta Adatta ai principianti
#3,581 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

@pei711 ci sta già lavorando.

Dal 25/10/2026.

  • #3583 di @pei711 — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
75/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
github, go
Ambito
backend

Direzione di ricerca

Individua completeBranch, completeTag e completeSHA (grep il repo). Vedi come i percorsi di completion di repository e pull-request restituiscono già l'errore go-github, poi smetti di scartarlo con _ e propagalo. Verifica con il client HTTP mockato che restituisce 403 che la completion ora genera un errore invece di essere vuota.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Describe the bug

Repository resource completions silently turn GitHub API failures into an empty successful result for branches, tags, and commit SHAs.

completeBranch, completeTag, and completeSHA all discard the error returned by the corresponding go-github call. If the API returns a 403, 404, rate-limit response, or a transport error, the MCP client receives a completion response with no values instead of an error. From the client side this looks exactly like the repository has no branches, tags, or commits, which makes authentication and access problems difficult to diagnose.

Affected version

I reproduced this on v2.0.3 and current main (f385262).

Steps to reproduce the behavior

I used the repository's existing mock HTTP client to return a 403 from the branches endpoint, then called completeBranch:

client, _ := github.NewClient(github.WithHTTPClient(
    NewMockedHTTPClient(WithRequestMatchHandler(
        "GET /repos/{owner}/{repo}/branches",
        func(w http.ResponseWriter, _ *http.Request) {
            http.Error(w, "rate limited", http.StatusForbidden)
        },
    )),
))

values, err := completeBranch(
    context.Background(),
    client,
    map[string]string{"owner": "o", "repo": "r"},
    "",
)

The result is an empty values slice and a nil error. The same thing happens in completeSHA and completeTag because those functions also assign the API error to _.

Expected vs actual behavior

I would expect the completion request to return the GitHub API error, as the repository and pull-request completion paths already do.

Instead, the error is lost and the handler reports a successful empty completion (values: [], total: 0, hasMore: false). Propagating the errors from ListBranches, ListCommits, and ListTags should preserve the useful status and message for the MCP client.

Logs

The regression assertion fails with:

Error: An error is expected but got nil.
Lingua principale
Go
Stelle
33.8k
Fork
5.2k
Merge medio
2g 18h
PR unite (30g)
38

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di github/github-mcp-server

Tutte le issue di github/github-mcp-server

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.