Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/.ci
diff options
context:
space:
mode:
authorPhilipp Hörist <philipp@hoerist.com>2022-12-03 23:10:11 +0300
committerPhilipp Hörist <philipp@hoerist.com>2022-12-03 23:10:11 +0300
commit52816f7f56526fce1da12692556aea70ce3d66a4 (patch)
treef1a06646592adb4d8e1f631846e24687129a32ec /.ci
parent4d501a607fd4cedfc7befae013486df341669fb3 (diff)
ci: Automatically create Gitlab Release
Diffstat (limited to '.ci')
-rwxr-xr-x.ci/make_release.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/.ci/make_release.py b/.ci/make_release.py
new file mode 100755
index 000000000..5c97027a0
--- /dev/null
+++ b/.ci/make_release.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+
+from __future__ import annotations
+
+import argparse
+import logging
+
+from gitlab import Gitlab
+from gitlab.v4.objects import Project
+
+
+logging.basicConfig(level='INFO', format='%(levelname)s: %(message)s')
+log = logging.getLogger()
+
+
+GITLAB_INSTANCE_URL = 'https://dev.gajim.org'
+PROJECT_ID = 31
+
+
+def adjust_milestones(project: Project, version: str) -> None:
+ log.info('Rename Milestone: Next Release -> %s', version)
+ milestones = project.milestones.list(title='Next Release', get_all=True)
+ assert isinstance(milestones, list)
+ milestone = milestones[0]
+ milestone.title = version
+ milestone.save()
+
+ log.info('Create Milestone: Next Release')
+ project.milestones.create({'title': 'Next Release'})
+
+
+def create_release(project: Project, version: str) -> None:
+ log.info('Create Release: %s', version)
+ project.releases.create({
+ 'name': version,
+ 'tag_name': version,
+ 'milestones': [version],
+ })
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Make Gitlab Release')
+ parser.add_argument('version', type=str, help='The new version string')
+ parser.add_argument('token', type=str, help='The API token')
+ args = parser.parse_args()
+
+
+ api = Gitlab(GITLAB_INSTANCE_URL, private_token=args.token)
+ api.auth()
+ project = api.projects.get(PROJECT_ID)
+
+ adjust_milestones(project, args.version)
+ create_release(project, args.version)