Gitlab:新项目创建时自动克隆存储库到其他位置

时间:2016-08-01 11:38:06

标签: git gitlab

我想用Gitlab安装程序实现的是,当管理员从Gitlab用户界面创建新项目时,它会自动将项目克隆到用户可以工作的apache的根目录,并从浏览器查看更改而不是将项目克隆到本地系统并将其推送到apache根目录。

我喜欢自动克隆新创建的gitlab项目,克隆在/ var / www / html /

1 个答案:

答案 0 :(得分:0)

您需要利用API和CI来执行此类操作。所需的步骤将是这样的:

  1. 创建一个System Hook,在项目创建时触发。

  2. 如果发生挂钩,请创建一个.gitlab-ci.yml文件,该文件定义您的网络服务器上的部署。

  3. 项目的
  4. Enable the runner因此可以进行部署。

  5. 现在每次推送存储库时,它都会部署在网络服务器上。

    示例:

    通过管理界面Admin Area -> System Hookscurl命令创建系统挂钩。 Doc

    curl -X POST -H "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v3/hooks?url=https://gitlab.example.com/hook"
    

    只要发生以下某个事件,就会调用网址https://gitlab.example.com/hook

    project_create, project_destroy, project_rename, project_transfer, user_add_to_team, user_remove_from_team, user_create, user_destroy, key_create, key_destroy, group_create, group_destroy, user_add_to_group, user_remove_from_group

    现在我们需要创建一种在调用https://gitlab.example.com/hook时运行的脚本。此脚本执行另一个curl请求,该请求创建.gitlab-ci.yml文件或使用git自动创建第一个提交。 Doc

    curl -X POST -H 'PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK' -F 'file_path=.gitlab-ci.yml' -F 'branch_name=master' -F 'commit_message=Initial' -F $'content=CI DEFINITION GOES HERE' 'https://gitlix.sw.jena.com/api/v3/projects/48/repository/files'
    

    然后,您需要为此项目启用一个运行器,以便将其部署到您的Web服务器。 Doc

    curl -X POST -H "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v3/projects/9/runners" -F "runner_id=9"