Skip to content

Commit c5f15d6

Browse files
ctiddC Tidd
and
C Tidd
authored
fix(amazonq): Fix devfile detection on Feature Dev invocation. (#5583)
Co-authored-by: C Tidd <ctidd@amazon.com>
1 parent b359f82 commit c5f15d6

File tree

4 files changed

+16
-9
lines changed

4 files changed

+16
-9
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "bugfix",
3+
"description" : "/dev: Fix prompt to enable devfile build not triggering when devfile is present."
4+
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/controller/FeatureDevController.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ class FeatureDevController(
479479
),
480480
)
481481

482-
if (!session.context.checkForDevFile()) {
482+
if (!session.context.hasDevFile()) {
483483
followUps.add(
484484
FollowUp(
485485
pillText = message("amazonqFeatureDev.follow_up.generate_dev_file"),
@@ -741,7 +741,7 @@ class FeatureDevController(
741741
}
742742

743743
val codeWhispererSettings = CodeWhispererSettings.getInstance().getAutoBuildSetting()
744-
val hasDevFile = session.context.checkForDevFile()
744+
val hasDevFile = session.context.hasDevFile()
745745
val isPromptedForAutoBuildFeature = codeWhispererSettings.containsKey(session.context.workspaceRoot.path)
746746

747747
if (hasDevFile && !isPromptedForAutoBuildFeature) {

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/FeatureDevSessionContext.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import org.apache.commons.codec.digest.DigestUtils
1818
import org.apache.commons.io.FileUtils
1919
import software.aws.toolkits.jetbrains.core.coroutines.getCoroutineBgContext
2020
import software.aws.toolkits.jetbrains.services.amazonq.QConstants.MAX_FILE_SIZE_BYTES
21+
import software.aws.toolkits.jetbrains.utils.getWorkspaceDevFile
2122
import software.aws.toolkits.jetbrains.utils.isWorkspaceDevFile
2223
import software.aws.toolkits.resources.AwsCoreBundle
2324
import software.aws.toolkits.telemetry.AmazonqTelemetry
@@ -57,11 +58,8 @@ open class FeatureDevSessionContext(val project: Project, val maxProjectSizeByte
5758

5859
private var _selectionRoot = workspaceRoot
5960

60-
// This function checks for existence of `devfile.yaml` in customer's repository, currently only `devfile.yaml` is supported for this feature.
61-
fun checkForDevFile(): Boolean {
62-
val devFile = File(addressableRoot.toString(), "devfile.yaml")
63-
return devFile.exists()
64-
}
61+
fun hasDevFile(): Boolean =
62+
getWorkspaceDevFile(addressableRoot) != null
6563

6664
fun getProjectZip(isAutoBuildFeatureEnabled: Boolean?): ZipCreationResult {
6765
val zippedProject = runBlocking {

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/utils/DevFileUtils.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ package software.aws.toolkits.jetbrains.utils
55

66
import com.intellij.openapi.vfs.VirtualFile
77

8+
fun isDevFile(file: VirtualFile): Boolean =
9+
file.name.matches(Regex("devfile\\.ya?ml", RegexOption.IGNORE_CASE))
10+
811
fun isWorkspaceDevFile(file: VirtualFile, addressableRoot: VirtualFile): Boolean =
9-
file.name.matches(Regex("devfile\\.ya?ml", RegexOption.IGNORE_CASE)) &&
10-
file.parent?.path == addressableRoot.path
12+
isDevFile(file) && file.parent?.path == addressableRoot.path
13+
14+
fun getWorkspaceDevFile(addressableRoot: VirtualFile): VirtualFile? =
15+
addressableRoot.children.find { isDevFile(it) }

0 commit comments

Comments
 (0)