MCPcopy Create free account
hub / github.com/GDRETools/gdsdecomp / get_release_info

Method get_release_info

plugin_manager/github_source.cpp:248–294  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

246} //namespace
247
248ReleaseInfo GitHubSource::get_release_info(const String &plugin_name, int64_t primary_id, int64_t secondary_id, Error &r_error) {
249 auto release_id = primary_id;
250 auto asset_id = secondary_id;
251 if (release_id <= 0 || asset_id <= 0) {
252 return ReleaseInfo();
253 }
254
255 auto release = get_release_dict(plugin_name, release_id, r_error);
256 if (release.is_empty()) {
257 return ReleaseInfo();
258 }
259
260 Array assets = release.get("assets", {});
261 for (int i = 0; i < assets.size(); i++) {
262 Dictionary asset = assets[i];
263 if (int64_t(asset.get("id", 0)) == asset_id) {
264 String name = asset.get("name", "");
265 if (is_empty_or_null(name)) {
266 continue;
267 }
268 String download_url = asset.get("browser_download_url", "");
269 String download_file = gdre::remove_url_query_params(download_url).get_file();
270 if (download_file.is_empty()) {
271 download_file = name.get_file();
272 }
273 if (gdre::is_path_archive(download_file)) {
274 if (is_empty_or_null(download_url)) {
275 continue;
276 }
277 String tag_name = release.get("tag_name", "");
278
279 ReleaseInfo release_info;
280 release_info.plugin_source = get_plugin_name();
281 release_info.primary_id = release_id;
282 release_info.secondary_id = asset_id;
283 release_info.version = tag_name;
284 release_info.release_date = asset.get("created_at", "");
285 release_info.download_url = download_url;
286 release_info.repository_url = get_repo_url(plugin_name);
287
288 return release_info;
289 }
290 }
291 }
292
293 return ReleaseInfo();
294}
295
296Vector<Dictionary> GitHubSource::get_list_of_releases(const String &plugin_name, Error &r_error) {
297 r_error = recache_release_list(plugin_name);

Callers 3

get_plugin_infoMethod · 0.45
do_taskMethod · 0.45

Calls 6

ReleaseInfoClass · 0.85
get_plugin_nameFunction · 0.85
is_empty_or_nullFunction · 0.70
getMethod · 0.45
sizeMethod · 0.45
get_fileMethod · 0.45

Tested by

no test coverage detected