A light weight library to interact with the Jira API
Project description
Jirasession
A light weight library to interact with the Jira API
Documentation
- jirasession
- jirasession.session
- jirasession.session.JiraSession
- JiraSession.init
- JiraSession._resolver
- JiraSession.account_info
- JiraSession.add_attachment
- JiraSession.add_comment
- JiraSession.assign_issue
- JiraSession.assign_to_me
- JiraSession.create_issue
- JiraSession.delete_issue
- JiraSession.get_all_comments
- JiraSession.get_comments
- JiraSession.get_issue
- JiraSession.get_issues_from_project
- JiraSession.get_jira_user
- JiraSession.get_project_issuetypes
- JiraSession.get_transitions_from_issue
- JiraSession.jira_priorities_list
- JiraSession.link_issues
- JiraSession.link_types
- JiraSession.search
- JiraSession.track_issue_time
- JiraSession.transition_issue
- JiraSession.update_issue
- jirasession.session.JiraSession
- jirasession.user
- jirasession.session
jirasession
Documentation for the JiraSession and JiraUser objects
jirasession.session
jirasession.session.JiraSession(self, username: str, token: str, server: str, session: requests.sessions.Session = None, max_retries: int = 3, pool_connections: int = 16, pool_maxsize: int = 16, resolve_status_codes: list = [200, 201, 204])
JiraSession object can be imported from jirasession.session or from jirasession
JiraSession.__init__(self, username: str, token: str, server: str, session: requests.sessions.Session = None, max_retries: int = 3, pool_connections: int = 16, pool_maxsize: int = 16, resolve_status_codes: list = [200, 201, 204])
Initialization of JiraSession
JiraSession._resolver(self, request: functools.partial) -> requests.models.Response
attempt to resolve a bad requests don't call this method alone
JiraSession.account_info(self) -> requests.models.Response
get jira accountid from current auth creds
return {int} -- accountid or None
JiraSession.add_attachment(self, issue_key: str, filepath: str) -> requests.models.Response
add an attachment to an issue
issue_key {str} -- id or key of issue to add attachment
filepath {str} -- path to file to use as attachment
return {requests.Response} -- response from attachment route
JiraSession.add_comment(self, issue_key: str, comment: str) -> requests.models.Response
add a new comment to a issue
issue_key {str} -- issue key to pull available transitions from
comment {str} -- string to add as comment
return {requests.Response} -- response from post to comment route
JiraSession.assign_issue(self, issue_key: str, accountid: str) -> requests.models.Response
assign a issue to the current user accountid
issue_key {str} -- newly created issue key
JiraSession.assign_to_me(self, issue_key: str) -> requests.models.Response
assign to yourself based on jirauser.userid
issue {str} -- issue key to assign to yourself
JiraSession.create_issue(self, content: dict) -> requests.models.Response
create a new issue
content {dict} -- dictionary of issue content
return {requests.Response} -- response from post
JiraSession.delete_issue(self, issue_key: str, delete_subtasks: bool = False) -> requests.models.Response
delete and issue by id
issue_key {str} -- key of issue to delete
return {requests.Response} -- response from delete
JiraSession.get_all_comments(self, issue_key: str, orderby: str = 'created', expand: bool = False) -> list
get all comments from an issue
issue_key {str} -- issue key to get comments for
orderby {str} -- order comments by created date, other options [-created, +created]
expand {bool} -- if true, renderBody will be sent to get comments rendered in html
return {list} -- return list of comments from issue
JiraSession.get_comments(self, issue_key: str, start: int = 0, maxresults: int = 50, orderby: str = 'created', expand: bool = False) -> requests.models.Response
get comments from an issue
issue_key {str} -- issue key to get comments for
start {int} -- start index for retrieval
maxresults {int} -- max number of comments to retrieve [default: 50]
orderby {str} -- order comments by created date, other options [-created, +created]
expand {bool} -- if true, renderBody will be sent to get comments rendered in html
return {requests.Response} -- response from comments route
JiraSession.get_issue(self, issue_key: str, fields: list = ['*all'], expand: dict = {}) -> requests.models.Response
get jira issue by id
issue_key {str} -- key of issue to get
fields {list} -- fields to retrieve, add a '-' to a field to remove it. Default: *all
expand {dict} -- custom expand for search, use jira api docs to further expand
return {requests.Response} -- response from issue route (GET)
JiraSession.get_issues_from_project(self, project_key: str, maxresults: int = None) -> list
retrieve all issues from a given project id
project_key {str} -- project key, example: DEV
maxresults {int} -- max number of results
return {list} -- issues
JiraSession.get_jira_user(self, username: Union[str, list]) -> requests.models.Response
get user information for jira users by usernames
username {Union[str, list]} -- a username or list of usernames
return {requests.Response} -- the response from the user bulk route
JiraSession.get_project_issuetypes(self, project_key: str) -> list
get the available issue types for a project
project_key {str} -- key for project
return {list} -- issuetypes found for the given project
JiraSession.get_transitions_from_issue(self, issue_key: str) -> requests.models.Response
get the available transitions for a issue
issue_key {str} -- issue key to pull available transitions from
return {requests.Response} -- response from get to transitions route
JiraSession.jira_priorities_list(self) -> list
get the available priorities for a project
project_key {str} -- key for project
return {list} -- priorities found for the given project
JiraSession.link_issues(self, in_issue_key: str, out_issue_key: str, link_type: str = 'relates to', comment: dict = None) -> requests.models.Response
link two issues together, in and out will relate to jira api route but has no effect on functionality
in_issue_key {str} -- the issue to link from
out_issue_key {str} -- the issue to link to
link_type {str] -- type of link, default: Relates To
comment {dict} [optional] -- comment for linking of issues
return {requests.Response} -- response from issuelink route
JiraSession.link_types(self) -> requests.models.Response
retrieve the link types for jira issues
return {requests.Response} -- response from issueLinkType route
JiraSession.search(self, jql: str, start: int = 0, maxresults: int = 50, fields: list = ['*all'], validate: bool = True, validate_level: str = 'strict', expand: dict = {}) -> requests.models.Response
search jira using a jql statement
jql {str} -- jql string to search and validate if chosen
start {int} -- start index
maxresults {int} -- max number of results per page
fields {list} -- fields to retrieve, add a '-' to a field to remove it. Default: *all
validate {bool} -- to validate jql string upon search
validate_level {str} -- validation level: strict, warn, none. Default: strict
expand {dict} -- custom expand for search, use jira api docs to further expand
return {requests.Response} -- response from search route (POST)
JiraSession.track_issue_time(self, issue_key: str, time_spent: str) -> requests.models.Response
add time for time tracking application for a issue
issue_key {str} -- issue key to pull available transitions from
time_spent {str} -- jira format time. ex: 1d 2h 3m
return {requests.Response} -- response from post to worklog route
JiraSession.transition_issue(self, issue_key: str, transition_state_id: str) -> requests.models.Response
transition a issue to a new state by id
issue_key {str} -- issue key to pull available transitions from
transition_state_id {str} -- new transition state id
return {requests.Response} -- response from post to transitions route
JiraSession.update_issue(self, issue_key: str, content: dict) -> requests.models.Response
update an issue by id
issue_key {str} -- key of issue to update
content {dict} -- dictionary of issue content
return {requests.Response} -- response from put
jirasession.user
jirasession.user.JiraUser(self, username: str = None, token: str = None, server: str = None)
An authenticated Jira user
JiraUser.__init__(self, username: str = None, token: str = None, server: str = None)
a JiraUser object that contains information for the authenticated user
username {str} -- username for jira account
token {str} -- api token for jira account
server {str} -- server to build rest url from
JiraUser.account_information(self) -> requests.models.Response
get account information for jira account from username and token
return {requests.Response} response from myself route
Basic example
from jirasession import JiraSession
session = JiraSession('email', 'token', 'https://server.atlassian.net/')
new_isssue = {
'project': {'key': 'DEV'},
'summary': 'test',
'description': 'test',
'issuetype': {'name':'Ticket'}
}
resp = session.create_issue(new_isssue)
if resp.status_code == 200:
print('issue created') # handle requests.Response to get issue information
else:
print('error creating issue') # debug requests.Response here
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jirasession-0.2.4.tar.gz
(9.6 kB
view hashes)