Fix parsing after artifact url change on GitHub

This commit is contained in:
Benoit Marty 2024-01-09 14:04:08 +01:00
parent ee16ef06e9
commit 42696eb31d
1 changed files with 13 additions and 14 deletions

View File

@ -16,11 +16,12 @@
# #
import argparse import argparse
import hashlib
import json import json
import os import os
# Run `pip3 install requests` if not installed yet # Run `pip3 install requests` if not installed yet
import requests import requests
# Run `pip3 install re` if not installed yet
import re
# This script downloads artifacts from GitHub. # This script downloads artifacts from GitHub.
# Ref: https://docs.github.com/en/rest/actions/artifacts#get-an-artifact # Ref: https://docs.github.com/en/rest/actions/artifacts#get-an-artifact
@ -65,22 +66,20 @@ if args.verbose:
print(args) print(args)
# Split the artifact URL to get information # Split the artifact URL to get information
# Ex: https://github.com/element-hq/element-android/suites/9293388174/artifacts/435942121 # Ex: https://github.com/element-hq/element-android/actions/runs/7460386865/artifacts/1156548729
artifactUrl = args.artifactUrl artifactUrl = args.artifactUrl
if not artifactUrl.startswith('https://github.com/'):
print("❌ Invalid parameter --artifactUrl %s. Must start with 'https://github.com/'" % artifactUrl) url_regex = r"https://github.com/(.+?)/(.+?)/actions/runs/.+?/artifacts/(.+)"
exit(1) result = re.search(url_regex, artifactUrl)
if "/artifacts/" not in artifactUrl:
print("❌ Invalid parameter --artifactUrl %s. Must contain '/artifacts/'" % artifactUrl) if result is None:
exit(1) print(
artifactItems = artifactUrl.split("/") "❌ Invalid parameter --artifactUrl '%s'. Please check the format.\nIt should be something like: %s" %
if len(artifactItems) != 9: (artifactUrl, 'https://github.com/element-hq/element-android/actions/runs/7460386865/artifacts/1156548729')
print("❌ Invalid parameter --artifactUrl %s. Please check the format." % (artifactUrl)) )
exit(1) exit(1)
gitHubRepoOwner = artifactItems[3] (gitHubRepoOwner, gitHubRepo, artifactId) = result.groups()
gitHubRepo = artifactItems[4]
artifactId = artifactItems[8]
if args.verbose: if args.verbose:
print("gitHubRepoOwner: %s, gitHubRepo: %s, artifactId: %s" % (gitHubRepoOwner, gitHubRepo, artifactId)) print("gitHubRepoOwner: %s, gitHubRepo: %s, artifactId: %s" % (gitHubRepoOwner, gitHubRepo, artifactId))