Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
38c9474
Added Algorithm, which returns a sorted list of recipes of an matchin…
PrussianBaron May 4, 2026
ef43421
Added Filtering
PrussianBaron May 4, 2026
e701e83
Tests für Database, passwort überprüfung und email überürufung wurden…
Nicoolaus May 4, 2026
ef3fd46
ci pipeline abhägigkeit mit rein gemacht
Nicoolaus May 4, 2026
d2c72c0
Feat bei Ci yml entfernt
Nicoolaus May 5, 2026
70b7d97
Delete project/data/LazyCookDB.sqlite3
GalacticCodeGambit May 5, 2026
7b20faf
Feature: Forgot Password link in signin modal. Popup for Email Input.…
EdenBernhard May 5, 2026
0885213
Feat/ci cd add lint (#142)
GalacticCodeGambit May 5, 2026
a0b9722
Merge remote-tracking branch 'origin/feat/test' into blatt15
GalacticCodeGambit May 5, 2026
534fef4
Merge remote-tracking branch 'origin/blatt15' into blatt15
GalacticCodeGambit May 5, 2026
05c6f83
update super-linter to version 8.6.0 in CI configuration
GalacticCodeGambit May 7, 2026
e821f76
Test Linter
GalacticCodeGambit May 7, 2026
1930c91
Test Linter
GalacticCodeGambit May 7, 2026
68dcdef
Feature: Email and Password change popup width changed
EdenBernhard May 8, 2026
2225fab
Separate linter configuration into its own workflow file (#149)
GalacticCodeGambit May 8, 2026
7f7f042
Update Node.js version in Dockerfile-frontend to 24.1.0
GalacticCodeGambit May 8, 2026
de9f3e4
Merge remote-tracking branch 'origin/blatt15' into RecipeAlgorithm
PrussianBaron May 8, 2026
64be75d
Tested the recipe algorithim
PrussianBaron May 9, 2026
fb33247
Feature: Fix problem with refresh token and include show Password
EdenBernhard May 9, 2026
48251d2
Feature: forgot password functionality works with redirection to home…
EdenBernhard May 10, 2026
c42c310
Merge branch 'feat/forgot-password-functionality'
EdenBernhard May 10, 2026
bee70b0
added SaveInDB Methods
PrussianBaron May 10, 2026
38dbb2d
Potential fix for pull request finding
EdenBernhard May 10, 2026
b09dcbd
Potential fix for pull request finding
EdenBernhard May 10, 2026
833b80e
Potential fix for pull request finding
EdenBernhard May 10, 2026
9f34b74
Fix: Copilot review suggestion
EdenBernhard May 10, 2026
bb1a733
Fix: Copilot review suggestion
EdenBernhard May 10, 2026
86d97a2
Fix: Copilot review suggestion
EdenBernhard May 10, 2026
a495626
Fix: Copilot review suggestion
EdenBernhard May 10, 2026
0501cd8
Feat: forgot password functionality (#151)
EdenBernhard May 10, 2026
9f2abc6
Merge remote-tracking branch 'origin/blatt17'
EdenBernhard May 10, 2026
e90f276
Feat: show top 5 incredients as options (#152)
EdenBernhard May 11, 2026
8ec11cb
Merge remote-tracking branch 'origin/blatt17' into RecipeAlgorithm
PrussianBaron May 11, 2026
a47db44
Black used
PrussianBaron May 11, 2026
0670d45
Merge pull request #153 to blatt17 from RecipeAlgorithm
PrussianBaron May 11, 2026
4f6c21d
Merge remote-tracking branch 'origin/blatt17'
EdenBernhard May 11, 2026
3c02e9f
Info: Standort von Impressum und Datenschutz
EdenBernhard May 11, 2026
a7ceb96
Added Review-Protokoll-01
GalacticCodeGambit May 12, 2026
42e06bb
Clear participant roles in review protocol
GalacticCodeGambit May 12, 2026
e27f003
Update participants and review focus in documentation
GalacticCodeGambit May 12, 2026
3792403
Made the required RecipeSUCUK changes
PrussianBaron May 18, 2026
5db1e8d
Rename RecipeSucuk.py to RecipeSUCUK.py
PrussianBaron May 18, 2026
74f6e20
Added Search Algorithm for Recipe Name search
PrussianBaron May 18, 2026
f6a85bc
Merge branch 'blatt17' of https://github.com/GalacticCodeGambit/LazyC…
PrussianBaron May 18, 2026
4f25613
SearchRecipeNames now returns a list of recipe Objects
PrussianBaron May 18, 2026
8961073
Add SonarCloud configuration and update requirements for coverage rep…
GalacticCodeGambit May 18, 2026
fa6277f
Test Commit
GalacticCodeGambit May 18, 2026
a686f9b
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 18, 2026
34d8b00
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 19, 2026
ad4f4cf
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 19, 2026
1caad88
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 19, 2026
4d2ee9a
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 19, 2026
641cf9c
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 20, 2026
bd34f2b
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 20, 2026
a749a1e
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 20, 2026
491a418
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 20, 2026
9237ab7
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 20, 2026
6b0310e
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 20, 2026
a88dbe4
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 20, 2026
34b75f7
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 20, 2026
c7647ce
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 20, 2026
0e2bc05
Apply suggestions from code review
GalacticCodeGambit May 20, 2026
154afd3
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 21, 2026
e5c2832
Merge remote-tracking branch 'origin/feat/sonarqube' into feat/sonarqube
EdenBernhard May 21, 2026
5b248c3
Merge branch 'main' into feat/sonarqube
EdenBernhard May 21, 2026
36a4e6a
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 21, 2026
d2819b7
Merge remote-tracking branch 'origin/feat/sonarqube' into feat/sonarqube
EdenBernhard May 21, 2026
521c7cd
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 21, 2026
27c7583
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 21, 2026
5d2f75c
Test: Sonarqube workflow with result print in CI-Pipeline
EdenBernhard May 21, 2026
1eefcae
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
2de83d1
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
c07e869
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
6bb6a65
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
119f4ac
Revert "Apply suggestions from code review"
EdenBernhard May 21, 2026
f38c1c8
Revert "Test: Sonarqube workflow with result print in CI-Pipeline"
EdenBernhard May 21, 2026
0a4051d
Revert "Revert "Apply suggestions from code review""
EdenBernhard May 21, 2026
77bc4c4
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
847fb33
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
2993dc3
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
da348f0
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
ff40d5e
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
5d07259
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
da3856b
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
5cc69db
Test: Bash Print in CI/CD - Pipeline with detailed information about …
EdenBernhard May 21, 2026
f7278d4
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
24359c2
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
b3b683a
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
f16a138
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
3c2e636
Merge remote-tracking branch 'origin/main' into feat/sonarqube
EdenBernhard May 26, 2026
3348791
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
578ee1f
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
5d1d58a
Merge branch 'main' into feat/sonarqube
EdenBernhard May 26, 2026
b54f9dc
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
bb81e48
Merge remote-tracking branch 'origin/feat/sonarqube' into feat/sonarqube
EdenBernhard May 26, 2026
dad8a69
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
6d0cd54
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
7180aa4
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
77cd468
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
5a7f717
Fix: Code Preview from Copilot fixes
EdenBernhard May 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 13 additions & 33 deletions .github/workflows/sonarqube-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,20 @@ jobs:
with:
fetch-depth: 0

- name: Python-Version aus Dockerfile lesen
id: pyver
run: |
VERSION=$(grep -oP '(?<=python:)\d+\.\d+' project/Dockerfile-backend | head -1)
echo "version=$VERSION" >> $GITHUB_OUTPUT

# =====================================================
# Backend-Tests + Coverage
# =====================================================
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ steps.pyver.outputs.version }}
python-version: "3.11"

- name: Install backend deps
working-directory: project/backend
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install "pytest-cov>=5,<7" "coverage>=7"

- name: Run backend tests with coverage
working-directory: project
run: |
Expand All @@ -50,7 +43,7 @@ jobs:
backend/tests/
continue-on-error: true

# =====================================================
# =====================================================
# SonarCloud Scan
# =====================================================
- name: SonarQube Scan
Expand All @@ -62,7 +55,7 @@ jobs:
-Dsonar.organization=galacticcodegambit
-Dproject.settings=sonar-project.properties
-Dsonar.python.coverage.reportPaths=backend/coverage.xml
-Dsonar.python.version=${{ steps.pyver.outputs.version }}
-Dsonar.python.version=3.11
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

Expand All @@ -89,33 +82,27 @@ jobs:
set +e
KEY="GalacticCodeGambit_LazyCook"
OUT="$GITHUB_STEP_SUMMARY"

# Alle relevanten Branch-Metriken auf einen Schwung holen
METRICS="alert_status,bugs,vulnerabilities,code_smells,security_hotspots,security_hotspots_reviewed,coverage,line_coverage,branch_coverage,lines_to_cover,uncovered_lines,duplicated_lines_density,duplicated_blocks,duplicated_files,duplicated_lines,complexity,cognitive_complexity,classes,functions,statements,files,ncloc,comment_lines,comment_lines_density,sqale_rating,reliability_rating,security_rating,security_review_rating,sqale_index,sqale_debt_ratio,reliability_remediation_effort,security_remediation_effort"

URL="${SONAR_HOST}/api/measures/component?component=${KEY}&metricKeys=${METRICS}"
RESP=$(curl -s -u "${SONAR_TOKEN}:" "${URL}")

# Mini-Diagnose im Log
echo "Anfrage: ${URL}"
echo "Response (erste 300 Zeichen):"
echo "${RESP}" | head -c 300
echo ""

# Hilfsfunktion: Metrik-Wert holen, "-" als Fallback
get() {
echo "${RESP}" | jq -r --arg k "$1" \
'(.component.measures[]? | select(.metric==$k) | .value) // "-"' 2>/dev/null
}

# Rating-Buchstabe (1.0..5.0 → A..E)
rating() {
case "$(get "$1")" in
1.0) echo "A" ;; 2.0) echo "B" ;; 3.0) echo "C" ;;
4.0) echo "D" ;; 5.0) echo "E" ;; *) echo "-" ;;
esac
}

