1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- mod release;
- pub use release::*;
- use crate::http;
- pub fn get_latest_release(repo_owner: &str, repo_name: &str) -> crate::Result<Release> {
- set_ssl_vars!();
- let api_url = format!(
- "https://api.github.com/repos/{}/{}/releases/latest",
- repo_owner, repo_name
- );
- let resp = http::get(api_url.clone())?;
- if !resp.status().is_success() {
- return Err(
- crate::Error::Network(format!(
- "api request failed with status: {:?} - for: {:?}",
- resp.status(),
- api_url
- ))
- .into(),
- );
- }
- let json = resp.json::<serde_json::Value>()?;
- Ok(Release::parse(&json)?)
- }
- pub fn get_release_version(repo_owner: &str, repo_name: &str, ver: &str) -> crate::Result<Release> {
- set_ssl_vars!();
- let api_url = format!(
- "https://api.github.com/repos/{}/{}/releases/tags/{}",
- repo_owner, repo_name, ver
- );
- let resp = http::get(api_url.clone())?;
- if !resp.status().is_success() {
- return Err(
- crate::Error::Network(format!(
- "api request failed with status: {:?} - for: {:?}",
- resp.status(),
- api_url
- ))
- .into(),
- );
- }
- let json = resp.json::<serde_json::Value>()?;
- Ok(Release::parse(&json)?)
- }
|