Ugrás a fő tartalomra

JIRA rest api tesztelése 2

 JIRA rest api tesztelése 2


Egy minta mely egy lépésről lépésre bemutatott teljes megoldás, amit Google Colab-ban futtathatsz:


✅ 🧰 Cél:

  1. JIRA API kapcsolat létrehozása

  2. Összes issue lekérdezése egy projekthez

  3. pandas DataFrame-be rakása

  4. Mentés .xlsx fájlba


🧪 1. Csomagok telepítése Colab-ban

Futtasd elsőként ezt:

---python
!pip install jira pandas openpyxl

🔐 2. Hitelesítési adatok beállítása

👉 Tipp: Inkább Google Colab secret-tel vagy külön .env fájlból olvasd majd be, ne hagyd nyilvánosan.

---python
from jira import JIRA import pandas as pd # --- HITELSÍTÉS --- jira_url = "https://yourname.atlassian.net" # Saját JIRA URL-ed email = "te.email@domain.com" # Atlassian fiók email api_token = "API_TOKEN_IDE" # Előzőleg generált API token # --- KAPCSOLAT --- jira = JIRA(server=jira_url, basic_auth=(email, api_token))

🔎 3. Issue-k lekérdezése adott projektből

Például a DEMO projekt összes feladata:

---python
project_key = "DEMO" jql = f'project = {project_key} ORDER BY created ASC' # Lekérdezés (max 1000-ig - tömbösíteni is lehetne) issues = jira.search_issues(jql, maxResults=1000)

🧾 4. DataFrame létrehozása

Kinyerjük a fontos adatokat:

---python
data = [] for issue in issues: fields = issue.fields data.append({ "Key": issue.key, "Summary": fields.summary, "Status": fields.status.name, "Assignee": fields.assignee.displayName if fields.assignee else "Unassigned", "Reporter": fields.reporter.displayName if fields.reporter else "Unknown", "Created": fields.created, "Updated": fields.updated }) df = pd.DataFrame(data) df.head()

💾 5. Excel fájl mentése

Mentés .xlsx fájlba a Colab munkakönyvtárba:

---python
output_file = "jira_issues_export.xlsx"
df.to_excel(output_file, index=False) # Letöltéshez link: from google.colab import files files.download(output_file)

📦 Kimenet

Ez a folyamat:

  • letölti a kiválasztott projekt összes feladatát

  • átalakítja pandas DataFrame-be

  • elmenti Excel fájlba

  • és letölthetővé teszi






Új példában az összes projekt összes issue-ját letöltse, majd egy Excel fájlba mentse – akár külön munkalapokra projektként, vagy egy közös táblába projektnévvel bővítve. Itt most az egyetlen táblába mentéses verziót mutatom (egyszerűbb és praktikusabb a feldolgozáshoz).


✅ Google Colab: Összes projekt összes issue export .xlsx fájlba

---python
!pip install jira pandas openpyxl

🔐 Hitelesítés és kapcsolat

---python
from jira import JIRA import pandas as pd from google.colab import files # --- JIRA hozzáférés --- jira_url = "https://yourname.atlassian.net" email = "te.email@domain.com" api_token = "API_TOKEN_IDE" # --- JIRA API kapcsolat --- jira = JIRA(server=jira_url, basic_auth=(email, api_token))

🔄 Összes projekt és issue lekérdezése

---python
all_data = [] # Összes projekt lekérdezése projects = jira.projects() for project in projects: project_key = project.key print(f"🔍 Lekérdezés: {project_key}") try: # JQL minden issue-ra a projektben jql = f'project = {project_key} ORDER BY created ASC' issues = jira.search_issues(jql, maxResults=1000) # Igény esetén lapozás implementálható for issue in issues: fields = issue.fields all_data.append({ "Project": project_key, "Issue Key": issue.key, "Summary": fields.summary, "Status": fields.status.name, "Assignee": fields.assignee.displayName if fields.assignee else "Unassigned", "Reporter": fields.reporter.displayName if fields.reporter else "Unknown", "Created": fields.created, "Updated": fields.updated }) except Exception as e: print(f"⚠️ Hiba a(z) {project_key} projekt feldolgozásakor: {e}")

📊 DataFrame és mentés

