hook

简介

系统钩子程序设置。

vb hook SUBCOMMAND...

说明

在 VisionByte 系统中,钩子是响应仓库中的特定事件或操作而自动执行的脚本或命令。允许自定义和扩展仓库的行为,提供自动化并执行策略。

应用场景

  • 自动化

提交前自动化:在提交完成之前运行脚本或命令。例如,您可以自动格式化代码、运行单元测试或检查某些条件。

提交后操作:提交后执行任务,例如触发持续集成构建、通知团队成员或更新相关系统。

  • 政策执行

提交验证:确保提交信息遵循特定格式或代码符合某些标准。例如,您可以强制要求所有提交信息都包含对错误编号的引用。

质量检查:在允许提交之前自动验证代码质量、运行 linting 工具或执行静态分析。

  • 一体化

通知系统:与外部通知系统集成,例如在发生某些事件时向聊天平台(例如 Slack)发送电子邮件或消息。

外部服务:更新或同步外部系统或服务,例如部署管道、错误跟踪器或监控系统。

  • 定制

工作流程定制:自定义仓库行为以适应特定工作流程或项目要求。挂钩允许您执行自定义脚本,以使仓库的行为适应您的需求。

子命令

add

vb hook add --command COMMAND --type TYPE --sequence NUMBER

创建一个新的钩子。--command--type 参数是必需的。--sequence 是可选的。

选项说明:

  • --command COMMAND :指定触发钩子时要执行的命令或脚本。这是响应事件而运行的实际可执行脚本或命令。

  • --type TYPE :定义正在设置的钩子类型。可能的值包括:

pre-commit :在提交完成之前运行;

post-commit :提交后运行;

pre-update :在仓库更新之前运行;

post-update :在仓库更新后运行。

  • --sequence NUMBER :指定当存在多个相同类型的钩子时钩子的执行顺序。序列号较低的钩子先于序列号较高的钩子运行。

delete

vb hook delete ID...

根据 ID 删除一个或多个钩子。ID 可以是 all ,表示删除所有钩子。注意:此操作无法执行 undo 命令,删除的钩子将永久丢失。

edit

vb hook edit --command COMMAND --type TYPE --sequence NUMBER ID...

对一个或多个现有钩子进行更改。ID 参数可以是钩子 ID、钩子 ID 列表或关键字 all。例如,要禁用钩子编号 2,请使用:

vb hook edit --type disabled 2

list

vb hook list

显示所有当前钩子。

status

vb  hook status

打印与钩子处理相关的 CONFIG 表条目的值。用于调试。

test

vb hook test [OPTIONS] ID

运行由 ID 指定的钩子脚本以进行测试。

选项

--dry-run

试运行,不执行任何操作,但显示将发生的情况。

--base-rcvid N

假设 hook-last-rcvid 值为 N

--new-rcvid M

假设最后一个 rcvid 值为 M

--aux-file NAME

脚本中的 NAME 替换了 %A

如果钩子类型不是 after-receive ,则 --base-rcvid--new-rcvid 选项将被忽略。 --base-rcvid--new-rcvid 的默认值会导致处理最后一次接收。