小编Tec*_*hie的帖子

如何设置服务器端预接收钩子?

我是git hook和服务器端git功能的新手。我在客户端git上进行提交和推送代码,我们使用Application Lifecycle Management(ALM)工具进行git merge 。我正在尝试编写git挂钩,以对存储库中的新文件/修改过的文件进行一些测试。我能够编写和测试客户端挂钩pre-commit

现在,我需要添加一些服务器端git钩子以在合并到master之前验证文件,因为有一个更改可以跳过跳过使用-no-verify选项进行客户端验证。当我阅读一些git hook教程时,pre-pushhook是服务器端的钩子。我试图创建预推钩子,它正在客户端上工作。现在,当用户尝试使用--no-verify选项(即使不应在客户端上对其进行控制)进行更改时,如何使其成为服务器端挂钩并强制验证文件。

我的大问题是,当我们git push从本地分支/仓库执行操作时,如何触发服务器挂钩。

创建钩子:

创建了一个名为pre-commit的钩子,并将其放在某个文件夹下git_hooks/pre-push以及中.git/hooks/pre-push。现在,为我的预推脚本创建一个符号链接。因此,无论何时执行git push此操作,都会触发.git / hooks / pre-push,这是我脚本的符号链接git_hooks/pre-push

编辑:

我以为钩子pre-pushpre-receive钩子都与在git push命令上触发的钩子相同,但pre-push仅在客户端起作用,pre-recieve在服务器端起作用。我创建了pre-receive钩子并将其推到master分支。现在,当我确实git push收到此 错误时:无法生成钩子/预先接收:没有这样的文件或目录

我正在WindowsLinux平台上尝试此操作。在Windows上,我收到此错误;在Linux上,甚至没有触发过。我pre-receive在两个平台上的master分支上都放置了钩子。

git githooks

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

我们可以在Docker映像中包含git命令吗?

我是Docker的新手。我想创建一个映像,该映像将作为项目构建的一部分运行以检查提交的文件。

我的要求是,Docker文件应具有以下语句

  1. 从当前的git repo获取提交的文件
  2. 复制myapp / / app
  3. CMD /app/entry.pl <git files>(作为命令行arg)

我想为此过程创建一个图像。

我应该从当前本地存储库中获取git commits文件列表,并将这些文件传递给我的应用程序以扫描这些文件。

在构建映像时,我只需要复制我的应用程序,但是在运行容器时,我需要运行git diff以查找更改的文件并将其作为参数传递给我的应用程序。

是否可以git diff通过docker容器运行?

更新:

我试图git diff在docker的当前存储库上执行,但是它说的不是git存储库。我正在将Docker映像作为gitlab yml文件中持续集成的一部分运行。

请帮我达到这个要求?

git gitlab docker dockerfile

6
推荐指数
2
解决办法
4471
查看次数

在spring boot中从类路径资源文件夹的子目录中读取文件

我想从资源文件夹的子目录中读取文件。我面临着 jar 执行的问题。

这是我的目录结构。

src/main/resources |_ Conf |_ conf1 |_ config.txt |_ conf2 |_ config.txt

在这里,我试图config.txtConf文件夹的所有子目录中读取文件。我不知道子目录Conf会有什么。我知道直到Conf. 因此,我将提供类路径直到Conf并尝试获取子目录和文件。

我尝试使用ClassPathResource. 如果它是文件,这工作正常。我在目录方面遇到问题。我正在使用getFileapi 来获取目录路径以遍历该目录以获取导致 jar 执行问题的子目录。

这是我的代码:

下面的代码是读取Conf文件夹中的子目录。

List<Map<String,String>> list = new ArrayList<Map<String,String>>();
 ClassPathResource classPathResource = new ClassPathResource("Conf");
 File dir = classPathResource.getFile();
 Files.walk(Paths.get(dir.toString()))
     .filter(Files::isDirectory)
      // This is to exempt current dir.
     .filter((Path p)->!p.toString().equals(dir.toString()))
     .forEach(f-> {list.add(readDirectory(f.toString()));});
Run Code Online (Sandbox Code Playgroud)

读取每个子目录。

public Map<String, String> readDirectory(String dir) {
     Map<String, String> map = new HashMap<String, …
Run Code Online (Sandbox Code Playgroud)

java maven spring-boot

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

标签 统计

git ×2

docker ×1

dockerfile ×1

githooks ×1

gitlab ×1

java ×1

maven ×1

spring-boot ×1