GitLab 10.8发布:开源推送镜像和增量部署

图片引起关注


我们很高兴向您介绍具有许多创新和改进的新版本的GitLab! 在此版本中,我们改进了版本自动化,共享了以前付费的功能,加速了安全漏洞的修复等。


更大的部署信心


新功能的发布总是令人兴奋,因为即使进行最严格的测试,也有无法预料的复杂性的风险。 我们新的增量部署功能仅允许针对特定用户子集进行代码部署。 现在,您可以逐渐增加正在部署的Kubernetes Pod的数量,而不必一次为所有用户推出更新。 如果出现任何复杂情况,您可以回滚所做的更改,以免影响整个用户群。 这项创新为用户提供了额外的保护层,以防止出现不可预见的错误,理想情况下,它使您可以更频繁地进行部署。


推送镜像现已在公共领域


最初, 推送镜像仅适用于付费订阅,但是从发布之日起,此功能便是用户要求最多的功能之一-许多用户都要求将其转让给公众。 我们认真对待这些问题,并认为在付费功能和公开可用功能之间找到完美的平衡是项目管理政策的关键领域之一 。 因此,从此版本开始,推镜将公开可用


因此,GitLab Core用户拥有了与自由开发和迁移相关的新机会。 自由职业者现在将能够镜像任何客户端存​​储库,并且从其他git存储库切换到GitLab的用户将能够利用镜像功能来简化迁移过程。


只要有可能,我们都会努力将功能引入公共领域,以吸引新的GitLab用户并增加参与开源软件开发的人员


漏洞加速


在没有任何自动化的情况下,几乎不可能跟踪代码中的漏洞,因此GitLab包括几个内置的安全系统,例如SASTDAST以及扫描容器依赖项 。 在此版本中,我们将继续朝这个方向努力。


如果发现漏洞,则在误报情况下必须修复或忽略它。 我们新的交互式安全报告将使您可以直接从报告中执行相应的操作:您可以拒绝该漏洞,也可以创建任务来对其进行修复。 此功能简化了使用漏洞的过程,因此加快了安全代码的发布。


等待您的回复!


我们期待您对此版本的创新做出反应-您喜欢什么? 我们应该改善什么? 我们将饶有兴趣地阅读您对原始文章的评论,并继续致力于改进GitLab。


感谢您的参与!


GitLab MVP徽章


本月MVP- 亚历克西斯·雷格Alexis Reigel)


Alexis添加了一个非常有用的功能,可以为组创建常见的CI运行器 。 用户已经要求此功能超过一年,而Alexis的贡献终于使它得以实现。 现在,为特定小组管理项目运行者要容易得多。


感谢Alexis 感激的是,我们给他寄了签名毛衣,袜子和手工制作的tanuki,上面有GitLab符号。


增量部署(高级,终极,银,金)


在对应用程序进行大规模更改时,明智的做法是将版本部署到一小部分用户,以获得反馈并确定可能的问题。 此后,您可以持续增加要为其执行部署的用户的百分比,直到新版本完全替代先前版本为止。 因此,如果在某个阶段发现问题,则产品回滚将影响较少的用户。


在GitLab 10.8中,我们增加了将代码增量部署到炉膛的10%,25%,50%和100%的功能。 您还可以使用INCREMENTAL_ROLLOUT_ENABLED环境INCREMENTAL_ROLLOUT_ENABLEDAuto DevOps中应用此方法。


增量部署部署


增量部署文档


推镜现已公开发售(核心,入门,高级,终极,免费,古铜,银,金)


使用镜像存储库,您可以将Git存储库从一个位置复制到另一位置。 这样可以轻松处理多个GitLab实例:例如,您可以将团队工作的结果反映到客户的个人GitLab实例中。 推送镜像还使将项目从其他存储库移至GitLab变得容易,而从中进行移动的原始存储库仍然很重要。


以前,推送镜像在GitLab Starter中可用,现在在Core中也可用。


推送镜像说明文件


推送镜像现已开源


安全报告中的交互式反馈(Alpha版)(ULTIMATE,GOLD)


