22from datetime import datetime
33
44
5- def generate_release_notes (project_id , gitlab_url = 'https://gitlab.com/' ):
5+ def generate_release_notes (project_id , ** config ):
66 """
77 Generate the release notes of a gitlab project from the last release
8+
9+ Parameters
10+ ----------
11+ project_id: int
12+ ID of the project
13+ config: dict
14+ url: Optional[str] = None,
15+ private_token: Optional[str] = None,
16+ oauth_token: Optional[str] = None,
17+ job_token: Optional[str] = None,
18+ ssl_verify: Union[bool, str] = True,
19+ http_username: Optional[str] = None,
20+ http_password: Optional[str] = None,
21+ timeout: Optional[float] = None,
22+ api_version: str = '4',
23+ session: Optional[requests.sessions.Session] = None,
24+ per_page: Optional[int] = None,
25+ pagination: Optional[str] = None,
26+ order_by: Optional[str] = None,
27+ user_agent: str = 'python-gitlab/3.1.0',
28+ retry_transient_errors: bool = False,
829 """
9- gl = gitlab .Gitlab (gitlab_url )
30+ gl = gitlab .Gitlab (** config )
1031 project = gl .projects .get (project_id )
1132
1233 if not project .mergerequests .list (state = 'merged' ):
@@ -15,13 +36,13 @@ def generate_release_notes(project_id, gitlab_url='https://gitlab.com/'):
1536 last_mr_date = datetime .fromisoformat (project .mergerequests .list (state = 'merged' , order_by = 'updated_at' , per_page = 1 )[0 ].merged_at )
1637 if not project .releases .list ():
1738 last_release_date = datetime (1900 , 1 , 1 )
18- log = f"Changelog :\n "
39+ log = f"Changelog of { project . name } :\n "
1940 else :
2041 last_release = project .releases .list ()[0 ]
2142 last_release_date = datetime .fromisoformat (last_release .created_at )
2243 if last_mr_date < last_release_date :
2344 raise ValueError (f"There is no merged merge request after the last release { last_release .name } " )
24- log = f"Changelog since release { last_release .name } :\n "
45+ log = f"Changelog since release { last_release .name } of { project . name } :\n "
2546
2647 print (log )
2748 page = 0
0 commit comments