![230ef91fe4c960cf9d7bc2c8dad1cc02.png](https://i-blog.csdnimg.cn/blog_migrate/f8777a8cc9b56046dd65f1d7f57504d6.jpeg)
概述
本周二GitLab官方正式发布 11.7版本,主要推出了一些收费版本的功能包括Releases(Core版本)、多级Epics(Ultimate版本)和NPM注册器(Premium版本)功能,同时有很多的功能一起发布,请大家和虫虫一起来学习。
新版中推出的Releases功能使得用户可以发布快照,包括源代码还有所有相关工件。简化了版本发布中手动收集源代码,构建以及与打包代码版本相关的其他元数据或组件的工作。Releases的推出也为将来更广泛,更强大的发布编排奠定了基础。
Portfolio Management支持更复杂的工作分解结构。新增加的多级Epics是其最新增加的功能。 Child Epics支持多级工作分解结构,帮助我们管理更复杂的项目和工作计划。现在支持一个包含问题和epics的epics。这样工作计划和可操作问题之可以直接关联。
Gitlab 11.7 Premium直接在GitLab中提供JavaScript NPM注册器,用来提供标准的、安全的跨项目共享和控制NPM包。只需共享包名称和NPM,GitLab就可以在一个界面中处理其余的内容!
其他更多的功能包括:
补丁文件修复漏洞: GitLab安全功能可帮助你检测漏洞。在新版本中可以修复该漏洞并支持对通过Yarn管理的Node.js项目提供解决方案。
与Kubernetes的API集成:如果你要创建大量Kubernetes集群或这需要对其进行二次开发,你可以使用 Kubernetes API。
跨项目pipeline浏览等等,更多功能请继续跟着虫虫往下。
新版本功能详解
项目release发布
新版本功能增加了在GitLab中创建版本并在release页面上查看它的功能介绍。版本是由源代码,链接以及与代码的已发布版本相关联的其他元数据或组件的快照打包,允许项目用户轻松找到代码的最新发布版本。
![b9de052a320b930eb2fa523f4e59c102.png](https://i-blog.csdnimg.cn/blog_migrate/5955b0786e23938fa82a877fed21fd7c.jpeg)
现阶段版本只能通过API创建。
![746e5e58f30ba7ce0ce3fef7a6d795a5.png](https://i-blog.csdnimg.cn/blog_migrate/227b0ba30f7cfd3228fcadb6e6997c1b.jpeg)
多级Epics (ULTIMATE版本)
Epics和问题协同工作,为定义长期工作计划提供了灵活性。新版本中,引入子级Epics。在Epics包含问题和Epics创建多级工作分解结构。这样我们可以将更长期的计划或组织目标表现为Epics,然后将其分解为多级别Epics更详细的任务。
![9d989dbb64746a9b23ca1d8a56818724.png](https://i-blog.csdnimg.cn/blog_migrate/2c204a6435f87fb4304e426e70e55076.jpeg)
跨项目管道浏览(Premium及以上版本)
现在可以直接从管道视图扩展上级或下级的跨项目管道,查看端到端管道,不管其开始于那个项目。
![187bf83b272a100e9bf6dd75dc1ce4a4.png](https://i-blog.csdnimg.cn/blog_migrate/e3c1a533877aae6b6f13094e42c823e8.jpeg)
提供补丁文件修复漏洞(ULTIMATE版本)
GitLab可以检测应用程序中的不同类型的漏洞,并提供可能的补救措施来修复。
从GitLab 11.7开始,你可以下载补丁文件,并使用git apply命令将其应用于你的仓库。然后将更改推送回存储库,安全仪表板将确认漏洞是否已消失!这使得解析过程非常简单,并减少了部署解决方案所需的时间。目前,yarn包管理器的依赖性扫描漏洞。可能时,都会在漏洞详细信息窗口中提供相关的修补程序。
![3fe1e304c4dda16e3e2186ac439611e8.png](https://i-blog.csdnimg.cn/blog_migrate/ae0a6abd709efd9712a964ebe14e8100.jpeg)
配置变量中支持Kubernetes应用程序机密码
管理员要求在应用程序的代码仓库外部进行密码配置,以防止敏感数据的泄露。为了满足这一需求,GitLab新版本支持其密码置为环境变量,这些变量可供Kubernetes集群中运行的应用程序使用。
只需在K8S_SECRET_前面添加变量,相关的CI管道就会将你的应用程序密码变量替换为后台环境中设置的Kubernetes密码。
![625dcebc7c7acf24c9ac80dcf4e34bf7.png](https://i-blog.csdnimg.cn/blog_migrate/3ce3848f668fcf4626136b7fe21395e5.jpeg)
NPM注册器(Premium及以上版本)
JavaScript开发人员需要一种安全,标准化的方式来跨项目共享和控制NPM包。 NPM注册器为低级服务的开发人员提供了一种以这种方式发布其代码的方法。
在GitLab 11.7中,支持直接在GitLab中构建NPM注册器。将其集成到GitLab中意味着可以在git源码中共享一个简单的包命名约定,在任何Node.js项目中使用该库。
![89731412ae05493fa3ace9dee0a0e983.png](https://i-blog.csdnimg.cn/blog_migrate/bc687096b25883a2c7e9487262a37d35.jpeg)
Kubernetes集成API支持
新版本中, Kubernetes集成新添加了API支持。现在可以通过API访问GUI中当前可用的所有操作,例如列出,添加和删除Kubernetes集群。开发团队可以使用此新功能将群操作集成添加到工作流程中。
![3e1e7f60596ac9e5464a2c23b7d2e3c6.png](https://i-blog.csdnimg.cn/blog_migrate/6845b28fd191446f09617b100105cf65.jpeg)
问题板导航的搜索过滤
团队经常在给定的项目或看板上使用许多问题面板,如果列表很长,则会使下拉导航难以使用。新版本中引入了搜索过滤器。只需在搜索过滤器框中键入几个字符即可快速缩小到你感兴趣的问题面板,从而使导航变得更加容易。
![10d768b1e7e67fed6d5e998578eefbb4.png](https://i-blog.csdnimg.cn/blog_migrate/50e2dc4f611f1584b99be2555c767989.jpeg)
Catch-all邮件服务器和子邮件服务器服务器的支持
GitLab有一些使用电子邮件收件箱的强大功能,例如通过电子邮件回复,通过电子邮件发送新问题,通过电子邮件发送新合并请求以及服务台。此前,如果你使用配置为使用子邮件的邮件服务器,才能使用这些功能。
新版本中支持使用新电子邮件格式的子寻址和Catch-all电子邮件邮箱,支持更多电子邮件服务器,包括Microsoft Exchange和Google Groups(不支持子寻址)。
短commit的SHA可作为环境变量
Git SHA是Git仓库中特定对象(即提交)的40个字符的指针。通常,显示完整字符串没有多大用处,一般可以值使用八个字符显示为快速(但不保证唯一)引用。先版本中CI_COMMIT_SHORT_SHA环境变量添加到CI管道,作为你提供正在构建提交SHA的第一部分。
![b4479d4f66da7c188ff9803bafecb3eb.png](https://i-blog.csdnimg.cn/blog_migrate/3307678eecb830168ef42c1644f1f235.jpeg)
include获取的授权支持
使用include关键字在管道定义中包含外部文件时,使用HTTP/HTTPS请求获取这些文件。现在可以使用管道运行的凭据访问另一个没有公共访问权限的项目的yaml。
在组安全性仪表板中显示依赖性扫描结果(ULTIMATE版本)
Group Security Dashboard最初仅发布了SAST结果,因此用户无法使用此功能管理其他类型的漏洞。
GitLab 11.7,依赖扫描结果已添加到可用数据集中。如果你已在使用新的报告语法,则会自动在仪表板中看到结果。 Auto DevOps模板也已更新,现在需要GitLab Runner 11.5或更高版本才能正确运行Dependency Scanning作业。
![b7f14acfd584ef7ca1a53895132bff9f.png](https://i-blog.csdnimg.cn/blog_migrate/cff46b68f5160736b3cf27ac0829e367.jpeg)
Kubernetes群集创建时默为RBAC模式
保护Kubernetes群集对于控制和限制谁可以访问群集以及允许他们执行哪些操作至关重要。从GitLab 11.7开始,所有群集将在创建时默认为启用RBAC,从而提供更安全和受保护的基础架构。
支持NGINX Ingress 0.16.0+指标
随着NGINX Ingress 0.16.0的发布,Prometheus指标现在以原生方式构建,而不是依赖于外部应用服务器。GitLab 11.7现在支持NGINX Ingress 0.16.0+导出的指标,并将自动检测并显示部署的吞吐量,延迟和错误率。
项目清单重设计
GitLab 11.7中引入了项目列表UI的重新设计,该UI侧重于可读性和项目活动的摘要。为每个项目行添加了额外的项目信息和空白,并将继续根据反馈继续改进完善。
![4ef5252ea8047f17832e7f9b32a96232.png](https://i-blog.csdnimg.cn/blog_migrate/e74691c713ce1830b014e524b759ab98.jpeg)
问题列表的CSV导入
通常当团队开始使用GitLab时,已经使用不同的工具并有一些历史数据。比如你之前使用Jira,想将Jira的问题导入到GitLab来。
新版本中可以将问题数据导出导入GitLab,适用于Jira或任何支持CSV导出的问题跟踪系统。GitLab也有一个现有的CSV导出功能。
![4e5c4b182067beccc00043a6c89eb7d4.png](https://i-blog.csdnimg.cn/blog_migrate/407537a375b47a21be4ac9c1b615fb4e.jpeg)
更严格的自确认限制(STARTER及以上)
代码审查是每个成功项目的基本实践,应由非变更作者的人员进行。默认情况下,不允许自行批准合并请求,但是基于合并请求的作者而不是合并请求中的提交来阻止合并请求。从GitLab 11.7开始,自我自确认限制还会阻止对合并请求进行更改的人员批准合并,以便多个工程师撰写的合并请求能够获得完全独立的代码审查和批准。
组安全性仪表板中的漏洞筛选(ULTIMATE版本)
组安全控制台允许安全团队通过显示影响其组的漏洞操控。在新版本中用户可以按严重性,报告类型和项目名称过滤显示的漏洞。从而使开发人员专注于他们需要的东西并更快地获得的数据,当列表中条目时很多时尤其有用。
![9f4ddaca923b4696d8bd5a372f1f4b53.png](https://i-blog.csdnimg.cn/blog_migrate/d4b7c9aa40f5b07d595a69f95e099286.jpeg)
包含来自其他项目和模板的CI/CD文件
include关键字允许用户动态创建CI/CD管道,并在配置中包含外部文件。以前只能对项目存储库中的文件或通过HTTP获取的远程文件执行此操作。
在GitLab 11.7中,用户还可以从其他项目和预定义模板中包含配置片段。 GitLab将包含特定作业的片段,如sast或dependency_scanning,因此用户可以引用它们而无需复制和粘贴当前定义。更新GitLab时,作业将自动更新到最新版本,无需手动更改。
![b03dff1930dae6f85cde02aeccb8e064.png](https://i-blog.csdnimg.cn/blog_migrate/b5cb101c291e0bf54be9919eb321dd53.jpeg)
子组中支持私有Go包
使用go get安装GitLab中托管的Go包,但是子组中的私有项目不支持此功能。新版本中,任何项目都可以用作Go包,包括子组中的私有项目。
go get命令使用.netrc文件支持私有包,并在密码字段中设置个人访问token。
git push期间跳过CI构建
对于不想运行CI/CD管道的提交,虽然可以使用[ci skip]或[skip ci]向提交消息中添加注释。但是,很多人不希望或不能更改其提交的消息以包含额外的信息。
从GitLab 11.7开始,用户可以在推送到GitLab时使用Git 2.10或更新版本中的Git推送选项,使用git push -o ci.skip,以防止管道运行。
Omnibus 改进
GitLab 11.7包括Mattermost 5.6,一个开源的Slack替代品,其最新版本包括交互式消息对话框,新的管理工具,乌克兰语支持等等。
增强的网络支持现在可用于官方GitLab AMI映像,允许使用其他实例类型,以及增加带宽。
GitLab Runner 11.7更新
同期也一起发布GitLab Runner 11.7! GitLab Runner是一个开源项目,用于运行CI/CD作业并将结果发送回GitLab。
主要变化有:
取消构建时终止Web终端会话
修复Windows中CI_PROJECT_DIR的路径分隔符
更多信息,请参阅GitLab Runner的变化列表。
性能改进
在GitLab 11.7中,通过缓存语法突出显示的讨论差异,显著提高了查看合并请求的性能。
其他性能改进还包括:
通过跳过已在其他分支上已经通过的预提交验证来提高推送性能。
删除小脚本搜索中的冗余计数。
当有接受人时可以加快面板列表的打开。
功能弃用
Debian 7 Wheezy的支持
GitLab 11.6是支持Debian 7 Wheezy的最后一个版本。截至2018年5月,Debian项目不再支持Debian Wheezy,强烈建议用户升级到Stretch或Jessie。
弃用日期:2019年12月22日
Raspbian Jessie的支持
GitLab 11.8将是支持Raspbian Jessie的最后一个版本。Jessie已经过渡到LTS,最新的Raspbian Jessie镜像已有一年多了。建议用户升级到Raspbian Stretch。
弃用日期:2019年2月22日
GitLab Runner CentOS 6的支持
GitLab 11.9将是CentOS 6 Runner支持的最后一个版本,预计计划更新到一个不再支持改版本的Docker库。所以基于centOS 6 docker跑的Runner将会不能运行。
弃用日期:2019年3月22日
Omnibus GitLab中的Prometheus 1.x.
使用GitLab 11.4,捆绑的Prometheus 1.0版本在Omnibus GitLab中已弃用。现在为Prometheus 2.0,但指标格式与1.0不兼容。现有安装可以升级到2.0,并可选择使用附带的工具迁移其数据。GitLab 12.0任后何尚未运行Prometheus 2.0的安装都会自动升级。Prometheus 1.0中的度量标准数据将不会迁移,直接丢失。
弃用日期:2019年6月22日
GitLab 12.0中将默认禁用TLS v1.1
从GitLab 12.0开始,默认情况下将禁用TLS v1.1以提高安全性。这会解决很多安全问题,包括Heartbleed漏洞,并实现GitLab开箱即用,符合PCI DSS 3.1标准。
要立即禁用TLS v1.1,可以手动设置 gitlab.rb中选项,nginx['ssl_protocols'] = "TLSv1.2",并重新加载配置项gitlab-ctl reconfigure
生效日期:2019年6月22日
安装GitLab的OpenShift模板
官方的gitlab helm图是推荐方法,包括在OpenShift上的部署。不推荐使用OpenShift的安装模板,GitLab 12.0将不再支持该模板。
启用日期:2019年6月22日
GitLab Geo将在GitLab 12.0中强制执行Hashed Storage
GitLab Geo需要Hashed Storage来缓解辅助节点上的竞争条件。这在gitlab-ce#40970中有所记录。
11.5中,我们将此要求添加到Geo文档中
11.6,可用sudo gitlab-rake gitlab:geo:check检查是否已启用Hashed Storage并且所有项目都已迁移。如果你使用的是Geo,请运行此检查并尽快迁移。
在11.8中,如果上述检查未得到解决,则"管理区域>地理>节点"页面上将显示永久性可解除警告。
在12.0中,Geo将强制执行Hashed存储要求。
生效日期:2019年6月22日
Google OAuth2 SSO仅在GitLab 11.7+中受支持
2019年3月7日,Google会关闭所有Google+ API。由于11.7之前的GitLab版本依赖于这些API用于Google OAuth2,因此Google单点登录将不再适用于这些版本。GitLab 11.7及更高版本将支持Google SSO。
如果你的实例依赖Google OAuth2进行身份验证,我们建议你升级到11.7。
生效日期:2019年3月7日
开发人员可以删除GitLab 11.9中的Git标签
编辑/删除未受保护的分支上的Git标记历来仅限于维护者和所有者。
由于开发人员可以添加标签以及修改和删除未受保护的分支,因此开发人员也应该能够修改和删除Git标记。在GitLab 11.9对权限模型进行了此更改,以改进工作流程并帮助开发人员更好、更有效地使用标记。
生效日期:2019年3月22日
Hipchat整合
Hipchat将停止使用。11.9中将会删除现有的GitLab Hipchat集成功能。
弃用日期:2019年3月22日