25 个版本

0.11.2 2020年6月23日
0.10.3 2020年2月25日
0.10.1 2019年10月14日
0.9.1 2019年7月21日
0.1.2 2018年12月27日

开发工具 中排名第114

Download history 6789/week @ 2024-03-14 6551/week @ 2024-03-21 5456/week @ 2024-03-28 5613/week @ 2024-04-04 5582/week @ 2024-04-11 5020/week @ 2024-04-18 4872/week @ 2024-04-25 6104/week @ 2024-05-02 5209/week @ 2024-05-09 5384/week @ 2024-05-16 5548/week @ 2024-05-23 5128/week @ 2024-05-30 5756/week @ 2024-06-06 5237/week @ 2024-06-13 5692/week @ 2024-06-20 4287/week @ 2024-06-27

每月下载量 21,933
94 个软件包中使用

MIT 许可证

57KB
1.5K SLoC

rusty-hook

为 Rust 代码库提供的 Git hook 工具,允许您为任何 Git hook 运行任何脚本。

功能性强,但仍处于测试版!

Version Badge Downloads Badge License Badge

Linux CI Badge Mac CI Badge Windows CI Badge
Test Results Badge Coverage Badge

快速入门

先决条件:请确保您已安装 Rust,并且 Cargo 的 bin 目录已添加到您的 PATH 中。 https://www.rust-lang.net.cn/tools/install

  1. 在您的 Cargo.toml 文件中将 rusty-hook 添加为开发依赖项
  2. 运行 cargo test(构建您的开发依赖项,包括 rusty-hook
  3. 使用您要运行的命令更新生成的 .rusty-hook.toml 文件
  4. 运行 git commit(或触发 Git hook 的等效命令)!
    • 您可能还希望使钩子脚本失败(例如,如果您将提交钩子设置为 cargo test,则添加一个失败的测试),以查看钩子是否被强制执行。
    • 注意,您第一次这样做时将需要额外的约 30 秒左右来最终完成设置

设置

只需在您的 Cargo.toml 文件中将 rusty-hook 添加为开发依赖项

[dev-dependencies]
rusty-hook = "^0.11.2"

初始化

当您将 rusty-hook 添加为项目中的开发依赖项时,它将在构建后自动配置 Git 钩子(例如,您第一次运行 cargo test 时)。

这将确保所有客户端 Git 钩子都已设置并可用,并且如果尚未存在,它将创建一个 rusty-hook 配置文件。

Git钩子脚本将确保rusty-hook命令行工具可用,因此当您机器上第一次触发Git钩子时,您将看到一条消息,表明rusty-hook设置正在进行最终化,这可能需要大约30秒左右的时间。

Finalizing rusty-hook configuration...
This may take a few seconds...

(可选)安装

您也可以使用Cargo安装rusty-hook命令行工具。

cargo install rusty-hook

您可以选择手动初始化任何Git目录,通过在任何Git目录中运行init命令来设置它。

rusty-hook init

配置

您可以在rusty-hook配置文件中(一个名为.rusty-hook.tomlrusty-hook.toml的TOML文件)定义您想要的git钩子配置。

以下是一个示例rusty-hook配置,它利用多个git钩子,包括pre-commitpre-push钩子。

[hooks]
pre-commit = "cargo test"
pre-push = "cargo fmt -- --check"
post-commit = "echo yay"

[logging]
verbose = true

钩子

[hooks]表中,您可以添加任何您想运行的Git钩子的条目,通过使用git钩子的名称作为键,然后指定您要为此钩子运行的命令/脚本。每次触发该Git钩子时,rusty-hook都会运行您指定的命令!

日志记录

[logging]表中,您可以控制是否记录运行指定钩子命令的输出。默认情况下,rusty-hook会记录钩子脚本的输出,但您可以通过将verbose键设置为false来禁用此行为。

[logging]
verbose = false

替代方案

crates.io上有一些其他Git钩子工具可用,但它们都不太适合我们的需求,所以我们创建了rusty-hook

贡献

我们欢迎并感谢所有贡献!有关提交问题、开发等方面的更多信息,请查看我们的贡献指南

移除rusty-hook

我们将非常难过看到您离开,但以下是如何从您的项目中移除rusty-hook的方法。

  1. 从您项目中的Cargo.toml文件中移除rusty-hook开发依赖项。
  2. 从您的项目中移除配置文件.rusty-hook.toml
  3. 从您本地项目工作区中的Git钩子目录中移除Git钩子脚本(通常位于.git/hooks/目录)。注意,如果您使用的是rusty-hook版本0.9.1或更高版本,并且跳过此步骤,那么Git钩子仍然将作为您Git工作流程的一部分被调用,并且您将在git提交时看到以下警告信息:
rusty-hook git hooks are configured, but no config file was found
In order to use rusty-hook, your project must have a config file
See https://github.com/swellaby/rusty-hook#configure for more information about configuring rusty-hook

If you were trying to remove rusty-hook, then you should also delete the git hook files to remove this warning
See https://github.com/swellaby/rusty-hook#removing-rusty-hook for more information about removing rusty-hook from your project

请考虑提交一个问题来报告您遇到的任何错误/问题、缺失的功能等,这样我们就可以改进rusty-hook

依赖关系

~5.5MB
~38K SLoC