# Minuten → Stunden + Minuten
fmt_debt() {
local m=$1
Expand All @@ -126,18 +113,15 @@ jobs:
echo "-"
fi
}

# Quality-Gate-Icon
if [ "${QG_STATUS}" = "PASSED" ] || [ "$(get alert_status)" = "OK" ]; then
QG_ICON=":white_check_mark:"; QG_TXT="PASSED"
else
QG_ICON=":x:"; QG_TXT="FAILED"
fi

DEBT_FMT=$(fmt_debt "$(get sqale_index)")
REL_EFF_FMT=$(fmt_debt "$(get reliability_remediation_effort)")
SEC_EFF_FMT=$(fmt_debt "$(get security_remediation_effort)")

# ===== Backend-Coverage direkt aus coverage.xml =====
COV_FILE="project/backend/coverage.xml"
if [ -f "${COV_FILE}" ]; then
Expand Down Expand Up @@ -166,7 +150,6 @@ jobs:
LINES_VALID="-"; LINES_COVERED="-"; BRANCHES_VALID="-"; BRANCHES_COVERED="-"
UNCOVERED_LINES="-"; UNCOVERED_BRANCHES="-"
fi

# ===== Summary schreiben =====
{
echo "# SonarCloud – Voller Projekt-Report"
Expand All @@ -176,7 +159,6 @@ jobs:
echo "**Commit:** ${GITHUB_SHA:0:7} "
echo "**Dashboard:** [${SONAR_HOST}/project/overview?id=${KEY}](${SONAR_HOST}/project/overview?id=${KEY})"
echo ""

# --- Übersicht ---
echo "## Projekt-Übersicht"
echo ""
Expand All @@ -190,7 +172,6 @@ jobs:
echo "| Funktionen | $(get functions) |"
echo "| Statements | $(get statements) |"
echo ""

# --- Coverage (aus pytest-cov coverage.xml, nicht aus Sonar-API) ---
echo "## Test-Coverage (Backend / Python)"
echo ""
Expand All @@ -208,7 +189,6 @@ jobs:
echo "| Gedeckte Branches | ${BRANCHES_COVERED} |"
echo "| Ungedeckte Branches | ${UNCOVERED_BRANCHES} |"
echo ""

# --- Duplikate ---
echo "## Duplikate"
echo ""
Expand All @@ -219,7 +199,6 @@ jobs:
echo "| Duplikat-Blöcke | $(get duplicated_blocks) |"
echo "| Betroffene Dateien | $(get duplicated_files) |"
echo ""

# --- Komplexität ---
echo "## Komplexität"
echo ""
Expand All @@ -228,7 +207,6 @@ jobs:
echo "| Zyklomatische Komplexität | $(get complexity) |"
echo "| Cognitive Complexity | $(get cognitive_complexity) |"
echo ""

# --- Issues & Ratings ---
echo "## Issues & Bewertungen"
echo ""
Expand All @@ -239,7 +217,6 @@ jobs:
echo "| Maintainability (Code Smells) | $(rating sqale_rating) | $(get code_smells) | ${DEBT_FMT} |"
echo "| Security Hotspots | $(rating security_review_rating) | $(get security_hotspots) | $(get security_hotspots_reviewed)% reviewed |"
echo ""

# --- Technische Schuld ---
echo "## Technische Schuld"
echo ""
Expand All @@ -249,7 +226,6 @@ jobs:
echo "| Debt Ratio | $(get sqale_debt_ratio)% |"
echo ""
} >> "$OUT"

