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

[WIP] [JIRA] new method get_issue_status_changelog + docs + example +small improvement get_issue #1357

Merged
merged 29 commits into from
Mar 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
2e8e1b0
fixing minor issue in scrap_regex_from_issue method
Feb 3, 2024
715463b
new Confluence method scrap_regex_from_page+ docs + examples
Feb 4, 2024
4db577a
Merge branch 'atlassian-api:master' into master
gkowalc Feb 4, 2024
e13b5ba
Merge branch 'atlassian-api:master' into master
gkowalc Feb 8, 2024
9fd7ae4
added method get_attachments_ids_from_page to jira.py
Feb 8, 2024
f695346
added method download_attachments_from_issue
Feb 8, 2024
6f3c1f6
refactoring download_all_attachments_from_page method
Feb 8, 2024
7fd73d8
finished download_attachments_from_issue
Feb 9, 2024
ef752ab
added two new methods: download_attachments.from_issue and get_attac…
Feb 9, 2024
999de01
Merge branch 'atlassian-api:master' into master
gkowalc Feb 9, 2024
2edee0c
Merge branch 'atlassian-api:master' into master
gkowalc Feb 10, 2024
fe7c1f1
Merge branch 'master' of github.com:gkowalc/atlassian-python-api
Feb 15, 2024
bf7dcb4
Merge branch 'master' of github.com:gkowalc/atlassian-python-api
Feb 27, 2024
7d6b0a0
Merge branch 'master' of github.com:gkowalc/atlassian-python-api
Mar 13, 2024
a56b1be
added fix to the infinitive loop
Mar 13, 2024
0802a35
Merge branch 'master' of github.com:gkowalc/atlassian-python-api
Mar 19, 2024
c23e7cd
adding reursion depth condition
Mar 19, 2024
e8e8959
fixed reursion depth condition
Mar 19, 2024
8c2824b
added update4d jira.py with new method + docs +example
Mar 19, 2024
9b1c9c4
added update4d jira.py with new method + docs +exampl
Mar 19, 2024
08d4acb
fix flake8 issue
Mar 19, 2024
20cae0b
Merge branch 'atlassian-api:master' into master
gkowalc Mar 20, 2024
26cf691
hotfix get_issue_tree_recursive
Mar 20, 2024
4cc2a03
Merge branch 'master' of github.com:gkowalc/atlassian-python-api
Mar 22, 2024
10ee67e
added expand to get_issue method, added new method
Mar 22, 2024
273401b
get_issue_status_changelog method
Mar 22, 2024
b70f618
included param expand in get_issue method decription
Mar 22, 2024
6bcd2c0
Merge branch 'atlassian-api:master' into master
gkowalc Mar 29, 2024
6a83b0b
WIP PR changes - https://github.com/atlassian-api/atlassian-python-ap…
Mar 29, 2024
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
31 changes: 19 additions & 12 deletions atlassian/jira.py
Original file line number Diff line number Diff line change
Expand Up @@ -1082,13 +1082,7 @@ def issue(self, key, fields="*all", expand=None):
params["expand"] = expand
return self.get(url, params=params)

def get_issue(
self,
issue_id_or_key,
fields=None,
properties=None,
update_history=True,
):
def get_issue(self, issue_id_or_key, fields=None, properties=None, update_history=True, expand=None):
"""
Returns a full representation of the issue for the given issue key
By default, all fields are returned in this get-issue resource
Expand All @@ -1097,6 +1091,7 @@ def get_issue(
:param fields: str
:param properties: str
:param update_history: bool
:param expand: str
:return: issue
"""
base_url = self.resource_url("issue")
Expand All @@ -1109,11 +1104,9 @@ def get_issue(
params["fields"] = fields
if properties is not None:
params["properties"] = properties
if update_history is True:
params["updateHistory"] = "true"
if update_history is False:
params["updateHistory"] = "false"

if expand:
params["expand"] = expand
params["updateHistory"] = str(update_history).lower()
return self.get(url, params=params)

def epic_issues(self, epic, fields="*all", expand=None):
Expand Down Expand Up @@ -1867,6 +1860,20 @@ def set_issue_status(self, issue_key, status_name, fields=None, update=None):
data["update"] = update
return self.post(url, data=data)

def get_issue_status_changelog(self, issue_id):
# Get the issue details with changelog
response_get_issue = self.get_issue(issue_id, expand="changelog")
status_change_history = []
for history in response_get_issue["changelog"]["histories"]:
for item in history["items"]:
# Check if the item is a status change
if item["field"] == "status":
status_change_history.append(
{"from": item["fromString"], "to": item["toString"], "date": history["created"]}
)

return status_change_history

def set_issue_status_by_transition_id(self, issue_key, transition_id):
"""
Setting status by transition_id
Expand Down
3 changes: 3 additions & 0 deletions docs/jira.rst
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,9 @@ Manage issues
# Get issue transitions
jira.get_issue_transitions(issue_key)

# Get issue status change log
jira.get_issue_status_changelog(issue_key)

# Get status ID from name
jira.get_status_id_from_name(status_name)

Expand Down
9 changes: 9 additions & 0 deletions examples/jira/jira_get_issue_status_changelog.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from atlassian import Jira

jira_cloud = Jira(url="<url>", username="username", password="password")
jira_dc = Jira(url="url", token="<token>>")

# example use
jira_cloud.get_issue_status_changelog("TEST-1")
# example output:
# [{'from': 'Closed', 'to': 'In Progress', 'date': '2024-03-17T17:22:29.524-0500'}, {'from': 'In Progress', 'to': 'Closed', 'date': '2024-03-17T14:33:07.317-0500'}, {'from': 'In Progress', 'to': 'In Progress', 'date': '2024-03-16T09:25:52.033-0500'}, {'from': 'To Do', 'to': 'In Progress', 'date': '2024-03-14T19:25:02.511-0500'}]
Loading