Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f360565ec | ||
|
|
d8542a5dfe |
@@ -26,6 +26,7 @@ In jedem überwachten Repo genügt eine `renovate.json` mit:
|
||||
- Lockfile-Maintenance
|
||||
- **Nur gruppiert, kein Automerge:** Svelte-/Frontend-Toolchain, Spring/Kotlin. Diese PRs schaut man sich an.
|
||||
- **Major-Updates:** kein PR ohne Freigabe per Checkbox im Dependency Dashboard.
|
||||
- **Formatierung:** nach npm-Updates läuft `npm run format --if-present`, und `prettier` samt Plugins ist exakt gepinnt. Siehe unten.
|
||||
|
||||
## Abweichen pro Repo
|
||||
|
||||
@@ -41,3 +42,22 @@ Alles hinter dem `extends` überschreibt das Preset für dieses eine Repo:
|
||||
## Voraussetzung für Automerge
|
||||
|
||||
Der Renovate-User braucht Merge-Rechte, und die CI-Jobs müssen in der Branch Protection des Ziel-Branches als *required status checks* eingetragen sein. Ohne required checks würde Giteas Auto-Merge sofort mergen, ohne auf CI zu warten.
|
||||
|
||||
## Formatierung
|
||||
|
||||
Prettiers Ausgabe hängt an der Version. Als `prettier-plugin-tailwindcss` von 0.8.0 auf 0.8.1 sprang, sortierte es Klassennamen anders und liess in `hamer/website` alle 27 Svelte-Dateien als unformatiert gelten. Gemerkt hat es wochenlang niemand, weil dort kein Lint-Gate lief und `package.json` unverändert blieb — der Sprung kam über `lockFileMaintenance`, das nur das Lockfile anfasst.
|
||||
|
||||
Zwei Regeln wirken dagegen:
|
||||
|
||||
- **Nachformatieren:** Nach npm-Updates führt Renovate `npm run format --if-present` aus und committet das Ergebnis in denselben PR. In Repos ohne `format`-Skript passiert nichts.
|
||||
- **Pinning:** `prettier` und `prettier-plugin-*` stehen mit exakter Version in der `package.json` (`rangeStrategy: "pin"`). Damit kann Lockfile-Maintenance sie nicht mehr unbemerkt verschieben, und jeder Sprung ist im Diff sichtbar. Die Gruppe ist bewusst **nicht** automerged: Fehlt die unten beschriebene Freigabe, wird das Nachformatieren stillschweigend übersprungen, und ein unbeaufsichtigter Merge würde die Drift wieder einschleppen.
|
||||
|
||||
### Voraussetzung: Kommando-Freigabe im Bot
|
||||
|
||||
`postUpgradeTasks` läuft nur, wenn das Kommando im Bot freigegeben ist. Das ist eine Self-Hosted-Einstellung und wird in der Repo-Konfiguration **ignoriert**. Beim Container-Betrieb gehört sie in dessen Umgebung:
|
||||
|
||||
```yaml
|
||||
- 'RENOVATE_ALLOWED_COMMANDS=["^npm run format --if-present$"]'
|
||||
```
|
||||
|
||||
Die Einträge sind reguläre Ausdrücke, gegen die das jeweilige Kommando geprüft wird. Fehlt die Variable, überspringt Renovate den Schritt ohne Fehler — im Log erscheint eine `WARN`-Zeile, dass das Kommando nicht auf der Liste steht.
|
||||
|
||||
+10
-1
@@ -10,7 +10,8 @@
|
||||
"osvVulnerabilityAlerts": true,
|
||||
"vulnerabilityAlerts": {
|
||||
"minimumReleaseAge": null,
|
||||
"schedule": ["at any time"]
|
||||
"schedule": ["at any time"],
|
||||
"automerge": true
|
||||
},
|
||||
"lockFileMaintenance": {
|
||||
"enabled": true,
|
||||
@@ -73,6 +74,14 @@
|
||||
],
|
||||
"groupName": "spring + kotlin"
|
||||
},
|
||||
{
|
||||
"description": "Prettier und seine Plugins exakt pinnen. Die Formatierung haengt an der Version: kommt der Sprung ueber lockFileMaintenance, aendert sich die Ausgabe, ohne dass package.json es zeigt - genau so sind in hamer/website 27 Dateien unbemerkt abgedriftet. Das Nachformatieren erledigt die npm-Regel weiter oben.",
|
||||
"matchManagers": ["npm"],
|
||||
"matchPackageNames": ["prettier", "prettier-plugin-**"],
|
||||
"groupName": "prettier toolchain",
|
||||
"rangeStrategy": "pin",
|
||||
"automerge": false
|
||||
},
|
||||
{
|
||||
"description": "Major-Updates nur nach Freigabe im Dependency Dashboard",
|
||||
"matchUpdateTypes": ["major"],
|
||||
|
||||
Reference in New Issue
Block a user