
创建高质量的软件并非易事。 首先,您需要解决业务问题并编写质量代码。 但是,困难不止于此:您仍然需要确保代码能够快速,安全和可靠地工作。 使用代码是许多阶段的传送带,例如组装,集成,测试,安全性,检查,配置和部署。 所有这些动作需要大量的时间和精力。
除了在公共和私有存储库上提供协作机会外,GitLab还通过广泛的内置功能以及该版本的自动化工具包简化了整个开发过程。 只需提交您的代码,其余人员将由Auto DevOps完成。 Auto DevOps是预组装的成熟CI / CD输送机,可自动完成整个交付过程。 Auto DevOps在GitLab 11.0中公开(GA,通用可用性)。
GitLab 11.0的其他关键创新:
- 许可证管理 ,它可以根据项目的依赖关系自动查找许可证;
- 改进了对代码,容器和依赖项的安全测试 ;
- 与Kubernetes的新集成;
- 改进的Web IDE ;
- 改进了史诗和路线图的显示;
- 增量部署 ;
- 还有更多。
首先,让我们更详细地浏览此列表。
Auto DevOps涵盖了整个交付周期:只需将代码提交给GitLab,然后让Auto DevOps进行其余工作:该系统将构建 , 测试 ,验证代码质量 , 安全性和许可证 , 打包 , 测试性能 , 部署和监视应用程序。
“ GitLab是我们开发和交付过程中的关键组成部分,它使我们的交付速度提高了三倍,并大大简化了我们团队的协作开发过程,”捷豹路虎信息娱乐首席系统工程师Chris Hill说。
“我们对Auto DevOps感到非常满意,因为它使我们能够专注于代码编写和业务流程。 GitLab会做剩下的事情:自动构建,测试,部署,甚至监视我们的应用程序。”
许可证管理 (软件组件的分析):软件通常是代码与第三方组件(库,框架和各种工具)的复杂交织。 通常,每个组件都有许可限制和权限,需要对其进行监视和考虑。 在GitLab 11.0中,我们添加了许可证管理功能(软件组件分析)。 它会内置到合并请求中,您可以在其中跟踪组件的许可证。
安全性:我们将继续努力改善GitLab的内置安全性功能。 现在,借助内置的应用程序静态和动态测试以及扫描依赖关系和容器,您甚至可以更早地发现漏洞。 我们扩大了对静态应用程序安全测试(SAST)的覆盖范围-现在Scala和.Net都支持它。 我们还在SAST报告中添加了新元素,现在它们将为您提供更多详细信息。
Kubernetes:我们将继续改善与Kubernetes的集成,并简化GitLab与该系统的交互。 在此版本中,我们添加了几个新功能,其中最有趣的是可以直接从GitLab部署板上查看Kubernetes荚日志的功能 。
GitLab Web IDE:在不离开IDE的情况下可以做的事情越多,您的工作效率就越高。 现在,您可以直接从IDE查看CI / CD管道 ,因此,如果管道失败,您可以查看即时报告。 此外,我们还添加了快速切换到下一个合并请求的功能,这使您无需离开IDE即可创建,改进或进行合并请求审查。 所有这些使您可以快速有效地参与对代码进行更改并进行检查。
史诗和路线图导航:为了更好地可视化史诗和路线图的进度,更改时间线的比例可能很有用,这将提供更一般的概述并简化其计划。 因此,我们将此功能添加到了他们的导航界面。
我们邀请您参加我们的会议!

Vitaliy为GitLab的发展做出了巨大贡献,今年已经多次获得MVP的称号。 对于11.0版,他认真地更新了GitLab的技术方面:Vitaly将剩余的大多数Spinach测试转移到RSpec,并且还付出了很多努力来改进GitLab for Rails5。此外,在我们决定增加压缩和在GitLab Coer和GitLab.com中免费合并提交(压缩和合并),Vitaly承担了这项工作,并在此发行版发布之前完成了该工作。 这是他为GitLab 11.0完成的所有任务的列表。
再次感谢,Vitaliy! 不久,您将收到另一个包含礼物的包裹!
GitLab 11.0的关键创新
Auto DevOps公开(核心,入门,高级,终极,免费,古铜,银,金)
GitLab 10.0中添加了Auto DevOps的第一个beta版本。 在GitLab 11.0中,Auto DevOps公开(一般可用)。 Auto DevOps需要最少的配置,并且可以完成项目从构建阶段到生产和监视的所有工作。
Auto DevOps使用最佳的DevOps实践:它在一个应用程序中配置构建,测试,代码质量检查,静态和动态安全性测试,依赖项扫描,许可证管理,容器扫描,Review Apps,浏览器性能测试,部署和监视。 使用此功能可简化新团队向DevOps的过渡,因为它使您可以开始使用无缝运行的管道。
Auto DevOps使开发人员可以专注于对其组织最重要的事情-提供高质量的代码。
我们最新的《 Auto Devops快速入门指南》可以在这里找到。