安全报告可帮助您确定软件中的潜在漏洞,然后可以采取措施进行修复。


从GitLab 10.8开始,您可以直接从安全报告窗口创建漏洞修复任务。 如果出现误报,您还可以拒绝特定漏洞。 您的反馈意见直接显示在报告中。


安全报告文档


安全报告中的交互式反馈(alpha)


用于Web IDE的模糊文件搜索(核心,入门,高级,终极,免费,古铜,银,金)


我们在Web IDE中添加了模糊文件搜索,以简化大型项目的导航。 使用组合键Cmd + p / Ctrl + p可以进行模糊搜索。


以前,您必须直接查看项目文件树才能找到特定文件。


Web IDE文档


Web IDE中的模糊文件查找器


将单个文件提交到Web IDE(CORE,STARTER,PREMIUM,ULTIMATE,FREE,BRONZE,SILVER,GOLD)


我们增加了将单个文件添加(暂存)到Web IDE中的提交的功能,该功能允许进行小规模的提交。 引入的更改将添加到未暂存更改的相应列表中,之后您可以从该列表中选择必要的文件,并将它们添加到暂存更改列表中-这些文件将成为下一次提交的一部分。


Web IDE文档


在Web IDE中按文件暂存和提交


小组完成任务的时间表(高级,终极,银色,金色)


任务计划在许多项目中用于跟踪特定里程碑的进度。 随着越来越多的团队将划分分为组和子组,我们收到了许多在组级别添加此类计划的请求。


在此版本中,我们为组里程碑添加了任务执行计划。 这些图表的功能与项目图表的功能完全相同:它们显示了与里程碑相关的所有任务的进度,从而清楚地演示了工作流程。 使用这些时间表,您可以评估按时完成工作的可能性,并对工作进行必要的更改。


与完成任务的项目进度表类似,小组进度表会同时考虑任务的数量及其权重。 此外,组图还考虑了与相应组的所有子组的里程碑关联的任务。


任务计划文件


组里程碑燃尽图


普罗米修斯指标是共享的,默认情况下启用(CORE,STARTER,PREMIUM,ULTIMATE)


GitLab通常是软件交付周期的关键要素,因此重要的是要确保其稳定和正确的操作。 在以前的版本中,我们为Redis和Postgres依赖项添加了Prometheus度量标准,并在9.3版中添加了一些实验性度量标准 。 从那时起,我们在代码库的更多部分覆盖了指标,并且还减少了指标收集对性能的负面影响。 现在,我们使用这些指标来监视GitLab.com服务。


由于过去的创新,我们从版本10.8开始发布了普罗米修斯(Prometheus)通用访问权限监视(GA,通用可用性)。 对于所有新安装的GitLab,默认情况下将启用监视。 我们还发布了Grafana仪表板试用版,用于可视化指标。


GitLab中的Prometheus监控文档


GitLab Prometheus服务指标现在为GA,默认情况下对于新安装为启用


GitLab 10.8的其他改进


确认使用政策更新(CORE,STARTER,PREMIUM,ULTIMATE)


GitLab正在准备实施GDPR,并且在此过程中,我们要求用户查看并确认更新的使用条款。 我们决定将其添加到GitLab中,以便用户将来可以使用此功能,而不是一次使用并忘记它。


如果实例的管理员启用了此功能,则要求用户先阅读使用条款并同意,然后再继续使用GitLab。 在用户确认此消息之前,将阻止他通过Web,API和Git访问GitLab。


可以在管理员设置中完全更改带有使用条款的消息。 另外,由于该帖子基于GitLab风格的Markdown ,因此它甚至可能包含指向其他页面的链接。


来自用户的所有确认信息都存储在数据库中,因此您将来可以使用此信息。


使用政策更新的确认文档


按路线图史诗(ULTIMATE,GOLD)搜索和过滤菜单


搜索和过滤菜单是界面中非常有用的一部分,用户熟悉并在整个GitLab中使用。 我们决定在查看路线图时使用此功能来搜索和过滤路线图的史诗。


