Skip to content

Instantly share code, notes, and snippets.

@0x29a
Created April 25, 2024 10:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 0x29a/4932d24d930ebff78e08d276714567bf to your computer and use it in GitHub Desktop.
Save 0x29a/4932d24d930ebff78e08d276714567bf to your computer and use it in GitHub Desktop.
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