# =====================================================
# Top-10 Files: höchste Komplexität, schlechteste Coverage
# =====================================================
Expand All @@ -259,7 +235,6 @@ jobs:
echo "| Datei | Komplexität | Cognitive | LoC |"
echo "|---|---:|---:|---:|"
} >> "$OUT"

curl -s -u "${SONAR_TOKEN}:" \
"${SONAR_HOST}/api/measures/component_tree?component=${KEY}&metricKeys=complexity,cognitive_complexity,ncloc&qualifiers=FIL&ps=10&s=metric&metricSort=complexity&asc=false" \
| jq -r '.components[]?
Expand All @@ -269,7 +244,6 @@ jobs:
| ((.measures[]? | select(.metric=="ncloc") | .value) // "-") as $n
| "| " + $p + " | " + $c + " | " + $cog + " | " + $n + " |"' \
>> "$OUT"

{
echo ""
echo "## Coverage-Übersicht aller Backend-Dateien"
Expand All @@ -279,7 +253,6 @@ jobs:
echo "| Datei | Coverage | Gedeckte / Deckbare | Ungedeckte Zeilen |"
echo "|---|---:|---:|---:|"
} >> "$OUT"

if [ -f "${COV_FILE}" ]; then
python3 - "${COV_FILE}" >> "$OUT" <<'PYEOF'
import sys, xml.etree.ElementTree as ET
Expand Down Expand Up @@ -307,15 +280,13 @@ jobs:
else
echo "_coverage.xml nicht gefunden._" >> "$OUT"
fi

{
echo ""
echo "## Top-10 Dateien mit den meisten Duplikat-Blöcken"
echo ""
echo "| Datei | Blöcke | Dupl. Zeilen | LoC |"
echo "|---|---:|---:|---:|"
} >> "$OUT"

curl -s -u "${SONAR_TOKEN}:" \
"${SONAR_HOST}/api/measures/component_tree?component=${KEY}&metricKeys=duplicated_blocks,duplicated_lines,ncloc&qualifiers=FIL&ps=10&s=metric&metricSort=duplicated_blocks&asc=false" \
| jq -r '.components[]?
Expand All @@ -326,9 +297,18 @@ jobs:
| select(($b | tonumber) > 0)
| "| " + $p + " | " + $b + " | " + $l + " | " + $n + " |"' \
>> "$OUT"

{
echo ""
echo "---"
echo "_Generiert von SonarCloud-Analyse aus Push auf \`${GITHUB_REF_NAME}\`._"
} >> "$OUT"

- name: Fail job on Quality Gate failure
if: always()
env:
QG_STATUS: ${{ steps.qg.outputs.quality-gate-status }}
run: |
if [ "${QG_STATUS}" != "PASSED" ]; then
echo "::error::SonarCloud Quality Gate ist FAILED – siehe Job Summary."
exit 1
Comment thread
EdenBernhard marked this conversation as resolved.
fi
28 changes: 17 additions & 11 deletions .github/workflows/sonarqube.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,20 @@ jobs:
with:
fetch-depth: 0

- name: Python-Version aus Dockerfile lesen
id: pyver
run: |
VERSION=$(grep -oP '(?<=python:)\d+\.\d+' project/Dockerfile-backend | head -1)
echo "version=$VERSION" >> $GITHUB_OUTPUT

# =====================================================
# BACKEND (Python / FastAPI) – Tests + Coverage
# =====================================================
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ steps.pyver.outputs.version }}
python-version: "3.11"

