Skip to content

Commit cfdf936

Browse files
authored
Adding featureDevSessionContext back for more rigorous file ignore in payload creation. (#4516)
1 parent 82a818a commit cfdf936

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/codescan/sessionconfig/CodeScanSessionConfig.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ import com.intellij.openapi.project.modules
1010
import com.intellij.openapi.vcs.changes.ChangeListManager
1111
import com.intellij.openapi.vfs.LocalFileSystem
1212
import com.intellij.openapi.vfs.VirtualFile
13+
import kotlinx.coroutines.runBlocking
1314
import software.aws.toolkits.core.utils.createTemporaryZipFile
1415
import software.aws.toolkits.core.utils.debug
1516
import software.aws.toolkits.core.utils.getLogger
1617
import software.aws.toolkits.core.utils.putNextEntry
18+
import software.aws.toolkits.jetbrains.services.amazonq.FeatureDevSessionContext
1719
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.fileTooLarge
1820
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.noFileOpenError
1921
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.noSupportedFilesError
@@ -45,6 +47,8 @@ class CodeScanSessionConfig(
4547
}
4648
private set
4749

50+
private val featureDevSessionContext = FeatureDevSessionContext(project)
51+
4852
/**
4953
* Timeout for the overall job - "Run Security Scan".
5054
*/
@@ -152,7 +156,9 @@ class CodeScanSessionConfig(
152156
val current = stack.pop()
153157

154158
if (!current.isDirectory) {
155-
if (!changeListManager.isIgnoredFile(current) && !files.contains(current.path)
159+
if (!changeListManager.isIgnoredFile(current) &&
160+
runBlocking { !featureDevSessionContext.ignoreFile(current, this) } &&
161+
!files.contains(current.path)
156162
) {
157163
if (willExceedPayloadLimit(currentTotalFileSize, current.length)) {
158164
fileTooLarge()
@@ -169,7 +175,9 @@ class CodeScanSessionConfig(
169175
}
170176
} else {
171177
// Directory case: only traverse if not ignored
172-
if (!changeListManager.isIgnoredFile(current) && !traversedDirectories.contains(current)
178+
if (!changeListManager.isIgnoredFile(current) &&
179+
runBlocking { !featureDevSessionContext.ignoreFile(current, this) } &&
180+
!traversedDirectories.contains(current)
173181
) {
174182
for (child in current.children) {
175183
stack.push(child)

plugins/toolkit/jetbrains-core/tst/software/aws/toolkits/jetbrains/services/codewhisperer/codescan/CodeWhispererProjectCodeScanTest.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,5 +367,10 @@ class CodeWhispererProjectCodeScanTest : CodeWhispererCodeScanTestBase(PythonCod
367367
).virtualFile
368368
totalSize += testYaml.length
369369
totalLines += testYaml.toNioPath().toFile().readLines().size
370+
371+
// Adding gitignore file and gitignore file member for testing.
372+
// The tests include the markdown file but not these two files.
373+
projectRule.fixture.addFileToProject("/.gitignore", "node_modules\n.idea\n.vscode\n.DS_Store").virtualFile
374+
projectRule.fixture.addFileToProject("test.idea", "ref: refs/heads/main")
370375
}
371376
}

0 commit comments

Comments
 (0)