Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add expand option to issue type schemes method #1696

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 26 additions & 6 deletions jira/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -4285,18 +4285,38 @@ def permissionschemes(self):
return data["permissionSchemes"]

@lru_cache(maxsize=None)
def issue_type_schemes(self) -> list[IssueTypeScheme]:
def issue_type_schemes(
self, expand_projects: bool = False, expand_issue_types: bool = False
) -> list[IssueTypeScheme]:
"""Get all issue type schemes defined (Admin required).

Returns:
List[IssueTypeScheme]: All the Issue Type Schemes available to the currently logged in user.
@param expand_projects: For each issue type schemes, returns information about the projects the issue type scheme is assigned to
@param expand_issue_types: For each issue type schemes, returns information about the issueTypes the issue type scheme have.
@return: List[IssueTypeScheme]: All the Issue Type Schemes available to the currently logged in user.
"""
expand = []
if expand_projects:
expand.append("projects")
if expand_issue_types:
expand.append("issueTypes")

params = {}
if expand:
params["expand"] = ",".join(expand)

url = self._get_url("issuetypescheme")
print(url)

r = self._session.get(url)
data: dict[str, Any] = json_loads(r)
response = self._session.get(url, params=params)
data: dict[str, Any] = json_loads(response)
data = data.get("values")

issue_type_schemes = [
IssueTypeScheme(self._options, self._session, raw_type_json)
for raw_type_json in data
]

return data["schemes"]
return issue_type_schemes

@lru_cache(maxsize=None)
def issuesecurityschemes(self):
Expand Down