Ugrás a fő tartalomra

JIRA rest api alapok : hitelesítési típusok

JIRA rest api alapok : hitelesítési típusok


🔐 1. Hitelesítés típusok a JIRA REST API-ban

A leggyakoribb hitelesítési módok:

TípusLeírás
Basic AuthFelhasználónév + API token (nem jelszó!)
OAuth 2.0Nagyvállalati rendszerekben, alkalmazásregisztrációval
Cookie alapúLegacy, de nem javasolt
AjánlottBasic Auth + API Token

🛠️ 2. JIRA REST API Basic Auth + Python requests példa

📦 Követelmény:

---bash
pip install requests

🔑 API Token létrehozása

  1. Atlassian fiók → Manage your API tokens

  2. Hozz létre új tokent (pl. JIRA Reporting néven)


📡 3. Teljes Python példa: JIRA REST API lekérdezés + custom mezők

---python
import requests
from requests.auth import HTTPBasicAuth import json # Beállítások JIRA_BASE_URL = "https://yourcompany.atlassian.net" JIRA_USERNAME = "your.email@company.com" JIRA_API_TOKEN = "your_api_token" JQL_QUERY = 'project = DEMO AND statusCategory != Done ORDER BY created DESC' FIELDS = ['summary', 'status', 'customfield_10021'] # Ügyfél prioritás pl. # REST API végpont url = f"{JIRA_BASE_URL}/rest/api/2/search" # Paraméterek: JQL + mezők + paging params = { "jql": JQL_QUERY, "maxResults": 50, "startAt": 0, "fields": ",".join(FIELDS) } # Hitelesítés auth = HTTPBasicAuth(JIRA_USERNAME, JIRA_API_TOKEN) headers = { "Accept": "application/json" } # Lekérdezés response = requests.get(url, headers=headers, params=params, auth=auth) if response.status_code == 200: data = response.json() for issue in data['issues']: issue_id = issue['id'] summary = issue['fields'].get('summary') priority = issue['fields'].get('customfield_10021', {}).get('value', None) print(f"{issue_id}: {summary} → Prioritás: {priority}") else: print(f"Hiba: {response.status_code} - {response.text}")

🔄 4. Paging (több mint 50 találat kezelése)

---python
start_at = 0
page_size = 50 while True: params["startAt"] = start_at response = requests.get(url, headers=headers, params=params, auth=auth) data = response.json() issues = data.get("issues", []) if not issues: break for issue in issues: # feldolgozás... start_at += page_size if start_at >= data["total"]: break

🧩 5. Custom mezők azonosítása (admin jog kellhet)

  • REST végpont: /rest/api/2/field

---python
response = requests.get(f"{JIRA_BASE_URL}/rest/api/2/field", headers=headers, auth=auth)
fields = response.json() for f in fields: if "Ügyfél prioritás" in f['name']: print(f"{f['id']} → {f['name']}")

Ez segít lekérdezni pl. hogy Ügyfél prioritás valójában customfield_10021.


🔐 Tipp: API Token védelme

  • Ne tárold kódban → használj .env vagy secrets.json fájlt.

  • Példa .env:

---ini
JIRA_USERNAME=your.email@company.com
JIRA_API_TOKEN=abc123...

Pythonban betöltés:

---python
import os
from dotenv import load_dotenv load_dotenv() JIRA_USERNAME = os.getenv("JIRA_USERNAME") JIRA_API_TOKEN = os.getenv("JIRA_API_TOKEN")

✅ Összefoglalás

LépésEszköz / ModulFeladat
1.AtlassianAPI token létrehozása
2.Python requestsREST API hívás Basic Auth-tal
3.search endpointJQL-lel adatlekérdezés, mezők kiválasztása
4.startAt paraméterTeljes adatlapozás
5./field endpointCustom mezők ID-jének beazonosítása
6.JSON parsingMezők feldolgozása, mentés CSV-be vagy DB-be




✅ Teendők a működő kapcsolat érdekében:

  1. Állítsd be a valódi JIRA címed:
    .env fájlba vagy közvetlenül a kódban add meg:

    ---dotenv
    JIRA_USERNAME=valodi.felhasznalo@ceged.hu JIRA_API_TOKEN=<itt_az_API_tokened>
  2. JIRA_BASE_URL=https://<sajat-szervered>.atlassian.net
  3. JIRA API token létrehozás (ha még nincs):

  4. Python-környezet újraindítás / .env betöltés ellenőrzése:
    Ha nem töltődnek be a változók, nyomtatással ellenőrizd:

    ---python print(JIRA_BASE_URL, JIRA_USERNAME, JIRA_API_TOKEN[:4] + "...")

✳️ Teszt URL a JIRA eléréshez:

Próbáld meg böngészőből vagy curl-lel elérni:

---bash
https://<sajat-szervered>.atlassian.net/rest/api/2/myself

Ez egy egyszerű endpoint, ami visszaadja a felhasználói adatokat – jó tesztre.








Megjegyzések