first commit
This commit is contained in:
55
sprint_exporter.py
Normal file
55
sprint_exporter.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import requests
|
||||
from requests.auth import HTTPBasicAuth
|
||||
|
||||
# --- CONFIGURATION ---
|
||||
JIRA_DOMAIN = "flowbird.atlassian.net"
|
||||
EMAIL = "david.rice@arrive.com"
|
||||
API_TOKEN = "ATATT3xFfGF0qWIGGGsvwb0oBnekYh88S8jr8XKbwvRkaoFWwq7cPGS2S5gzZkG-o_JXoDuYR5hOSGiL4GIj5XfTfm05mq313yxmkr8DZqVXDdbgwt8HNcxjLPmcWi9cQDy9wJ-Rc17uXIToYZSvZBCHyWiNZQhh5WlTkTwl0yjgGd-x_F-tOn8=F97E27B2"
|
||||
BOARD_ID = 3417 # Replace with your board ID
|
||||
|
||||
auth = HTTPBasicAuth(EMAIL, API_TOKEN)
|
||||
headers = {"Accept": "application/json"}
|
||||
# --- Get All Sprints for the Board ---
|
||||
sprints_url = f"https://{JIRA_DOMAIN}/rest/agile/1.0/board/{BOARD_ID}/sprint"
|
||||
sprints = []
|
||||
start_at = 0
|
||||
max_results = 50
|
||||
|
||||
while True:
|
||||
params = {"startAt": start_at, "maxResults": max_results}
|
||||
resp = requests.get(sprints_url, headers=headers, auth=auth, params=params)
|
||||
resp.raise_for_status()
|
||||
data = resp.json()
|
||||
sprints.extend(data.get("values", []))
|
||||
|
||||
if data["isLast"]:
|
||||
break
|
||||
|
||||
start_at += max_results
|
||||
|
||||
print(f"Found {len(sprints)} sprints.")
|
||||
|
||||
# --- Loop Through Each Sprint and Get Issues ---
|
||||
for sprint in sprints:
|
||||
sprint_id = sprint["id"]
|
||||
sprint_name = sprint["name"]
|
||||
print(f"\nSprint: {sprint_name} (ID: {sprint_id})")
|
||||
issues_url = f"https://{JIRA_DOMAIN}/rest/agile/1.0/sprint/{sprint_id}/issue"
|
||||
start_at_issues = 0
|
||||
|
||||
while True:
|
||||
params = {"startAt": start_at_issues, "maxResults": max_results}
|
||||
issues_resp = requests.get(issues_url, headers=headers, auth=auth, params=params)
|
||||
issues_resp.raise_for_status()
|
||||
issues_data = issues_resp.json()
|
||||
issues = issues_data.get("issues", [])
|
||||
|
||||
for issue in issues:
|
||||
key = issue["key"]
|
||||
summary = issue["fields"]["summary"]
|
||||
print(f" {key}: {summary}")
|
||||
|
||||
if start_at_issues + max_results >= issues_data["total"]:
|
||||
break
|
||||
|
||||
start_at_issues += max_results
|
||||
Reference in New Issue
Block a user