Skip to content

Commit a2a8f1a

Browse files
authored
fix: encode diffs sent to AI Explain API endpoint [IDE-1084] (#85)
1 parent b5f295f commit a2a8f1a

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

llm/api_client.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package llm
33
import (
44
"bytes"
55
"context"
6+
"encoding/base64"
67
"encoding/json"
78
"io"
89
"net/http"
@@ -95,14 +96,22 @@ func (d *DeepCodeLLMBindingImpl) explainRequestBody(options *ExplainOptions) ([]
9596
} else {
9697
requestBody, marshalErr = json.Marshal(explainFixRequest{
9798
RuleId: options.RuleKey,
98-
Diffs: options.Diffs,
99+
Diffs: encodeDiffs(options.Diffs),
99100
ExplanationLength: SHORT,
100101
})
101102
logger.Debug().Msg("payload for FixExplanation")
102103
}
103104
return requestBody, marshalErr
104105
}
105106

107+
func encodeDiffs(diffs []string) []string {
108+
var encodedDiffs []string
109+
for _, diff := range diffs {
110+
encodedDiffs = append(encodedDiffs, base64.StdEncoding.EncodeToString([]byte(diff)))
111+
}
112+
return encodedDiffs
113+
}
114+
106115
func (d *DeepCodeLLMBindingImpl) addDefaultHeaders(req *http.Request) {
107116
req.Header.Set("Cache-Control", "private, max-age=0, no-cache")
108117
req.Header.Set("Content-Type", "application/json")

llm/api_client_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,8 @@ func TestDeepcodeLLMBinding_explainRequestBody(t *testing.T) {
150150

151151
assert.NotNil(t, request)
152152
assert.Equal(t, "test-rule-key", request.RuleId)
153-
assert.Equal(t, []string{"test-Diffs"}, request.Diffs)
153+
expectedEncodedDiffs := encodeDiffs([]string{"test-Diffs"})
154+
assert.Equal(t, expectedEncodedDiffs, request.Diffs)
154155
assert.Equal(t, SHORT, request.ExplanationLength)
155156
})
156157
}

0 commit comments

Comments
 (0)