问题标签 [githooks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1733 浏览

git - git:回购监控工具

你知道任何好的回购监控解决方案吗?

我想在有人推送到远程仓库时获取信息(最好通过任务栏托盘图标:“someuser push...”)。

我考虑的其他解决方案:

  • 接收挂钩
  • 通过 cron 定期 git log
  • 检查运行每个 git 命令的更新

(我选择的系统是 Ubuntu)

0 投票
1 回答
339 浏览

ruby - 告诉 rspec 不加载文件

我正在尝试向我的 git 存储库添加一些提交挂钩。我想利用 Rspec 并创建每次提交时都会运行的提交消息规范。我已经想出了如何在“spec”命令之外运行 rspec,但我现在遇到了一个有趣的问题。

这是我当前的代码:

.git/hooks/commit-msg

当它到达描述调用时,这会引发错误。基本上,它认为它收到的提交消息是要加载和运行规范的文件。这是实际的错误

我正在寻找一种方法来告诉 rspec 不加载文件。我怀疑我需要创建自己的规范运行器。在查看 rspec-1.3.0/lib/spec/runner/example_group_runner.rb 中的这些行后,我得出了这个结论

但是,在我这样做之前,我想要一些反馈。有什么想法吗?

0 投票
1 回答
656 浏览

ruby-on-rails - 带有 gmail 的 git-commit-notifier

首先你必须知道我完全是 Ruby 菜鸟 :)

我在我的系统(Ubuntu 10.04)上安装了 git-commit-notifier(http://github.com/ilozka/git-commit-notifier)并按照所有安装说明进行操作,但每次推送到我的 git 存储库时都会收到此错误信息:

我将错误跟踪到 emailer.rb 脚本。具体线路:

参数似乎正确传递(我已经检查过了)。

我的配置脚本如下所示:

有谁知道我该如何解决这个问题?我在同一台服务器上有 Redmine,它工作正常。电子邮件发送没有问题。

谢谢

0 投票
10 回答
38919 浏览

git - Git 钩子可以自动将文件添加到提交中吗?

我想根据在该提交中修改的文件,使用 Git 中的提交前或提交后挂钩将自动生成的文件添加到同一个提交中。我该怎么办?

我已经尝试将此作为预提交挂钩,但没有运气:

这成功地将它们添加到存储库中,但不会将它们添加到提交中。我还尝试在提交后挂钩中使用最后两个 exec 行以及提交前检查,但也没有好处。

0 投票
3 回答
25907 浏览

git - 在 python/bash 脚本中编写 Git 钩子

我最近需要编写 git 钩子,以便所有提交都引用特定的票证。

我希望有一个地方开始学习。pro git 书中的所有内容都是用 Ruby 编写的。由于 Ruby 不是我的强项,任何人都可以分享关于用其他语言编写的 git hooks 的教程吗?(我特别喜欢 Python 或 Bash 脚本。)

0 投票
3 回答
713 浏览

git - Git钩子禁止在顶层创建目录

防止用户停止创建顶级目录的更好方法可能是在推送或直接创建文件时?

0 投票
1 回答
2236 浏览

git - git hooks push 和本地提交

我最近一直在为我的项目团队编写 git hooks。我想知道开发人员是否在本地进行各种提交,而不遵循标准提交消息模式。然后他们推送这些提交。是否会因为提交不遵循模式而导致推送失败?

期望的结果是他们能够按照自己的意愿在本地提交,然后当他们推回主要的公司分支时被迫遵循结构方式。

想法?这是最佳做法吗?

0 投票
2 回答
2848 浏览

python - git 服务器端钩子

我在服务器上运行以下 python 脚本以查找推送的提交信息时遇到问题,确保它遵循特定的语法,我无法从用户那里获得输入,这就是用户名和密码被硬编码的原因。我现在也无法获取在此特定推送之前发生的提交消息列表。

此代码的预期目标是检查本地提交,并通过它们解析预期的模式,以及检查 jira 是否存在该 PR。它是一个服务器端钩子,在推送到存储库时被激活。

任何有关编写 python 钩子的提示将不胜感激。谢谢,麻烦您了。

0 投票
9 回答
110781 浏览

git - 将 Git 挂钩放入存储库

它是否被认为是一种不好的做法 - 放入.git/hooks项目存储库(例如使用符号链接)。如果是,向不同 Git 用户提供相同钩子的最佳方式是什么?

0 投票
4 回答
11686 浏览

git - Git 接收/更新钩子和新分支

我的“更新”挂钩有问题。在新分支的情况下,它会获得 00000000000000000000000000000000000000000 作为“oldrev”。我不知道如何处理这种情况。

我们有这样的要求,即每条提交消息都引用一个有效的 Jira 问题。所以我在我们的中央存储库上安装了一个“更新”钩子。该钩子有一个“oldrev”和一个“newrev”。然后我将它们传递给“git rev-list”,如下所示:

git rev-list $oldrev..$newrev

这给了我所有转速的列表,然后我可以遍历它,并做我需要做的任何事情。

问题是,当用户推送一个新分支时,钩子将 0000000000000000000000000000000000000000 作为 oldrev。而“git rev-list”只是抱怨:

fatal: Invalid revision range 0000000000000000000000000000000000000000..21bac83b2

那么如何获取该新分支上所有转速的列表呢?我已经在网上搜索了很长时间,但一无所获。我发现的示例挂钩

  • 不处理问题,并因上述错误消息而失败
  • 错误地尝试通过将 oldrev 设置为 "" 来解决问题,这会从 rev-list 返回错误的结果
  • 当他们遇到那个oldrev时就放弃

这些听起来都不是特别令人兴奋。

那么有人知道在这种情况下如何得到正确的答案吗?我正在考虑向 git 查询“给我所有可以从 newrev 访问的转速,但不能从任何其他分支(=除新分支之外的所有分支)”。但是,如果从新分支合并到任何旧分支,即使这样也会给出错误的答案。