mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-24 22:30:03 +00:00
feat: Add GraphQL support to GhApiClient
(#1124)
Fixed #868 - Add new fn `remote::Client::post` - Add new fn `remote::RequestBuilder::body` - Re-export `reqwest::Body` in `remote` - Add dep percent-encoding v2.2.0 to binstalk-downloader - Add dep serde-tuple-vec-map v1.0.1 to binstalk-downloader - Add GraphQL to `GhApiClient`, fallback to Restful API if token is not provided or authorization failed. - Fixed `GhReleaseArtifact::try_extract_artifact_from_str`: decode percent encoded http url path and add regression tests - Added variant `GhApiError::Context` & `GhApiContextError` - Added variant `GhApiError::GraphQLErrors` & `GhGraphQLErrors` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
e87e3534a8
commit
22b3419fce
8 changed files with 518 additions and 99 deletions
|
@ -306,12 +306,12 @@ pub enum BinstallError {
|
|||
#[diagnostic(severity(error), code(binstall::invalid_pkg_fmt))]
|
||||
InvalidPkgFmt(Box<InvalidPkgFmtError>),
|
||||
|
||||
/// Request to GitHub Restful API failed
|
||||
/// Request to GitHub API failed
|
||||
///
|
||||
/// - Code: `binstall::gh_restful_api_failure`
|
||||
/// - Code: `binstall::gh_api_failure`
|
||||
/// - Exit: 96
|
||||
#[error("Request to GitHub Restful API failed: {0}")]
|
||||
#[diagnostic(severity(error), code(binstall::gh_restful_api_failure))]
|
||||
#[error("Request to GitHub API failed: {0}")]
|
||||
#[diagnostic(severity(error), code(binstall::gh_api_failure))]
|
||||
GhApiErr(#[source] Box<GhApiError>),
|
||||
|
||||
/// A wrapped error providing the context of which crate the error is about.
|
||||
|
|
|
@ -15,7 +15,7 @@ pub async fn does_url_exist(
|
|||
debug!("Checking for package at: '{url}'");
|
||||
|
||||
if let Some(artifact) = GhReleaseArtifact::try_extract_from_url(url) {
|
||||
debug!("Using GitHub Restful API to check for existence of artifact, which will also cache the API response");
|
||||
debug!("Using GitHub API to check for existence of artifact, which will also cache the API response");
|
||||
|
||||
// The future returned has the same size as a pointer
|
||||
match gh_api_client.has_release_artifact(artifact).await? {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue