8个版本

0.4.6 2024年7月25日
0.4.5 2024年6月17日
0.4.4 2024年3月21日
0.4.2 2024年2月9日
0.1.0 2020年12月16日

认证 中排名 134

Download history 16421/week @ 2024-05-04 16102/week @ 2024-05-11 14760/week @ 2024-05-18 14890/week @ 2024-05-25 15401/week @ 2024-06-01 14059/week @ 2024-06-08 16493/week @ 2024-06-15 14261/week @ 2024-06-22 14738/week @ 2024-06-29 14015/week @ 2024-07-06 16388/week @ 2024-07-13 16341/week @ 2024-07-20 17490/week @ 2024-07-27 16324/week @ 2024-08-03 16900/week @ 2024-08-10 15785/week @ 2024-08-17

每月下载量 69,220
48 个crates(直接使用10个)中使用

MIT/Apache

33KB
653

cargo-credential

此包是一个辅助编写Cargo凭证辅助程序的库,它提供了一个接口来存储用于授权访问如https://crates.io/之类的注册表的令牌。

关于凭证过程的文档可以在https://doc.rust-lang.net.cn/nightly/cargo/reference/credential-provider-protocol.html找到

示例实现可以在https://github.com/rust-lang/cargo/tree/master/credential找到

用法

使用此依赖创建Cargo项目

# Add this to your Cargo.toml:

[dependencies]
cargo-credential = "0.4"

然后包含一个实现Credential trait的main.rs二进制文件,并调用将调用该trait适当方法的main函数

// src/main.rs

use cargo_credential::{Credential, Error};

struct MyCredential;

impl Credential for MyCredential {
    /// implement trait methods here...
}

fn main() {
    cargo_credential::main(MyCredential);
}

lib.rs:

编写Cargo凭证提供者辅助库。

凭证过程应该有一个实现Credential trait的struct。应使用该结构的实例调用main函数,例如

fn main() {
    cargo_credential::main(MyCredential);
}

perform函数中,stdin和stdout将被重新连接到活动控制台。这允许凭证提供者根据需要进行交互。

错误处理

错误::UrlNotSupported

凭证提供者可能只支持一些注册表URL。如果这种情况发生,并且提供了一个不支持的索引URL,则应返回Error::UrlNotSupported。Cargo可能会尝试其他凭证提供者。

错误::NotFound

当尝试执行Action::GetAction::Logout操作时,如果找不到凭证,提供者应返回Error::NotFound。Cargo可能会尝试其他凭证提供者。

错误::OperationNotSupported

凭证提供者可能不支持所有操作。例如,如果提供者只支持Action::Get,则对于所有其他请求应返回Error::OperationNotSupported

错误::Other

所有其他错误都放在这里。错误将在Cargo中显示给用户,包括使用std::error::Error::source显示的完整错误链。

Example

依赖项

~2-11MB
~110K SLoC