From be92ae4fc4f2b959b3d0b1db8f052a6b64c220a2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 14 Sep 2026 09:07:09 +0000 Subject: [PATCH 1/5] chore(deps): update gitea actions --- .gitea/workflows/renovate.yaml | 2 +- .gitea/workflows/security-scan.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/renovate.yaml b/.gitea/workflows/renovate.yaml index ccbdcb2..2486dfa 100644 --- a/.gitea/workflows/renovate.yaml +++ b/.gitea/workflows/renovate.yaml @@ -9,7 +9,7 @@ jobs: renovate: name: Dependency-Updates prüfen & Pull Requests erstellen runs-on: ubuntu-latest - container: ghcr.io/renovatebot/renovate:44.83.0 + container: ghcr.io/renovatebot/renovate:44.85.0 steps: - name: Renovate ausführen run: renovate diff --git a/.gitea/workflows/security-scan.yaml b/.gitea/workflows/security-scan.yaml index 75df4b3..040bef7 100644 --- a/.gitea/workflows/security-scan.yaml +++ b/.gitea/workflows/security-scan.yaml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest env: TRIVY_VERSION: "0.74.0" - OSV_SCANNER_VERSION: "2.5.1" + OSV_SCANNER_VERSION: "2.6.0" steps: - name: Checkout Repository uses: actions/checkout@v7 From d77d76a42177ee51afd2a2a4a1a3271df10b69cd Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 20 Sep 2026 03:06:59 +0000 Subject: [PATCH 2/5] chore(deps): update gitea actions --- .gitea/workflows/renovate.yaml | 2 +- .gitea/workflows/trufflehog-scan.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/renovate.yaml b/.gitea/workflows/renovate.yaml index 2486dfa..3e3f23e 100644 --- a/.gitea/workflows/renovate.yaml +++ b/.gitea/workflows/renovate.yaml @@ -9,7 +9,7 @@ jobs: renovate: name: Dependency-Updates prüfen & Pull Requests erstellen runs-on: ubuntu-latest - container: ghcr.io/renovatebot/renovate:44.85.0 + container: ghcr.io/renovatebot/renovate:44.103.6 steps: - name: Renovate ausführen run: renovate diff --git a/.gitea/workflows/trufflehog-scan.yaml b/.gitea/workflows/trufflehog-scan.yaml index 5e4fcb6..c6457cd 100644 --- a/.gitea/workflows/trufflehog-scan.yaml +++ b/.gitea/workflows/trufflehog-scan.yaml @@ -12,7 +12,7 @@ jobs: name: TruffleHog runs-on: ubuntu-latest env: - TRUFFLEHOG_VERSION: "3.97.4" + TRUFFLEHOG_VERSION: "3.97.5" steps: - name: Checkout Repository uses: actions/checkout@v7 From d799935f26fb0df06a5e9c0d1002fa1d7bf258c2 Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Sun, 20 Sep 2026 23:18:41 +0200 Subject: [PATCH 3/5] =?UTF-8?q?CI:=20Ersetzt=20rohes=20actions/cache=20f?= =?UTF-8?q?=C3=BCr=20Cargo-Build-Artefakte=20durch=20Swatinem/rust-cache?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ein rohes 'actions/cache' auf target/ lieferte zwar einen technischen Cache-Hit, Cargo kompilierte die Abhängigkeiten aber trotzdem neu: der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was älter/neuer als was ist. Swatinem/rust-cache behebt das gezielt (u. a. gezielte Mtime-Korrektur nach dem Restore). Co-Authored-By: Claude Sonnet 5 --- .gitea/workflows/code-quality.yaml | 16 +++++++--------- .gitea/workflows/main.yaml | 16 +++++++--------- .gitea/workflows/testing.yaml | 16 +++++++--------- .gitea/workflows/unit-tests.yaml | 16 +++++++--------- 4 files changed, 28 insertions(+), 36 deletions(-) diff --git a/.gitea/workflows/code-quality.yaml b/.gitea/workflows/code-quality.yaml index 8c35d11..dc69eb5 100644 --- a/.gitea/workflows/code-quality.yaml +++ b/.gitea/workflows/code-quality.yaml @@ -24,16 +24,14 @@ jobs: components: clippy, rustfmt cache: false + # Ein rohes 'actions/cache' auf target/ liefert zwar einen technischen Cache-Hit (Dateien + # werden wiederhergestellt), Cargo kompiliert die Abhängigkeiten aber oft trotzdem neu: + # Der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe + # Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was + # älter/neuer als was ist, und sicherheitshalber alles neu baut. Swatinem/rust-cache ist + # genau dafür gebaut (u. a. gezielte Mtime-Korrektur nach dem Restore). - name: Cache Cargo-Abhängigkeiten & Build-Artefakte - uses: actions/cache@v6 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} - restore-keys: | - cargo-${{ runner.os }}- + uses: Swatinem/rust-cache@v2 - name: Formatierung automatisch beheben run: cargo fmt diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml index 8157f26..6db7dcb 100644 --- a/.gitea/workflows/main.yaml +++ b/.gitea/workflows/main.yaml @@ -54,16 +54,14 @@ jobs: toolchain: stable cache: false + # Ein rohes 'actions/cache' auf target/ liefert zwar einen technischen Cache-Hit (Dateien + # werden wiederhergestellt), Cargo kompiliert die Abhängigkeiten aber oft trotzdem neu: + # Der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe + # Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was + # älter/neuer als was ist, und sicherheitshalber alles neu baut. Swatinem/rust-cache ist + # genau dafür gebaut (u. a. gezielte Mtime-Korrektur nach dem Restore). - name: Cache Cargo-Abhängigkeiten & Build-Artefakte - uses: actions/cache@v6 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} - restore-keys: | - cargo-${{ runner.os }}- + uses: Swatinem/rust-cache@v2 - name: Run Tests run: | diff --git a/.gitea/workflows/testing.yaml b/.gitea/workflows/testing.yaml index 44e60dd..fbefcde 100644 --- a/.gitea/workflows/testing.yaml +++ b/.gitea/workflows/testing.yaml @@ -43,16 +43,14 @@ jobs: toolchain: stable cache: false + # Ein rohes 'actions/cache' auf target/ liefert zwar einen technischen Cache-Hit (Dateien + # werden wiederhergestellt), Cargo kompiliert die Abhängigkeiten aber oft trotzdem neu: + # Der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe + # Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was + # älter/neuer als was ist, und sicherheitshalber alles neu baut. Swatinem/rust-cache ist + # genau dafür gebaut (u. a. gezielte Mtime-Korrektur nach dem Restore). - name: Cache Cargo-Abhängigkeiten & Build-Artefakte - uses: actions/cache@v6 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} - restore-keys: | - cargo-${{ runner.os }}- + uses: Swatinem/rust-cache@v2 - name: Run Tests run: | diff --git a/.gitea/workflows/unit-tests.yaml b/.gitea/workflows/unit-tests.yaml index 7703f7f..56c4735 100644 --- a/.gitea/workflows/unit-tests.yaml +++ b/.gitea/workflows/unit-tests.yaml @@ -23,16 +23,14 @@ jobs: toolchain: stable cache: false + # Ein rohes 'actions/cache' auf target/ liefert zwar einen technischen Cache-Hit (Dateien + # werden wiederhergestellt), Cargo kompiliert die Abhängigkeiten aber oft trotzdem neu: + # Der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe + # Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was + # älter/neuer als was ist, und sicherheitshalber alles neu baut. Swatinem/rust-cache ist + # genau dafür gebaut (u. a. gezielte Mtime-Korrektur nach dem Restore). - name: Cache Cargo-Abhängigkeiten & Build-Artefakte - uses: actions/cache@v6 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} - restore-keys: | - cargo-${{ runner.os }}- + uses: Swatinem/rust-cache@v2 - name: Run Tests run: cargo test From 490b8731a74b689b6474338b7b20990ee9267099 Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Sun, 20 Sep 2026 23:27:39 +0200 Subject: [PATCH 4/5] =?UTF-8?q?CI:=20Renovate=20merged=20sichere=20Updates?= =?UTF-8?q?=20automatisch,=20unit-tests=20laufen=20jetzt=20auch=20f=C3=BCr?= =?UTF-8?q?=20PRs=20gegen=20dev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch-/Minor-/Digest-Updates (Cargo, Gitea Actions, Docker-Images) werden künftig automatisch gemergt, sobald alle CI-Checks erfolgreich sind - Major-Updates bleiben weiterhin manuell zu prüfen, da sie eher brechende Änderungen enthalten. Voraussetzung dafür: unit-tests.yaml (der eigentliche 'cargo test'-Lauf) löste bisher nur bei Pull Requests gegen 'testing' aus, nicht gegen 'dev' - Renovate-PRs zielen aber auf 'dev' und wurden damit nie durch einen echten Build/Test abgesichert, nur durch die Security-/Secret- Scans. Jetzt läuft er auch dort. Co-Authored-By: Claude Sonnet 5 --- .gitea/workflows/unit-tests.yaml | 1 + renovate.json | 40 ++++++++++++++++++++++++++++---- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/unit-tests.yaml b/.gitea/workflows/unit-tests.yaml index 56c4735..69175cb 100644 --- a/.gitea/workflows/unit-tests.yaml +++ b/.gitea/workflows/unit-tests.yaml @@ -8,6 +8,7 @@ on: - reopened branches: - testing + - dev jobs: test: diff --git a/renovate.json b/renovate.json index 717bd4d..4ef5c25 100644 --- a/renovate.json +++ b/renovate.json @@ -1,29 +1,59 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": ["config:recommended"], + "extends": [ + "config:recommended" + ], "timezone": "Europe/Berlin", - "schedule": ["before 6am on monday"], + "schedule": [ + "before 6am on monday" + ], "baseBranchPatterns": [ "dev" ], "packageRules": [ { - "matchFileNames": [".gitea/workflows/**"], + "matchFileNames": [ + ".gitea/workflows/**" + ], "groupName": "Gitea Actions", "separateMajorMinor": false, "separateMinorPatch": false }, { - "matchManagers": ["cargo"], + "matchManagers": [ + "cargo" + ], "groupName": "Cargo Dependencies", "separateMajorMinor": false, "separateMinorPatch": false }, { - "matchManagers": ["dockerfile", "docker-compose"], + "matchManagers": [ + "dockerfile", + "docker-compose" + ], "groupName": "Docker-Images", "separateMajorMinor": false, "separateMinorPatch": false + }, + { + "description": "Patch-/Minor-/Digest-Updates automatisch mergen, sobald alle CI-Checks (inkl. Unit-Tests) erfolgreich sind - Major-Updates sind unten explizit ausgenommen (siehe nächste Regel).", + "matchUpdateTypes": [ + "patch", + "minor", + "digest", + "lockFileMaintenance" + ], + "automerge": true, + "automergeType": "pr", + "platformAutomerge": true + }, + { + "description": "Major-Updates immer manuell prüfen, da potenziell brechende Änderungen.", + "matchUpdateTypes": [ + "major" + ], + "automerge": false } ], "customManagers": [ From 22515c4fc592df0d27f21509e7489e498089422e Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Sun, 20 Sep 2026 23:36:52 +0200 Subject: [PATCH 5/5] =?UTF-8?q?CI:=20Renovate-Schedule=20von=20w=C3=B6chen?= =?UTF-8?q?tlich=20auf=20t=C3=A4glich=20verk=C3=BCrzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 'before 6am on monday' erlaubte nur einmal pro Woche automatische PR-Erstellung - jeder außerhalb dieses Fensters gefundene Update musste im Dependency-Dashboard-Issue erst manuell abgehakt werden ("Awaiting Schedule"), auch nach der letzten Automerge-Änderung. 'before 6am' (ohne Wochentag) öffnet das Fenster jetzt täglich, PRs für sichere Updates laufen dadurch spürbar zeitnaher und größtenteils ohne manuelles Abhaken durch. Co-Authored-By: Claude Sonnet 5 --- renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 4ef5c25..0bb42ae 100644 --- a/renovate.json +++ b/renovate.json @@ -5,7 +5,7 @@ ], "timezone": "Europe/Berlin", "schedule": [ - "before 6am on monday" + "before 6am" ], "baseBranchPatterns": [ "dev"