如何在 Gerrit 2.16 中配置服务器端挂钩

2024-03-17

我已经开始使用 Gerrit 2.16 作为代码审查工具,并希望配置服务器端挂钩以在更改提交/推送到 gerrit 时验证 git 提交消息。

尝试通过将脚本复制到 $GIT_DIR/hooks 来使用钩子(诸如 ref-update、patchset-created、change-merged 之类的脚本),在 gerrit 服务器上授予权限,但没有任何效果。

可以使用 gerrit UI 中的命令 Give 在本地存储库上启用 commit-msg 挂钩

例子: git clone ssh://@:29418/Project1 && scp -p -P 29418 @:hooks/commit-msg /.git/hooks/

如果启用此钩子,将自动生成change_ID。

执行上述命令时,此脚本 commit-msg 将下载到本地存储库。
我的问题;我们能否在 gerrit 服务器上找到该脚本的路径,以便我可以修改并强制执行 git 提交消息验证?

或者还有其他方法来启用 gerrit 服务器端挂钩吗?


不,您不会在 Gerrit 服务器上找到 commit-msg 路径,并且 Git/Gerrit 不会自动使用您放在 $GIT_DIR/hooks 上的任何钩子。如果您想要本地挂钩,则需要手动将它们安装在 REPOSITORY/.git/hooks 本地目录中。

Gerrit 不会在其使用的存储库中运行任何标准 git 挂钩,但它确实有自己的挂钩机制,通过挂钩插件 https://gerrit-review.googlesource.com/admin/repos/plugins%2Fhooks. See here https://gerrit.googlesource.com/plugins/hooks/+/refs/heads/master/src/main/resources/Documentation/hooks.md有关受支持的 Gerrit 挂钩的更多信息。 Hooks 插件是一个核心插件 https://gerrit-review.googlesource.com/Documentation/config-plugins.html#core-plugins(它打包在 Gerrit war 文件中,可以在 Gerrit 初始化期间轻松安装)。

