gitlab的工作流程

GitLab Shell

GitLab Shell的作用是:

  • 处理Git命令

  • 修改authorized keys列表

当通过SSH访问GitLab Server时,GitLab Shell会:

  • 限制执行预定义好的Git命令(git push,git pull,git annex)

  • 调用GitLab Rails API检查权限

  • 执行pre-receive钩子(企业版称为Git钩子)

  • 执行请求的动作,处理GitLab的post-receive动作

  • 处理自定义的post-receive动作

  • 通过http(s)访问GitLab Server,工作流程取决于是从Git仓库拉取,还是推送代码

  • 若果是pull,GitLab Rails会全权负责处理用户鉴权和执行Git命令工作

  • 如果是push,GitLab Rails不会进行用户鉴权,也不执行Git命令,而交由GitLab Shell执行

GitLab Workhorse

GitLab Workhorse是反向代理,会处理大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。

其他请求会反向代理到GitLab Rails应用,也就是反向代理到unicorn。

results matching ""

    No results matching ""