Skip to content

Commit 9f81e24

Browse files
osdemahkaranA-aws
authored andcommitted
feat(amazonq): Include mvn, gradle files in repo archives aws#6300
## Problem mvn and gradle files are not included in repo archives for Q. ## Solution Add them to the `isCodeFile()` condition.
1 parent d5c2c61 commit 9f81e24

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "Bug Fix",
3+
"description": "Amazon Q can update mvn and gradle build files"
4+
}

packages/core/src/shared/filetypes.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ export const codefileExtensions = new Set([
174174
'.cljs',
175175
'.cls',
176176
'.cmake',
177+
'.cmd',
177178
'.cob',
178179
'.cobra',
179180
'.coffee',
@@ -280,6 +281,7 @@ export const codefileExtensions = new Set([
280281
'.pp',
281282
'.pro',
282283
'.prolog',
284+
'.properties',
283285
'.ps1',
284286
'.psd1',
285287
'.psm1',
@@ -360,7 +362,7 @@ export const codefileExtensions = new Set([
360362
])
361363

362364
// Code file names without an extension
363-
export const codefileNames = new Set(['Dockerfile', 'Dockerfile.build'])
365+
export const codefileNames = new Set(['Dockerfile', 'Dockerfile.build', 'gradlew', 'mvnw'])
364366

365367
/** Returns true if `filename` is a code file. */
366368
export function isCodeFile(filename: string): boolean {

packages/core/src/test/shared/filetypes.test.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import * as workspaceUtils from '../../shared/utilities/workspaceUtils'
1313
import { toArrayAsync } from '../../shared/utilities/collectionUtils'
1414
import { waitUntil } from '../../shared/utilities/timeoutUtils'
1515
import { mapMetadata } from '../../shared/telemetry/telemetryLogger'
16+
import { isCodeFile } from '../../shared/filetypes'
1617

1718
async function getMetrics(n: number, metricName: string, timeout = 1000) {
1819
return await waitUntil(
@@ -148,3 +149,27 @@ describe('file_editAwsFile telemetry', function () {
148149
// assert.strictEqual(r?.length, 1, 'emitted file_editAwsFile too many times')
149150
})
150151
})
152+
153+
describe('isCodeFile', () => {
154+
it('returns true for code files', function () {
155+
const codeFiles = [
156+
'test.py',
157+
'test.js',
158+
'Dockerfile',
159+
'gradlew',
160+
'mvnw',
161+
'build.gradle',
162+
'gradle/wrapper/gradle-wrapper.properties',
163+
]
164+
for (const codeFilePath of codeFiles) {
165+
assert.strictEqual(isCodeFile(codeFilePath), true)
166+
}
167+
})
168+
169+
it('returns false for other files', function () {
170+
const codeFiles = ['compiled.exe', 'random_file']
171+
for (const filePath of codeFiles) {
172+
assert.strictEqual(isCodeFile(filePath), false)
173+
}
174+
})
175+
})

0 commit comments

Comments
 (0)