我建议你看一下Git::钩子 https://stackoverflow.com/questions/46100437/how-to-install-config-githooks-to-use-with-gerrit(用于实现 Git/Gerrit 挂钩的 Perl 框架)。我们公司用的,真的很棒。您可以使用它来实现您想要的以及更多...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Gerrit 2.16 中配置服务器端挂钩 的相关文章

  • git Push over sshfs 失败,并显示“关闭 sha1 文件时出错:错误的文件描述符”

    我们使用 sshfs 通过 SSH 安装文件系统 并将其用作 git 存储库协作的远程存储 Mac OSX 10 6 6 到 RHEL 3 服务器 SSHFS 版本 2 2 MacFUSE SSHFS 2 2 0 MacFUSE 库版本 F
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • 第一次使用node.js - “ReferenceError:节点未定义”

    我刚刚安装了node js 我尝试编写应该检查版本的node v 但它不起作用 这是输出 gt node v ReferenceError node is not defined at repl 1 2 at REPLServer self
  • 致命:.git/info/refs 无效:这是一个 git 存储库吗?

    我有一个托管在 Assembla 上的 Git 存储库 我正在尝试执行以下操作 git push u origin master 我一遍又一遍地收到以下错误 fatal https url repo name git info refs n
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • Git - 创建拉取请求而不分叉

    使用 git 已经有一段时间了 关于 git pull request 有很多教程和解释 其动机是什么等等 我遇到两种情况 1 分叉 git 仓库 我查看了一些公共 git 存储库并决定我想要做出贡献 所以我 通过以下方式创建重复的存储库F
  • git 认为文件已更改

    我在一台机器上对一个项目做了一些工作 然后推送到 github 在另一台机器上克隆并做了一些工作 然后推送 然后我回到第一台机器并做了一个pull 现在 第一台机器认为项目中最初的所有文件都已更改 我试过了 git checkout f a
  • GIT:以下未跟踪的工作树文件将被签出覆盖

    我有两个分支 一个称为 master 另一个称为 dev 我目前位于 master 分支 我想转到 dev 分支将文件移动到开发服务器 但是当我执行 git checkout dev 我收到消息 以下未跟踪的工作树文件将被覆盖 查看 pag
  • 当 .gitattributes 中的 EOL 设置为 CRLF 时,Git diff 认为行结尾为 LF

    当我恢复对带有 Windows 行结尾的文件的更改并且 gitattributes 将 EOL 定义为 CRLF 时 git 认为行结尾已更改为 LR 即使十六进制编辑器显示 CRLF 仅当 gitattributes 定义 EOL 字符时
  • 当当前分支上有未提交的更改时签出另一个分支

    大多数时候 当我尝试签出另一个现有分支时 如果我在当前分支上有一些未提交的更改 Git 会不允许我这样做 所以我必须首先提交或隐藏这些更改 然而 有时 Git 确实允许我在不提交或存储这些更改的情况下签出另一个分支 并且它会将这些更改携带到
  • 带有 git Remote 的 Gem 文件在 Heroku 推送上失败

    我的 gemfile 中有以下行 gem client side validations git gt email protected cdn cgi l email protection Dakuan client side valida
  • 自定义 SSH 端口上的 Git

    我的 VPS 提供商建议我将 SSH 端口保留为他们默认分配的自定义端口号 不是 22 问题是 虽然我知道我可以在创建远程配置时提供端口号 但在进行 Git 克隆时似乎无法提供相同的操作 我在用gitolite https wiki arc
  • 将更改从一个分支复制到另一个分支

    我有一个分支名为BranchA from master 我有一些改变BranchA 我不会合并来自BranchA to master 现在我创建了另一个分支master named BranchB 我如何复制更改BranchA to Bra
  • 使用 gitignore 嵌套存储库。

    我想嵌套 2 个 git 存储库 我一直在阅读子模块 有一段时间我认为它很棒 我想我可能想要其他东西 这是我的情况 首先 我想我应该提到我的所有服务器都托管网站 并以 staging domain com 和 domain com 实时 模
  • 如何在不在存储库中的情况下执行 Git 命令?

    有没有一种方法可以在不位于存储库的情况下对存储库执行 Git 命令 例如这样的事情 git home repo log 请不要告诉我cd到它 我正在通过一个exec call Use C作为 git 的第一个参数 git C home re
  • git 是否有任何静态接口?

    我一直在寻找一个宁静的 git api 但似乎没有找到 我得到的最接近的是 Github 的 api 来访问一些存储库信息 还有其他的实施吗 Orion Git API http wiki eclipse org Orion Server
  • git merge 冲突的不同场景

    我试图了解 git 合并后可能发生 git 冲突的情况以及如何避免它们 我创建了一个 git 存储库并向其中添加了一个文本文件 我已将 1 添加到文本文件中并将其提交给 master 我已经从 master 创建了一个新分支 分支 2 并将
  • MSysGit 与 Windows 版 Git

    我无法确定MSysGit 和 Windows 版 Git 之间的区别 http msysgit github com 它们有何不同 为什么我会选择其中之一而不是另一个 它们不是同一个东西吗 On http msysgit github co
  • 如何使用 git 比较不​​在存储库中的两个文件

    我想比较两个不在任何 git 存储库中的 css 文件 git中有这样的功能吗 git的 diff 比标准 Unix 更实用diff 我经常想这样做 并且由于这个问题在谷歌上排名很高 所以我希望这个答案出现 这个问题 如何使用git dif
  • 如何创建名称中带有正斜杠的标签

    当我已经有了类似的标签时 有什么方法可以创建名称中带有正斜杠的 git 标签吗 假设我有 1 16 0 标签 并且我想创建 1 16 0 1 0 0 标签 git tag 1 16 0 1 0 0 error refs tags 1 16

