-
-
Save 0x29a/4932d24d930ebff78e08d276714567bf to your computer and use it in GitHub Desktop.
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
import os | |
from datetime import datetime, timezone | |
from dotenv import load_dotenv | |
from jira import JIRA | |
def before_and_after_deadline(issues, deadline): | |
# just a reference date I've already noted before | |
sprint_239_start_datetime = datetime( | |
year=2021, | |
month=1, | |
day=26, | |
hour=0, | |
minute=0, | |
second=0, | |
tzinfo=timezone.utc, | |
) | |
before_deadline = 0 | |
after_deadline = 0 | |
for issue in issues: | |
created = datetime.strptime(issue.fields.created, "%Y-%m-%dT%H:%M:%S.%f%z") | |
time_passed_between_sprint_239_and_created = created - sprint_239_start_datetime | |
sprints_passed = int(time_passed_between_sprint_239_and_created.days / 14) | |
created_on_sprint_day_number = time_passed_between_sprint_239_and_created.days - sprints_passed * 14 | |
if created_on_sprint_day_number > deadline: | |
after_deadline += 1 | |
else: | |
before_deadline += 1 | |
return before_deadline, after_deadline | |
load_dotenv() | |
username = os.getenv("JIRA_USERNAME") | |
password = os.getenv("JIRA_PASSWORD") | |
jira = JIRA("https://tasks.opencraft.com", auth=(username, password)) | |
issues_before_change = jira.search_issues('project = Bebop and createdDate >= "2023-07-05" and createdDate < "2023-12-05"', maxResults=1000) | |
issues_after_change = jira.search_issues('project = Bebop and createdDate >= "2023-12-05"', maxResults=1000) | |
# don't ask why Sunday is 12 and not 14, just trust me | |
sunday_w2 = 12 | |
before_deadline_before_change, after_deadline_before_change = before_and_after_deadline(issues_before_change, sunday_w2) | |
before_deadline_after_change, after_deadline_after_change = before_and_after_deadline(issues_after_change, sunday_w2) | |
print( | |
f"Before change: {before_deadline_before_change} issues created before Monday W3," | |
f"{after_deadline_before_change} issues created on Monday W3," | |
f"which is {after_deadline_before_change / (after_deadline_before_change + before_deadline_before_change) * 100}% of all issues." | |
) | |
print( | |
f"After change: {before_deadline_after_change} issues created before Monday W3," | |
f"{after_deadline_after_change} issues created on Monday W3," | |
f"which is {after_deadline_after_change / (after_deadline_after_change + before_deadline_after_change) * 100}% of all issues." | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment