Skip to content

Commit 8b7bac4

Browse files
committed
Update updateplotlyjsdev to use GitHub URLs
1 parent a6d410c commit 8b7bac4

1 file changed

Lines changed: 21 additions & 49 deletions

File tree

commands.py

Lines changed: 21 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -149,34 +149,20 @@ def overwrite_plotlyjs_version_file(plotlyjs_version):
149149
)
150150

151151

152-
def request_json(url):
153-
"""Get JSON data from a URL."""
152+
def get_latest_commit_info(repo, branch):
153+
"""Get latest commit info from GitHub API."""
154154

155+
url = "https://api.github.com/repos/{repo}/commits/{branch}".format(
156+
repo=repo, branch=branch
157+
)
155158
req = requests.get(url)
156-
return json.loads(req.content.decode("utf-8"))
157-
158-
159-
def get_latest_publish_build_info(repo, branch):
160-
"""Get build info from Circle CI."""
161-
162-
url = (
163-
r"https://circleci.com/api/v1.1/project/github/"
164-
r"{repo}/tree/{branch}?limit=100&filter=completed"
165-
).format(repo=repo, branch=branch)
166-
167-
branch_jobs = request_json(url)
168-
169-
# Get most recent successful publish build for branch
170-
builds = [
171-
j
172-
for j in branch_jobs
173-
if j.get("workflows", {}).get("job_name", None) == "publish-dist"
174-
and j.get("status", None) == "success"
175-
]
176-
build = builds[0]
159+
assert req.status_code == 200, "Failed to fetch commit info: %s" % req.text
160+
commit = req.json()
177161

178-
# Extract build info
179-
return {p: build[p] for p in ["vcs_revision", "build_num", "committer_date"]}
162+
return {
163+
"vcs_revision": commit["sha"],
164+
"committer_date": commit["commit"]["committer"]["date"],
165+
}
180166

181167

182168
def get_bundle_schema_local(local):
@@ -188,29 +174,15 @@ def get_bundle_schema_local(local):
188174
return plotly_archive, plotly_bundle, plotly_schemas
189175

190176

191-
def get_bundle_schema_urls(build_num):
192-
"""Get URLs for required files."""
193-
194-
url = (
195-
"https://circleci.com/api/v1.1/project/github/"
196-
"plotly/plotly.js/{build_num}/artifacts"
197-
).format(build_num=build_num)
198-
199-
artifacts = request_json(url)
200-
201-
# Find archive
202-
archives = [a for a in artifacts if a.get("path", None) == "plotly.js.tgz"]
203-
archive = archives[0]
204-
205-
# Find bundle
206-
bundles = [a for a in artifacts if a.get("path", None) == "dist/plotly.min.js"]
207-
bundle = bundles[0]
177+
def get_github_urls(repo, revision):
178+
"""Get URLs for required files from GitHub."""
208179

209-
# Find schema
210-
schemas = [a for a in artifacts if a.get("path", None) == "dist/plot-schema.json"]
211-
schema = schemas[0]
180+
raw = f"https://raw.githubusercontent.com/{repo}/{revision}"
181+
archive_url = f"https://github.com/{repo}/tarball/{revision}"
182+
bundle_url = raw + "/dist/plotly.min.js"
183+
schema_url = raw + "/dist/plot-schema.json"
212184

213-
return archive["url"], bundle["url"], schema["url"]
185+
return archive_url, bundle_url, schema_url
214186

215187

216188
def update_schema(plotly_js_version):
@@ -249,9 +221,9 @@ def update_plotlyjs(plotly_js_version, outdir):
249221
def update_schema_bundle_from_master(args):
250222
"""Update the plotly.js schema and bundle from master."""
251223
if args.local is None:
252-
build_info = get_latest_publish_build_info(args.devrepo, args.devbranch)
253-
archive_url, bundle_url, schema_url = get_bundle_schema_urls(
254-
build_info["build_num"]
224+
build_info = get_latest_commit_info(args.devrepo, args.devbranch)
225+
archive_url, bundle_url, schema_url = get_github_urls(
226+
args.devrepo, build_info["vcs_revision"]
255227
)
256228

257229
# Update bundle in package data

0 commit comments

Comments
 (0)