239 lines
4.7 KiB
Markdown
239 lines
4.7 KiB
Markdown
# 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! 🙏
|