@@ -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
182168def 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
216188def update_schema (plotly_js_version ):
@@ -249,9 +221,9 @@ def update_plotlyjs(plotly_js_version, outdir):
249221def 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