2个版本

0.5.1 2023年8月18日
0.5.0 2023年7月2日

#1744解析器实现

Download history 58/week @ 2024-03-13 170/week @ 2024-03-20 32/week @ 2024-03-27 41/week @ 2024-04-03 47/week @ 2024-04-10 189/week @ 2024-04-17 207/week @ 2024-04-24 250/week @ 2024-05-01 256/week @ 2024-05-08 395/week @ 2024-05-15 233/week @ 2024-05-22 199/week @ 2024-05-29 217/week @ 2024-06-05 166/week @ 2024-06-12 238/week @ 2024-06-19 203/week @ 2024-06-26

842 每月下载量
用于 2 crates

MIT 许可证

25KB
456

parse-git-url

Build Status

支持《Pro Git》书中指定的常用协议

参见:Pro Git书

支持解析SSH/HTTPS仓库url,用于

  • Github
  • Bitbucket
  • Azure Devops

参见 tests/parse.rs 以查看各种输入的预期输出。


使用ssh协议(隐式或显式)的URL经过小规模规范化处理以进行解析。

规范化后,内部使用来自Url crate的Url::parse()进行解析。

示例

运行示例并输出调试信息

$ RUST_LOG=parse_git_url cargo run --example multi
$ RUST_LOG=parse_git_url cargo run --example trim_auth

简单使用和输出

$ cargo run --example readme
use parse_git_url::GitUrl;

fn main() {
    println!("SSH: {:#?}", GitUrl::parse("[email protected]:tjtelan/git-url-parse-rs.git"));
    println!("HTTPS: {:#?}", GitUrl::parse("https://github.com/tjtelan/git-url-parse-rs"));
}

示例输出

SSH: Ok(
    GitUrl {
        host: Some(
            "github.com",
        ),
        name: "git-url-parse-rs",
        owner: Some(
            "tjtelan",
        ),
        organization: None,
        fullname: "tjtelan/git-url-parse-rs",
        scheme: Ssh,
        user: Some(
            "git",
        ),
        token: None,
        port: None,
        path: "tjtelan/git-url-parse-rs.git",
        git_suffix: true,
        scheme_prefix: false,
    },
)
HTTPS: Ok(
    GitUrl {
        host: Some(
            "github.com",
        ),
        name: "git-url-parse-rs",
        owner: Some(
            "tjtelan",
        ),
        organization: None,
        fullname: "tjtelan/git-url-parse-rs",
        scheme: Https,
        user: None,
        token: None,
        port: None,
        path: "/tjtelan/git-url-parse-rs",
        git_suffix: false,
        scheme_prefix: true,
    },
)

致谢

此存储库已从 tjtelan/git-url-parse-rs 分支。所有荣誉归原作者所有。

依赖关系

~1.5MB
~54K SLoC