|
|
@@ -1 +1,133 @@
|
|
|
|
|
|
+# Git hook – Jira automatikus frissítés
|
|
|
+
|
|
|
+## Mi ez és mire jó?
|
|
|
+
|
|
|
+Amikor fejlesztés közben `git pull` parancsot futtatunk, a beérkező commitok üzenetéből automatikusan kiszedi a Jira ticket azonosítókat, és kilistázza őket a konzolon.
|
|
|
+
|
|
|
+A commit üzenetek formátuma:
|
|
|
+```
|
|
|
+BBUSAPPBE-496 Modulok összeszinkronizálása - Staging környezetben
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Hogyan működik?
|
|
|
+
|
|
|
+A Git **hook** egy script, amely automatikusan lefut egy Git művelet előtt vagy után. Ebben az esetben a `post-merge` hookot használjuk, amely **minden `git pull` után** lefut.
|
|
|
+
|
|
|
+A script három lépésben dolgozik:
|
|
|
+
|
|
|
+1. **Lekéri az új commitok üzeneteit** – csak azokat, amelyek a pull során érkeztek be
|
|
|
+2. **Kiszedi a Jira ticket ID-kat** – nagybetűk + kötőjel + szám formátum alapján (pl. `BBUSAPPBE-496`)
|
|
|
+3. **Kiírja a konzolra** az érintett ticketeket
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## A script
|
|
|
+
|
|
|
+```bash
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+TICKETS=$(git log ORIG_HEAD..HEAD --pretty="%s" | grep -oE '[A-Z]+-[0-9]+' | sort -u)
|
|
|
+
|
|
|
+if [ -z "$TICKETS" ]; then
|
|
|
+ echo "Nem találtam Jira ticket ID-t a commitokban."
|
|
|
+else
|
|
|
+ echo "Érintett Jira ticketek:"
|
|
|
+ for TICKET in $TICKETS; do
|
|
|
+ echo " - $TICKET"
|
|
|
+ done
|
|
|
+fi
|
|
|
+```
|
|
|
+
|
|
|
+### A parancsok magyarázata
|
|
|
+
|
|
|
+| Parancs | Mit csinál |
|
|
|
+|---|---|
|
|
|
+| `git log ORIG_HEAD..HEAD` | A pull által behozott új commitokat listázza |
|
|
|
+| `--pretty="%s"` | Csak a commit üzenetét adja vissza |
|
|
|
+| `grep -oE '[A-Z]+-[0-9]+'` | Megkeresi a Jira ticket formátumú szövegeket |
|
|
|
+| `sort -u` | Rendezi és eltávolítja a duplikátumokat |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Beállítás lépései
|
|
|
+
|
|
|
+### 1. Lépj be a git repóba
|
|
|
+
|
|
|
+```bash
|
|
|
+cd mezeik_teszt
|
|
|
+```
|
|
|
+
|
|
|
+### 2. Hozd létre a `.githooks` mappát
|
|
|
+
|
|
|
+```bash
|
|
|
+mkdir -p .githooks
|
|
|
+```
|
|
|
+
|
|
|
+### 3. Hozd létre a hook fájlt
|
|
|
+
|
|
|
+```bash
|
|
|
+nano .githooks/post-merge
|
|
|
+```
|
|
|
+
|
|
|
+Illeszd be a fenti scriptet, majd mentés: `Ctrl+O`, kilépés: `Ctrl+X`
|
|
|
+
|
|
|
+### 4. Tedd futtathatóvá
|
|
|
+
|
|
|
+```bash
|
|
|
+chmod +x .githooks/post-merge
|
|
|
+```
|
|
|
+
|
|
|
+### 5. Állítsd be a Git hookpath-t
|
|
|
+
|
|
|
+```bash
|
|
|
+git config core.hooksPath .githooks
|
|
|
+```
|
|
|
+
|
|
|
+### 6. Ellenőrzés
|
|
|
+
|
|
|
+```bash
|
|
|
+git config core.hooksPath # → .githooks
|
|
|
+ls -l .githooks/ # → post-merge látható
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Tesztelés
|
|
|
+
|
|
|
+```bash
|
|
|
+# Teszt commit létrehozása
|
|
|
+git commit --allow-empty -m "BBUSAPPBE-506 teszt commit"
|
|
|
+
|
|
|
+# Pull futtatása (hook automatikusan lefut)
|
|
|
+git pull
|
|
|
+```
|
|
|
+
|
|
|
+Várt eredmény a konzolon:
|
|
|
+```
|
|
|
+Érintett Jira ticketek:
|
|
|
+ - BBUSAPPBE-506
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Fontos tudnivalók
|
|
|
+
|
|
|
+- A `.githooks` mappa **nem szinkronizálódik** automatikusan a remote repóval – minden fejlesztőnek egyenként kell beállítania
|
|
|
+- Ha a `.githooks` mappát a repóba szeretnéd verziókövetni (hogy a csapat könnyen átvehesse), add hozzá a commithoz:
|
|
|
+ ```bash
|
|
|
+ git add .githooks/
|
|
|
+ git commit -m "Git hookok hozzáadása"
|
|
|
+ ```
|
|
|
+ Ezután minden fejlesztő csak ennyit futtat a klónozás után:
|
|
|
+ ```bash
|
|
|
+ git config core.hooksPath .githooks
|
|
|
+ ```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Következő lépés (opcionális)
|
|
|
+
|
|
|
+A script bővíthető úgy, hogy ne csak kiírja a ticketeket, hanem automatikusan **frissítse is a Jirát** – például átmozgassa a ticketeket a „Kiadásra" oszlopba, vagy beállítsa a Fix Version mezőt. Ehhez Jira API token szükséges.
|