Skip to content

Commit 0ca35b8

Browse files
authored
feat(amazonq): Include mvn, gradle files in repo archives #6300
## Problem mvn and gradle files are not included in repo archives for Q. ## Solution Add them to the `isCodeFile()` condition.
1 parent c32c8f0 commit 0ca35b8

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
@@ -173,6 +173,7 @@ export const codefileExtensions = new Set([
173173
'.cljs',
174174
'.cls',
175175
'.cmake',
176+
'.cmd',
176177
'.cob',
177178
'.cobra',
178179
'.coffee',
@@ -274,6 +275,7 @@ export const codefileExtensions = new Set([
274275
'.pp',
275276
'.pro',
276277
'.prolog',
278+
'.properties',
277279
'.ps1',
278280
'.psd1',
279281
'.psm1',
@@ -351,7 +353,7 @@ export const codefileExtensions = new Set([
351353
])
352354

353355
// Code file names without an extension
354-
export const codefileNames = new Set(['Dockerfile', 'Dockerfile.build'])
356+
export const codefileNames = new Set(['Dockerfile', 'Dockerfile.build', 'gradlew', 'mvnw'])
355357

356358
/** Returns true if `filename` is a code file. */
357359
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)