Giving 0 issues while running below -
import requests
import json
from requests.auth import HTTPBasicAuth
# --- Configuration ---
JIRA_EMAIL = "myEmail@myCompany.com" # Replace with your Jira email
JIRA_API_TOKEN = "XXXXXX" # Replace with your Jira API token
# --- API Endpoint ---
JIRA_API3_SEARCH_ENDPOINT = f"{JIRA_URL}/rest/api/3/search/jql"
# --- Authentication ---
auth = HTTPBasicAuth(JIRA_EMAIL, JIRA_API_TOKEN)
# --- Headers ---
HEADERS = {
"Accept": "application/json",
"Content-Type": "application/json"
}
def search_jira_issues(jql_query, max_results=50, fields=None):
"""
Searches Jira issues using a JQL query.
Args:
jql_query (str): The JQL query string.
max_results (int): The maximum number of results to return per page.
fields (list, optional): A list of fields to include in the response.
Defaults to None (all fields).
Returns:
dict: The JSON response containing the search results.
"""
payload = {
"jql": jql_query,
"maxResults": max_results,
}
if fields:
payload["fields"] = fields
try:
response = requests.post(
JIRA_API3_SEARCH_ENDPOINT,
headers=HEADERS,
data=json.dumps(payload),
auth=auth
)
response.raise_for_status() # Raise an exception for bad status codes
print(response.json())
return response.json()
except requests.exceptions.RequestException as e:
print(f"Error searching Jira issues: {e}")
return None
# --- Example Usage ---
if __name__ == "__main__":
# Example 1: Search for issues in a specific project
jql = "project = 'TL' ORDER BY created DESC"
issues_data = search_jira_issues(jql, max_results=10)
if issues_data:
print("Issues found:")
for issue in issues_data.get("issues", []):
print(f"- {issue['key']}: {issue['fields']['summary']}")
print("\n" + "="*30 + "\n")
# Example 2: Search for issues with a specific status and retrieve only key and summary
jql_status = "status = 'Done' AND project = 'TL'"
fields_to_retrieve = ["key", "summary"]
done_issues_data = search_jira_issues(jql_status, max_results=5, fields=fields_to_retrieve)
if done_issues_data:
print("Done issues found (key and summary only):")
for issue in done_issues_data.get("issues", []):
print(f"- {issue['key']}: {issue['fields']['summary']}")