Skip to content

Commit e476d81

Browse files
maeRamadantkuehne-deliveryhero
authored andcommitted
[JIRA] Add multiple methods (#977)
* [JIRA] create_agile_board method adapted for Jira Server The `location` parameter of the `create_agile_board` must not be sent for the Jira Server edition. This parameter is not supported as per the REST API documentation and throws an error if sent anyway. * [JIRA] add method to associate an issue type scheme * [JIRA] add method for creating a new issue type scheme * [JIRA] add method for creating a new permission scheme * [JIRA] add method for adding a field to a given tab in a screen Co-authored-by: Tobias Kühne <tobias.kuehne@deliveryhero.com>
1 parent fcf1537 commit e476d81

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

atlassian/jira.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2215,6 +2215,18 @@ def get_project_permission_scheme(self, project_id_or_key, expand=None):
22152215
params["expand"] = expand
22162216
return self.get(url, params=params)
22172217

2218+
def create_permission_scheme(self, name, description, permissions):
2219+
"""
2220+
Create a new permission scheme
2221+
2222+
:param name: Name of new permission scheme
2223+
:param description: Description of new permission scheme
2224+
:param permissions: Defined permission set
2225+
"""
2226+
url = "rest/api/2/permissionscheme"
2227+
data = {"name": name, "description": description, "permissions": permissions}
2228+
return self.post(url, data=data)
2229+
22182230
def get_issue_types(self):
22192231
"""
22202232
Return all issue types
@@ -2594,6 +2606,17 @@ def get_all_screen_fields(self, screen_id):
25942606
fields = fields + tab_fields
25952607
return fields
25962608

2609+
def add_field(self, field_id, screen_id, tab_id):
2610+
"""
2611+
Add field to a given tab in a screen
2612+
:param field_id: field or custom field ID to be added
2613+
:param screen_id: screen ID
2614+
:param tab_id: tab ID
2615+
"""
2616+
url = f"rest/api/2/screens/{screen_id}/tabs/{tab_id}/fields"
2617+
data = {"fieldId": field_id}
2618+
return self.post(url, data = data)
2619+
25972620
"""
25982621
Search
25992622
Reference: https://docs.atlassian.com/software/jira/docs/api/REST/8.5.0/#api/2/search
@@ -3151,6 +3174,35 @@ def get_project_validated_key(self, key):
31513174
url = self.resource_url("projectvalidate/key")
31523175
return self.get(url, params=params)
31533176

3177+
"""
3178+
REST resources for Issue Type Schemes
3179+
"""
3180+
3181+
def add_issuetypescheme(self, scheme_id, project_key):
3182+
"""
3183+
Associate an issue type scheme with an additional project
3184+
https://docs.atlassian.com/software/jira/docs/api/REST/8.5.8/?_ga=2.198649263.1264679215.1618243100-319766074.1595597417#api/2/issuetypescheme-addProjectAssociationsToScheme
3185+
:param scheme_id: The issue type scheme ID to update
3186+
:param project_key: The project key to associate with the given issue type scheme
3187+
:return:
3188+
"""
3189+
url = "/rest/api/2/issuetypescheme/{schemeId}/associations".format(schemeId=scheme_id)
3190+
data = {'idsOrKeys': [project_key]}
3191+
return self.post(url, data=data)
3192+
3193+
def create_issuetypescheme(self, name, description, default_issue_type_id, issue_type_ids):
3194+
"""
3195+
Create an issue type scheme
3196+
https://docs.atlassian.com/software/jira/docs/api/REST/8.13.6/#api/2/issuetypescheme-createIssueTypeScheme
3197+
:param name: The issue type scheme name
3198+
:param description: The issue type scheme description
3199+
:param default_issue_type_id: The default issue type id for this type scheme
3200+
:param issue_type_ids: A list of strings of available issue type ids for this scheme
3201+
"""
3202+
url = "/rest/api/2/issuetypescheme/"
3203+
data = {'name': name, 'description': description, 'defaultIssueTypeId': default_issue_type_id, 'issueTypeIds': issue_type_ids}
3204+
return self.post(url, data=data)
3205+
31543206
"""
31553207
REST resource for starting/stopping/querying indexing.
31563208
Reference: https://docs.atlassian.com/software/jira/docs/api/REST/8.5.0/#api/2/reindex

0 commit comments

Comments
 (0)