#!/usr/bin/python import requests import json import argparse import sys parser = argparse.ArgumentParser(description='Gitlab Release Deleter') parser.add_argument('--privateToken', '-p', help='Private token to access Gitlab', required=True) parser.add_argument('--projectId', '-i', help='ProjectID of the related project', required=True) parser.add_argument('--releaseTag', '-t', help='Tag of the release in the repo', required=True, default='') parser.add_argument('--instanceUrl', '-I', help='URL of your gitlab instance', required=False, default='https://gitlab.com') parser.add_argument('--verbose', '-v', help='verbose output', required=False, action='store_true', default=False) parser.add_argument('--caBundle', '-B', help='File with the CA certificates to trust', required=False, default='/etc/ssl/certs/ca-certificates.crt') parser.add_argument('--insecure', help='insecure ssl connect', required=False, action='store_true', default=False) args = parser.parse_args() privateToken = args.privateToken projectId = args.projectId releaseTag = args.releaseTag instanceUrl = args.instanceUrl verbose = args.verbose caBundle = args.caBundle insecure = args.insecure # --- delete release deleteReleaseUrl = "%s/api/v4/projects/%s/releases/%s" % (instanceUrl, projectId, releaseTag) headers = {"PRIVATE-TOKEN": privateToken, "Content-Type": "application/json"} if verbose: print("URL: %s" % deleteReleaseUrl) if insecure: caBundle = (False) deleteReleaseResult = requests.delete(deleteReleaseUrl, headers=headers, verify=caBundle) if deleteReleaseResult.status_code != 200: print(deleteReleaseResult) print(deleteReleaseResult.text) raise Exception('Unable to delete release') if verbose: print(deleteReleaseResult) print(deleteReleaseResult.text) print('Release successfully delete')