首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器端预提交钩子在GitLab社区版中工作吗?

服务器端预提交钩子在GitLab社区版中工作吗?
EN

Stack Overflow用户
提问于 2019-12-02 16:20:36
回答 1查看 2.3K关注 0票数 1

如果我..。

  • 让文件系统访问承载GitLab Community安装Git数据的服务器
  • ...already有一个用于客户端安装的工作pre-commit钩子,它阻止提交失败的特定规则(例如,以空格结尾的C文件)。
  • 然后,...and将这个pre-commit钩子复制到存储库顶层文件夹下的custom_hooks文件夹中,作为在此描述

...will,我能够阻止人们违反钩子所做的检查的提交?

代码语言:javascript
复制
 $ cd /var/opt/gitlab/git-data/repositories/someone/somerepo.git/
 $ mkdir custom_hooks
 $ sudo chown git.git custom_hooks
 $ cp /path/to/some/pre-commit-hook custom_hooks/pre-commit
 $ sudo chown git.git custom_hooks/pre-commit
 $ sudo chmod 755 custom_hooks/pre-commit

问题中的钩子已经在客户端起作用了,但我在这里提出这个问题,是因为我不确定有两件事:

  1. 在GitLab的Community中是否支持此功能?上面链接的文章以粗体表示“核心”,我猜这意味着这不适用于Community?
  2. 预提交钩子函数可以作为-在服务器端吗?或者我是否需要适应使用不同的钩子(pre-receive)?如果是这样的话,一个适应的例子将会有很大帮助。

为了确保我没有创建XY问题的另一个实例:我所要求的是,这是一个简单的示例,说明如何设置服务器端GitLab Community提交过滤器,在从提交者执行"git push“时运行这些过滤器。我已经有了这样一个用于客户端Git挂钩(即钩子/预提交)的过滤器的工作版本,并且正在寻找一种快速的方法来应用相同的检查逻辑服务器端。

P.S.已经尝试了一种天真的做法,即复制钩子,因为-是在服务器端的“钩子”文件夹下:没有任何检查,不进行任何更改就可以通过提交。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 17:17:11

  1. 在GitLab的Community中是否支持此功能?上面链接的文章以粗体表示“核心”,我猜这意味着这不适用于Community?

是。您可以为Gitlab中的所有存储库添加自定义钩子脚本或全局脚本

  1. 预提交钩子函数可以作为-在服务器端吗?或者我需要适应使用不同的钩子代替(预接收?)如果是这样的话,一个适应的例子将会有很大的帮助。

预提交钩子将在提交之前运行,在服务器端,这是没有意义的。您需要将预提交转换为预接收、预推、后接收或更新脚本钩子。我相信,在您的情况下,您需要一个预接收钩子来检查提交,然后在gitlab接受它。所有脚本钩子类型的在这里,文件

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59142869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档