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

make_release.py « .ci - dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6dceb3f2b071ec6ce382059a7dd81ce00b930c4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/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 = 30


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)