mirror of https://github.com/mongodb/mongo
32 lines
880 B
Python
32 lines
880 B
Python
import json
|
|
import os
|
|
import subprocess
|
|
import tempfile
|
|
|
|
import requests
|
|
|
|
S3_BUCKET = "mdb-build-public"
|
|
|
|
|
|
def get_flags(namespace: str):
|
|
S3_URL = f"https://mdb-build-public.s3.us-east-1.amazonaws.com/flag_sync/{namespace}.json"
|
|
r = requests.get(S3_URL)
|
|
if r.status_code != 200:
|
|
raise Exception("Namespace doesn't exist.")
|
|
try:
|
|
return json.loads(r.text)
|
|
except:
|
|
raise Exception("Couldn't parse flag json.")
|
|
|
|
|
|
def validate_bazel_flag(line: str):
|
|
workspace_root = os.environ.get("BUILD_WORKSPACE_DIRECTORY")
|
|
with tempfile.NamedTemporaryFile(mode="w+") as tf:
|
|
tf.write(line)
|
|
tf.flush()
|
|
cmd = ["bazel", f"--bazelrc={tf.name}", "build", "//tools/flag_sync:client"]
|
|
p = subprocess.run(cmd, capture_output=True, cwd=workspace_root)
|
|
if p.returncode != 0:
|
|
return False
|
|
return True
|