-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrelease_note.py
More file actions
94 lines (80 loc) · 3.44 KB
/
release_note.py
File metadata and controls
94 lines (80 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
from jira.search_issues import search_issues_in_version
from jira.get_versions import get_versions
from issue import Issue
from datetime import datetime
from dotenv import load_dotenv
import os
from confluence.create_page import create_or_update_page
from confluence.search_page import search_page
load_dotenv()
class ReleaseNote:
def __init__(self):
self.issues = []
self.final_content = []
def __content(self):
return self.content
def __title(self):
return "Version "+self.version
def set_version(self, version_in = None):
if(version_in is None):
versions = get_versions()
print("Choose a version :")
for index, version in enumerate(versions, start=1):
print(f"{index}. Name: {version['name']}, Release Date: {version['releaseDate']}")
# Get user input for the chosen version
while True:
try:
choice = int(input("Enter the number of the version you want to choose: "))
if 1 <= choice <= len(versions):
selected_version = versions[choice - 1]
break
else:
print("Invalid choice. Please enter a valid number.")
except ValueError:
print("Invalid input. Please enter a number.")
else:
get_this_version = get_versions(version_in)
selected_version = get_this_version[0]
self.version = selected_version['name']
release_date_object = datetime.strptime(selected_version['releaseDate'], '%Y-%m-%d')
self.release_date = release_date_object.strftime('%d/%m/%y')
def set_issues(self):
try:
# Demander à l'utilisateur s'il veut inclure les épics
while True:
include_epics_input = input("Voulez-vous inclure les épics dans les release notes ? (yes/no): ").lower().strip()
if include_epics_input in ['yes', 'y', 'oui', 'o']:
include_epics = True
print("---")
print("Notez que les tickets d'épics doivent être dans la version pour apparaître dans la release note !")
print("---")
break
elif include_epics_input in ['no', 'n', 'non']:
include_epics = False
break
else:
print("Veuillez répondre par 'yes' ou 'no'")
jira_issues = search_issues_in_version(self.version, include_epics)
for issue_jira in jira_issues:
self.issues.append(Issue(issue_jira))
except Exception as e:
print(e)
exit()
def set_content(self):
self.content = "<p>Date de mise en ligne : "+self.release_date+"</p>"
for issue in self.issues:
if isinstance(issue, Issue):
self.content += "\n"+issue.get_final_content()
return self.content
def create_or_update(self):
id_and_version = search_page(self.__title())
self.url = create_or_update_page(
self.__content(),
self.__title(),
id_and_version[0],
id_and_version[1]
)
if id_and_version[0] != None:
print("Release note successfully updated")
else:
print("Release note successfully created")