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
每月下载量 21,933 次
在 94 个软件包中使用
57KB
1.5K SLoC
rusty-hook
为 Rust 代码库提供的 Git hook 工具,允许您为任何 Git hook 运行任何脚本。
功能性强,但仍处于测试版!
快速入门
先决条件:请确保您已安装 Rust,并且 Cargo 的 bin 目录已添加到您的 PATH 中。 https://www.rust-lang.net.cn/tools/install
- 在您的 Cargo.toml 文件中将
rusty-hook
添加为开发依赖项 - 运行
cargo test
(构建您的开发依赖项,包括rusty-hook
) - 使用您要运行的命令更新生成的
.rusty-hook.toml
文件 - 运行
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.toml
或rusty-hook.toml
的TOML文件)定义您想要的git钩子配置。
以下是一个示例rusty-hook
配置,它利用多个git钩子,包括pre-commit和pre-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
的方法。
- 从您项目中的
Cargo.toml
文件中移除rusty-hook
开发依赖项。 - 从您的项目中移除配置文件
.rusty-hook.toml
。 - 从您本地项目工作区中的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