Gitlab 12.X-通过预接收挂钩从存储路径获取项目ID

时间:2019-08-06 16:00:55

标签: git gitlab gitlab-ce

使用旧式存储,当预接收挂钩触发时,很容易猜测所涉及的存储库的URL,因为路径为“ group / project-name.git”。

在Gitlab中使用新的哈希存储时,如果项目ID为2,则“ pwd”命令将返回诸如d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35.git之类的路径。

=>如何根据哈希路径获取项目ID?

我的目的是检查由某人推动的所有提交均由实际有权在该项目中编写的人员创作。如果我不知道涉及哪个项目,则无法这样做。尽管我可以启动“ gitlab-rails控制台”并使用“ ProjectRepository.find_by”,但在挂钩环境中使用该脚本是不切实际的。

有“推送规则”允许执行此操作。但是,推送规则不是免费的,并且在Gitlab CE中不可用。

另外,从管理员的角度来看,重要的是能够不必根据启动存储库的路径而快速找到存储库的项目ID,而不必启动“ gitlab-rails控制台”。

1 个答案:

答案 0 :(得分:1)

pre-receive钩子-GL_REPOSITORY有一个可用的环境变量,其值类似于project-123。这是项目ID。