Krisztian Mezei 3 viikkoa sitten
vanhempi
sitoutus
836be666ff
1 muutettua tiedostoa jossa 132 lisäystä ja 0 poistoa
  1. 132 0
      README.md

+ 132 - 0
README.md

@@ -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.