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 命令行工具

Download history 50/week @ 2024-03-11 34/week @ 2024-03-18 17/week @ 2024-03-25 48/week @ 2024-04-01 32/week @ 2024-04-08 16/week @ 2024-04-15 29/week @ 2024-04-22 45/week @ 2024-04-29 30/week @ 2024-05-06 18/week @ 2024-05-13 17/week @ 2024-05-20 24/week @ 2024-05-27 38/week @ 2024-06-03 31/week @ 2024-06-10 9/week @ 2024-06-17 7/week @ 2024-06-24

每月 87 次下载
用于 labelmaker

MIT 许可证

63KB
795

Project Status: Active – The project has reached a stable, usable state and is being actively developed. CI Status codecov.io Minimum Supported Rust Version MIT License

GitHub | crates.io | 文档 | 问题 | 变更日志

ghrepo 从各种 GitHub URL 格式(或仅从形式为 OWNER/REPONAMEREPONAME 的字符串)中提取 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