Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions BRANCH_PROTECTION_CONFIG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# 🛡️ Branch Protection Configuration

## Empfohlene Einstellungen für main-Branch

### Basis-Schutz
- ✅ **Require a pull request before merging**
- Required approving reviews: `1`
- Dismiss stale PR approvals when new commits are pushed: `✅`
- Require review from code owners: `❌` (für Solo-Entwicklung)

### Status Checks
- ✅ **Require status checks to pass before merging**
- Require branches to be up to date before merging: `✅`
- Required status checks:
- `test (3.9)`
- `test (3.10)`
- `test (3.11)`
- `test (3.12)`

### Erweiterte Einstellungen
- ✅ **Require conversation resolution before merging**
- ❌ **Require signed commits** (optional)
- ❌ **Include administrators** (für Solo-Entwicklung)
- ❌ **Allow force pushes**
- ❌ **Allow deletions**

## Nach der Aktivierung

### Neuer Workflow:
```bash
# 1. Feature-Branch erstellen
git checkout -b feature/neue-funktion

# 2. Änderungen machen und committen
git add .
git commit -m "feat: neue funktion"

# 3. Branch pushen
git push origin feature/neue-funktion

# 4. Pull Request über GitHub UI erstellen

# 5. CI/CD Tests abwarten (automatisch)

# 6. PR mergen über GitHub UI

# 7. Feature-Branch wird automatisch gelöscht
```

### Vorteile:
- 🛡️ **Schutz vor kaputten Commits** auf main
- 🧪 **Automatische Tests** vor jedem Merge
- 📝 **Dokumentierte Änderungen** durch PR-Beschreibungen
- 🔄 **Einfaches Rollback** bei Problemen
- 👥 **Teamwork-ready** für zukünftige Mitarbeiter

## Testen der Branch Protection

Nach der Aktivierung:
1. Versuche direkt auf main zu pushen → sollte blockiert werden
2. Erstelle einen Test-PR → sollte funktionieren
3. Merge den PR → sollte nach erfolgreichen Tests funktionieren
68 changes: 68 additions & 0 deletions GITHUB_RELEASES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# 📦 GitHub Releases Guide

## Übersicht

Dieses Dokument erklärt, wie GitHub Releases für das Bash-Script-Maker Projekt verwaltet werden.

## 🎯 Was sind GitHub Releases?

GitHub Releases sind veröffentlichte Versionen deiner Software, die:
- **Versionsnummern** haben (z.B. v1.8.0)
- **Release Notes** enthalten
- **Assets** (Dateien) bereitstellen können
- **Download-Links** für Benutzer bieten

## 📋 Aktuelle Release-Strategie

### Automatische Releases
- ✅ **Trigger**: Jeder Push auf `main` mit Commit-Message-Patterns
- ✅ **Versioning**: Automatisches Semantic Versioning
- ✅ **Assets**: Python Packages (.whl, .tar.gz)
- ✅ **PyPI**: Automatischer Upload zu PyPI
- ✅ **GitHub Packages**: Docker Images in GHCR

### Release-Patterns
```bash
feat: neue Funktion → Minor Version (1.8.0 → 1.9.0)
fix: Bugfix → Patch Version (1.8.0 → 1.8.1)
BREAKING CHANGE: → Major Version (1.8.0 → 2.0.0)
```

## 🚀 Workflow mit Pull Requests

### 1. Feature-Branch erstellen
```bash
git checkout -b feature/neue-funktion
# Änderungen machen
git commit -m "feat: neue coole Funktion"
git push origin feature/neue-funktion
```

### 2. Pull Request erstellen
```bash
gh pr create --title "Feature: Neue Funktion" --body "Beschreibung..."
```

### 3. Review & Merge
- CI/CD Tests laufen automatisch
- Code Review (optional für Solo-Entwicklung)
- Merge über GitHub UI
- **Automatisches Release** wird ausgelöst

## 📊 Release-Historie

Aktuell haben wir **30+ Tags** erstellt:
- v0.1.0 bis v1.9.0
- Vollständige Historie auf GitHub verfügbar
- Jede Version mit eigenen Release Notes

## 🛠️ Nächste Schritte

1. **Branch Protection** aktivieren
2. **Pull Request Template** erstellen
3. **Issue Templates** hinzufügen
4. **Automatische Changelog** Generation

---

*Erstellt als Teil des Pull-Request-Workflows*