在此版本中,您可以按作者和路线图视图模式中的标签筛选史诗。 此外,您可以按名称和描述搜索史诗。 这将允许用户查找与他们及其团队有关的史诗和书签链接以保存搜索设置。


史诗路线图搜索和过滤器栏


路线图文档


API讨论(核心,入门,高级,终极,免费,古铜,银,金)


讨论(注释分支)出现在GitLab Web界面的许多部分中:在任务中,合并请求,史诗,摘录和提交。 在此版本中,我们扩展了API的功能,以便您可以直接通过GitLab API访问和管理讨论,这将使您的工作流程更加灵活。


API讨论文档


适用于PHP和Java Gradle的SAST(最终版本,金色)


静态应用程序安全测试(SAST)仅在您的项目使用GitLab工具之一支持的编程语言时才有效。 这就是为什么我们会在每个发行版中增加这些语言的数量,并添加其中最受欢迎的语言。


在GitLab 10.8中,可以自动检查使用Gradle用PHP和Java编写的项目的安全漏洞。 为此,您甚至不需要确定语言-它是在运行时自动确定的。


适用于PHP和Java Gradle的SAST


SAST文档


定义手动输送机的变量(CORE,STARTER,PREMIUM,ULTIMATE,FREE,BRONZE,SILVER,GOLD)


通常,需要使用一次性设置运行一次CI运行来测试特定的用例。 例如,我们可以临时应用特定的部署策略,或者从应用程序构建过程中排除特定的步骤。


当手动启动管道时,GitLab 10.8提供了定义特殊的一次性变量的功能。 您无需更改整个项目的变量即可执行单个特定的运行,这使得使用您自己的设置运行自定义测试变得更加容易。


指定手动管道的变量


管道启动文档


合并在合并请求小部件(CORE,STARTER,PREMIUM,ULTIMATE,FREE,BRONZE,SILVER,GOLD)中提交


我们将继续致力于使用小型GitLab的重要功能。 这个变化就是一个很好的例子。 如果在项目中使用合并提交,则在合并后,合并请求的链接将立即出现在合并请求小部件中。 通过此链接,您可以直接转到合并提交。


对于许多工作流程,能够直接进行合并提交将很有用。 例如,一些团队转移这些合并提交以释放分支或标记它们以进行测试或部署到生产中。 进行此更改后,您将更容易发现合并请求是否属于您将要部署的分支。


在合并请求小部件中合并提交


合并请求文档


增加任务权重的系统说明(STARTER,PREMIUM,ULTIMATE,BRONZE,SILVER,GOLD)


任务的权重允许您将特定的数值映射到GitLab任务,以指示其大小。 特别是,团队在研究敏捷或其他敏捷开发方法时,会使用任务权重来计划开发。 在此版本中,我们添加了系统注释,每次添加或更改任务权重时都会出现。 这将帮助团队成员跟踪评估工作的变化,以及仅知道何时进行第一次评估。


增加问题权重的系统说明


任务权重文档


CSV导出中的任务权重和锁定状态(STARTER,PREMIUM,ULTIMATE,BRONZE,SILVER,GOLD)


在此版本中,我们将任务权重及其阻止状态添加到了CSV导出中。 这为您提供了有关任务的更多信息,因此您可以在GitLab之外进行任何类型的分析和工作流程。


CSV导出文档


GitLab在Jira Development Panel中合并请求(PREMIUM,ULTIMATE,SILVER,GOLD)


在此版本中,我们改进了与Jira Development Panel的集成:现在它包括GitLab合并请求。 这意味着,如果您使用特殊的集成 ,则除了Gitlab提交和分支外,合并请求还将显示在相关Jira任务的侧栏中。


请注意,在Jira界面中,合并请求称为“拉请求”。


GitLab在Jira开发面板中合并请求


GitLab Jira开发面板集成文档


电子邮件通知,用于评论史诗(ULTIMATE,GOLD)


在以前的版本中,我们引入了史诗注释线程。 在此版本中,我们通过添加电子邮件通知,使与史无前例的GitLab更加相似的史诗协作。 与之前在任务和合并请求中一样,您将在史诗中的相应活动之后通过电子邮件(由您在GitLab设置中指定)接收通知。 例如,当团队成员在史诗说明中提及您或对其进行评论时,如果您将此史诗组的通知设置为“参与”或更高级别,您将收到一条通知。


