Created
April 7, 2023 14:10
-
-
Save RiccardoBiosas/b13987d55802f624b39f2a5c13ee9bd1 to your computer and use it in GitHub Desktop.
Jira SDK Wrapper
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from __future__ import annotations | |
from jira import JIRA | |
import os | |
from dotenv import load_dotenv | |
class JiraClient: | |
def __init__(self): | |
load_dotenv() | |
self.jira_server_url = os.environ.get('JIRA_SERVER_URL') | |
self.jira_username = os.environ.get('JIRA_USERNAME') | |
self.jira_api_token = os.environ.get('JIRA_API_TOKEN') | |
self.jira = self.connect_to_jira() | |
def connect_to_jira(self): | |
options = { | |
'server': self.jira_server_url | |
} | |
jira = JIRA( | |
options=options, | |
basic_auth=(self.jira_username, self.jira_api_token), # Jira Cloud: a username/token tuple | |
) | |
auth_jira = jira.myself() | |
return jira | |
def get_project_keys(self): | |
self.jira.myself() | |
projects = self.jira.projects() | |
return [project.key for project in projects] | |
def get_issues_for_team(self, team_name): | |
teams = self.jira.teams() | |
team_id = None | |
for team in teams: | |
if team.name == team_name: | |
team_id = team.id | |
break | |
if not team_id: | |
print('Team not found.') | |
return [] | |
return self.jira.search_issues(f'team="{team_id}"') | |
def get_assignable_users_for_projects(self, project_keys, username=""): | |
max_results = 50 | |
return self.jira.search_assignable_users_for_projects(username=username, projectKeys=project_keys, maxResults=max_results) | |
def get_users(self, username="@"): | |
return self.jira.search_users(query=username, maxResults=100) | |
if __name__ == '__main__': | |
jira_client = JiraClient() | |
# print(jira_client.get_project_keys()) | |
# print(jira_client.get_assignable_users_for_projects('KSUX')) | |
# print(jira_client.get_users()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment