From f74227558482ef3c261b5077c53173474e6b51bd Mon Sep 17 00:00:00 2001 From: Ratchanan Srirattanamet Date: Mon, 17 Feb 2025 16:26:06 +0700 Subject: [PATCH] gitlab_release_notes/generate.py: add --target_branch cmdline option This is useful when your project has stable maintenance branches and use MRs to manage them. Without this option, MRs for main vs. stable branches will appear together. --- gitlab_release_notes/generate.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gitlab_release_notes/generate.py b/gitlab_release_notes/generate.py index a66c81e..9d7795b 100644 --- a/gitlab_release_notes/generate.py +++ b/gitlab_release_notes/generate.py @@ -4,7 +4,7 @@ import sys from .version import __version__ -def generate_release_notes(project_id, endstr = '
', since=None, quiet=False, **config): +def generate_release_notes(project_id, endstr = '
', since=None, quiet=False, target_branch=None, **config): """ Generate the release notes of a gitlab project from the last release @@ -33,7 +33,7 @@ def generate_release_notes(project_id, endstr = '
', since=None, quiet=Fals gl = gitlab.Gitlab(**config) project = gl.projects.get(project_id) - if not project.mergerequests.list(get_all=False,state='merged'): + if not project.mergerequests.list(get_all=False,state='merged', target_branch=target_branch): raise ValueError(f"There is no merged merge request for project {project_id} {project.name}") log = "" @@ -54,6 +54,7 @@ def generate_release_notes(project_id, endstr = '
', since=None, quiet=Fals get_all=False, order_by='updated_at', updated_after=last_date, + target_branch=target_branch, page=page) if not list_mrs: if not quiet: @@ -72,6 +73,7 @@ def generate_release_notes(project_id, endstr = '
', since=None, quiet=Fals get_all=False, order_by='updated_at', updated_after=last_date, + target_branch=target_branch, page=page ) @@ -92,6 +94,7 @@ def main(): parser.add_argument('--version', action='version', version=__version__) parser.add_argument('--html', action='store_true') parser.add_argument('--since', type=datetime.date.fromisoformat, required=False, default=None) + parser.add_argument('--target_branch', type=str, required=False, default=None) parser.add_argument('--quiet', action='store_true') args = parser.parse_args() @@ -104,6 +107,7 @@ def main(): url=args.url, endstr=endstr, since=args.since, + target_branch=args.target_branch, quiet=args.quiet, private_token=args.private_token, )