59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
#!/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('--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
|
|
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)
|
|
|
|
deleteReleaseResult = requests.delete(deleteReleaseUrl, headers=headers, verify=(not insecure))
|
|
|
|
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')
|