# Beitragen zum LibreBooking n8n Node Vielen Dank für dein Interesse, zu diesem Projekt beizutragen! 🎉 ## Inhaltsverzeichnis - [Code of Conduct](#code-of-conduct) - [Wie kann ich beitragen?](#wie-kann-ich-beitragen) - [Entwicklungsumgebung einrichten](#entwicklungsumgebung-einrichten) - [Code-Richtlinien](#code-richtlinien) - [Pull Request Prozess](#pull-request-prozess) - [Bug Reports](#bug-reports) - [Feature Requests](#feature-requests) ## Code of Conduct Dieses Projekt folgt einem [Code of Conduct](CODE_OF_CONDUCT.md). Mit deiner Teilnahme erklärst du dich einverstanden, diesen einzuhalten. ## Wie kann ich beitragen? ### Bugs melden - Überprüfe zunächst, ob der Bug bereits gemeldet wurde - Erstelle ein Issue mit einer klaren Beschreibung - Füge Schritte zur Reproduktion hinzu - Gib deine Umgebung an (OS, Node.js Version, n8n Version) ### Features vorschlagen - Erstelle ein Issue mit dem Label "enhancement" - Beschreibe den Use Case - Erkläre, warum diese Funktion nützlich wäre ### Code beitragen 1. Forke das Repository 2. Erstelle einen Feature-Branch 3. Implementiere deine Änderungen 4. Schreibe Tests (falls möglich) 5. Erstelle einen Pull Request ## Entwicklungsumgebung einrichten ### Voraussetzungen - Node.js 18.x oder höher - npm 8.x oder höher - n8n (global installiert) - Git ### Setup ```bash # Repository klonen git clone https://github.com/DEIN-REPO/n8n-nodes-librebooking.git cd n8n-nodes-librebooking # Dependencies installieren npm install # Build ausführen npm run build # Für Entwicklung: Watch-Modus npm run dev ``` ### Lokales Testen ```bash # Node mit n8n verlinken npm link # In n8n-Verzeichnis verlinken cd $(npm root -g)/n8n npm link n8n-nodes-librebooking # n8n starten n8n start ``` ### Mit Docker testen ```bash docker-compose up --build ``` ## Code-Richtlinien ### TypeScript - Verwende strenge Typisierung (`strict: true`) - Vermeide `any` wo möglich - Dokumentiere komplexe Funktionen mit JSDoc ### Formatierung ```bash # Code formatieren npm run format # Linting prüfen npm run lint # Linting mit automatischer Korrektur npm run lintfix ``` ### Commit Messages Wir folgen [Conventional Commits](https://www.conventionalcommits.org/): ``` feat: Neue Funktion hinzugefügt fix: Bug behoben docs: Dokumentation aktualisiert style: Formatierung geändert (kein Code) refactor: Code umstrukturiert test: Tests hinzugefügt/geändert chore: Build-Prozess/Tools geändert ``` Beispiele: ``` feat(reservation): Check-In Operation hinzugefügt fix(auth): Session-Token wird jetzt korrekt erneuert docs: Installationsanleitung aktualisiert ``` ### Projektstruktur ``` n8n-nodes-librebooking/ ├── credentials/ # Credential-Definitionen │ └── LibreBookingApi.credentials.ts ├── nodes/ # Node-Definitionen │ ├── LibreBooking/ │ │ ├── LibreBooking.node.ts │ │ └── librebooking.svg │ └── LibreBookingTrigger/ │ ├── LibreBookingTrigger.node.ts │ └── librebooking.svg ├── test/ # Tests ├── workflows/ # Beispiel-Workflows ├── dist/ # Kompilierte Dateien (generiert) └── package.json ``` ## Pull Request Prozess 1. **Branch erstellen:** ```bash git checkout -b feature/meine-funktion ``` 2. **Änderungen implementieren:** - Halte dich an die Code-Richtlinien - Aktualisiere die Dokumentation - Füge Tests hinzu (falls sinnvoll) 3. **Testen:** ```bash npm run lint npm run build # Manuell in n8n testen ``` 4. **Commit und Push:** ```bash git add . git commit -m "feat: Meine neue Funktion" git push origin feature/meine-funktion ``` 5. **Pull Request erstellen:** - Beschreibe deine Änderungen - Referenziere relevante Issues - Warte auf Review ### PR Checkliste - [ ] Code folgt den Richtlinien - [ ] Linting/Formatting bestanden - [ ] Build erfolgreich - [ ] Dokumentation aktualisiert - [ ] CHANGELOG.md aktualisiert - [ ] Keine Secrets/Credentials im Code ## Bug Reports ### Template ```markdown ## Beschreibung [Klare Beschreibung des Bugs] ## Schritte zur Reproduktion 1. ... 2. ... 3. ... ## Erwartetes Verhalten [Was sollte passieren?] ## Tatsächliches Verhalten [Was passiert stattdessen?] ## Umgebung - OS: [z.B. Ubuntu 22.04] - Node.js: [z.B. 20.10.0] - n8n: [z.B. 1.20.0] - LibreBooking: [z.B. 2.8.5] ## Logs/Screenshots [Falls vorhanden] ``` ## Feature Requests ### Template ```markdown ## Beschreibung [Beschreibe die gewünschte Funktion] ## Use Case [Warum wird diese Funktion benötigt?] ## Vorgeschlagene Lösung [Falls du eine Idee hast] ## Alternativen [Andere Möglichkeiten, die du in Betracht gezogen hast] ``` --- Vielen Dank für deinen Beitrag! 🙏