GitLab由GitLabInc.开发,一款全面集成的、基于Git的软件开发平台(developmentplatform)平台。此外,GitLab还拥有wiki功能,还有在线编辑,issue追踪功能,CI/CD等等。
GitLabCI/CD是GitLab内建的一个工具,它可以通过持续方法来开发软件。持续性方法由三部分组成:持续集成,持续交付,持续部署。持续性集成(ContinuousIntegration,简称CI),每次上载代码块到基于Git数据仓库时,持续集成将运行脚本来构建、测试、校验代码,然后合并到默认分支。持续性交付(ContinuousDelivery,简称CD),在持续集成后(即合并为默认分支后),将手工部署应用程序。持续性部署(ContinuousDeployment,简称CD),在持续集成后(即合并为缺省分支后),可自动部署应用。
开发人员配置了GitLabCI/CD后,当开发人员使用git提交(commit)时,将触发一系列CI/CD相关的操作。这个操作序列由GitLabRunner执行,相关的配置记录在.gitlab-ci.yml文件中,并在Gitlab页面中显示执行结果。每次提交(commit)都会启动一条流水线(pipeline),流水线是不同阶段(Stage)任务(Job)的集合。步骤(Stage)用来进行逻辑切割,相同阶段的任务以并行方式进行,各阶段之间依次执行,前一阶段执行失败,下一阶段不执行。pre是第一阶段(译为:之前)和最后阶段(翻译为:提交时),这两个阶段都不需要确定或修改。
由乌克兰程序员DmitriyZaporozhets和ValerySizov开发的GitLab,这是Ruby写的。随后,部分内容用Go语言重写。在2013年7月,产品分为GitLabCE(社区版)和GitLabEE(EnterpriseGitLabEE),那时GitLabCE和GitLabEE的许可证仍是在MIT许可证下发行的免费开源软件。