Bytegenau: Zeilen werden an \n getrennt, ein \r bleibt Teil der Zeile; BOM und fehlende letzte Zeilenschaltung bleiben erhalten. Einzige Änderung außerhalb des Blocks: Fehlt der Block und der letzten Zeile die Zeilenschaltung, bekommt sie eine – sonst stünde der Block-Anfang in derselben Zeile.
CRLF-Dateien (überwiegend \r\n) bekommen auch im Block CRLF.
Beschädigter Block (Anfang ohne Ende, mehrere Blöcke, Ende vor Anfang): nie automatisch schreiben, BlockFehler mit Bitte um Handarbeit.
Erkennung am Fingerprint, nicht am Kommentar; der Typ im Blob muss zum Zeilentyp passen.
Optionen: Parser wie sshd (Kommas in Anführungszeichen, \"). Für Benutzereingaben strenger: nur bekannte Optionen, keine Steuerzeichen.
Aussperrschutz: Ein pflicht-Fingerprint (Deployment-Key), der im Block stand, darf nicht verschwinden.
Diff per LCS, für die Anzeige verdichtet (je 2 Zeilen Kontext).
Quelle: docs/issues/015-authorized-keys-parser.md – dort wird dieses Issue gepflegt.
## Ziel
Reine Funktionen zum Lesen und Schreiben von `authorized_keys` mit verwaltetem Block.
## Aufgaben
- [x] Optionen mit Anführungszeichen
- [x] CRLF, BOM, Kommentare, Duplikate
- [x] Block erzeugen/ersetzen, Rest bytegenau
- [x] Aussperrschutz Deployment-Key
## Akzeptanzkriterien
- [x] Umfangreiche Unit-Tests der Randfälle
## Abhängigkeiten
#001
## Notizen / Entscheidungen
- **Bytegenau:** Zeilen werden an `\n` getrennt, ein `\r` bleibt Teil der Zeile; BOM und fehlende letzte Zeilenschaltung bleiben erhalten. Einzige Änderung außerhalb des Blocks: Fehlt der Block und der letzten Zeile die Zeilenschaltung, bekommt sie eine – sonst stünde der Block-Anfang in derselben Zeile.
- **CRLF-Dateien** (überwiegend `\r\n`) bekommen auch im Block CRLF.
- **Beschädigter Block** (Anfang ohne Ende, mehrere Blöcke, Ende vor Anfang): nie automatisch schreiben, `BlockFehler` mit Bitte um Handarbeit.
- **Erkennung am Fingerprint**, nicht am Kommentar; der Typ im Blob muss zum Zeilentyp passen.
- **Optionen:** Parser wie sshd (Kommas in Anführungszeichen, `\"`). Für Benutzereingaben strenger: nur bekannte Optionen, keine Steuerzeichen.
- **Aussperrschutz:** Ein `pflicht`-Fingerprint (Deployment-Key), der im Block stand, darf nicht verschwinden.
- Diff per LCS, für die Anzeige verdichtet (je 2 Zeilen Kontext).
---
Quelle: `docs/issues/015-authorized-keys-parser.md` – dort wird dieses Issue gepflegt.
florian.wilde
added this to the v0.2.0 milestone 2026-10-12 15:12:40 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ziel
Reine Funktionen zum Lesen und Schreiben von
authorized_keysmit verwaltetem Block.Aufgaben
Akzeptanzkriterien
Abhängigkeiten
#001
Notizen / Entscheidungen
\ngetrennt, ein\rbleibt Teil der Zeile; BOM und fehlende letzte Zeilenschaltung bleiben erhalten. Einzige Änderung außerhalb des Blocks: Fehlt der Block und der letzten Zeile die Zeilenschaltung, bekommt sie eine – sonst stünde der Block-Anfang in derselben Zeile.\r\n) bekommen auch im Block CRLF.BlockFehlermit Bitte um Handarbeit.\"). Für Benutzereingaben strenger: nur bekannte Optionen, keine Steuerzeichen.pflicht-Fingerprint (Deployment-Key), der im Block stand, darf nicht verschwinden.Quelle:
docs/issues/015-authorized-keys-parser.md– dort wird dieses Issue gepflegt.