build: ensure index.json is actually valid JSON before uploading (#16518)

* build: ensure index.json is actually valid JSON before uploading

* chore: fix py linting for validation of index.json
This commit is contained in:
Samuel Attard 2019-02-05 11:36:31 -08:00 committed by GitHub
parent 9b7eb0eecb
commit 8582325e85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
import json
import os import os
import sys import sys
import urllib2 import urllib2
@ -15,6 +16,13 @@ BASE_URL = 'https://electron-metadumper.herokuapp.com/?version='
version = sys.argv[1] version = sys.argv[1]
authToken = os.getenv('META_DUMPER_AUTH_HEADER') authToken = os.getenv('META_DUMPER_AUTH_HEADER')
def is_json(myjson):
try:
json.loads(myjson)
except ValueError:
return False
return True
def get_content(retry_count = 5): def get_content(retry_count = 5):
try: try:
request = urllib2.Request( request = urllib2.Request(
@ -22,9 +30,14 @@ def get_content(retry_count = 5):
headers={"Authorization" : authToken} headers={"Authorization" : authToken}
) )
return urllib2.urlopen( proposed_content = urllib2.urlopen(
request request
).read() ).read()
if is_json(proposed_content):
return proposed_content
print("bad attempt")
raise Exception("Failed to fetch valid JSON from the metadumper service")
except Exception as e: except Exception as e:
if retry_count == 0: if retry_count == 0:
raise e raise e