随机推荐

  • ListField 在编辑/创建帖子中显示

    我正在一个项目中使用 Flask mongoengine 我正在尝试从中获取基本的东西http docs mongodb org manual tutorial write a tumblelog application with flas
  • 如何在MASM中为一个项目编写和组合多个源文件?

    对于组装来说还是个新手 玩起来很有趣 我想将程序的功能拆分到多个文件中 特别是通过将类似的功能分组在一起进行组织 这些其他文件将由主文件 甚至希望其他非主文件 调用 我还没有成功 希望得到帮助 我不使用 IDE 更喜欢使用 notepad
  • Excel VBA 用于匹配和排列行

    我有一个 Excel 文档 其中包含 A 到 J 列 K 到 N 列包含相关数据 但未对齐 我需要将 F 列中的值与 K 列中的值进行匹配 以便它们对齐 当我移动K时 我必须一起移动L M N 我无法对 A 到 J 列进行排序 它们必须保留
  • JWT 计算签名 SHA256withRSA

    我试图 使用 SHA256withRSA 对输入的 UTF 8 表示形式进行签名 也可以 称为带有 SHA 256 哈希函数的 RSASSA PKCS1 V1 5 SIGN 从API控制台获取的私钥 输出将是 字节数组 所以让我们将 Hea
  • Django Count 和 Sum 注释相互干扰

    在建设综合体的同时QuerySet通过几个注释 我遇到了一个可以通过以下简单设置重现的问题 以下是型号 class Player models Model name models CharField max length 200 class
  • WPF 工具包数据网格标头和空源

    如果没有可显示的行 如何使数据网格显示标题 我的数据网格是 完全 只读的 自动生成列 真 CanUserAddRows 假 CanUserDeleteRows 假 CanUserResizeRows 假 IsReadOnly 真 如果没有行
  • 将 int 数组转换为 char*

    这可能吗 我想将其转换为 char 以便稍后检索该值 Sure int array 4 1 2 3 4 char c reinterpret cast
  • Github/compare:如何比较两个不同的文件(不同的文件名,都在 HEAD 中)?

    我可以使用github吗 compare在HEAD中显示两个不同源文件之间的差异 这是我在命令行上执行此操作的方法git diff git diff HEAD docs tutorial 01 boxed function pointers
  • 预编译资产时出现“命令失败,状态为 ()”

    当我在生产环境中编译资源时 我和很多用户一样遇到了类似的问题 唯一的区别是我无法从跟踪中得到任何提示来解决问题 rake assets precompile RAILS ENV production trace Invoke assets
  • 比较字典,更新而不覆盖值[重复]

    这个问题在这里已经有答案了 I am not寻找这样的东西 如何将两个字典合并到一个表达式中 https stackoverflow com questions 38987 how do i merge two dictionaries i
  • 如何使用 CSS3 将链接列表拆分为 3 列?

    我有一个这样的链接列表 div a href link html Dummy link text a a href link html Dummy link text a a href link html Dummy link text a
  • 我们能否将大的 ajax 调用拆分为多个较小的调用以更快地加载数据?

    我使用下面的 ajax 调用从数据库检索数据并将其显示在我的页面中 ajax type POST url MyPage aspx LoadGrid data idyear 2020 contentType application json
  • 是否有针对 Android 设备的特定于设备的错误汇编?

    我们发现特定设备上的崩溃发生在某些标准 Java 库内 此崩溃仅发生在一种特定型号的设备上 我确信各种 Android 设备还有其他奇怪的地方 是否有 Android 设备已知问题的汇编 我特别在想所提供的库和 JVM 类型内容中的奇怪之处
  • 如果 UserAgent 是 iPhone,则动态更改 url 或 WordPress 主题

    有什么办法可以做到这一点吗 我的网站是http kennethreitz com http kennethreitz com 它由顶级 WordPress 上的一些中等 PHP 驱动 我的选择是检测用户是否使用 iPhone 以及是否使用
  • 打字稿和运算符

    我正在努力寻找定义 TypeScript 中的运算符 我最近遇到了以下代码 type IRecord
  • jQuery UI 滑块(以编程方式设置)

    我想即时修改滑块 我试图通过使用来做到这一点 slider slider option values 50 80 此调用将设置值 但元素不会更新滑块位置 呼唤 slider trigger change 也没有帮助 是否有另一种 更好的方法
  • BERT 问答中长文本的滑动窗口

    我读过解释滑动窗口如何工作的帖子 但我找不到有关其实际实现方式的任何信息 据我了解 如果输入太长 可以使用滑动窗口来处理文本 如果我错了 请纠正我 说我有一条短信 2017 年 6 月 Kaggle 宣布注册用户突破 100 万 给定一些s
  • 解决 CSS 背景不打印的最佳方法

    CSS 背景不打印通常效果很好 但是 有时我使用它们来传达上下文信息 解决无法打印但您确实想要显示的 CSS 背景的最佳方法是什么 我当前正在处理的示例是一个显示财务信息的表格 不同的背景颜色用于指示数字的 好 程度 例如非常有利可图 有利
  • React 将 props 对象转换为数组然后 setState

    我需要转换这个道具 到这个数组中 this setState locations label California value california label Nevada value nevada 最初我用的是这个plugin http
  • 如何在 Gerrit 2.16 中配置服务器端挂钩

    我已经开始使用 Gerrit 2 16 作为代码审查工具 并希望配置服务器端挂钩以在更改提交 推送到 gerrit 时验证 git 提交消息 尝试通过将脚本复制到 GIT DIR hooks 来使用钩子 诸如 ref update patc