---python
# DataFrame létrehozás df = pd.DataFrame(all_data) # Excel fájl mentés output_file = "all_jira_issues.xlsx" df.to_excel(output_file, index=False) # Letöltés link files.download(output_file)

🧠 Hasznos megjegyzések

  • maxResults=1000: ha projektjeidben több ezer issue van, akkor lapozásos lekérés (startAt) szükséges.

  • Ha külön sheet-ekbe akarod szétmenteni a projekteket, azt is meg tudjuk csinálni ExcelWriter segítségével.



 készítünk egy részletes JIRA exportálót, ami:

  • lekérdezi az összes projekt összes issue-ját,

  • minden issue-ból a lehető legtöbb adatot kigyűjt (leírás, státusz, assignee, priority, labels, due date, time tracking, stb.),

  • és tartalmazza a történéseket is (kommentek, változások: státuszváltás, mezőmódosítás stb.).

Ez egy erőteljes és részletes Python-alkalmazás lesz, amit Google Colab-ból futtathatsz.


✅ 0. Előkészítés: Csomagok telepítése

---python
!pip install jira pandas openpyxl

🔐 1. JIRA API kapcsolat létrehozása

---python
from jira import JIRA import pandas as pd from google.colab import files # --- JIRA hozzáférés --- jira_url = "https://yourname.atlassian.net" email = "te.email@domain.com" api_token = "API_TOKEN_IDE" # --- Kapcsolat --- jira = JIRA(server=jira_url, basic_auth=(email, api_token))

🔍 2. Részletes issue lekérdezés az összes projektre

---python
detailed_data = [] projects = jira.projects() for project in projects: project_key = project.key print(f"🔄 Projekt: {project_key}") try: # JQL lekérdezés az összes issue-ra jql = f'project = {project_key} ORDER BY created ASC' issues = jira.search_issues(jql, maxResults=1000, expand='changelog') for issue in issues: fields = issue.fields changelog = issue.changelog # Alapadatok kigyűjtése item = { "Project": project_key, "Issue Key": issue.key, "Issue Type": fields.issuetype.name if fields.issuetype else None, "Summary": fields.summary, "Status": fields.status.name if fields.status else None, "Priority": fields.priority.name if fields.priority else None, "Assignee": fields.assignee.displayName if fields.assignee else "Unassigned", "Reporter": fields.reporter.displayName if fields.reporter else "Unknown", "Labels": ", ".join(fields.labels) if fields.labels else "", "Created": fields.created, "Updated": fields.updated, "Due Date": fields.duedate, "Time Spent (sec)": fields.timespent, "Original Estimate (sec)": fields.timeoriginalestimate, "Remaining Estimate (sec)": fields.timeestimate, "Description": fields.description } # --- Változások története (changelog) --- changelog_summary = [] for history in changelog.histories: when = history.created for change in history.items: changelog_summary.append( f"{when}{change.field}: {change.fromString}{change.toString}" ) item["Changelog Summary"] = "\n".join(changelog_summary) # --- Kommentek lekérdezése --- comments = jira.comments(issue) item["Comments"] = "\n---\n".join([f"{c.author.displayName}: {c.body}" for c in comments]) # Hozzáadás detailed_data.append(item) except Exception as e: print(f"⚠️ Hiba: {project_key} projekt: {e}")

📊 3. Excel fájlba exportálás

---python
df = pd.DataFrame(detailed_data) # Fájl mentés output_file = "jira_issues_detailed.xlsx" df.to_excel(output_file, index=False) # Letöltés files.download(output_file)





📦 Milyen mezők szerepelnek benne?

Oszlop neveJelentés
Issue KeyFeladat azonosító pl. PROJ-123
Summary, DescriptionCím, leírás
Issue Type, StatusFeladattípus, aktuális státusz
Assignee, ReporterKiosztott személy, jelentő
Priority, LabelsPrioritás, címkék
Created, UpdatedLétrehozás, módosítás dátuma
Due DateHatáridő (ha van)
Time Spent, EstimateElszámolt idő, becslés
CommentsKommentek tartalma
Changelog SummaryStátusz és mezőváltozások listája


🧠 További lehetőségek:

  • Minden projekt külön sheet-re mentése

  • Képek, csatolmányok kigyűjtése

  • Jira custom mezők lekérdezése (customfield_XXXXX)












Megjegyzések