标签: hook

如何使用 post-receive hook 设置 Gitlab?

我在一台服务器上使用 Gitlab,并希望在主分支提交时将我的 git 存储库推送到另一台网络服务器。因此,当我推送网站的新版本时,生产服务器会更新。我知道这应该可以通过 gitlab 中的钩子来实现,但我无法找到确切的方法。尝试了以下指南http://danielmiessler.com/study/git/#website但它不是为与 gitlab 一起使用而编写的,所以我缺少部分。

我需要在生产网络服务器上做什么,然后我将钩子 URL 设置为什么?

git hook gitlab

19
推荐指数
2
解决办法
4万
查看次数

Git - 带有 git pull 的 post-receive 钩子“找不到有效的 git 目录”

这很奇怪,但是在设置 git 存储库并使用以下命令创建 post-receive 挂钩时:

echo "--initializing hook--"
cd ~/websites/testing
echo "--prepare update--"
git pull
echo "--update completed--"
Run Code Online (Sandbox Code Playgroud)

钩子确实运行了,但它永远无法正确运行 git pull :

6bfa32c..71c3d2a  master -> master
--initializing hook--
--prepare update--
fatal: Not a git repository: '.'
Failed to find a valid git directory.
--update completed--
Run Code Online (Sandbox Code Playgroud)

所以我现在问自己,如何让钩子用 post-receive 更新克隆?

在这种情况下,运行进程的用户是相同的,它的所有内容都在用户文件夹中,所以我真的不明白......因为如果我手动进入

cd ~/websites/testing
git pull
Run Code Online (Sandbox Code Playgroud)

它工作没有任何问题......

对此的任何帮助将不胜感激

非常感谢

unix git hook

18
推荐指数
2
解决办法
1万
查看次数

Vim - 在保存\写入时触发动作\脚本?

这对超级用户来说可能更好,但我认为作为交易工具,它可能是一个更好的主题。我经常发现在 vim 中编辑时退出,运行一些我正在测试的脚本,然后返回到 vim(是的,我意识到我可以使用 :!command 从 vim 运行东西)我只是想知道是否有保存文件时挂钩运行的方法(:w)?

scripting vim hook

16
推荐指数
2
解决办法
1万
查看次数

为来自 GitLab 网络钩子的合并请求触发 Jenkins 构建

我希望 Jenkins (1.561) 构建提交到 GitLab (6.7.5) 的合并(拉取)请求,由合并请求 Web 钩子触发。我有一个参数化构建,以及 Jenkins 插件“GitLab Merge Request Builder”(1.2.0)和“GitLab Hook”(1.0.0)。不幸的是,迁移到 Jenkins CI 并不是一个真正的选择。

只要变量、 和可用,合并请求构建器插件能够构建合并请求。当插件轮询存储库本身时,这很有效,或者我使用手动有效负载(例如)触发构建,但我无法使用钩子执行此操作。gitlabMergeRequestIdgitlabTargetBranchgitlabSourceBranchcurl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters

使用 GitLab Hook 插件,我能够在 JSON 有效负载中获取必要的数据,但这些值具有“错误”的键:

  • gitlabMergeRequestIdid
  • gitlabTargetBranchtarget_branch
  • gitlabSourceBranchsource_branch

我已经尝试使用 GitLab Merge Request Builder 插件的要求和变量值来配置构建参数。不幸的是(并且可能是故意的),字段中的变量没有被替换,因此 Jenkins 正在寻找具有 id和类似分支值的合并请求。NameDefault ValueDefault Value${id}

我发现无法配置从 GitLab 发送的有效负载,并且 GitLab Hook 插件和 GitLab Merge Request Builder 插件使用的参数名称都没有配置选项。

我正在考虑编写一个小的 PHP 脚本来拦截和更改来自 POST 的有效负载,然后再将其传递给 Jenkins。虽然我确信这会奏效,但它确实看起来不必要地复杂。 …

hook continuous-integration jenkins gitlab

10
推荐指数
1
解决办法
2万
查看次数

GitLab CE 提交后自定义挂钩不起作用

我使用 GitLab 社区版 8.2 并想添加提交后挂钩。

我创建了具有权限的文件 path_to_project.git/custom_hooks/post-commit

$ ls -l1 custom_hooks/post-commit
-rwxr-xr-x 1 git git 45 Dec 14 21:31 custom_hooks/post-commit
Run Code Online (Sandbox Code Playgroud)

和内容

#!/bin/bash
echo "test custom" > /tmp/hook
Run Code Online (Sandbox Code Playgroud)

如此处所述:http : //doc.gitlab.com/ce/hooks/custom_hooks.html

但它不起作用(通过 Web 界面提交检查)。我也尝试过“正常”的 git 钩子放置(project.git/hooks/post-commit),但它也不起作用。

git hook gitlab

6
推荐指数
1
解决办法
2206
查看次数

UNIX - 如何授予用户对另一个用户的权限,这样我就不需要 sudo 或输入密码?

我有 2 个用户有问题

git用户 - 用于 gitosis - 所以它是一个无密码用户,只能通过 root 访问...

用户用户 - 我的文件所在的位置

所以我想做的是授予用户git权限以导航到这样的 luddico 文件夹

git@domain.me:~/respositories# cd /home/user/websites/domain.com
Run Code Online (Sandbox Code Playgroud)

然后在用户用户文件(任何文件/文件夹)中执行任何操作,这样我就可以例如

git@domain.com:/home/user/websites/domain.com#  git pull
Run Code Online (Sandbox Code Playgroud)

因为实际上上面提到的操作返回:

error: cannot open .git/FETCH_HEAD: Permission denied
Run Code Online (Sandbox Code Playgroud)

所以当我要求执行这样的操作时,它会请求 git 的密码,顺便说一句,没有任何密码,或者立即取消它

所以,我怎么可以配置用户的git有像在用户root /管理员权限的用户 ,而不需要提供命令之前任何密码或sudo?就像如果它是根一样

  • 如果有一种方法可以只允许从git用户的特定命令,那就更好了

提前致谢

unix permissions git hook

5
推荐指数
1
解决办法
9976
查看次数

SFTP 后上传挂钩

在文件通过(chrooted)SFTP 成功上传后,我将如何运行脚本?

我使用 PureFTP 处理标准 FTP 连接

http://linux.die.net/man/8/pure-uploadscript

我正在运行 Debian Squeeze

debian ftp chroot sftp hook

5
推荐指数
1
解决办法
2791
查看次数

Unix 文件系统钩子

我想向文件系统添加一个钩子,这样每当从磁盘读取特定文件时我就可以执行一个进程。*nix 是否提供了创建这样一个钩子的方法?(我有root权限)

unix filesystems hook

3
推荐指数
1
解决办法
1391
查看次数

如何向 git 存储库添加多个 post-receive 挂钩?

我想将多个接收后挂钩脚本添加到我自己的服务器上的 git 存储库中。例如:触发CI,发布到slack。

如何添加多个脚本?

git hook

1
推荐指数
1
解决办法
1201
查看次数