Skip to content

Commit 80442e0

Browse files
authored
Fix for project root check for external files. (#5282)
1 parent ecc73fe commit 80442e0

File tree

2 files changed

+7
-2
lines changed
  • plugins/amazonq
    • chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqCodeTest/controller
    • codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/codetest/sessionconfig

2 files changed

+7
-2
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqCodeTest/controller/CodeTestChatController.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWh
7272
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
7373
import software.aws.toolkits.jetbrains.services.codewhisperer.language.programmingLanguage
7474
import software.aws.toolkits.jetbrains.services.codewhisperer.toolwindow.CodeWhispererCodeReferenceManager
75+
import software.aws.toolkits.jetbrains.services.codewhisperer.util.isWithin
7576
import software.aws.toolkits.jetbrains.services.cwc.ChatConstants
7677
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.ChatRequestData
7778
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.TriggerType
@@ -1176,7 +1177,7 @@ class CodeTestChatController(
11761177
filePath = activeFile.path,
11771178
fileName = activeFile.name,
11781179
fileLanguage = programmingLanguage,
1179-
fileInWorkspace = activeFile.path.startsWith(projectRoot.path)
1180+
fileInWorkspace = activeFile.isWithin(projectRoot)
11801181
)
11811182
} catch (e: Exception) {
11821183
LOG.debug { "Error checking active file: $e" }

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/codetest/sessionconfig/CodeTestSessionConfig.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.language.programmi
3333
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.CODE_SCAN_CREATE_PAYLOAD_TIMEOUT_IN_SECONDS
3434
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.DEFAULT_CODE_SCAN_TIMEOUT_IN_SECONDS
3535
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.DEFAULT_PAYLOAD_LIMIT_IN_BYTES
36+
import software.aws.toolkits.jetbrains.services.codewhisperer.util.isWithin
3637
import software.aws.toolkits.resources.message
3738
import java.io.File
3839
import java.nio.file.Path
@@ -88,7 +89,10 @@ class CodeTestSessionConfig(
8889
LOG.debug { "Creating payload. File selected as root for the context truncation: ${projectRoot.path}" }
8990

9091
val payloadMetadata: PayloadMetadata = try {
91-
getProjectPayloadMetadata()
92+
when {
93+
!selectedFile.isWithin(projectRoot) -> cannotFindValidFile("Selected file is not within the project")
94+
else -> getProjectPayloadMetadata()
95+
}
9296
} catch (e: Exception) {
9397
val errorMessage = when {
9498
e.message?.contains("Illegal repetition near index") == true -> "Illegal repetition near index"

0 commit comments

Comments
 (0)