Auto DevOps文档
持续集成(CI)是交付高质量软件的重要一步。 现在,您只需查看Web IDE左下角的状态窗口,即可找到当前提交的CI状态。 此外,在右侧,您可以查看每个作品的状态和日志。 这使处理CI失败的合并请求变得更加容易,因为您可以在一个屏幕上打开失败的工作,然后打开正在处理的文件。
以前,在这种情况下,您必须打开几个选项卡并在它们之间切换,现在所有必需的信息都可以在Web IDE中直接获得。 将来,我们计划增加在提交之前预览和测试更改的功能。
Web IDE文档

在Web IDE中的合并请求之间切换(CORE,STARTER,PREMIUM,ULTIMATE,FREE,BRONZE,SILVER,GOLD)
容易想象一个人同时在多个项目中处理多个合并请求的情况。 现在,您可以一键切换(分配给您和由您创建)合并请求。 无论您是对其他人的合并请求进行审核还是自己工作都无所谓-借助这项创新,您可以将更多的时间投入到代码中,而减少搜索工作。
Web IDE文档

许可证管理(ULTIMATE,GOLD)
在现代软件开发的现实中,大多数应用程序使用第三方组件来执行某些功能。 这种方法使您不必从头开始每个项目。 因此,第三方库非常普遍,它们通常由RubyGems和npm之类的包管理服务直接提供。 但是,使用这种方法,您需要确保第三方组件的许可证与您的应用程序兼容,因为许可证冲突会导致法律问题。
为了解决这些问题,我们在GitLab 11.0中添加了许可证管理功能。 它会自动遍历项目中的所有依赖项并汇总其许可证。 在新许可证成为主分支的一部分之前,它们会在合并请求小部件中显示。
如果使用Auto DevOps ,则会自动为您的项目启用许可证管理。 您还可以为自定义.gitlab-ci.yml
手动启用此功能 。
许可证管理文档

组级别的SAML授权(测试版)(高级,最终,银色,金色)
对于大型组织来说,正确的用户数据管理是必须的。 通常,身份提供者用于这些目的,可以与所有用户数据一起使用,因此我们为组添加了安全性声明标记语言(SAML)支持。
现在,组所有者将能够为该组配置身份服务,并为用户提供单个授权链接(SSO)。 这样就可以在组级别管理授权和个人数据,这在实例的常规SAML不满足组的所有要求的情况下很有用。
该创新对GitLab.com组特别有用,在该组中,现在可以配置身份验证服务以供企业使用。
组的SAML文档

新的导航主题(核心,入门,高级,终极,免费,古铜,银,金)
随着GitLab 10.0的发布,我们对导航进行了重大更新 ,在版本11.0中,我们为其添加了几个新主题。 现在,您还有更多选择来个性化与GitLab的交互。
我们添加了一个全新的红色主题,以及所有现有主题的浅色版本。
配置文件设置文档

对GitLab 11.0的其他改进
在进行大规模创新时,开发人员经常将许多提交提交到工作分支中,并且这些提交的数量只能在代码检查的过程中增加。 许多团队更喜欢在与master分支合并之前将这些提交压缩为一个。 这使您可以保持Git历史记录的可读性 ,这将大大简化以后对代码更改的审查。
壁球是git功能的一部分,因此开发人员可以在合并之前在计算机上执行此命令。 但是,GitLab进一步简化了此过程:您可以从Web界面一键压缩并合并。 例如,随附的存储库现在可以压缩提交而无需联系更改的作者,这可以加快并简化工作流程。
以前,此功能仅在GitLab Starter,GitLab.com Bronze和更高级别上可用。 但是,许多用户告诉我们,此功能将对所有级别的订阅都有用,因此,该功能现已公开并在GitLab Core和GitLab.com Free中可用!
感谢blackst0ne对这项工作的贡献!

