4
4
import sys
5
5
from .version import __version__
6
6
7
- def generate_release_notes (project_id , endstr = ' <br>' , since = None , ** config ):
7
+ def generate_release_notes (project_id , endstr = ' <br>' , since = None , quiet = False , ** config ):
8
8
"""
9
9
Generate the release notes of a gitlab project from the last release
10
10
@@ -36,15 +36,17 @@ def generate_release_notes(project_id, endstr = ' <br>', since=None, **config):
36
36
if not project .mergerequests .list (get_all = False ,state = 'merged' ):
37
37
raise ValueError (f"There is no merged merge request for project { project_id } { project .name } " )
38
38
39
+ log = ""
40
+
39
41
if since :
40
- log = f"Changelog of { project .name } since { since } :{ endstr } "
42
+ log_pending = f"Changelog of { project .name } since { since } :{ endstr } "
41
43
last_date = since
42
44
elif not project .releases .list (get_all = False ):
43
- log = f"Changelog of { project .name } :{ endstr } "
45
+ log_pending = f"Changelog of { project .name } :{ endstr } "
44
46
last_date = '0000-01-01T00:00:00Z'
45
47
else :
46
48
last_release = project .releases .list (get_all = False )[0 ]
47
- log = f"Changelog since release { last_release .name } of { project .name } :{ endstr } "
49
+ log_pending = f"Changelog since release { last_release .name } of { project .name } :{ endstr } "
48
50
last_date = last_release .released_at
49
51
50
52
page = 1
@@ -54,9 +56,12 @@ def generate_release_notes(project_id, endstr = ' <br>', since=None, **config):
54
56
updated_after = last_date ,
55
57
page = page )
56
58
if not list_mrs :
57
- log += f"There is no merged merge request after { last_date } "
59
+ if not quiet :
60
+ log += log_pending
61
+ log += f"There is no merged merge request after { last_date } { endstr } "
58
62
return log
59
63
64
+ log += log_pending
60
65
while list_mrs :
61
66
for mr in list_mrs :
62
67
line = f" * { mr .title } (@{ mr .author ['username' ]} ){ endstr } "
@@ -87,6 +92,7 @@ def main():
87
92
parser .add_argument ('--version' , action = 'version' , version = __version__ )
88
93
parser .add_argument ('--html' , action = 'store_true' )
89
94
parser .add_argument ('--since' , type = datetime .date .fromisoformat , required = False , default = None )
95
+ parser .add_argument ('--quiet' , action = 'store_true' )
90
96
91
97
args = parser .parse_args ()
92
98
@@ -98,9 +104,11 @@ def main():
98
104
url = args .url ,
99
105
endstr = endstr ,
100
106
since = args .since ,
107
+ quiet = args .quiet ,
101
108
private_token = args .private_token ,
102
109
)
103
- print (notes )
110
+ if notes :
111
+ print (notes )
104
112
105
113
if __name__ == "__main__" :
106
114
main ()
0 commit comments