2个版本
0.5.1 | 2023年8月18日 |
---|---|
0.5.0 | 2023年7月2日 |
#1744 在 解析器实现
842 每月下载量
用于 2 crates
25KB
456 行
parse-git-url
支持《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