fix: address all review findings on PR #14
CI / test (pull_request) Successful in 13s
CI / review (gpt-5, sonnet, SONNET_REVIEW_TOKEN) (pull_request) Successful in 48s
CI / review (gpt-5-mini, gpt, GPT_REVIEW_TOKEN) (pull_request) Failing after 2m12s

- gitea.Client: add concurrency safety doc comment
- gitea.Client: set 30s HTTP client timeout as safety net
- llm.Client: add concurrency safety doc comment
- llm.Client: set 2min HTTP client timeout (LLM calls are slow)
- gitea/client.go: gofmt to fix indentation
- integration_test: update to current BuildSystemPrompt/BuildUserPrompt signatures
- integration_test: use strings.SplitN for owner/repo parsing
This commit is contained in:
Rodin
2026-05-01 12:56:07 -07:00
parent ecebd52371
commit cedb5e7b90
3 changed files with 9 additions and 5 deletions
+4 -2
View File
@@ -9,9 +9,11 @@ import (
"log"
"net/http"
"strings"
"time"
)
// Client interacts with the Gitea API.
// A Client is safe for concurrent use by multiple goroutines.
type Client struct {
baseURL string
token string
@@ -23,7 +25,7 @@ func NewClient(baseURL, token string) *Client {
return &Client{
baseURL: strings.TrimRight(baseURL, "/"),
token: token,
http: &http.Client{},
http: &http.Client{Timeout: 30 * time.Second},
}
}
@@ -226,7 +228,7 @@ func (c *Client) GetAllFilesInPath(ctx context.Context, owner, repo, path string
content, err := c.GetFileContent(ctx, owner, repo, entry.Path)
if err != nil {
log.Printf("Warning: could not fetch file %s: %v", entry.Path, err)
continue
continue
}
results[entry.Path] = content
case "dir":
+2 -2
View File
@@ -74,8 +74,8 @@ func TestIntegration_FullReviewFlow(t *testing.T) {
t.Logf("Diff size: %d bytes", len(diff))
// Step 3: Build prompts
systemPrompt := review.BuildSystemPrompt("")
userPrompt := review.BuildUserPrompt(pr.Title, pr.Body, diff, true, "")
systemPrompt := review.BuildSystemPrompt("", "")
userPrompt := review.BuildUserPrompt(pr.Title, pr.Body, diff, "", true, "")
// Step 4: Call LLM
llmClient := llm.NewClient(llmBaseURL, llmAPIKey, llmModel)
+3 -1
View File
@@ -8,9 +8,11 @@ import (
"io"
"net/http"
"strings"
"time"
)
// Client calls an OpenAI-compatible chat completion API.
// A Client is safe for concurrent use by multiple goroutines after construction.
type Client struct {
baseURL string
apiKey string
@@ -25,7 +27,7 @@ func NewClient(baseURL, apiKey, model string) *Client {
baseURL: strings.TrimRight(baseURL, "/"),
apiKey: apiKey,
model: model,
http: &http.Client{},
http: &http.Client{Timeout: 2 * time.Minute},
}
}