史诗般的电子邮件通知


史诗文件


改进了长提交描述(核心,入门,高级,终极,免费,古铜,银,金)的显示


良好的提交说明可以解释为什么需要进行更改,这有助于进行小的原子提交,并简化了团队其他成员的提交日志的读取。 我们改进了详细描述的显示,因此阅读起来变得更加容易!


改进了长提交消息的显示


支持内置片段(核心,入门,高级,终极,免费,古铜,银,金)


片段对于讨论部分代码很有用。 现在,您可以将公共摘要嵌入到您的网站中。 这对记录文档,在代码示例或个人网站上补充博客文章很有帮助。 谢谢您给我这个机会, Haseeb


内置摘录支持文档


用于项目语言(核心,入门,高级,终极,免费,古铜,银,金)的API


使用新的语言API,您可以收集有关项目语言的统计信息。 这对于报告或研究很有用-例如,了解组织或GitLab.com上的开源项目中最常用的编程语言。 感谢Roger ,您的宝贵意见!


项目语言的API文档


适用于各组的GitLab Runner(核心,入门,高级,终极,免费,古铜,银,金)


GitLab Runner具有两种类型的设置:整个实例(共享)或项目级别(特定)。 但是,有时需要为整个项目组提供一组Runner,而无需任何人从外部进行访问。 例如,在GitLab.com上,由于组和组织之间的直接联系,因此效果很好。


从GitLab 10.8开始,您可以将GitLab Runner连接到特定的组-该组的每个项目将获得CI / CD功能,而无需任何其他设置。 创建新项目后,新项目将立即获得团体赛跑者的所有好处。 感谢Alexis使用此功能。


团体的Gitlab跑步者


GitLab Runners配置文档


测试环境策略对Auto DevOps的支持(核心,入门,高级,终极,免费,古铜,银,金)


在此版本之前,默认情况下,Auto DevOps使用连续部署模型:每次在master分支中启动管道后,都会自动进行production推送。 这非常有用,但是有时为了确保应用程序的完整性或生产环境的可用性,您需要使用其他测试环境。 只有通过所有检查,您才能在生产中手动启动部署。


Auto DevOps模板以前支持此功能,但默认情况下未启用。 如果有人想在测试环境中使用运行,则需要创建一个单独的.gitlab-ci.yml


从GitLab 10.8开始,Auto DevOps模板将允许用户使用环境变量启用staging 。 您可以为整个组,一个项目甚至特定的启动指定STAGING_ENABLEDproduction部署将需要手动启动-您可以在正确的时间进行。


对Auto DevOps的暂存环境策略支持


Auto DevOps部署策略文档


项目模板现在可以与Auto DevOps一起使用(核心,入门,高级,终极,免费,古铜,银,金)


在GitLab中,您可以轻松开始使用特定语言的项目:仅使用模板。 这将使您能够快速启动新应用程序,然后根据需要对其进行自定义。


GitLab 10.8包括Rails,Spring和Express模板的高级版本,因此您在创建新项目时可以充分利用Auto DevOps 。 使用这些高级模板,您可以在数分钟内从构思到生产。


项目模板现在可与Auto DevOps一起使用


基于项目的模板文档


地理增强(高级,终极,银,金)


  • Geo随附Git 2.16.3,它将显着减少具有大量链接的存储库的同步时间。
  • 初始存储库克隆后,辅助Geo节点将执行git pack-objects释放磁盘空间。 它还将定期执行垃圾收集( git gc )。
  • 启用存储库检查后,Geo将在每个辅助节点存储库上定期运行git fsck
  • Geo Prometheus度量标准得到了改进:查找校验和不兼容的存储库变得更加容易。

地理文档




详细的发行说明和更新/安装说明可以在原始的英语文章中找到: GitLab 10.8发行了增量推出,外加开源推镜像


英文翻译是由rishavantsgnl_05完成的。

Source: https://habr.com/ru/post/zh-CN413485/


All Articles