mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-21 21:18:42 +00:00

* Refactor: Create new crate binstalk-git-repo-api Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix CI lint warnings Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix `just check`: Rm deleted features from `cargo-hack` check Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor: Extract new mod error Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Ret artifact url in `has_release_artifact` So that we can use it to download from private repositories. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Move `test_graph_ql_error_type` to mod `error` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix running `cargo test` in `binstalk-git-repo-api`` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Remove unnecessary import in mod `error::test` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Rename mod `request`` to `release_artifacts` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Impl draft version of fetching repo info Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor: Move `HasReleaseArtifacts` failure variants into `GhApiError` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor: Use `GhRepo` in `GhRelease` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix testing Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor: Return `'static` future Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor: Make sure `'static` Future is returned To make it easier to create generic function Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add logging to unit testing Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix unit testing Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor: Extract new fn `GhApiClient::do_fetch` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Rm unused `percent_encode_http_url_path` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix `cargo test` run on CI `cargo test` run all tests in one process. As such, `set_global_default` would fail on the second call. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Optimize `GhApiClient::do_fetch`: Avoid unnecessary restful API call Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor: Rm param `auth_token` for restful API fn which is always set to `None` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Impl new API `GhApiClient::get_repo_info` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix unit test for `GhApiClient::get_repo_info` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor testing: Parameter-ize testing Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Parallelise `test_get_repo_info` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor: Create parameter-ised `test_has_release_artifact` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Parallelize `test_has_release_artifact` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Refactor: `gh_api_client::test::create_client` shall not be `async` as there is no `.await` in it. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Return `Url` in `GhApiClient::has_release_artifact` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Impl new API `GhApiClient::download_artifact` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Remove unused deps added to binstalk-git-repo-api Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix clippy lints Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add new API `GhApiClient::remote_client` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add `GhApiClient::has_gh_token` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add `GhRepo::try_extract_from_url` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Rename `ReleaseArtifactUrl` to `GhReleaseArtifactUrl` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add new fn `Download::with_data_verifier` Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * feature: Support private repository Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix clippy lints Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add e2e-test/private-github-repo Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix clippy lints Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix `launch_baseline_find_tasks`: Retry on rate limit Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix test failure: Retry on rate limit Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Temporarily enable debug output for e2e-test-private-github-repo Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix `get_repo_info`: Retry on rate limit Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Improve `debug!` logging Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add more debug logging Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add more debugging Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add more debug logging Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Apply suggestions from code review * Fix compilation Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Fix cargo fmt Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com> * Add crate binstalk-git-repo-api to release-pr.yml * Update crates/binstalk-git-repo-api/Cargo.toml * Apply suggestions from code review * Update crates/binstalk/Cargo.toml --------- Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
136 lines
3.6 KiB
TOML
136 lines
3.6 KiB
TOML
[package]
|
|
name = "binstalk-downloader"
|
|
description = "The binstall toolkit for downloading and extracting file"
|
|
repository = "https://github.com/cargo-bins/cargo-binstall"
|
|
documentation = "https://docs.rs/binstalk-downloader"
|
|
version = "0.10.3"
|
|
rust-version = "1.70.0"
|
|
authors = ["ryan <ryan@kurte.nz>"]
|
|
edition = "2021"
|
|
license = "Apache-2.0 OR MIT"
|
|
|
|
[dependencies]
|
|
async-trait = "0.1.68"
|
|
async-compression = { version = "0.4.4", features = [
|
|
"gzip",
|
|
"zstd",
|
|
"xz",
|
|
"bzip2",
|
|
"tokio",
|
|
] }
|
|
async_zip = { version = "0.0.17", features = [
|
|
"deflate",
|
|
"deflate64",
|
|
"bzip2",
|
|
"lzma",
|
|
"zstd",
|
|
"xz",
|
|
"tokio",
|
|
] }
|
|
binstalk-types = { version = "0.7.0", path = "../binstalk-types" }
|
|
bytes = "1.4.0"
|
|
bzip2 = "0.4.4"
|
|
compact_str = "0.7.0"
|
|
flate2 = { version = "1.0.28", default-features = false }
|
|
futures-util = "0.3.30"
|
|
futures-io = "0.3.30"
|
|
httpdate = "1.0.2"
|
|
reqwest = { version = "0.12.4", features = [
|
|
"http2",
|
|
"stream",
|
|
"zstd",
|
|
"gzip",
|
|
"brotli",
|
|
"deflate",
|
|
], default-features = false }
|
|
serde = { version = "1.0.163", features = ["derive"], optional = true }
|
|
serde_json = { version = "1.0.107", optional = true }
|
|
# Use a fork here since we need PAX support, but the upstream
|
|
# does not hav the PR merged yet.
|
|
#
|
|
#tar = "0.4.38"
|
|
tar = { package = "binstall-tar", version = "0.4.39" }
|
|
tempfile = "3.5.0"
|
|
thiserror = "1.0.61"
|
|
tokio = { version = "1.35.0", features = [
|
|
"macros",
|
|
"rt-multi-thread",
|
|
"sync",
|
|
"time",
|
|
"fs",
|
|
], default-features = false }
|
|
tokio-tar = "0.3.0"
|
|
tokio-util = { version = "0.7.8", features = ["io"] }
|
|
tracing = "0.1.39"
|
|
hickory-resolver = { version = "0.24.0", optional = true, features = [
|
|
"dnssec-ring",
|
|
] }
|
|
once_cell = { version = "1.18.0", optional = true }
|
|
url = "2.3.1"
|
|
|
|
xz2 = "0.1.7"
|
|
|
|
# zstd is also depended by zip.
|
|
# Since zip 0.6.3 depends on zstd 0.11, we can use 0.12.0 here
|
|
# because it uses the same zstd-sys version.
|
|
# Otherwise there will be a link conflict.
|
|
zstd = { version = "0.13.0", default-features = false }
|
|
|
|
[features]
|
|
default = ["static", "rustls"]
|
|
|
|
static = ["bzip2/static", "xz2/static"]
|
|
pkg-config = ["zstd/pkg-config"]
|
|
|
|
zlib-ng = ["flate2/zlib-ng"]
|
|
|
|
# Dummy feature, enabled if rustls or native-tls is enabled.
|
|
# Used to avoid compilation error when no feature is enabled.
|
|
__tls = []
|
|
|
|
rustls = [
|
|
"__tls",
|
|
|
|
"reqwest/rustls-tls",
|
|
"reqwest/rustls-tls-webpki-roots",
|
|
"reqwest/rustls-tls-native-roots",
|
|
|
|
# Enable the following features only if hickory-resolver is enabled.
|
|
"hickory-resolver?/dns-over-rustls",
|
|
# hickory-resolver currently supports https with rustls
|
|
"hickory-resolver?/dns-over-https-rustls",
|
|
"hickory-resolver?/dns-over-quic",
|
|
"hickory-resolver?/dns-over-h3",
|
|
]
|
|
native-tls = [
|
|
"__tls",
|
|
"reqwest/native-tls",
|
|
"hickory-resolver?/dns-over-native-tls",
|
|
]
|
|
|
|
# Enable hickory-resolver so that features on it will also be enabled.
|
|
hickory-dns = ["hickory-resolver", "default-net", "ipconfig", "once_cell"]
|
|
|
|
# Deprecated alias for hickory-dns, since trust-dns is renamed to hickory-dns
|
|
trust-dns = ["hickory-dns"]
|
|
|
|
# HTTP3 is temporarily disabled by reqwest.
|
|
#
|
|
# Experimental HTTP/3 client, this would require `--cfg reqwest_unstable`
|
|
# to be passed to `rustc`.
|
|
#http3 = ["reqwest/http3"]
|
|
http3 = []
|
|
|
|
zstd-thin = ["zstd/thin"]
|
|
|
|
cross-lang-fat-lto = ["zstd/fat-lto"]
|
|
|
|
json = ["serde", "serde_json"]
|
|
|
|
[target."cfg(windows)".dependencies]
|
|
default-net = { version = "0.22.0", optional = true }
|
|
ipconfig = { version = "0.3.2", optional = true, default-features = false }
|
|
|
|
[package.metadata.docs.rs]
|
|
features = ["gh-api-client"]
|
|
rustdoc-args = ["--cfg", "docsrs"]
|