Gitea-Workflow aktualisiert

blaerf 2025-11-28 05:53:20 +01:00
parent 0ca704141e
commit 8af6397084

@ -4,21 +4,33 @@ Dieser Leitfaden ist in zwei Rollen unterteilt:
* **Autoren:** Alle, die Code schreiben und einen Pull Request erstellen. * **Autoren:** Alle, die Code schreiben und einen Pull Request erstellen.
* **Reviewer:** Alle, die Code prüfen und genehmigen. * **Reviewer:** Alle, die Code prüfen und genehmigen.
Der `main`-Branch ist erreichbar unter:
- Produktion (`main`): https://itfa.schraubenfuzzi.de
Der `develop`-Branch stellt den aktuellen Teststand bereit und ist erreichbar unter:
- Test (`develop`): https://test.itfa.schraubenfuzzi.de
(zeigt auf `C:\web\PHP_AdminTool_Projekt_staging`)
--- ---
## Gitea Workflow für Autoren ## Gitea Workflow für Autoren
Dies ist der Leitfaden für jeden, der Code schreibt (ein "Autor"), ein Feature hinzufügt oder einen Bug behebt. Dein Ziel ist es, deine Änderungen sicher und geprüft in den `main`-Branch zu bekommen. Dies ist der Leitfaden für jeden, der Code schreibt (ein "Autor"), ein Feature hinzufügt oder einen Bug behebt. Dein Ziel ist es, deine Änderungen sicher und geprüft in den `main`-Branch zu bekommen.
---
### Die Goldenen Regeln ### Die Goldenen Regeln
1. **Niemals direkt auf `main` pushen.** 1. **Niemals direkt auf `main` pushen.**
2. **Ein Task = Ein Branch.** 2. **Ein Task = Ein Branch.**
3. **Klare Branch-Namen:** `feature/beschreibung` oder `bugfix/beschreibung`. 3. **Klare Branch-Namen:** `feature/beschreibung` oder `bugfix/beschreibung`.
--- ---
### Schritt 1: Vorbereitung (Synchronisieren und Branchen) ### Schritt 1: Vorbereitung (Synchronisieren und Branchen)
Bevor du eine Zeile Code schreibst, stelle sicher, dass du vom aktuellsten Stand des Projekts startest. Bevor du eine Zeile Code schreibst, stelle sicher, dass du vom aktuellsten Stand des Projekts startest.
```bash ```bash
@ -32,7 +44,10 @@ git pull origin main
git switch -c feature/dein-feature-name git switch -c feature/dein-feature-name
``` ```
---
### Schritt 2: Entwickeln (Committen und Pushen) ### Schritt 2: Entwickeln (Committen und Pushen)
Jetzt bist du in deinem eigenen Branch. Arbeite hier an deiner Aufgabe. Erstelle kleine, logische Commits mit klaren Nachrichten. Jetzt bist du in deinem eigenen Branch. Arbeite hier an deiner Aufgabe. Erstelle kleine, logische Commits mit klaren Nachrichten.
```bash ```bash
@ -48,62 +63,168 @@ Wenn du mit deiner Arbeit fertig bist, pushe deinen Branch auf den Gitea-Server.
git push -u origin feature/dein-feature-name git push -u origin feature/dein-feature-name
``` ```
### Schritt 3: Pull Request in Gitea erstellen ---
## Arbeiten mit dem `develop`-Branch (Testumgebung)
Bevor ein Feature in `main` gemergt wird, soll es zunächst in der Testumgebung geprüft werden. Dafür verwenden wir den Branch `develop`. Änderungen in `develop` werden auf die Testinstanz unter
- https://test.itfa.schraubenfuzzi.de
bereitgestellt.
Ziele dieses Abschnitts:
* Entwickler können ihren Code auf dem gemeinsamen Testsystem prüfen.
* `develop` dient als technische Integrationsbasis für die Testumgebung.
* Feature-Branches werden nach dem Merge in `develop` **nicht** gelöscht.
* In `main` landen nur gezielt freigegebene und getestete Features.
---
### Schritt A: Pull Request von Feature-Branch nach `develop`
Sobald dein Feature bereit ist, auf dem Testsystem geprüft zu werden, erstellst du einen Pull Request von deinem Feature-Branch nach `develop`.
Vorgehen:
1. Gehe in Gitea zu unserem Projekt-Repository.
2. Klicke auf den Reiter **"Pull Requests"**.
![Pull-Requests](images/Screenshot1.png)
3. Klicke auf den blauen Knopf **"Neuer Pull-Request"**.
![Neuer Pull-Request](images/Screenshot2.png)
4. Wähle die Branches aus:
* **Basis-Branch (links):** `develop`
* **Vergleichs-Branch (rechts):** dein Feature-Branch (z.B. `feature/dein-feature-name`)
5. Klicke erneut auf **"Neuer Pull-Request"**.
![Pull-Request erstellen](images/Screenshot3.png)
6. Fülle die Maske aus:
* **Titel:** Ein klarer Titel (z.B. "Feature: User-Login zum Testen in develop").
* **Beschreibung:** Kurz beschreiben, was getestet werden soll.
Für Pull Requests nach `develop` ist in der Regel **kein Reviewer erforderlich**. Sie dienen dazu, deinen Stand auf das gemeinsame Testsystem zu bringen.
---
### Schritt B: Selbst-Merge in `develop`
Da `develop` als Test-Branch verwendet wird, kannst du deinen eigenen Pull Request nach `develop` selbst mergen.
1. Öffne deinen Pull Request in Gitea.
2. Klicke auf den blauen **"Merge"**-Knopf.
3. Bestätige den Merge.
**Wichtig:**
Nach dem Merge in `develop` wird dein Feature-Branch **nicht** gelöscht.
Du arbeitest weiter in deinem Feature-Branch und nutzt `develop` nur als Ziel für die Testbereitstellung.
---
### Schritt C: Testen auf der Testumgebung
Nach dem Merge nach `develop` steht dein Code auf der Testinstanz unter
- https://test.itfa.schraubenfuzzi.de
zur Verfügung.
Hier prüfst du beispielsweise:
* Funktioniert das Feature wie erwartet?
* Gibt es offensichtliche Fehler oder Seiteneffekte?
* Verhält sich die Anwendung konsistent mit anderen Features im Teststand?
Wenn du Fehler findest:
1. Nimm die Anpassungen in deinem Feature-Branch vor.
2. Committe und pushe die Änderungen.
3. Erstelle erneut einen Pull Request **von deinem Feature-Branch nach `develop`**.
4. Mergeb den Pull Request erneut selbst.
5. Teste wieder auf der Testinstanz.
Diesen Zyklus wiederholst du, bis dein Feature stabil ist.
---
## Feature erfolgreich getestet → Pull Request nach `main`
Wenn dein Feature auf der Testumgebung stabil läuft und du mit dem Ergebnis zufrieden bist, erstellst du den eigentlichen Pull Request nach `main`. Erst dieser Schritt führt deinen Code in die Produktion (https://itfa.schraubenfuzzi.de).
Der Feature-Branch bleibt bis zum erfolgreichen Merge in `main` bestehen und wird erst danach aufgeräumt.
---
### Schritt 3: Pull Request in Gitea erstellen (Feature-Branch → `main`)
Ein Pull Request ist deine formale Anfrage, deine Änderungen in `main` zu überführen. Ein Pull Request ist deine formale Anfrage, deine Änderungen in `main` zu überführen.
1. Gehe in Gitea zu unserem Projekt-Repository. 1. Gehe in Gitea zu unserem Projekt-Repository.
2. Klicke auf den Reiter **"Pull Requests"**. 2. Klicke auf den Reiter **"Pull Requests"**.
![Pull-Requests](images/Screenshot1.png) ![Pull-Requests](images/Screenshot1.png)
3. Klicke auf den blauen Knopf **"Neuer Pull-Request"**. 3. Klicke auf den blauen Knopf **"Neuer Pull-Request"**.
![Neuer Pull-Request](images/Screenshot2.png) ![Neuer Pull-Request](images/Screenshot2.png)
4. **Wähle die Branches aus:** 4. **Wähle die Branches aus:**
* **Basis-Branch (links):** Wähle `main` (dort soll es hin). * **Basis-Branch (links):** `main` (dort soll es hin).
* **Vergleichs-Branch (rechts):** Wähle deinen Branch (z.B. `feature/dein-feature-name`). * **Vergleichs-Branch (rechts):** dein Feature-Branch (z.B. `feature/dein-feature-name`).
5. Klicke erneut auf **"Neuer Pull-Request"**. 5. Klicke erneut auf **"Neuer Pull-Request"**.
![Pull-Request erstellen](images/Screenshot3.png) ![Pull-Request erstellen](images/Screenshot3.png)
6. Fülle die Maske aus: 6. Fülle die Maske aus:
* **Titel:** Ein klarer Titel (z.B. "Feature: User-Login hinzugefügt"). * **Titel:** Ein klarer Titel (z.B. "Feature: User-Login hinzugefügt").
* **Beschreibung:** Beschreibe kurz, *was* du getan hast und *warum*. * **Beschreibung:** Beschreibe kurz, *was* du getan hast und *warum*. Erwähne idealerweise, dass das Feature bereits in `develop` getestet wurde.
* **Reviewer: (Optional)** Du kannst den Pull Request einem oder mehreren Kollegen direkt zuweisen. Wenn du niemanden auswählst, geht der Pull Request in den allgemeinen Pool und wartet auf eine proaktive Prüfung durch das Team. * **Reviewer (optional):** Du kannst den Pull Request einem oder mehreren Kollegen direkt zuweisen. Wenn du niemanden auswählst, geht der Pull Request in den allgemeinen Pool und wartet auf eine proaktive Prüfung durch das Team.
![Pull-Request Beschreibung](images/Screenshot5.png) ![Pull-Request Beschreibung](images/Screenshot5.png)
---
### Schritt 4: Auf Feedback reagieren ### Schritt 4: Auf Feedback reagieren
Dein Reviewer (oder ein Kollege, der den PR proaktiv prüft) wird sich den Code nun ansehen.
Dein Reviewer (oder ein Kollege, der den Pull Request proaktiv prüft) wird sich den Code nun ansehen.
* **Der Reviewer bittet um Änderungen:** Du siehst Kommentare in deinem Pull Request. * **Der Reviewer bittet um Änderungen:** Du siehst Kommentare in deinem Pull Request.
1. Nimm die Änderungen lokal in deinem Branch vor. 1. Nimm die Änderungen lokal in deinem Feature-Branch vor.
2. Erstelle neue Commits (`git commit ...`). 2. Erstelle neue Commits (`git commit ...`).
3. Pushe deine neuen Commits (`git push`). 3. Pushe deine neuen Commits (`git push`).
4. Der Pull Request aktualisiert sich automatisch. 4. Der Pull Request aktualisiert sich automatisch.
* **Der Reviewer genehmigt (approved) den Pull Request:** Gehe zu Schritt 5. * **Der Reviewer genehmigt (approved) den Pull Request:** Gehe zu Schritt 5.
### Schritt 5: Mergen (Zusammenführen) ---
Sobald dein Pull Request genehmigt wurde, ist er bereit für das Mergen.
1. Gehe zu deinem Pull Request in Gitea. ### Schritt 5: Mergen (Zusammenführen in `main`)
2. Du siehst den blauen "Merge"-Knopf. Klicke auf den kleinen Pfeil daneben.
3. Wähle aus dem Menü die Option **"Squash Commit erstellen"**.
*(Warum? Dies fasst alle deine Commits zu einem einzigen, sauberen Commit in `main` zusammen. Das hält unsere Projekthistorie lesbar.)*
![Pull-Request Review](images/Screenshot12.png) Sobald dein Pull Request genehmigt wurde, ist er bereit für das Mergen in `main`.
4. Bestätige den Merge. 1. Gehe zu deinem Pull Request in Gitea.
2. Du siehst den blauen **"Merge"**-Knopf. Klicke auf den kleinen Pfeil daneben.
3. Wähle aus dem Menü die Option **"Squash Commit erstellen"**.
*(Warum? Dies fasst alle deine Commits zu einem einzigen, sauberen Commit in `main` zusammen. Das hält unsere Projekthistorie lesbar.)*
![Pull-Request Review](images/Screenshot13.png) ![Pull-Request Review](images/Screenshot12.png)
4. Bestätige den Merge.
![Pull-Request Review](images/Screenshot13.png)
---
### Schritt 6: Aufräumen ### Schritt 6: Aufräumen
Dein Code ist jetzt in `main`. Dein alter Branch wird nicht mehr gebraucht.
1. **Remote (Gitea):** Direkt nach dem Merge bietet Gitea meist einen Knopf an, um den Remote-Branch zu löschen. Tu dies. Dein Code ist jetzt in `main`. Dein alter Feature-Branch wird nicht mehr gebraucht.
2. **Lokal (Dein PC):** Wechsle zurück zu `main`, hole den neuen Stand (inkl. deines Merges) und lösche deinen lokalen Branch.
1. **Remote (Gitea):** Direkt nach dem Merge bietet Gitea meist einen Knopf an, um den Remote-Branch zu löschen. Dies sollte nach dem Merge in `main` durchgeführt werden.
2. **Lokal (Dein PC):** Wechsle zurück zu `main`, hole den neuen Stand (inklusive deines Merges) und lösche deinen lokalen Branch.
```bash ```bash
# Zurück zu main # Zurück zu main
@ -118,11 +239,15 @@ git branch -d feature/dein-feature-name
--- ---
## Gitea Workflow für Reviewer ## Gitea Workflow für Reviewer
Deine Rolle als "Reviewer" ist entscheidend für die Qualitätssicherung. Du bist das "Vier-Augen-Prinzip" und stellst sicher, dass nur funktionierender und sauberer Code in den `main`-Branch gelangt. Deine Rolle als "Reviewer" ist entscheidend für die Qualitätssicherung. Du bist das "Vier-Augen-Prinzip" und stellst sicher, dass nur funktionierender und sauberer Code in den `main`-Branch gelangt.
Pull Requests nach `develop` dienen in erster Linie der technischen Bereitstellung auf dem Testsystem und werden in der Regel nicht formal reviewed.
Pull Requests nach `main` werden regulär geprüft.
---
### Das Ziel eines Reviews ### Das Ziel eines Reviews
* **Qualität sichern:** Finden von Bugs oder logischen Fehlern. * **Qualität sichern:** Finden von Bugs oder logischen Fehlern.
@ -132,21 +257,26 @@ Deine Rolle als "Reviewer" ist entscheidend für die Qualitätssicherung. Du bis
--- ---
### Schritt 1: Den Pull Request finden ### Schritt 1: Den Pull Request finden
Es gibt zwei Wege, wie ein Pull Request zu dir kommt: Es gibt zwei Wege, wie ein Pull Request zu dir kommt:
1. **Direkte Zuweisung:** Ein Autor weist dich direkt als Reviewer zu. Du erhältst eine Benachrichtigung in Gitea (z.B. im Dashboard). 1. **Direkte Zuweisung:** Ein Autor weist dich direkt als Reviewer zu. Du erhältst eine Benachrichtigung in Gitea (z.B. im Dashboard).
2. **Proaktive Prüfung (Falls nicht zugewiesen):** Der Autor hat **keinen** Reviewer zugewiesen. In diesem Fall ist es **Aufgabe aller Reviewer**, regelmäßig im Repository-Reiter **"Pull Requests"** nach offenen Anfragen zu suchen, die noch keinen Reviewer haben. 2. **Proaktive Prüfung (falls nicht zugewiesen):** Der Autor hat **keinen** Reviewer zugewiesen. In diesem Fall ist es **Aufgabe aller Reviewer**, regelmäßig im Repository-Reiter **"Pull Requests"** nach offenen Anfragen zu suchen, die noch keinen Reviewer haben.
* **Dies ist entscheidend, damit keine Pull Requests übersehen werden.** * Dies ist entscheidend, damit keine Pull Requests übersehen werden.
* Weise dir den Pull Request selbst zu (falls gewünscht) oder beginne direkt mit Schritt 2. * Weise dir den Pull Request selbst zu (falls gewünscht) oder beginne direkt mit Schritt 2.
![Pull-Requests](images/Screenshot6.png) ![Pull-Requests](images/Screenshot6.png)
---
### Schritt 2: Den Code prüfen ### Schritt 2: Den Code prüfen
Öffne den Pull Request in Gitea. Konzentriere dich auf diese Bereiche: Öffne den Pull Request in Gitea. Konzentriere dich auf diese Bereiche:
![Pull-Request auswählen](images/Screenshot7.png) ![Pull-Request auswählen](images/Screenshot7.png)
1. **Beschreibung:** Verstehst du, *was* der Autor tun wollte? Ist das Ziel klar?
2. **Reiter "Geänderte Dateien":** Das ist der Kern deiner Arbeit. Gehe die Änderungen durch. 1. **Beschreibung:** Verstehst du, *was* der Autor tun wollte? Ist das Ziel klar?
2. **Reiter "Geänderte Dateien":** Das ist der Kern deiner Arbeit. Gehe die Änderungen durch.
* **Funktioniert das?** Löst der Code das beschriebene Problem? * **Funktioniert das?** Löst der Code das beschriebene Problem?
* **Gibt es offensichtliche Fehler?** (z.B. fehlende Fehlerbehandlung). * **Gibt es offensichtliche Fehler?** (z.B. fehlende Fehlerbehandlung).
* **Ist der Code verständlich?** Sind Variablen und Funktionen sinnvoll benannt? * **Ist der Code verständlich?** Sind Variablen und Funktionen sinnvoll benannt?
@ -154,22 +284,25 @@ Es gibt zwei Wege, wie ein Pull Request zu dir kommt:
![Pull-Request öffnen](images/Screenshot8.png) ![Pull-Request öffnen](images/Screenshot8.png)
---
### Schritt 3: Feedback in Gitea geben ### Schritt 3: Feedback in Gitea geben
Während du die Dateien prüfst, kannst du direkt Kommentare hinterlassen: Während du die Dateien prüfst, kannst du direkt Kommentare hinterlassen:
* Fahre über eine Zeilennummer, die du kommentieren möchtest, und klicke auf das Plus-Symbol (+). * Fahre über eine Zeilennummer, die du kommentieren möchtest, und klicke auf das Plus-Symbol (+).
* Schreibe dein Feedback. * Schreibe dein Feedback.
* Wenn du alle Kommentare gesammelt hast, klicke oben auf **"Review abschicken"** (oder "Submit Review"). * Wenn du alle Kommentare gesammelt hast, klicke oben auf **"Review abschicken"** (oder "Submit Review").
---
### Schritt 4: Den Review abschließen ### Schritt 4: Den Review abschließen
Wenn du deinen Review abschickst, musst du eine Entscheidung treffen: Wenn du deinen Review abschickst, musst du eine Entscheidung treffen:
* **Option 1: Kommentare (Request Changes)** * **Option 1: Kommentare (Request Changes)**
* **Wann:** Du hast Fragen oder Fehler gefunden, die der Autor beheben *muss*, bevor gemergt werden kann. * **Wann:** Du hast Fragen oder Fehler gefunden, die der Autor beheben muss, bevor gemergt werden kann.
* **Was passiert:** Der Autor wird benachrichtigt, nimmt deine Änderungen vor und pusht diese. Der Pull Request wartet auf eine erneute Prüfung. * **Was passiert:** Der Autor wird benachrichtigt, nimmt deine Änderungen vor und pusht diese. Der Pull Request wartet auf eine erneute Prüfung.
* **Option 2: Genehmigen (Approve)** * **Option 2: Genehmigen (Approve)**
* **Wann:** Der Code ist fehlerfrei, verständlich und bereit für den `main`-Branch. * **Wann:** Der Code ist fehlerfrei, verständlich und bereit für den `main`-Branch.
* **Was passiert:** Du klickst auf "Approve". Der Pull Request wird als "genehmigt" markiert. * **Was passiert:** Du klickst auf "Approve". Der Pull Request wird als "genehmigt" markiert.