- name: Install backend dependencies
working-directory: project/backend
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install "pytest-cov>=5,<7" "coverage>=7"

- name: Run backend tests with coverage
working-directory: project
run: |
Expand All @@ -62,7 +55,7 @@ jobs:
-Dsonar.organization=galacticcodegambit
-Dproject.settings=sonar-project.properties
-Dsonar.python.coverage.reportPaths=backend/coverage.xml
-Dsonar.python.version=${{ steps.pyver.outputs.version }}
-Dsonar.python.version=3.11
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Expand Down Expand Up @@ -92,7 +85,7 @@ jobs:

PROJECT_KEY=$(grep -E '^\s*sonar.projectKey\s*=' project/sonar-project.properties \
| head -1 | cut -d'=' -f2 | tr -d ' \r\n')

# PR-Kontext erkennen: dann Daten der PR-Analyse holen, nicht der Main-Branch
PR_PARAM=""
if [ -n "${PR_NUMBER}" ]; then
Expand Down Expand Up @@ -262,4 +255,17 @@ jobs:
echo "| Bewertung | Wert | Anzahl |"
echo "|---|---|---|"
echo "| Reliability Rating | $(rating reliability_rating) | $(get bugs) Bugs |"
echo "| Security Rating | $(rat
echo "| Security Rating | $(rating security_rating) | $(get vulnerabilities) Vulnerabilities |"
echo "| Maintainability Rating | $(rating sqale_rating) | $(get code_smells) Code Smells |"
echo "| Technische Schuld | ${DEBT_FMT} | – |"
} >> "$SUMMARY_FILE"

- name: Fail job on Quality Gate failure
if: always()
env:
QG_STATUS: ${{ steps.sonar-qg.outputs.quality-gate-status }}
run: |
if [ "${QG_STATUS}" != "PASSED" ]; then
echo "::error::SonarCloud Quality Gate ist FAILED – siehe Job Summary."
exit 1
fi
Loading