From 2b525e35a116bae933f251da8631e4044b03720f Mon Sep 17 00:00:00 2001 From: Danil Malygin Date: Wed, 10 Jun 2026 10:21:41 +0300 Subject: [PATCH 1/2] feat(lab01): add CI smoke test workflow --- .github/workflows/lab01-smoke.yml | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/lab01-smoke.yml diff --git a/.github/workflows/lab01-smoke.yml b/.github/workflows/lab01-smoke.yml new file mode 100644 index 00000000..5f2735a3 --- /dev/null +++ b/.github/workflows/lab01-smoke.yml @@ -0,0 +1,40 @@ +name: Lab 1 Smoke Test + +on: + pull_request: + branches: + - main + +permissions: + contents: read + +jobs: + smoke-test: + runs-on: ubuntu-latest + + services: + juice-shop: + image: bkimminich/juice-shop:v20.0.0 + ports: + - 3000:3000 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Wait for Juice Shop to start + run: | + echo "Polling Juice Shop..." + for i in $(seq 1 30); do + if curl --silent --fail http://localhost:3000/rest/admin/application-version >/dev/null; then + echo "Juice Shop is up!" + exit 0 + fi + echo "Waiting for service to start... ($i/30)" + sleep 2 + done + echo "Juice Shop failed to start in time." + exit 1 + + - name: Verify homepage + run: curl -I http://localhost:3000 From 4e7231fa4eae074d60d9b07dddf5355352929265 Mon Sep 17 00:00:00 2001 From: Danil Malygin Date: Wed, 10 Jun 2026 10:31:14 +0300 Subject: [PATCH 2/2] feat(lab01): add triage report and PR template --- .github/PULL_REQUEST_TEMPLATE.md | 19 ++++++++ submissions/lab1.md | 78 ++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 submissions/lab1.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..422377a2 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,19 @@ +### Goal +Provide a 1-sentence summary of what this PR delivers. + +### Changes +- Added submission report +- Created CI smoke test workflow +- Configured PR template + +### Testing +- `docker run -d --name juice-shop -p 127.0.0.1:3000:3000 bkimminich/juice-shop:v20.0.0` +- Verified HTTP 200 via curl on localhost. + +### Artifacts & Screenshots +- Link to submission file. + +### Checklist +- [ ] Title is clear (`feat(lab01): ` style) +- [ ] No secrets/large temp files committed +- [ ] Submission file at `submissions/submission01.md` exists diff --git a/submissions/lab1.md b/submissions/lab1.md new file mode 100644 index 00000000..db72af9e --- /dev/null +++ b/submissions/lab1.md @@ -0,0 +1,78 @@ +## Triage Report: OWASP Juice Shop + +### Scope & Asset +- Asset: OWASP Juice Shop (local lab instance) +- Image: `bkimminich/juice-shop:v20.0.0` +- Image digest: `sha256:99779f57113bd47312e8fe7b264ff402ee41da76ddda7f2fc842a92ad51827ce` +- Host OS: `EndeavourOS` +- Docker version: `Docker version 29.5.2, build 79eb04c7d8` + +### Deployment Details +- Run command used: `docker run -d --name juice-shop -p 127.0.0.1:3000:3000 bkimminich/juice-shop:v20.0.0` +- Access URL: http://127.0.0.1:3000 +- Network exposure: 127.0.0.1 only? [x] Yes [ ] No +- Container restart policy: default `no` + +### Health Check +- HTTP code on `/`: 200 +- API check (first 200 chars of `/rest/products`): +- ```html + + + + Error: Unexpected path: /rest/products +