* dev: initialize jira importer * dev: create service import for jira * dev: update task to create all users for project and workspace and also create assignees when importing bulk assignees * dev: create bulk modules import endpoint for jira epics * dev: create bulk module issues when importing modules
53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
import requests
|
|
from requests.auth import HTTPBasicAuth
|
|
from sentry_sdk import capture_exception
|
|
|
|
|
|
def jira_project_issue_summary(email, api_token, project_name, hostname):
|
|
try:
|
|
auth = HTTPBasicAuth(email, api_token)
|
|
headers = {"Accept": "application/json"}
|
|
|
|
issue_url = f"https://{hostname}/rest/api/3/search?jql=project={project_name} AND issuetype=Story"
|
|
issue_response = requests.request(
|
|
"GET", issue_url, headers=headers, auth=auth
|
|
).json()["total"]
|
|
|
|
module_url = f"https://{hostname}/rest/api/3/search?jql=project={project_name} AND issuetype=Epic"
|
|
module_response = requests.request(
|
|
"GET", module_url, headers=headers, auth=auth
|
|
).json()["total"]
|
|
|
|
status_url = f"https://{hostname}/rest/api/3/status/?jql=project={project_name}"
|
|
status_response = requests.request(
|
|
"GET", status_url, headers=headers, auth=auth
|
|
).json()
|
|
|
|
labels_url = f"https://{hostname}/rest/api/3/label/?jql=project={project_name}"
|
|
labels_response = requests.request(
|
|
"GET", labels_url, headers=headers, auth=auth
|
|
).json()["total"]
|
|
|
|
users_url = (
|
|
f"https://{hostname}/rest/api/3/users/search?jql=project={project_name}"
|
|
)
|
|
users_response = requests.request(
|
|
"GET", users_url, headers=headers, auth=auth
|
|
).json()
|
|
|
|
return {
|
|
"issues": issue_response,
|
|
"modules": module_response,
|
|
"labels": labels_response,
|
|
"states": len(status_response),
|
|
"users": (
|
|
[
|
|
user
|
|
for user in users_response
|
|
if user.get("accountType") == "atlassian"
|
|
]
|
|
),
|
|
}
|
|
except Exception as e:
|
|
capture_exception(e)
|
|
return {"error": "Something went wrong could not fetch information from jira"}
|