Ignoring the potential error return from strings.CutSuffix might mask issues if the provided bitbucket BaseURL is malformed or does not match expected suffix patterns.
Using fmt.Print inside the chat response function pollutes standard output with side effects and mixes concerns between data processing and logging, making the code harder to maintain.
Using InsecureSkipVerify: true bypasses crucial SSL certificate validation, opening a potential security vulnerability (Man-in-the-Middle attacks) if the baseURL is not fully trusted.
Reading the entire diff into memory using io.ReadAll(diff) can cause excessive memory usage if a pull request has a very large diff; consider streaming or limiting the read size.
File: /tmp/pr-review-2253999896/internal/pierre/resource.go, Line: 11
File: /tmp/pr-review-2253999896/internal/gitadapters/bitbucket/controller.go, Line: 10
File: /tmp/pr-review-2253999896/internal/chatter/gemini.go, Line: 150
File: /tmp/pr-review-2253999896/internal/pierre/review.go, Line: 34
File: /tmp/pr-review-2253999896/internal/chatter/openai.go, Line: 25
File: internal/chatter/openai.go, Line: 125
File: internal/chatter/openai.go, Line: 32
File: internal/chatter/ollama.go, Line: 90
File: internal/chatter/ollama.go, Line: 32
File: internal/chatter/gemini.go, Line: 143
File: internal/chatter/gemini.go, Line: 156