8 个版本 (5 个重大更改)
0.6.0 | 2024年2月16日 |
---|---|
0.5.0 | 2023年4月27日 |
0.4.0 | 2023年2月15日 |
0.3.1 | 2023年1月22日 |
0.1.0 | 2022年7月8日 |
#1196 in 命令行工具
每月 87 次下载
用于 labelmaker
63KB
795 行
GitHub | crates.io | 文档 | 问题 | 变更日志
ghrepo
从各种 GitHub URL 格式(或仅从形式为 OWNER/REPONAME
或 REPONAME
的字符串)中提取 GitHub 仓库的所有者与名称,并提供反向确定可能 URL 的属性。还包括一个结构体,用于执行对本地 Git 仓库的一些有用检查,包括确定相应的 GitHub 所有者与仓库名称。
示例
use std::error::Error;
use std::str::FromStr;
use ghrepo::GHRepo;
fn main() -> Result<(), Box<dyn Error>> {
let repo = GHRepo::new("octocat", "repository")?;
assert_eq!(repo.owner(), "octocat");
assert_eq!(repo.name(), "repository");
assert_eq!(repo.to_string(), "octocat/repository");
assert_eq!(repo.html_url(), "https://github.com/octocat/repository");
let repo2 = GHRepo::from_str("octocat/repository")?;
assert_eq!(repo, repo2);
let repo3 = GHRepo::from_str("https://github.com/octocat/repository")?;
assert_eq!(repo, repo3);
Ok(())
}
命令
ghrepo
还提供了一个同名的命令,用于获取与本地 Git 仓库关联的 GitHub 仓库。要在您的系统上安装此命令,请运行
cargo install ghrepo
用法
ghrepo [<options>] [<dirpath>]
默认情况下,ghrepo
命令仅输出仓库的 "全名"(形式为 {owner}/{name}
的字符串)。如果提供了 -J
或 --json
选项,则输出 JSON 对象,其中包含仓库所有者、名称、全名和单独的 URL 字段,如下所示
{
"owner": "jwodder",
"name": "ghrepo-rust",
"fullname": "jwodder/ghrepo-rust",
"api_url": "https://api.github.com/repos/jwodder/ghrepo-rust",
"clone_url": "https://github.com/jwodder/ghrepo-rust.git",
"git_url": "git://github.com/jwodder/ghrepo-rust.git",
"html_url": "https://github.com/jwodder/ghrepo-rust",
"ssh_url": "[email protected]:jwodder/ghrepo-rust.git"
}
选项
-J
,--json
— 输出 JSON-r REMOTE
,--remote REMOTE
— 从给定的远程解析 GitHub URL [默认:origin
]
依赖项
~190KB