#git-repository #git #repo #utility #commit #meta #branch

构建 git-meta

基本的 Git 仓库元数据检查工具

9 个版本 (破坏性)

0.6.0 2022 年 1 月 23 日
0.5.0 2021 年 12 月 20 日
0.4.0 2021 年 11 月 14 日
0.3.1 2021 年 2 月 27 日
0.0.1 2021 年 2 月 6 日

#645 in 构建工具

每月下载 50
用于 git-event

MIT 许可证

51KB
962

git-meta

Crates.io docs.rs licence Github actions build status

Git-meta 是一个用于收集关于 git 仓库和提交信息的功能集合


lib.rs:

Git-meta

Git-meta 是一个用于收集关于 git 仓库和提交信息的功能集合。您可以使用 GitRepo::open(path) 打开现有的仓库(例如,提供分支和提交。提供 None 以使用当前签出的值)

use std::path::PathBuf;
use git_meta::GitRepo;
GitRepo::open(
        PathBuf::from("/path/to/repo"),
        Some("main".to_string()),
        Some("b24fe6112e97eb9ee0cc1fd5aaa520bf8814f6c3".to_string()))
    .expect("Unable to clone repo");

您可以使用 GitRepo::new(url) 创建一个用于克隆的新仓库

use std::path::PathBuf;
use git_meta::{GitCredentials, GitRepo};
use mktemp::Temp;
let temp_dir = Temp::new_dir().expect("Unable to create test clone dir");

let creds = GitCredentials::SshKey {
    username: "git".to_string(),
    public_key: None,
    private_key: PathBuf::from("/path/to/private/key"),
    passphrase: None,
};

GitRepo::new("https://github.com/tjtelan/git-meta-rs")
    .expect("Unable to create GitRepo")
    .with_credentials(Some(creds))
    .to_clone()
    .git_clone_shallow(temp_dir.as_path())
    .expect("Unable to clone repo");

注意:浅克隆需要安装 git CLI

依赖项

~20MB
~431K SLoC