有关压缩和合并提交的文档
在Xcode中打开项目(核心,入门,高级,终极,免费,古铜,银,金)
在六月的WWDC上, Apple宣布Xcode与GitLab的集成 ,这无疑将简化在GitLab主机上使用Xcode项目的工作。
现在,通过单击“在Xcode中打开”按钮,GitLab支持克隆包含.xcodeproj
或.xcworkspace
的项目。 在GitLab界面中查看Xcode项目时,此按钮将位于用于克隆的Git URL旁边。

Xcode中打开项目的文档
路线图的日期范围(ULTIMATE,GOLD)
由于史诗的开始日期和结束日期没有限制,因此我们决定增加在时间范围内查找史诗的功能。
在此版本中,我们将日期范围功能添加到路线图中。 现在,您可以按季度,月份和星期搜索史诗。 对于专注于短期发布的团队而言,每周搜索可能会有用,而更大的范围更适合于全球业务计划。

路线图的日期范围文档
无限访客用户(终极版)
为了提高使用GitLab的效率,我们决定来宾访问者将不再占据Ultimate实例的限制用户。
由于来宾可以是任意数量,因此参与开发讨论的用户数量现在也不受限制。 来宾可以增加访问级别,但不要忘记,然后他们将开始占据限制。
同样重要的是要记住,在用户登录实例但不属于任何组或项目的情况下,他也被视为访客。
访客权限文档
任务板的执行者列表(高级,终极,银,金)
任务板是用于管理工作流的有用工具:您可以使用标签列表监视生命周期各个阶段之间的任务移动。
在此版本中,我们将为任务板添加艺术家列表。 此列表显示了分配给特定用户的任务,这为使用任务板增加了新的机会。
现在,您可以为团队设置一个任务板 ,然后为其成员添加艺术家列表。 这样可以很容易地看到谁在团队中工作以及执行哪些任务。 这样的功能对于参与负载平衡的管理人员以及想要导航工作流的普通用户都是有用的。
您甚至可以将标签列表和艺术家列表添加到同一块板上。

任务板的执行者列表文档
为子分组(核心,入门,高级,终极,免费,青铜,银,金)分配里程碑
在此版本中,我们为里程碑添加了GitLab子组结构。 现在,您可以为从任何父组继承的项目或组分配里程碑,以执行任何任务或合并请求。
也就是说,如果您有一个具有一组里程碑的高级组,则可以对所有任务使用相同的里程碑,并在所有子子组中合并请求。 这种创新简化了具有复杂的子组和项目的多层结构的组织的工作。
此外,您可以按组任务列表中的此类里程碑进行过滤,这将使您能够在层次结构的所有级别上找到必要的对象。

里程碑文件
API中的子组的任务和合并请求(核心,入门,高级,终极,免费,青铜,银,金)
API 任务和合并请求现在基于Web。 也就是说,当您通过API请求特定的组来执行任务和合并请求时,您将从该组的所有子项目或子组中接收结果。 该算法以类推的方式工作,即在Web界面中查看组列表中的相同对象,我们在前面介绍了多个版本。
GitLab API文档
Kubernetes中Auto DevOps的部署令牌(CORE,STARTER,PREMIUM,ULTIMATE,FREE,BRONZE,SILVER,GOLD)
以前,在私有或内部项目中使用Auto DevOps时,Kubernetes在完成部署后没有注册访问权限。 这不允许群集执行重复的映像获取操作(以实现可伸缩性,处理故障等)。
使用GitLab 11.0,将创建一个新的部署令牌。 在私有/内部项目上启用Auto DevOps时,它提供对寄存器的恒定访问。 这样可以确保群集可以执行必要的操作并减少发生故障的可能性。
Auto DevOps的部署令牌文档
在Auto DevOps设置(CORE,STARTER,PREMIUM,ULTIMATE,FREE,BRONZE,SILVER,GOLD)中定义部署策略
对于某些应用程序,一旦准备就绪,立即发送生产中的每项变更都是有利可图的。 对于其他人,最好将这些更改收集在公共环境中以进行更严格的测试。 以前,只有借助为每个项目分别配置和使用的特殊变量,才能为每个项目设置部署策略。
从GitLab 11.0开始,Auto DevOps允许您一键定制自定义部署策略。 当为项目连接Auto DevOps时,可以确定是将项目自动立即部署到生产环境,还是首先需要将其自动部署到测试环境,然后再手动部署到生产环境。 一键配置的能力将使您花费更少的时间在部署设置和更多的代码上。

