Skip to content

Commit 97ac111

Browse files
authored
Merge pull request #4 from sunweaver/pr/add-since-option
gitlab_release_notes/generate.py: Add --since cmdline option that allows one to query for merges since a certain date.
2 parents 80cb7b9 + d245c63 commit 97ac111

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

gitlab_release_notes/generate.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import datetime
12
import gitlab
23
import os.path
34
import sys
45
from .version import __version__
56

6-
def generate_release_notes(project_id, endstr = ' <br>', **config):
7+
def generate_release_notes(project_id, endstr = ' <br>', since=None, **config):
78
"""
89
Generate the release notes of a gitlab project from the last release
910
@@ -35,7 +36,10 @@ def generate_release_notes(project_id, endstr = ' <br>', **config):
3536
if not project.mergerequests.list(get_all=False,state='merged'):
3637
raise ValueError(f"There is no merged merge request for project {project_id} {project.name}")
3738

38-
if not project.releases.list(get_all=False):
39+
if since:
40+
log = f"Changelog of {project.name} since {since}:{endstr}"
41+
last_date = since
42+
elif not project.releases.list(get_all=False):
3943
log = f"Changelog of {project.name}:{endstr}"
4044
last_date = '0000-01-01T00:00:00Z'
4145
else:
@@ -82,14 +86,20 @@ def main():
8286
parser.add_argument("--private_token", type=str, required=False, default=None)
8387
parser.add_argument('--version', action='version', version=__version__)
8488
parser.add_argument('--html', action='store_true')
89+
parser.add_argument('--since', type=datetime.date.fromisoformat, required=False, default=None)
8590

8691
args = parser.parse_args()
8792

8893
if args.html:
8994
endstr = ' <br>'
9095
else:
9196
endstr = '\n'
92-
notes = generate_release_notes(args.project_id, url=args.url, endstr=endstr, private_token=args.private_token)
97+
notes = generate_release_notes(args.project_id,
98+
url=args.url,
99+
endstr=endstr,
100+
since=args.since,
101+
private_token=args.private_token,
102+
)
93103
print(notes)
94104

95105
if __name__ == "__main__":

0 commit comments

Comments
 (0)