From e3d2855371da8a8f0d6613c0140b20dac93cb803 Mon Sep 17 00:00:00 2001 From: danielpancake <45727078+danielpancake@users.noreply.github.com> Date: Mon, 15 Jun 2026 15:02:53 +0500 Subject: [PATCH 1/3] docs(lab1): start submission Signed-off-by: danielpancake <45727078+danielpancake@users.noreply.github.com> --- submissions/lab1.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 submissions/lab1.md diff --git a/submissions/lab1.md b/submissions/lab1.md new file mode 100644 index 000000000..38d979193 --- /dev/null +++ b/submissions/lab1.md @@ -0,0 +1 @@ +# Lab 1 submission From 3a4613b8fed785c98389fbd488515200394556df Mon Sep 17 00:00:00 2001 From: danielpancake <45727078+danielpancake@users.noreply.github.com> Date: Mon, 15 Jun 2026 15:12:06 +0500 Subject: [PATCH 2/3] docs(lab1): finish submission Signed-off-by: danielpancake <45727078+danielpancake@users.noreply.github.com> --- submissions/image/lab1/1781518238214.png | Bin 0 -> 22309 bytes submissions/lab1.md | 59 +++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 submissions/image/lab1/1781518238214.png diff --git a/submissions/image/lab1/1781518238214.png b/submissions/image/lab1/1781518238214.png new file mode 100644 index 0000000000000000000000000000000000000000..2998cf45dd7920e17140c9e99a72c58de54091fc GIT binary patch literal 22309 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 literal 0 HcmV?d00001 diff --git a/submissions/lab1.md b/submissions/lab1.md index 38d979193..433aeab27 100644 --- a/submissions/lab1.md +++ b/submissions/lab1.md @@ -1 +1,60 @@ # Lab 1 submission + +```powershell +PS C:\Users\danielpancake> curl -s http://localhost:8080/health | py -m json.tool +{ + "notes": 4, + "status": "ok" +} + +PS C:\Users\danielpancake> curl -s http://localhost:8080/notes | py -m json.tool +[ + { + "id": 1, + "title": "Welcome to QuickNotes", + "body": "This is the project you'll containerize, deploy, monitor, and harden across all 10 labs.", + "created_at": "2026-01-15T10:00:00Z" + }, + { + "id": 2, + "title": "Read app/main.go first", + "body": "Start by understanding the entry point \u0432\u0402\u201d env vars, signal handling, graceful shutdown.", + "created_at": "2026-01-15T10:05:00Z" + }, + { + "id": 3, + "title": "DevOps mantra", + "body": "If it hurts, do it more often.", + "created_at": "2026-01-15T10:10:00Z" + }, + { + "id": 4, + "title": "Endpoint cheat-sheet", + "body": "GET /notes GET /notes/{id} POST /notes DELETE /notes/{id} GET /health GET /metrics", + "created_at": "2026-01-15T10:15:00Z" + } +] + +PS C:\Users\danielpancake> curl -s -X POST http://localhost:8080/notes -H 'Content-Type: application/json' -d '{"title":"hello","body":"first POST"}' | py -m json.tool +{ + "id": 5, + "title": "hello", + "body": "first POST", + "created_at": "2026-06-15T09:55:15.2678968Z" +} +``` + +```powershell +PS D:\Desktop\DevOps-Intro> git log --show-signature -1 + +commit e3d2855371da8a8f0d6613c0140b20dac93cb803 (HEAD -> feature/lab1) +Good "git" signature for 45727078+danielpancake@users.noreply.github.com with ED25519 key SHA256:9X3YQHiqrWoDjoaRwFmJ5YC04AAtZX8GDBNeS3atwEk +Author: danielpancake <45727078+danielpancake@users.noreply.github.com> +Date: Mon Jun 15 15:02:53 2026 +0500 + + docs(lab1): start submission + + Signed-off-by: danielpancake <45727078+danielpancake@users.noreply.github.com> +``` + +![Showing verified badge](image/lab1/1781518238214.png) From a6cbcf06f573db1a70bca71e27fdbc9edb374bf1 Mon Sep 17 00:00:00 2001 From: danielpancake <45727078+danielpancake@users.noreply.github.com> Date: Mon, 15 Jun 2026 15:45:26 +0500 Subject: [PATCH 3/3] docs(lab1): updated submission Signed-off-by: danielpancake <45727078+danielpancake@users.noreply.github.com> --- submissions/lab1.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/submissions/lab1.md b/submissions/lab1.md index 433aeab27..edd776b39 100644 --- a/submissions/lab1.md +++ b/submissions/lab1.md @@ -1,5 +1,9 @@ # Lab 1 submission +## Task 1 + +### QuickNotes run `/health`, `/notes`, `POST /notes` + ```powershell PS C:\Users\danielpancake> curl -s http://localhost:8080/health | py -m json.tool { @@ -44,6 +48,8 @@ PS C:\Users\danielpancake> curl -s -X POST http://localhost:8080/notes -H 'Conte } ``` +### Signed commit verification & Verified badge + ```powershell PS D:\Desktop\DevOps-Intro> git log --show-signature -1 @@ -58,3 +64,19 @@ Date: Mon Jun 15 15:02:53 2026 +0500 ``` ![Showing verified badge](image/lab1/1781518238214.png) + +### Why signed commits matter + +Signed commits use cryptographic signatures to verify who created a commit, helping reviewers trust the source of code changes and prevent impersonation. The `xz-utils` backdoor showed that even trusted contributors can introduce malicious code, but commit signing provides an auditable record of authorship and strengthens software supply-chain security. + +## Task 2 + +The PR template was added to my fork's `main` at `.github/pull_request_template.md` + +## Task 3 + +### GitHub Community + +**Why starring repositories matters:** Starring a repository helps you save projects you find useful and shows support for the people who maintain them. It also helps good open-source projects become more visible to others. + +**How following developers helps:** Following developers lets you see what they are building and contributing to, making it easier to discover useful projects, learn from others, and stay updated on your teammates' work.