Auto DevOps的部署设置文档
用于定义金丝雀环境的部署策略的变量(CORE,STARTER,PREMIUM,ULTIMATE,FREE,BRONZE,SILVER,GOLD)
通常,我们希望对一小部分用户或服务器进行更改,以便在部署到整个环境之前评估这些更改的影响。 以前,Auto DevOps用户必须对Auto DevOps模板进行特殊化处理,并定义所需的行为才能启动Canary部署。
从GitLab 11.0开始,用户将能够使用CANARY_ENABLED
环境CANARY_ENABLED
来定义其金丝雀部署策略-快速且无需为Auto DevOps模板进行其他设置。
金丝雀环境的部署策略文档
确认始终处于启用状态(STARTER,PREMIUM,ULTIMATE,BRONZE,SILVER,GOLD)
合并请求的确认是GitLab的一项长期功能,它迫使团队在合并请求中进行代码审查(或其他任何检查)。 没有确认时,合并请求将被阻止进行合并。
在此版本之前,必须在项目设置中启用确认。 为了简化和优化此功能,现在默认情况下将包括所有GitLab项目的确认信息(适用于Starter,Bronze计划及更高版本)。
当然,与此同时,我们不想减慢创建和合并代码的过程。 因此,当用户创建项目时,默认情况下将重置此项目所需的合并请求确认数(就像确认已关闭一样)。 随着项目的发展,用户及其团队将能够在工作流程需要时实施确认。 为此,您只需要将确认数更改为可以满足团队需求的确认数即可。

合并请求的确认文档
从GKE加载集群参数(核心,入门,高级,终极,免费,青铜,银,金)
现在,在GitLab中创建Kubernetes集群比以往任何时候都更加容易。 在GitLab 11.0中,“项目”和“区域”字段的值会自动从您的Google Kubernetes Engine(GKE)帐户下载并显示为列表,以简化操作。 以前,要使用GKE创建集群,必须手动输入所有这些数据。
简化的集群创建过程使您可以从GitLab快速提升集群并加快应用程序的部署。

在GitLab中添加和创建新GKE集群的文档
使用变量(CORE,STARTER,PREMIUM,ULTIMATE,FREE,BRONZE,SILVER,GOLD)禁用Auto DevOps步骤
当您的应用程序不需要一个或几个阶段的Auto DevOps(单元测试,代码质量检查等)时,最好配置管道,使其仅在您需要的那些阶段运行。
GitLab 11.0版允许您使用环境变量跳过Auto DevOps的一个或多个阶段。 即使并非所有步骤都适合您,这也可以让您利用Auto DevOps。
Auto DevOps的环境变量文档
LFS文件包含在项目导入中(CORE,STARTER,PREMIUM,ULTIMATE,FREE,BRONZE,SILVER,GOLD)
Git LFS通过将大型文件存储在资源库外部并根据需要懒惰地下载它们,而不是克隆它们,来帮助您使用Git对大型文件进行版本控制。
从GitHub,Bitbucket Cloud或使用Git URL导入项目时,GitLab现在还可以导入LFS对象。 因此,您将获得存储库的完整副本,包括那些相同的LFS对象。 以前,LFS对象未包含在导入中。
项目导入文件
操作选项卡(核心,入门,高级,终极,免费,古铜,银,金)
在GitLab 11.0中,我们在导航面板中添加了“ 操作”部分-现在可以更轻松,更快地找到这些功能。 在此版本中, 环境和Kubernetes从CI / CD移至Operations 。 在将来的版本中,我们将添加更多部分,例如度量和日志。

