n8n_node_librebooking/CONTRIBUTING.md

4.7 KiB

Beitragen zum LibreBooking n8n Node

Vielen Dank für dein Interesse, zu diesem Projekt beizutragen! 🎉

Inhaltsverzeichnis

Code of Conduct

Dieses Projekt folgt einem Code of Conduct. 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

# 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

# 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

docker-compose up --build

Code-Richtlinien

TypeScript

  • Verwende strenge Typisierung (strict: true)
  • Vermeide any wo möglich
  • Dokumentiere komplexe Funktionen mit JSDoc

Formatierung

# Code formatieren
npm run format

# Linting prüfen
npm run lint

# Linting mit automatischer Korrektur
npm run lintfix

Commit Messages

Wir folgen Conventional Commits:

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:

    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:

    npm run lint
    npm run build
    # Manuell in n8n testen
    
  4. Commit und Push:

    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

## 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

## 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! 🙏