Jgit历史
GitLab在用户级别合并整个单个用户的请求,并自动创建一个评论应用程序。该功能允许每个用户知道设计或UX是如何变化的。
GitLab 12.0在评审App中增加可视化评审工具,扩展变更评审能力。通过一小段代码,用户可以使设计人员、产品经理和其他相关人员在不离开应用程序的情况下快速提供对合并请求的反馈。
新版终极版可以在项目左侧的侧边栏菜单中列出项目的依赖列表(有时称为物料清单或BOM)。
BOM可以指示项目中包含哪些组件,安全团队和遵从性团队通常会检查这些依赖组件,以确保没有安全问题。可以浏览相关报表,支持JSON格式导出。
限制访问Gitlab接口一直是大家迫切需要的功能。在新的商业版本中,Gitlab中支持IP(段)限制,并加入黑名单机制限制对IP的访问,更加灵活。您可以构建自己的实例并在组级别设置限制。(当然可以通过nginx进行IP限制,方法需要联系。)
在GitLab 12.0中,Web IDE中的更改可以自动同步到Web终端,提交前可以在Web终端中测试更改。这个特性可以降低新贡献者的门槛,因为他们可以查看、编辑和测试项目,而无需安装本地依赖项。
通过GitLab的Kubernetes集成来部署JupyterHub,是一种简单方便的Jupyter笔记本环境的构建。使用这个环境,你可以创建和共享实时代码,可视化和运行未来的书籍文件。
在GitLab 12.0中,如果通过GitLab和K8s将JupyterHub部署到一个集群中,会自动安装用JupyterLab配置的Git扩展。然后环境通过Git完全版本化,Git命令在Jupyter中执行。它可以通过左边面板上的Git选项卡执行,也可以通过Jupyter的命令行提示符执行。
通过extends的关键字将不同的内容划分到不同的文件中,可以让用户的CI/CD配置文件保持整洁。在GitLab 12.0中,可以允许用户在单个作业中包含多个扩展来完善这个功能,通过多个扩展可以实现整洁简化的CI配置(处女座管理员必备)。
GitLab 12.0中新增了GitLab CI/CD作业扩展和折叠日志的输出。用户可以更容易地调试作业中的一些步骤,并在需要时浏览整个步骤。
Gitlab公开了漏洞数据库项目(/git lab-org/security-products/gemnasium-db)。用户可以查看特定条目并验证感兴趣的漏洞,还支持用户参与改进数据库。
依赖LDAP的组织通常需要与GitLab同步进行权限管理。在GitLab 12.0中,实例可以防止具有实例级设置的非管理员在LDAP之外进行权限更改。通过这种方法,符合标准的组织可以使用该选项来确保LDAP中的权限被映射到Gitlab实例,并且不能被非实例管理员的用户修改。
GitLab Ultimate 11.9(功能标记)中引入的GitLab Insights现在在GitLab Ultimate 12.0中默认启用。
可以统计项目中重要数据的统计,比如给定时间段内的创建/关闭问题,合并请求的平均合并时间等等。
GitLab 11.8中介绍了上游桥接操作触发下游管道的功能。它还介绍了向下游管道传递变量的基本支持。在GitLab 12.0中,增加了将当前环境变量传递给下游管道的支持。可以允许用户提供下游管道的上下文以及提交、合并请求或触发请求的管道的其他细节。
在git lab 11.11中,启动了基于代理的MVC,允许用户下载并缓存Docker图片,实现更快更可靠的下载。在GitLab 12.0中,默认情况下在组级别启用该功能。
容器注册API允许GitLab用户以编程方式轻松管理注册。GitLab 12.0中更新了权限模型,允许开发者删除标签。
在GitLab 12.0中,当Git存储库被重新打包时,位图缓存将被保存在位图索引中。缓存提高了重新打包的性能。(JGit 3 . 5 . 0之前的版本与位图不兼容)
在此版本之前,GitLab无服务器功能只能在通过GitLab安装的Knative上使用。GitLab 12.0中安装的Knative由GitLab Serverless使用。您可以手动添加现有的Knative集群,并将相关的无服务器模板添加到项目中。所以GitLab Serverless可以和托管的Kennative产品一起使用,比如Google的GKE上运行的云或者IBM托管的Kennative服务。
从GitLab 12.0开始,可以从GitLab的环境仪表板直接提供外部仪表板,并且很容易访问。
讨论合并请求和问题的现有设计涉及许多框和边界,并且很难跟踪对话。在新版本中,这被重新设计以增强用户的讨论体验。
动态应用安全测试(DAST)不再需要在Docker中运行。因此,DAST Docker图像(3GB)现在将被缓存在跑步者上。(注意镜像每周更新一次,所以每周一缓存都会失效)。
12.0中增加了设置群发通知邮箱的功能。您可以让用户向不同的电子邮件地址发送群组通知。比如工作组的工作邮箱,个人组的个人邮箱(个人设置项中有邮件菜单可以添加邮件地址)。
在删除扫描程序发现的漏洞时,可以添加一个新字段来详细解释删除此漏洞的原因。
这将使安全团队和开发人员能够查看历史记录,并了解项目未修复的原因。
出于审计等原因,您可能希望确保项目(可能包括存储库中的重要代码)只能被归档,而不会被删除和永久丢失。新版本可以通过实例级设置防止非管理员删除项目。
从GitLab 8.9开始,GitLab CI/CD通过在作业定义中指定git_DEPTH变量来支持浅层GIT克隆。新版本中增加了项目级设置克隆深度的功能,项目维护人员可以设置默认为浅克隆。浅层Git克隆比一次克隆整个Git存储库要快。如果CI/CD作业设置为构建最新的代码,浅层克隆通常就足够了。
同样在GitLab 12.0中,默认情况下,GitLab中新建项目的GIT_DEPTH在创建时设置为50。此默认设置将帮助用户使用GitLab CI/CD实现更快的克隆和构建时间,同时仍然允许高级用户在不同类型的CI/CD用例需要时更改此设置。
Fork工作流创建一个副本,用户修改该副本并将其合并到上游项目中,从而轻松加速协作,这也是Github和其他Git项目的一个流行功能。但是对于一个热门项目,可能会有上千个副本,存储这些副本需要消耗大量的服务器资源。
在GitLab 12.0中,实例管理员可以使用object_pools函数标志来启用Git对象重复数据删除。启用时,创建公共分支也将创建对象池,并使用objects/info/ alternates来减少fork的存储需求。对象重复数据消除要求父项目启用并使用哈希存储。现有分支尚未自动迁移到对象池。在即将发布的版本中,将通过在已消除重复数据的状态下直接创建分叉来实现快速分叉。当前版本也需要先创建一个fork,然后进行重复数据删除。
自2019年5月30日起,GitLab的在线git服务启用了对象去重。构建您自己的实例,但默认情况下关闭它,因为当您获得它时会显示重复的警告。
手动添加Kubernetes集群需要多个数据点,并且容易出错。为了手动添加集群以解决访问和权限问题,kubernetes集成支持将验证API URL的可访问性以及集群令牌和CA证书的有效性。
在GitLab 12.0中,通过Zoom telecom会议,可以很容易地与团队成员就问题进行协作。将会议链接粘贴到问题描述中。GitLab会检测链接,并在标题下方的顶部显示“加入缩放会议”按钮,这样就可以显示给所有合作者了。
用户可以在问题中定义任务,这些信息将显示在整个应用程序的不同位置。在GitLab 12.0中,用户可以通过API返回任务进度信息。
以前版本的用户无法从问题API获得详细的问题统计数据。GitLab 12.0中增加了返回全部、已关闭、已打开问题统计的功能。
GitLab 12.0对Omnibus的改进包括:
引入Mattermost 5.11,它是Slack的开源替代方案。其最新版本包括一个新的远程CLI工具和更多的功能。该版本还包括安全更新。尽快升级到新版本。
默认情况下,JSON日志记录是启用的。
Omnibus-gitlab将默认启用Grafana服务。此外,GitLab和Grafana现在已经自动启用了OAuth认证。
GitLab指示器通过使用一些直接检测到的ruby指示器进行改进。
GitLab同时发布了GitLab Runner 12.0。主要变化如下:
Docker凭证助手支持;
注册时为跑步者增加access_level配置;
允许Kubernetes Executor配置Pod安全上下文;
为新注册的Windows shell执行程序设置PowerShell默认值;
支持Windows docker卷配置。
同时,Gitlab Runner版本12.0还删除了一些之前丢弃的东西:
删除不推荐使用的克隆/提取命令。
删除已弃用的git清理策略。
移除对不推荐使用的metrics_server设置的支持。
删除对K8S的已弃用入口点配置的支持。
移除对已弃用的S3缓存配置的支持。
删除对不赞成使用的分发的支持。
删除旧的docker助手图像命令
在GitLab Runner的CHANGELOG中可以找到所有更改的列表。
GitLab 12.0的一些性能改进包括:
Epics列表页面系统可以在性能上得到极大的优化。
避免访问数据库获取Elasticsearch结果,避免点击两次Elasticsearch获取搜索结果。
向ElasticSearch index批量提交文档;
Cache在提交消息中呈现Markdown,提高列表提交的性能;
提高每次推送的存储库大小限制检查的性能;
使用长描述加载问题或合并请求时提高性能;
通过建议的更改提高合并请求的性能;
在重新打包Git存储库时,我们使用delta Island来提高性能并降低克隆的CPU利用率。
提高监控图表的性能;
修复ListLastCommit RPC上的git n+1;
使用- perl-regexp提高Git代码搜索的性能;
通过修复Git N+1提高JobsController的性能;
GitLab的主要维护版本在这种情况下,删除了对GitLab 9.x的支持。支持的最低版本提升至GitLab 10.0。
开工日期:2065 438+2009年6月22日
在GitLab 12.0中,GitLab Geo需要使用哈希存储来缓解辅助节点上的竞争情况。请使用“sudo git lab-rake git lab:geo:check”来检查是否启用了哈希存储,以及是否已经迁移了所有项目。
迁移日期:2065 438+2009年6月22日
在GitLab 12.0中,Geo需要一个PostgreSQL的外部数据包装器,将最低PostgreSQL版本提升到9.6。GitLab Geo使用PostgreSQL外部数据包装器来查询来自不同PostgreSQL实例的数据。这是Geo日志游标所必需的,它可以显著提高某些同步操作的性能。外来数据包装器还提高了Geo节点状态查询的性能。对于大型项目,遗留查询具有不可接受的性能。
迁移日期:2065 438+2009年6月22日
在GitLab 12.1中,将删除Kubernetes部署选择器的应用标签匹配(原计划是删除12.0)。在GitLab 11.10的一部分中,GitLab引入了新的匹配机制,使用app.gitlab.com/app和app.gitlab.com/env在部署板上显示部署。要在部署板中查看这些部署,只需要推送新的部署,GitLab就会用新的标签进行部署。
移除日期:2065 438+2009年6月22日
GitLab 11.8中引入了新的KUBE入口基本域环境变量。您不再需要使用AUTO_DEVOPS_DOMAIN来定义多个域,因为您现在可以在群集页面上单独定义这些域。
移除日期:2065 438+2009年6月22日
计划删除GitLab 12.1中的实例级Kubernetes服务模板,以支持Gitlab 11中引入的实例级集群功能。
作为升级到GitLab 12.0的一部分,任何使用服务模板的自建GitLab实例都将迁移到实例级集群。
移除日期:2065 438+2009年6月22日
在GitLab 12.0中,已经完全删除了对skip_auto_migrations文件的支持。该文件在GitLab 10.6中已被弃用。
移除日期:2065 438+2009年6月22日
GitLab 12.0完全取消对普罗米修斯1.x的支持
移除日期:2065 438+2009年6月22日
OpenSUSE 42.3将于2019年6月30日到期。Gitlab会在12.2放弃支持。
移除日期:2065 438+2009年8月22日
git lab 11.9 git lab Runner一直在使用一种新的方法来克隆/获取资源库。在当前版本中,如果不支持新方法,GitLab Runner将使用旧方法。
在GitLab 11.0中,我们改变了为GitLab Runner配置测量服务器的方式。Metrics_server已删除,改用GitLab 12.0中的listen_address。
11.3中,GitLab Runner开始支持多个缓存提供者。这导致了针对S3特定配置的新设置。
GitLab 12.0中将不再提供这些路径。11.9+以上的用户,直接升级没有任何作用。
废弃日期:2065 438+2009年6月22日
在GitLab 11.4中,GitLab Runner引入了函数标志FF _ K8s _ use _ entry point _ over _ command。在GitLab 12.0中,这些函数标志将被删除。
移除日期:2065 438+2009年6月22日
GitLab Runner中的一些Linux发行版已经到了生命支持的末期。在GitLab 12.0中,GitLab Runner不再向过期的Linux发行版提供特殊的发行包。
废弃日期:2065 438+2009年6月22日
作为增加对Windows Docker执行器支持的一部分,一些用于帮助程序镜像的旧命令需要被丢弃。在GitLab 12.0中,GitLab Runner开始使用新的命令。这只影响覆盖辅助映像的用户。
迁移日期:2065 438+2009年6月22日
利用git lab Runner 11.10,介绍了一种配置Runner如何执行git clean命令的方法。新的清理策略取消了在签出后使用git reset和git clean命令。在GitLab Runner 12.0中,GitLab Runner放弃了对旧清理策略的支持,删除了通过设置函数标志来恢复函数的方法。
废弃日期:2065 438+2009年6月22日
许可证管理已被重命名,以更好地符合GitLab 12.0中的通用行业术语。许可证合规性的目的是分析应用程序,跟踪第三方组件(如库和外部依赖项)使用的许可证,并检查它们是否与项目的许可模型兼容。许可证合规性安全软件组合分析小组的成员。
迁移日期:2065 438+2009年6月22日
命令行参数-auth-first-page不再受支持,需要删除。
需要删除不再受支持的DEP _扫描_禁用_远程_检查标志变量。
GITLAB_FEATURES环境变量中的sast_container的值必须更改为container_scanning。
迁移日期:2065 438+2009年6月22日
新版本不再更新在项目管道中配置安全功能时使用的文档中的安全手册配置代码片段。请使用包含:模板:依赖关系扫描。gitlab-ci.yml使用Secure配置包含。
废弃日期:2065 438+2009年6月22日
为了缓解这种情况,默认情况下将禁用转发3DES。对于现代浏览器的用户来说,这应该不会改变什么,但一些运行在Windows XP操作系统上的Internet Explorer版本7和8的用户可能会受到影响。
废弃日期:2065 438+2009年6月22日
GitLab 12.0是最后一个支持MySQL(和MariaDB)的版本。用户需要迁移到PostgreSQL以使用未来版本。MySQL已被弃用,其支持以前仅限于Enterprise Edition Starter和Premium。
废弃日期:2065 438+2009年7月22日
这些设置在GitLab 12.1的UI中会被删除,Gitlab 11的gitlab.yml中已经提供了这个策略。此外,可以定义Sentry环境来区分多个部署,如开发、stagin和生产。
迁移日期:2065 438+2009年7月22日
当我们在GitLab 11.6中引入集团级项目模板时,功能得到了扩展。在git lab 11.11中修复此错误,给Silver/Premium以下的现有用户/实例三个月的宽限期。2019年8月22日,此宽限期将到期,团体项目模板需要Silver/ remium或更高。
迁移日期:2065 438+2009年8月22日
如果使用Python 2的用户在开始使用GitLab 12.2时自行管理,则需要将CI变量LM_PYTHON_VERSION设置为“2”。使用Python 3的用户现在可以将CI变量LM_PYTHON_VERSION更改为“3”。
迁移日期:2065 438+2009年8月22日
在GitLab 12.3中,计划放弃GitLab Runner中的Windows批处理命令行作业(如cmd.exe),以支持Windows PowerShell的扩展和延伸支持。对于那些仍然想在cmd.exe上运行项目的用户,可以从PowerShell中调用这些命令,但是不直接支持Windows批处理。
废弃日期:2065 438+2009年9月22日
使用git lab Runner 11.10使用Docker和Docker机器执行程序时,共享卷中的缓存作业目录发生了变化。GitLab Runner现在缓存用builds_dir配置的整个基目录,而不仅仅是作业工作目录的父目录。因为这是一个行为改变,我们添加了一个函数标志,允许我们控制应该使用新的还是旧的行为。在GitLab Runner 12.3中,函数标志和旧行为将被删除。
迁移日期:2065 438+2009年9月22日
Python 2.7于2020年6月65438+10月1日达到生命周期,因此在未来的GitLab版本中将移除对Python 2的支持。
迁移日期:2065438+2009年2月22日。
如果使用Omnibus安装自建实例,可以通过发行处的包管理器直接升级:
比如在CentOS下,可以通过yum updata gitlab-ce自动完成升级过程。
GitLab 12.0将企业版多年来对数据库的改动合并到社区版中。作为这项工作的一部分,各种旧的迁移也被删除。升级到GitLab 12的用户必须先升级到11.11的最新补丁版本,再升级到12.0.0。升级到12.1.0等未来版本时,用户必须先升级到12.0.0。不按此顺序升级可能会导致数据迁移失败,从而导致应用程序错误。Omnibus安装会先强制升级到12.0.0。通过源代码安装的用户必须按此顺序手动处理(XX-->;11.11->;12.0->;YY).
默认情况下,GitLab 12.0使用哈希存储。这将影响新的安装。
GitLab 12.0会自动将PostgreSQL版本升级到10.0。
用户可以跳过PostreSQL 10.0的自动升级,创建/etc/git lab/disable-PostgreSQL-upgrade。
如果使用GitLab Geo,将在主节点和所有辅助节点上跳过自动PostgreSQL升级。我们将在12.1中为Geo用户提供升级路径。
默认情况下,GitLab 12.0将启用JSON日志记录。它还提供了一个设置文档,用于保留以前的非JSON日志格式。