Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge master into feature/stepfunctions-workflow #5695

Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
1499 commits
Select commit Hold shift + click to select a range
1e3fdce
feat(cwl): Emit telemetry when starting and stopping liveTail session…
keeganirby Nov 20, 2024
bbedccf
refactor(amazonq): sort telemetry event fields alphabetically (#6054)
Will-ShaoHua Nov 20, 2024
e0506f3
Merge master into feature/cwltail
aws-toolkit-automation Nov 20, 2024
817ebac
deps(amazonq): Update mynah-ui to 4.18.1 (#6060)
jpinkney-aws Nov 20, 2024
933c8de
Merge master into feature/cwltail
aws-toolkit-automation Nov 20, 2024
ac72bca
feat(amazon q): display multiple diff patches (#5812)
ntarakad-aws Nov 20, 2024
2936445
Merge master into feature/cwltail
aws-toolkit-automation Nov 20, 2024
6fb2ecb
deps(toolkit): Update toolkit icons (#6059)
jpinkney-aws Nov 20, 2024
b5e719f
Merge master into feature/cwltail
aws-toolkit-automation Nov 20, 2024
85a46ce
refactor(lambda): decompose methods for SAM sync/deploy/build (#6014)
vicheey Nov 20, 2024
5be294e
Merge master into feature/cwltail
aws-toolkit-automation Nov 20, 2024
c6c5fc2
fix(amazonq): do not overwrite failure reason, use lowercase lang nam…
dhasani23 Nov 20, 2024
540ce54
fix(notifications): dismiss race conditions
hayemaxi Nov 20, 2024
4d1b0bb
fix(amazonq): skip indexing when no workspace folders are found (#6058)
jpinkney-aws Nov 20, 2024
db9efb7
deps(core): Update dependencies (#6061)
jpinkney-aws Nov 20, 2024
adac49d
Merge master into feature/cwltail
aws-toolkit-automation Nov 20, 2024
f355557
Merge pull request #6052 from hayemaxi/notifications6
hayemaxi Nov 20, 2024
833cc7f
Merge master into feature/cwltail
aws-toolkit-automation Nov 20, 2024
aceebe1
fix(cwl): Hide LiveTail CodeLenses and display info message when clos…
keeganirby Nov 20, 2024
fb2b23e
feat(notifications): enable notifications for all users (#6071)
hayemaxi Nov 20, 2024
443990e
Merge master into feature/cwltail
aws-toolkit-automation Nov 20, 2024
1947887
telemetry(amazonq): fix userTriggerDecision not being sent if service…
Will-ShaoHua Nov 20, 2024
4b52b87
Merge master into feature/cwltail
aws-toolkit-automation Nov 20, 2024
cde861c
fix(amazon q): updating string for final patch of selective transform…
ntarakad-aws Nov 21, 2024
d42a6bf
Merge master into feature/cwltail
aws-toolkit-automation Nov 21, 2024
338ea67
fix(lambda): add artifact bucket source prompter in SAM sync wizards …
vicheey Nov 21, 2024
31bb729
Merge master into feature/cwltail
aws-toolkit-automation Nov 21, 2024
2844554
feat(amazonq): support `.gradle` files in /dev (#6068)
avi-alpert Nov 21, 2024
28010bb
Merge master into feature/cwltail
aws-toolkit-automation Nov 21, 2024
7fd14b1
deps(amazonq): bump amazonQ helper version (#6075)
Will-ShaoHua Nov 21, 2024
2778ecf
Merge master into feature/cwltail
aws-toolkit-automation Nov 21, 2024
cdccfa2
docs(issues): add github issues template for unreliable tests (#6077)
Hweinstock Nov 21, 2024
239c09d
Merge master into feature/cwltail
aws-toolkit-automation Nov 21, 2024
4d9644d
fix(lambda): correct prompter url button for sam deploy sync build co…
vicheey Nov 21, 2024
3e9c4c2
Merge master into feature/cwltail
aws-toolkit-automation Nov 21, 2024
63b1cce
fix(cwl): Change wording in menus, add info message when opening runn…
keeganirby Nov 21, 2024
9ae3d6d
feat(lambda): python3.13 support (#6082)
roger-zhangg Nov 22, 2024
0e070f6
test(amazonq): skip flaky crossfileContextUtil.test (#6085)
Will-ShaoHua Nov 22, 2024
f305e79
Merge master into feature/cwltail
aws-toolkit-automation Nov 22, 2024
eb5c252
feat(lambda): nodejs22.x support (#6087)
roger-zhangg Nov 22, 2024
b30ab9b
Merge master into feature/cwltail
aws-toolkit-automation Nov 22, 2024
7282c40
fix(amazonq): add handling for new limit mechanism (#6091)
willyyhuang Nov 22, 2024
c082e5e
Merge master into feature/cwltail
aws-toolkit-automation Nov 22, 2024
f91092a
feat(amazonq): Using AB variation value as customization name when ov…
spfink Nov 22, 2024
ee562be
Merge master into feature/cwltail
aws-toolkit-automation Nov 22, 2024
1a00852
fix(ec2): show terminated icon on terminated instances. (#6092)
Hweinstock Nov 22, 2024
b2c7239
Merge master into feature/cwltail
aws-toolkit-automation Nov 22, 2024
a0de73d
fix(amazonq): add throttling exception handling and in code comments …
willyyhuang Nov 22, 2024
d70d226
Merge master into feature/cwltail
aws-toolkit-automation Nov 22, 2024
18de310
Release 3.35.0
Nov 22, 2024
2e1941f
Release 1.37.0
Nov 22, 2024
22cdb50
deps: bump codecov/codecov-action from 4 to 5 in the github-actions g…
dependabot[bot] Nov 22, 2024
7482107
Merge master into feature/cwltail
aws-toolkit-automation Nov 22, 2024
68448ed
Update version to snapshot version: 1.38.0-SNAPSHOT
Nov 22, 2024
efb09dc
Merge release into master
Nov 22, 2024
d624797
Update version to snapshot version: 3.36.0-SNAPSHOT
Nov 22, 2024
0eb9012
Merge release into master
Nov 22, 2024
a6b5227
Merge master into feature/cwltail
aws-toolkit-automation Nov 22, 2024
2b6987a
test(logger): test logger does not format objects #6083
Hweinstock Nov 22, 2024
8cd2654
Merge master into feature/cwltail
aws-toolkit-automation Nov 22, 2024
db097d0
refactor(logs): Use CrashMonitoring topic in logger (#6096)
nkomonen-amazon Nov 23, 2024
f2dfc23
Merge master into feature/cwltail
aws-toolkit-automation Nov 23, 2024
b4d7417
feat(amazon q): removing feature flag for selective transformation an…
ntarakad-aws Nov 25, 2024
a5fdc86
Merge master into feature/cwltail
aws-toolkit-automation Nov 25, 2024
b516e1f
feat(amazonq): introduce @workspace command to enhance chat quality (…
Will-ShaoHua Nov 26, 2024
06b390d
fix(cwl): Dispose event listeners when command exits (#6095)
keeganirby Nov 26, 2024
e5a24f0
Merge master into feature/cwltail
aws-toolkit-automation Nov 26, 2024
2257bd0
feat(amazonq): support Dockerfile files in /dev (#6107)
michaellandi Nov 26, 2024
d0d456d
Merge master into feature/cwltail
aws-toolkit-automation Nov 26, 2024
5b3f285
ci(automation): added openGate build spec (#6108)
tomcat323 Nov 26, 2024
433a8a8
Merge master into feature/cwltail
aws-toolkit-automation Nov 26, 2024
6a4a746
telemetry(amazonq): patch #6053 which only updates Toolkit telemetry …
Will-ShaoHua Nov 26, 2024
60737da
Merge master into feature/cwltail
aws-toolkit-automation Nov 26, 2024
61d67f8
config(amazonq): enable implicit project context ab test for broader …
Will-ShaoHua Nov 26, 2024
e34fe54
Merge master into feature/cwltail
aws-toolkit-automation Nov 26, 2024
3b45960
fix(lambda): save params before running sam command when --watch is s…
mbfreder Nov 27, 2024
bea6cd0
Merge master into feature/cwltail
aws-toolkit-automation Nov 27, 2024
9466f98
fix(lambda): redirect view logs action to terminal (#6103)
mbfreder Nov 27, 2024
6b63f51
Merge master into feature/cwltail
aws-toolkit-automation Nov 27, 2024
c4797eb
Release 1.38.0
Nov 27, 2024
32154e0
Release 3.36.0
Nov 27, 2024
615698c
Update version to snapshot version: 1.39.0-SNAPSHOT
Nov 27, 2024
72d1dca
Update version to snapshot version: 3.37.0-SNAPSHOT
Nov 27, 2024
ecaf77f
Merge release into master
Nov 27, 2024
45ee6cd
Merge master into feature/cwltail
aws-toolkit-automation Nov 27, 2024
5766e4b
test: add notification and reset state dev options (#6105)
hayemaxi Nov 27, 2024
93381f1
Merge master into feature/cwltail
aws-toolkit-automation Nov 27, 2024
b52666e
build(jscpd): disable jscpd CI Task (#6116)
Hweinstock Nov 27, 2024
079992e
Merge master into feature/cwltail
aws-toolkit-automation Nov 27, 2024
0536f09
test(flaky): unreliable test: zipCode performance tests #6120
Hweinstock Nov 29, 2024
b2f99f6
Merge master into feature/cwltail
aws-toolkit-automation Nov 29, 2024
591dc9a
fix(amazon q): add pl/1, bms filetypes #6067
scottwritescode Dec 2, 2024
d4b0ede
test(codewhisperer): disable Auto Scan after test case #6122
roger-zhangg Dec 2, 2024
aa332da
feat(amazonq): Re-invent 2024 release (#6127)
jpinkney-aws Dec 3, 2024
c933e68
Release 3.37.0
Dec 3, 2024
754b3a3
Release 1.39.0
Dec 3, 2024
fec09f5
Merge master into feature/postreinvent
aws-toolkit-automation Dec 3, 2024
a5a7a46
Update version to snapshot version: 1.40.0-SNAPSHOT
Dec 3, 2024
967fbe4
Update version to snapshot version: 3.38.0-SNAPSHOT
Dec 3, 2024
487941e
Merge release into master
Dec 3, 2024
cd0847d
Merge master into feature/postreinvent
aws-toolkit-automation Dec 3, 2024
c4f965f
fix(amazonq): /docs -> /doc in readme (#6131)
jpinkney-aws Dec 3, 2024
09425b6
Merge master into feature/postreinvent
aws-toolkit-automation Dec 3, 2024
9a97f8a
ci(run_and_report): remove workaround for vscode 1.68 #6121
Hweinstock Dec 3, 2024
d453a15
Merge master into feature/postreinvent
aws-toolkit-automation Dec 3, 2024
337959a
docs: treat all work as PUBLIC #6125
justinmk3 Dec 3, 2024
be4b42b
Merge master into feature/postreinvent
aws-toolkit-automation Dec 3, 2024
6d5e016
refactor(logs): drop "Amazon Q Logs" channel and just have "Amazon Q"…
nkomonen-amazon Dec 3, 2024
2b49a5d
telemetry(amazonq): differentiate Internal vs External users (#6136)
laileni-aws Dec 3, 2024
50ccef5
Merge master into feature/postreinvent
aws-toolkit-automation Dec 3, 2024
848b6bb
config(repository): update codeowners #6141
Jurredr Dec 4, 2024
0419e0f
Merge master into feature/postreinvent
aws-toolkit-automation Dec 4, 2024
59acbc6
feat(toolkit): Upgrade amazon-states-language-service to 1.13.0 #6139
elvin-hwang Dec 4, 2024
8b08ef4
fix(amazonq): progress bar persists after cancelling README creation …
avi-alpert Dec 4, 2024
c7597ea
Merge master into feature/postreinvent
aws-toolkit-automation Dec 4, 2024
5987252
deps(amazonq): update mynah ui to 4.21.0 (#6130)
jpinkney-aws Dec 4, 2024
3d72353
Merge master into feature/postreinvent
aws-toolkit-automation Dec 4, 2024
08eb59e
test(cwl): Add unit test for starting and stopping LiveTailSession ob…
keeganirby Dec 4, 2024
92f9ae3
fix(amazonq): missing @workspace command on welcome tab (#6145)
jpinkney-aws Dec 4, 2024
c30cf3a
Merge master into feature/postreinvent
aws-toolkit-automation Dec 4, 2024
d74f96c
ci: codecov always fails #6146
justinmk3 Dec 4, 2024
346a06e
Merge master into feature/postreinvent
aws-toolkit-automation Dec 4, 2024
2905eb8
deps(cross-spawn): update cross-spawn to 7.0.5 #6147
Hweinstock Dec 4, 2024
cec8218
ci: codecov doesn't run in Github Actions
justinmk3 Dec 4, 2024
c8bfe2f
test(flaky): fix unresolved promise causing linux failures (#6088)
Hweinstock Dec 4, 2024
a505edb
ci: codecov "patch" check
justinmk3 Dec 4, 2024
ffd94b4
Merge #6150 from justinmk3/fixcodecov
justinmk3 Dec 4, 2024
7fe8a25
Merge master into feature/postreinvent
aws-toolkit-automation Dec 4, 2024
e46500e
fix(logs): avoid logging EC2 ARN on commands #6152
Hweinstock Dec 4, 2024
4c38aab
feat(ec2): dry run connection script to surface errors earlier. (#6037)
Hweinstock Dec 5, 2024
95b777c
ci: require space at start of // comment #6112
justinmk3 Dec 5, 2024
7f90d56
refactor(ec2): avoid logging somewhat sensitive data (#6149)
Hweinstock Dec 5, 2024
3a39b10
feat(amazonq): add job ID to Transformation Hub #6154
dhasani23 Dec 5, 2024
24b1585
Merge master into feature/postreinvent
aws-toolkit-automation Dec 5, 2024
83aac85
fix(amazonq): prompt to choose a folder for /doc #6159
avi-alpert Dec 5, 2024
016e478
telemetry(amazon q): metrics after one/multiple diffs form selection …
ntarakad-aws Dec 5, 2024
6de9de2
Merge master into feature/postreinvent
aws-toolkit-automation Dec 5, 2024
f601d89
feat(amazonq): Add acknowledgement button for disclaimer (#6151)
jpinkney-aws Dec 6, 2024
1c337a6
Merge master into feature/postreinvent
aws-toolkit-automation Dec 6, 2024
11c35ae
docs(ec2): add details about `authorized_keys`override (#6157)
Hweinstock Dec 6, 2024
3f2ee9e
refactor(ec2): pass log level to connect script (#6161)
Hweinstock Dec 6, 2024
2a404c4
telemetry(amazonq): UTG sends plaintext instead of python for amazonq…
laileni-aws Dec 6, 2024
1ed440a
Merge master into feature/postreinvent
aws-toolkit-automation Dec 6, 2024
7996a0b
fix(amazonq): Improved Code Fix generation for code review issues (#6…
ashishrp-aws Dec 6, 2024
58e6bbf
Merge master into feature/postreinvent
aws-toolkit-automation Dec 6, 2024
33b791e
fix(amazonq): /dev to support upload of nested Dockerfiles #6115
michaellandi Dec 6, 2024
ba3a388
fix(amazonq): prompt user to choose a folder in the chat for /doc
KevinDing1 Dec 6, 2024
a954f49
Merge master into feature/postreinvent
aws-toolkit-automation Dec 6, 2024
1ebb05a
Merge pull request #6177 from KevinDing1/master
KevinDing1 Dec 6, 2024
d3abef0
Merge master into feature/postreinvent
aws-toolkit-automation Dec 6, 2024
e0c153f
fix(amazonq): use fsPath for project name #6176
ctlai95 Dec 7, 2024
9f5bfe4
fix(amazonq): Improved LLM code review for file review #6162
ashishrp-aws Dec 7, 2024
5f76b56
deps(core): update dependencies #6169
jpinkney-aws Dec 7, 2024
55fba4b
Merge master into feature/postreinvent
aws-toolkit-automation Dec 7, 2024
ed15bbc
telemetry(cwl): LiveTail metrics
keeganirby Dec 7, 2024
38850f7
fix(amazonq): update "explore agents" button on hover #6170
jpinkney-aws Dec 7, 2024
1619b72
Merge master into feature/postreinvent
aws-toolkit-automation Dec 7, 2024
226dd6f
telemetry(amazonq): requestId for amazonq_utgGenerateTests event #6181
laileni-aws Dec 9, 2024
7a47daa
Merge master into feature/postreinvent
aws-toolkit-automation Dec 9, 2024
aff84c8
test(perf): increase thresholds of perf tests #6185
Hweinstock Dec 9, 2024
e300353
build(jscpd): validate branch name before running CI (#6124)
Hweinstock Dec 9, 2024
39f83db
Merge master into feature/postreinvent
aws-toolkit-automation Dec 9, 2024
7cefa67
test(stepfunctions): failing integration test after ASL update #6188
witness-me Dec 9, 2024
73d6dd6
build(ci): only validate branch name on pull request (#6190)
Hweinstock Dec 9, 2024
56e720e
Merge master into feature/postreinvent
aws-toolkit-automation Dec 9, 2024
292e35e
Merge feature/postreinvent
justinmk3 Dec 9, 2024
f171fcc
Merge master into feature/postreinvent
aws-toolkit-automation Dec 9, 2024
b80529e
test(amazonq): more tests for /transform #6183
dhasani23 Dec 9, 2024
0ba37d8
Merge 'public/master' into feature/cwltail
justinmk3 Dec 9, 2024
ca0c441
Merge master into feature/postreinvent
aws-toolkit-automation Dec 9, 2024
9ab2df0
lint
justinmk3 Dec 9, 2024
8b0bbc9
Merge master into feature/cwltail
justinmk3 Dec 9, 2024
401f24e
changelog
justinmk3 Dec 9, 2024
7975e0e
Merge master into feature/cwltail
aws-toolkit-automation Dec 9, 2024
65882be
Merge master into feature/postreinvent
aws-toolkit-automation Dec 9, 2024
12f743c
Merge master into feature/cwltail
aws-toolkit-automation Dec 10, 2024
4018c96
Release 1.40.0
Dec 10, 2024
84343f2
Release 3.38.0
Dec 10, 2024
694e4d5
docs(cwl): changelog #6200
keeganirby Dec 10, 2024
2bdc854
Update version to snapshot version: 1.41.0-SNAPSHOT
Dec 10, 2024
7aa5c54
Update version to snapshot version: 3.39.0-SNAPSHOT
Dec 10, 2024
b702dcd
Merge release into master
Dec 10, 2024
91cd611
Merge master into feature/cwltail
aws-toolkit-automation Dec 10, 2024
11b5100
telemetry(amazonq): folder level telemetry data undefined issue #6202
KevinDing1 Dec 10, 2024
3a5642e
refactor(amazonq): move utils functions to dedicated file (#6165)
dhasani23 Dec 10, 2024
70a9295
fix(amazonq): reduce system status poll freq #6199
leigaol Dec 10, 2024
5a23c31
Merge master into feature/cwltail
aws-toolkit-automation Dec 10, 2024
46e973f
fix(logs): noisy git output in logs #6192
ctlai95 Dec 10, 2024
f9a003e
Merge master into feature/cwltail
aws-toolkit-automation Dec 10, 2024
b3823d4
ci: drop codecov "tests" coverage #6204
justinmk3 Dec 10, 2024
d8337a0
refactor(amazonq): duplicate code block in test file #6201
dhasani23 Dec 10, 2024
63d2a08
Merge master into feature/cwltail
aws-toolkit-automation Dec 10, 2024
b60eba7
config(amazonq): code issues collapsed by default #6198
ctlai95 Dec 10, 2024
ef926e4
fix(amazonq): revert disable event handler #6191
ctlai95 Dec 10, 2024
0e91a53
Merge master into feature/cwltail
aws-toolkit-automation Dec 10, 2024
5f72ec9
fix(amazonq): always use projectName in zipEntryPath #6182
ctlai95 Dec 10, 2024
04b8d25
Merge master into feature/cwltail
aws-toolkit-automation Dec 10, 2024
0a40071
ci(integ): pull SAM images in "install" phase to avoid timeouts #6179
Hweinstock Dec 10, 2024
9d293fe
Merge master into feature/cwltail
aws-toolkit-automation Dec 10, 2024
2af8b45
fix(auth): malformed SSO cache didn't prompt reauth (#6164)
nkomonen-amazon Dec 11, 2024
e357c2a
Merge master into feature/cwltail
aws-toolkit-automation Dec 11, 2024
e63079d
telemetry(amazonq): cleanup amazonq_utgGenerateTests logic #6212
chungjac Dec 11, 2024
97f1dbe
Merge master into feature/cwltail
aws-toolkit-automation Dec 11, 2024
f57f4f5
Merge #6193 CloudWatch Logs LiveTail
justinmk3 Dec 11, 2024
5bfb867
telemetry(amazonq): Removing session cleanUp before emitting the tele…
laileni-aws Dec 11, 2024
39c8444
test(amazonq): E2E test for /doc (#6215)
avi-alpert Dec 12, 2024
4335e1e
fix(ec2): avoid wiping `authorized_keys` files on each connection (#6…
Hweinstock Dec 12, 2024
b7825d9
fix(amazonq): diagnostics code is incorrect (#6214)
ctlai95 Dec 12, 2024
ce5e05b
feat(amazonq): automatically scroll to fix section (#6210)
ctlai95 Dec 12, 2024
003941e
feat(ec2): enable EC2 experiment #6222
Hweinstock Dec 12, 2024
fc600dc
Release 3.39.0
Dec 12, 2024
19679e6
Update version to snapshot version: 3.40.0-SNAPSHOT
Dec 12, 2024
7789d96
refactor(amazonq): remove dead code #6218
leigaol Dec 12, 2024
c45ecfb
feat(wizards): support async showWhen(), SkipPrompter backward/forwar…
vicheey Dec 12, 2024
75d1d88
fix(ec2): unintuitive icon layout #6224
Hweinstock Dec 12, 2024
d9ba5f1
deps(amazonq): update mynah ui #6227
justinmk3 Dec 12, 2024
d682314
build(lint): disallow node process api, favor Toolkit ChildProcess ap…
Hweinstock Dec 12, 2024
5b5df85
test(perf): update thresholds in buildIndex tests (#6228)
Hweinstock Dec 12, 2024
96ce5ae
fix(auth): SSO failed to get token due to missing 'refreshToken' (#6234)
nkomonen-amazon Dec 13, 2024
0609e5b
refactor(wizard): rename NestedWizard, update docs #6229
vicheey Dec 13, 2024
4d462e2
fix(amazonq): show correct diff after consecutive transformations (#6…
dhasani23 Dec 13, 2024
34bc67e
fix(amazonq): improve welcome page opening detection (#6171)
jpinkney-aws Dec 13, 2024
914bf73
test(core): unskip e2e test failures (#6233)
jpinkney-aws Dec 13, 2024
f87a94b
config(inline-completion): change supplemental context configuration …
Will-ShaoHua Dec 13, 2024
0371970
telemetry(inline-suggestion): fine tune supplemental context strategy…
Will-ShaoHua Dec 13, 2024
5669e87
telemetry(amazonq): add jobId to all metrics #6241
dhasani23 Dec 13, 2024
4728b23
fix(amazonq): apply fix removes other issues (#6236)
ctlai95 Dec 13, 2024
a4c3443
test(techdebt): snooze deadline #6250
Hweinstock Dec 16, 2024
525181b
fix(lambda): template parameter prompter not available from all entry…
vicheey Dec 16, 2024
ad52466
fix(inline-suggestion): replace vscode.cancellation with waitUntil fo…
Will-ShaoHua Dec 16, 2024
32c7b76
test(perf): increase cpu threshold (#6249)
Hweinstock Dec 17, 2024
75eb516
test(core): supress Failure to parse stylesheet message from e2e test…
jpinkney-aws Dec 17, 2024
17dbcd3
Release 1.41.0
Dec 17, 2024
f556380
Release 3.40.0
Dec 17, 2024
39327fb
Update version to snapshot version: 3.41.0-SNAPSHOT
Dec 17, 2024
08ce242
Update version to snapshot version: 1.42.0-SNAPSHOT
Dec 17, 2024
4a0187d
Merge release into master
Dec 17, 2024
7084800
test(inline-suggestion): crossFileContextUtil.test using real clock a…
Will-ShaoHua Dec 17, 2024
b085dd9
fix(amazonq): allow postgresql as target DB #6259
dhasani23 Dec 17, 2024
04a5b68
refactor(settings): non-async isPromptEnabled() #6255
Hweinstock Dec 17, 2024
4ddea68
test(cwl): Fix TailLogGroup test not disposing its event listeners #6267
keeganirby Dec 17, 2024
a3fdfca
test(inline-suggestion): supplementalContextUtil.test failure #6269
Will-ShaoHua Dec 17, 2024
ee2ac96
fix(amazonq): increase GetTransformation maxRetries #6220
dhasani23 Dec 17, 2024
6650cb9
fix(amazonq): retry S3 upload (#6246)
dhasani23 Dec 17, 2024
cfa53f1
docs: mention EC2
justinmk3 Dec 17, 2024
8708c52
test(codecatalyst): only fail test if message is >1 minute off #6265
Hweinstock Dec 18, 2024
ab937e4
ci: editing PR description re-triggers all GitHub Actions #6274
justinmk3 Dec 18, 2024
08c7a32
fix(amazonq): code block extends beyond margins #6253
ctlai95 Dec 18, 2024
df7a3b6
deps(amazonq): update mynah ui to 4.21.3 (#6276)
jpinkney-aws Dec 19, 2024
c449b0d
telemetry(amazonq): send metric data in `onCodeGeneration` #6226
siakmun-aws Dec 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix(lambda): template parameter prompter not available from all entry…
…points #6240

## Problem
SAM CLI guided deploy support template parameter override for both sync
and deploy command. However, the AppBuilder wizard UI only support this
feature for SAM deploy trigger from SAM template context menu or
AppBuilder project node menu button.

## Solution
- Implement nested wizard for template parameter for both sync and
deploy action for all entry points.
- Refactor DeployWizard class for consistency with SyncWizard class
- Add unit test for validating correct backward flow and state
restoration for both wizard.
  • Loading branch information
vicheey authored Dec 16, 2024
commit 525181b88a5bad13a5c0efa963de1ee0d45f60bc
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*!
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/

import * as vscode from 'vscode'
import { Wizard } from '../../../shared/wizards/wizard'
import { createExitPrompter } from '../../../shared/ui/common/exitPrompter'
import * as CloudFormation from '../../../shared/cloudformation/cloudformation'
import { createInputBox } from '../../../shared/ui/inputPrompter'
import { createCommonButtons } from '../../../shared/ui/buttons'
import { getRecentResponse, updateRecentResponse } from '../../../shared/sam/utils'
import { getParameters } from '../../../lambda/config/parameterUtils'

export interface TemplateParametersForm {
[key: string]: any
}

export class TemplateParametersWizard extends Wizard<TemplateParametersForm> {
template: vscode.Uri
preloadedTemplate: CloudFormation.Template | undefined
samTemplateParameters: Map<string, { required: boolean }> | undefined
samCommandUrl: vscode.Uri
commandMementoRootKey: string

public constructor(template: vscode.Uri, samCommandUrl: vscode.Uri, commandMementoRootKey: string) {
super({ exitPrompterProvider: createExitPrompter })
this.template = template
this.samCommandUrl = samCommandUrl
this.commandMementoRootKey = commandMementoRootKey
}

public override async init(): Promise<this> {
this.samTemplateParameters = await getParameters(this.template)
this.preloadedTemplate = await CloudFormation.load(this.template.fsPath)
const samTemplateNames = new Set<string>(this.samTemplateParameters?.keys() ?? [])

samTemplateNames.forEach((name) => {
if (this.preloadedTemplate) {
const defaultValue = this.preloadedTemplate.Parameters
? (this.preloadedTemplate.Parameters[name]?.Default as string)
: undefined
this.form[name].bindPrompter(() =>
this.createParamPromptProvider(name, defaultValue).transform(async (item) => {
await updateRecentResponse(this.commandMementoRootKey, this.template.fsPath, name, item)
return item
})
)
}
})

return this
}

createParamPromptProvider(name: string, defaultValue: string | undefined) {
return createInputBox({
title: `Specify SAM Template parameter value for ${name}`,
buttons: createCommonButtons(this.samCommandUrl),
value: getRecentResponse(this.commandMementoRootKey, this.template.fsPath, name) ?? defaultValue,
})
}
}
304 changes: 95 additions & 209 deletions packages/core/src/shared/sam/deploy.ts

Large diffs are not rendered by default.

160 changes: 110 additions & 50 deletions packages/core/src/shared/sam/sync.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import * as vscode from 'vscode'
import * as path from 'path'
import * as localizedText from '../localizedText'
import { DefaultS3Client } from '../clients/s3Client'
import { Wizard } from '../wizards/wizard'
import { DataQuickPickItem, createMultiPick, createQuickPick } from '../ui/pickerPrompter'
import { DefaultCloudFormationClient } from '../clients/cloudFormationClient'
import * as CloudFormation from '../cloudformation/cloudformation'
Expand All @@ -28,14 +27,14 @@ import { createExitPrompter } from '../ui/common/exitPrompter'
import { getConfigFileUri, SamConfig, validateSamSyncConfig, writeSamconfigGlobal } from './config'
import { cast, Optional } from '../utilities/typeConstructors'
import { pushIf, toRecord } from '../utilities/collectionUtils'
import { getOverriddenParameters } from '../../lambda/config/parameterUtils'
import { getParameters } from '../../lambda/config/parameterUtils'
import { addTelemetryEnvVar } from './cli/samCliInvokerUtils'
import { samSyncParamUrl, samSyncUrl, samUpgradeUrl } from '../constants'
import { openUrl } from '../utilities/vsCodeUtils'
import { showOnce } from '../utilities/messages'
import { IamConnection } from '../../auth/connection'
import { CloudFormationTemplateRegistry } from '../fs/templateRegistry'
import { TreeNode } from '../treeview/resourceTreeDataProvider'
import { isTreeNode, TreeNode } from '../treeview/resourceTreeDataProvider'
import { getSpawnEnv } from '../env/resolveEnv'
import {
getProjectRoot,
Expand All @@ -52,13 +51,19 @@ import { ParamsSource, createSyncParamsSourcePrompter } from '../ui/sam/paramsSo
import { createEcrPrompter } from '../ui/sam/ecrPrompter'
import { BucketSource, createBucketNamePrompter, createBucketSourcePrompter } from '../ui/sam/bucketPrompter'
import { runInTerminal } from './processTerminal'
import {
TemplateParametersForm,
TemplateParametersWizard,
} from '../../awsService/appBuilder/wizards/templateParametersWizard'
import { CompositeWizard } from '../wizards/compositeWizard'

export interface SyncParams {
readonly paramsSource: ParamsSource
readonly region: string
readonly deployType: 'infra' | 'code'
readonly projectRoot: vscode.Uri
readonly template: TemplateItem
readonly templateParameters: any
readonly stackName: string
readonly bucketSource: BucketSource
readonly bucketName: string
Expand Down Expand Up @@ -147,7 +152,30 @@ export const syncFlagItems: DataQuickPickItem<string>[] = [
},
]

export class SyncWizard extends Wizard<SyncParams> {
export enum SamSyncEntryPoints {
SamTemplateFile,
SamConfigFile,
RegionNodeContextMenu,
AppBuilderNodeButton,
CommandPalette,
}

function getSyncEntryPoint(arg: vscode.Uri | AWSTreeNodeBase | TreeNode | undefined) {
if (arg instanceof vscode.Uri) {
if (arg.path.endsWith('samconfig.toml')) {
return SamSyncEntryPoints.SamConfigFile
}
return SamSyncEntryPoints.SamTemplateFile
} else if (arg instanceof AWSTreeNodeBase) {
return SamSyncEntryPoints.RegionNodeContextMenu
} else if (isTreeNode(arg)) {
return SamSyncEntryPoints.AppBuilderNodeButton
} else {
return SamSyncEntryPoints.CommandPalette
}
}

export class SyncWizard extends CompositeWizard<SyncParams> {
registry: CloudFormationTemplateRegistry
public constructor(
state: Pick<SyncParams, 'deployType'> & Partial<SyncParams>,
Expand All @@ -156,17 +184,38 @@ export class SyncWizard extends Wizard<SyncParams> {
) {
super({ initState: state, exitPrompterProvider: shouldPromptExit ? createExitPrompter : undefined })
this.registry = registry
}

public override async init(): Promise<this> {
this.form.template.bindPrompter(() => createTemplatePrompter(this.registry, syncMementoRootKey, samSyncUrl))
this.form.templateParameters.bindPrompter(
async ({ template }) =>
this.createWizardPrompter<TemplateParametersWizard, TemplateParametersForm>(
TemplateParametersWizard,
template!.uri,
samSyncUrl,
syncMementoRootKey
),
{
showWhen: async ({ template }) => {
const samTemplateParameters = await getParameters(template!.uri)
return !!samTemplateParameters && samTemplateParameters.size > 0
},
}
)

this.form.projectRoot.setDefault(({ template }) => getProjectRoot(template))

this.form.paramsSource.bindPrompter(async ({ projectRoot }) => {
const existValidSamConfig: boolean | undefined = await validateSamSyncConfig(projectRoot)
return createSyncParamsSourcePrompter(existValidSamConfig)
})

this.form.region.bindPrompter(() => createRegionPrompter().transform((r) => r.id), {
showWhen: ({ paramsSource }) =>
paramsSource === ParamsSource.Specify || paramsSource === ParamsSource.SpecifyAndSave,
})

this.form.stackName.bindPrompter(
({ region }) =>
createStackPrompter(new DefaultCloudFormationClient(region!), syncMementoRootKey, samSyncUrl),
Expand Down Expand Up @@ -210,6 +259,7 @@ export class SyncWizard extends Wizard<SyncParams> {
paramsSource === ParamsSource.Specify || paramsSource === ParamsSource.SpecifyAndSave,
}
)
return this
}
}

Expand Down Expand Up @@ -296,30 +346,22 @@ export async function saveAndBindArgs(args: SyncParams): Promise<{ readonly boun
return { boundArgs }
}

async function loadLegacyParameterOverrides(template: TemplateItem) {
try {
const params = await getOverriddenParameters(template.uri)
if (!params) {
return
}

return [...params.entries()].map(([k, v]) => `${k}=${v}`)
} catch (err) {
getLogger().warn(`sam: unable to load legacy parameter overrides: %s`, err)
}
}

export async function runSamSync(args: SyncParams) {
telemetry.record({ lambdaPackageType: args.ecrRepoUri !== undefined ? 'Image' : 'Zip' })

const { path: samCliPath, parsedVersion } = await getSamCliPathAndVersion()
const { boundArgs } = await saveAndBindArgs(args)
const overrides = await loadLegacyParameterOverrides(args.template)
if (overrides !== undefined) {
// Leaving this out of the definitions file as this is _very_ niche and specific to the
// implementation. Plus we would have to redefine `sam_sync` to add it.
telemetry.record({ isUsingTemplatesJson: true } as any)
boundArgs.push('--parameter-overrides', ...overrides)

if (!!args.templateParameters && Object.entries(args.templateParameters).length > 0) {
const templateParameters = new Map<string, string>(Object.entries(args.templateParameters))
const paramsToSet: string[] = []
for (const [key, value] of templateParameters.entries()) {
if (value) {
await updateRecentResponse(syncMementoRootKey, args.template.uri.fsPath, key, value)
paramsToSet.push(`ParameterKey=${key},ParameterValue=${value}`)
}
}
paramsToSet.length > 0 && boundArgs.push('--parameter-overrides', paramsToSet.join(' '))
}

// '--no-watch' was not added until https://github.com/aws/aws-sam-cli/releases/tag/v1.77.0
Expand Down Expand Up @@ -431,21 +473,30 @@ export async function prepareSyncParams(
): Promise<Partial<SyncParams>> {
// Skip creating dependency layers by default for backwards compat
const baseParams: Partial<SyncParams> = { skipDependencyLayer: true }
const entryPoint = getSyncEntryPoint(arg)

if (arg instanceof AWSTreeNodeBase) {
// "Deploy" command was invoked on a regionNode.
return { ...baseParams, region: arg.regionCode }
} else if (arg instanceof vscode.Uri) {
if (arg.path.endsWith('samconfig.toml')) {
// "Deploy" command was invoked on a samconfig.toml file.
// TODO: add step to verify samconfig content to skip param source prompter
const config = await SamConfig.fromConfigFileUri(arg)
switch (entryPoint) {
case SamSyncEntryPoints.SamTemplateFile: {
const entryPointArg = arg as vscode.Uri
const template = {
uri: entryPointArg,
data: await CloudFormation.load(entryPointArg.fsPath, validate),
}

return {
...baseParams,
template: template,
projectRoot: getProjectRootUri(template.uri),
}
}
case SamSyncEntryPoints.SamConfigFile: {
const config = await SamConfig.fromConfigFileUri(arg as vscode.Uri)
const params = getSyncParamsFromConfig(config)
const projectRoot = vscode.Uri.joinPath(config.location, '..')
const templateUri = params.templatePath
? vscode.Uri.file(path.resolve(projectRoot.fsPath, params.templatePath))
: undefined
const template = templateUri
const samConfigFileTemplate = templateUri
? {
uri: templateUri,
data: await CloudFormation.load(templateUri.fsPath),
Expand All @@ -454,29 +505,38 @@ export async function prepareSyncParams(
// Always use the dependency layer if the user specified to do so
const skipDependencyLayer = !config.getCommandParam('sync', 'dependency_layer')

return { ...baseParams, ...params, template, projectRoot, skipDependencyLayer } as SyncParams
return {
...baseParams,
...params,
template: samConfigFileTemplate,
projectRoot,
skipDependencyLayer,
} as SyncParams
}

// "Deploy" command was invoked on a template.yaml file.
const template = {
uri: arg,
data: await CloudFormation.load(arg.fsPath, validate),
case SamSyncEntryPoints.RegionNodeContextMenu: {
const entryPointArg = arg as AWSTreeNodeBase
return { ...baseParams, region: entryPointArg.regionCode }
}

return { ...baseParams, template, projectRoot: getProjectRootUri(template.uri) }
} else if (arg && arg.getTreeItem()) {
// "Deploy" command was invoked on a TreeNode on the AppBuilder.
const templateUri = (arg.getTreeItem() as vscode.TreeItem).resourceUri
if (templateUri) {
const template = {
uri: templateUri,
data: await CloudFormation.load(templateUri.fsPath, validate),
case SamSyncEntryPoints.AppBuilderNodeButton: {
const entryPointArg = arg as TreeNode
const templateUri = (entryPointArg.getTreeItem() as vscode.TreeItem).resourceUri
if (templateUri) {
const template = {
uri: templateUri,
data: await CloudFormation.load(templateUri.fsPath, validate),
}
return {
...baseParams,
template,
projectRoot: getProjectRootUri(templateUri),
}
}
return { ...baseParams, template, projectRoot: getProjectRootUri(template.uri) }
return baseParams
}
case SamSyncEntryPoints.CommandPalette:
default:
return baseParams
}

return baseParams
}

export type SamSyncResult = {
Expand Down
4 changes: 4 additions & 0 deletions packages/core/src/shared/ui/wizardPrompter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ import { Prompter, PromptResult } from './prompter'
* - {@link SingleNestedWizard}
* - {@link DoubleNestedWizard}
*/

// eslint-disable-next-line @typescript-eslint/naming-convention
export const WIZARD_PROMPTER = 'WIZARD_PROMPTER'
export class WizardPrompter<T> extends Prompter<T> {
public get recentItem(): any {
return undefined
Expand Down Expand Up @@ -56,6 +59,7 @@ export class WizardPrompter<T> extends Prompter<T> {
}
}

// eslint-disable-next-line @typescript-eslint/naming-convention
protected async promptUser(): Promise<PromptResult<T>> {
this.response = await this.wizard.run()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,10 @@ describe('DeployTypeWizard', function () {
assert.strictEqual(picker.items.length, 2)
picker.acceptItem(picker.items[1])
})
.handleInputBox('Specify SAM parameter value for SourceBucketName', (inputBox) => {
.handleInputBox('Specify SAM Template parameter value for SourceBucketName', (inputBox) => {
inputBox.acceptValue('my-source-bucket-name')
})
.handleInputBox('Specify SAM parameter value for DestinationBucketName', (inputBox) => {
.handleInputBox('Specify SAM Template parameter value for DestinationBucketName', (inputBox) => {
inputBox.acceptValue('my-destination-bucket-name')
})
.handleQuickPick('Specify parameter source for deploy', async (quickPick) => {
Expand Down Expand Up @@ -98,6 +98,12 @@ describe('DeployTypeWizard', function () {
assert.strictEqual(picker.items.length, 2)
picker.acceptItem(picker.items[0])
})
.handleInputBox('Specify SAM Template parameter value for SourceBucketName', (inputBox) => {
inputBox.acceptValue('my-source-bucket-name')
})
.handleInputBox('Specify SAM Template parameter value for DestinationBucketName', (inputBox) => {
inputBox.acceptValue('my-destination-bucket-name')
})
.handleQuickPick('Specify parameter source for sync', async (quickPick) => {
// Need time to check samconfig.toml file and generate options
await quickPick.untilReady()
Expand Down
Loading
Loading