GitLab CI文档
.NET和Scala的SAST(最终版本,金色)
我们将继续为最常用的语言和框架提供安全工具; 作为此过程的一部分,我们将不断扩展静态应用程序安全测试系统(SAST)的功能。
在GitLab 11.0中,我们添加了对两种新语言的支持:.NET和Scala。 如果您已经在.gitlab-ci.yml
使用Auto DevOps或sast
的最新版本,则无需在项目中进行任何更改。
SAST文档
GitLab Helm云图现在处于测试版(核心,入门,高级,终极)
我们很高兴介绍GitLab Helm云图表的测试版。 该图基于更加基于云的内部架构,每个GitLab组件都有一个容器,并且不需要共享数据存储。 这提高了Kubernetes上GitLab的弹性,可伸缩性和性能。
GitLab头盔图表文档
JupyterHub与GitLab的轻松部署和集成(核心,入门,高级,终极,免费,青铜,银,金)
JupyterHub是一项多用户服务,可轻松支持数据分析团队中的笔记本电脑 。 Jupyter笔记本电脑提供了一个交互式的可编程环境,通常用于数据分析,模拟,可视化和机器学习。
GitLab 11.0只需单击一下即可将JupyterHub部署在单个Kubernetes集群中-它被自动配置为使用GitLab进行无缝身份验证。 将来的版本中将添加HTTPS , 组过滤和自定义记事本等其他功能。

JupyterHub部署文档
扩展的任务权重值(STARTER,PREMIUM,ULTIMATE,BRONZE,SILVER,GOLD)
GitLab中任务的权重对于指示工作量评估或与执行任务有关的其他指标很有用。 以前,您只能将任务权重分配为1到9-但这限制了需要更详细评估的团队。
从此版本开始,任务的权重可以是从0到无穷大的任何非负整数。 您不再受评分限制。 此外, 任务计划表会自动考虑新的权重值,您的团队将能够立即欣赏到扩展范围带来的好处。

任务权重文档
结合系统通知以连续更新任务描述(核心,入门,高级,终极,免费,青铜,银,金)
GitLab将启用主动的异步协作和通信。 由于能够在如此众多的地方记录想法并进行讨论,因此我们呼吁在描述任务或史诗时保持唯一的真理来源。
这导致描述经常被更新的事实。 有时-在几分钟之内几次。 收到许多系统通知,说明已更新。 从此版本开始,有关说明更新的系统注释将在短时间内合并为一个。 这将减少视觉噪音,并使GitLab上的评论导航更加轻松。 在下一个版本中,我们将向合并请求描述添加类似的功能。

任务文件
查看Kubernetes窗格的日志(ULTIMATE,GOLD)
开发人员对于查看日志以了解应用程序的行为并跟踪潜在问题的能力至关重要。 从此版本开始,只需单击一下即可查看有问题的子日志。
在“ 环境”页面上,使用部署板显示每个应用程序炉床的状态。 通过将鼠标悬停在每个炉膛上,将显示炉膛的全名及其状态,然后单击该炉膛,将显示其日志。

提交日志文档
大师的角色已重命名为维护者(核心,入门,高级,终极,免费,青铜,银,金)
在GitLab团队中,我们正在尝试建立一种独立的文化 。 因此,即使在GitLab产品中,我们也在寻找反映它的方法。
我们决定将“主”角色重命名为“维护者”角色。 这消除了可能与术语“主机”相关联的负面环境,同时,术语“维护者”也易于理解。 每一步,我们都将作为产品发展,并作为一个行业发展。

存取文件
重新设计标签列表(核心,入门,高级,终极,免费,古铜,银,金)
标签是一个非常强大的GitLab引擎。 团队不断创建和使用越来越多的标签,我们试图使它们易于管理。 在此版本中,我们清理了标签列表页面的设计,简化了界面,使信息更具可读性,并制作了接口芯片,以便您可以快速管理特定标签的详细信息。

标签文件
我们对任务API的'scope'属性进行了少量更改,使其与蛇形格式一致。 'scope' created_by_me
assigned_to_me
. GitLab 11.0 , (kebab-case).
API
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
GitLab 10.7 only
except
. , , .
GitLab 11.0 : . , . , .

IP GitLab Runner API (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
GitLab 10.6 IP GitLab Runner -. , .
GitLab 11.0 API, .
Lars Greiss .
API GitLab Runner
GitLab Runner 11.0 (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
GitLab Runner 11.0. GitLab Runner — , CI/CD GitLab.
:
CHANGELOG GitLab Runner .
GitLab Runner
(CORE, STARTER, PREMIUM, ULTIMATE)
GitLab 11.0 Omnibus GitLab gitlab.rb
. , , . , .
Omnibus GitLab
ID (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
CI/CD , . , , . — CI_PIPELINE_ID
. GitLab, - , .
GitLab 11.0 : CI_PIPELINE_IID
. , . , , . , , — , .
CI/CD
release notes / : GitLab 11.0 released with Auto DevOps and License Management .
rishavant sgnl_05 .