From 148ac70f19dfd2fb7b06d6e7188630335ab06e4b Mon Sep 17 00:00:00 2001 From: Matthew Ryan Dillon Date: Thu, 8 May 2025 11:25:07 -0400 Subject: [PATCH] linting + timeout tweak --- README.md | 1 + main.go | 24 ++++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a7c2725..21fecd9 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ a proxy server for github copilot, handling token management and request forward ## requirements - go 1.20 or later - a valid github pat set in the `GITHUB_AUTH_TOKEN` environment variable +- (optional) `golangci-lint` ## usage ```bash diff --git a/main.go b/main.go index 0743156..cfd1d5a 100644 --- a/main.go +++ b/main.go @@ -35,7 +35,7 @@ type ProxyServer struct { func NewProxyServer(authToken string) *ProxyServer { return &ProxyServer{ authToken: authToken, - client: &http.Client{Timeout: 30 * time.Second}, + client: &http.Client{Timeout: 5 * time.Minute}, } } @@ -68,7 +68,12 @@ func (p *ProxyServer) refreshTokenIfNeeded() error { if err != nil { return fmt.Errorf("token exchange request failed: %w", err) } - defer resp.Body.Close() + defer func() { + err := resp.Body.Close() + if err != nil { + log.Fatal(err) + } + }() if resp.StatusCode != http.StatusOK { body, _ := io.ReadAll(resp.Body) @@ -105,7 +110,13 @@ func (p *ProxyServer) proxyHandler(w http.ResponseWriter, r *http.Request) { http.Error(w, "error reading request body", http.StatusBadRequest) return } - defer r.Body.Close() + defer func() { + err := r.Body.Close() + if err != nil { + log.Fatal(err) + } + }() + log.Printf("request: %s", body) targetURL := p.proxyEndpoint + r.URL.Path if p.proxyEndpoint == "" { @@ -134,7 +145,12 @@ func (p *ProxyServer) proxyHandler(w http.ResponseWriter, r *http.Request) { http.Error(w, "error forwarding request to copilot", http.StatusBadGateway) return } - defer resp.Body.Close() + defer func() { + err := resp.Body.Close() + if err != nil { + log.Fatal(err) + } + }() for name, values := range resp.Header { for _, value := range values {