This repository has been archived on 2024-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
2019-05-30 12:44:09 +02:00
2019-05-30 14:43:07 +02:00
2019-05-30 14:36:50 +02:00
2019-05-30 15:45:48 +02:00

Release Uploader for Gitlab

Creating releases on Gitlab seems to work only via the REST API.

This Python script handles the upload of a release file, the creation of the required release tag in the repository and the creation of the actual release referring to both the tag and the file.

It supports commandline options and an input file, adjusted to be used in Gitlab CI scripts.

Usage

wn@tron:~/workspace-python/gitlabreleaseuploader [master ≡]$ ./gitlabreleaseuploader.py -h
usage: gitlabreleaseuploader.py [-h] --privateToken PRIVATETOKEN --projectId
                                PROJECTID --projectUrl PROJECTURL --file FILE
                                [--releaseName RELEASENAME]
                                [--releaseTag RELEASETAG]
                                [--releaseTagTarget RELEASETAGTARGET]
                                [--createReleaseTag]
                                [--description DESCRIPTION]
                                [--releaseInfoFile RELEASEINFOFILE]
                                [--instanceUrl INSTANCEURL] [--verbose]

Gitlab Release Uploader

optional arguments:
-h, --help            show this help message and exit
--privateToken PRIVATETOKEN, -p PRIVATETOKEN
                        Private token to access Gitlab
--projectId PROJECTID, -i PROJECTID
                        ProjectID of the related project
--projectUrl PROJECTURL, -u PROJECTURL
                        URL of the related project at Gitlab
--file FILE, -f FILE  File to be released
--releaseName RELEASENAME, -n RELEASENAME
                        Name of the release
--releaseTag RELEASETAG, -t RELEASETAG
                        Tag of the release in the repo
--releaseTagTarget RELEASETAGTARGET, -T RELEASETAGTARGET
                        Commit or branch the tag should point to
--createReleaseTag, -c
                        Shall the release be created here
--description DESCRIPTION, -d DESCRIPTION
                        Description of the release
--releaseInfoFile RELEASEINFOFILE, -F RELEASEINFOFILE
                        File containing JSON object with release info (release
                        tag, create release tag, description
--instanceUrl INSTANCEURL, -I INSTANCEURL
                        URL of your gitlab instance
--verbose, -v         verbose output
wn@tron:~/workspace-python/gitlabreleaseuploader [master ≡]$ 

Without release info file:

gitlabreleaseuploader.py -p PRIVATE_TOKEN -i PROJECT_ID -u PROJECT_URL
                         -f FILE_TO_BE_RELEASED -n RELEASE_NAME
                         -t RELEASE_TAG -T RELEASE_TAG_TARGET -c
                         -d RELEASE_DESCRIPTION -I INSTANCE_URL

With release info file:

Release Info File:

{
  "releaseTag": "v1.5",
  "createReleaseTag": "true",
  "releaseName": "Sixth release of the uploader",
  "description": "Now with CI script and automatic release upload (he, eat your own dogfood)"
}

Command:

gitlabreleaseuploader.py -p PRIVATE_TOKEN -i PROJECT_ID -u PROJECT_URL
                         -f FILE_TO_BE_RELEASED -F RELEASE_INFO_FILE
Description
This project is archived since the scripts are incorporated into the https://gitea.hottis.de/wn/base-build-env project.
Readme 99 KiB
Languages
Python 100%