跳至主要内容

Gitea 1.18.0 发布

·阅读 15 分钟
jolheiser
Gitea 维护者
delvh
Gitea 维护者
1.18Release

我们很自豪地宣布 Gitea 1.18.0 版本发布。

我们强烈建议用户更新到此版本以获取一些重要的错误修复,但请务必查看重大更改。

我们合并了 535 个拉取请求以发布此版本。

我们要感谢 @pboguslawski 报告的反向代理身份验证问题,以及 @zeripath 的后续修复。
我们还要感谢 @appleboy@silverwind 在此版本中提供的其他安全修复。

您可以从我们的 下载页面 下载我们预构建的二进制文件之一 - 请确保选择正确的平台!有关安装方法的更多详细信息,请遵循我们的 安装指南

我们还要感谢所有在 Open Collective 上支持我们的用户,他们正在帮助我们维持财务状况。

你听说过吗?我们现在有 周边商店了!:shirt🍵

现在,让我们深入了解一下更改!

重大更改

从 API 中删除反向代理身份验证 (#22219)

对于反向代理身份验证,已删除对 API 的访问权限。用户现在需要使用令牌或基本身份验证。

邮件:重新设计邮件设置 (#18982)

  • 如果您指定了发送电子邮件的凭据,但服务器不支持使用这些凭据,则 Gitea 将无法启动,而不是未经身份验证地发送邮件。
  • 使用唯一的 mailer.PROTOCOL 来区分不同的邮件发送器(SMTP 系列、sendmail、dummy),而不是 MAILER_TYPE+PROTOCOL
  • 组合的 mailer.HOST 选项已被弃用,取而代之的是新的 mailer.SMTP_ADDRmailer.SMTP_PORT 选项。
  • mailer.IS_TLS_ENABLED 选项已被弃用,取而代之的是使用新的 mailer.PROTOCOL 选项,该选项明确接受 smtpsmtpssmtp+startlssmtp+unix。如果您不知道您的提供商使用什么协议但提供了端口,则可以将其留空,它将根据给定的端口推断出来。有关新 smtp+unix 协议的更多详细信息,请参阅非重大更改部分。
  • mailer.DISABLE_HELO(默认值为 false)选项已被 mailer.ENABLE_HELO(默认值为 true)替换。它仍然执行相同的操作,但该选项被取反以减少混淆。
  • mailer.SKIP_VERIFY 选项已被 mailer.FORCE_TRUST_SERVER_CERT 替换,以使其听起来更吓人,并阐明其作用。
  • mailer.USE_CERTIFICATEmailer.CERT_FILEmailer.KEY_FILE 已被弃用并重命名为 mailer.USE_CLIENT_CERTmailer.CLIENT_CERT_FILEmailer.CLIENT_KEY_FILE

某些配置从配置文件移动到数据库 (#18058)

两个配置 picture.DISABLE_GRAVATARpicture.ENABLE_FEDERATED_AVATAR 已复制到数据库配置设置表中,以便管理员可以在管理面板中更改它们,而无需重新启动 gitea 服务。
升级后首次运行时,app.ini 中现有的配置设置将迁移到数据库,然后数据库设置将优先。

身份验证:删除 U2F 支持 (#20141)

Gitea 1.18 完全删除了 U2F 支持。如果用户尚未迁移到 webauthn,则应迁移。

模板:将 i18n 重构为 locale (#20153)

任何使用自定义模板的用户都会受到影响,需要将 .i18n 替换为 .locale

模板:删除 MD5 函数 (#20813)

由于 MD5 函数不安全,并且在新方法中未使用,因此已将其删除。
任何使用自定义模板的用户都会受到影响,需要删除 MD5 函数的所有出现。


功能亮点

🚀在 Markdown 中添加颜色预览 (#21474)

现在,您可以查看给定颜色在 Markdown 中的外观,前提是您将颜色包装在 ` ` 中。

color preview screenshot 1

🚀包注册表:支持更多注册表 (#21393#20930#20688#20560)

使用 Gitea 1.18,支持以下新的注册表/功能

  • Chocolatey/NuGet v2 API (.NET)
  • Vagrant 包(与语言无关)
  • npm unpublish (JS/TS)
  • Pub 包(Dart)

这意味着目前,以下语言/类型可以作为包存储

  • Composer (PHP)
  • Conan (C++)
  • 容器镜像
  • 通用(原始二进制文件)
  • Helm 图表
  • Maven (Java)
  • npm (JavaScript)
  • NuGet (.NET, C#/VB)
  • Pub (Dart)
  • PyPI (Python)
  • RubyGems (Ruby)
  • Vagrant 镜像

🚀添加 API 端点以获取 PR 的更改文件 (#21177)

Gitea API 现在允许您获取给定 PR 中更改的文件列表。

🚀PR 上的文件树 (#21012)

现在比以往任何时候都更容易浏览拉取请求中的更改。

file tree screenshot 1

如左侧屏幕截图所示,此树表示更改的文件结构,可用于快速导航到您要查看的任何位置。

提示:树按字母顺序排序,因此如果您知道要查找的内容,您将能够快速找到它。

🚀工单表单和 PR 表单 (#20987)

Gitea 现在支持工单和 PR 表单作为自由格式 Markdown 的替代方案。

issue forms screenshot 1

如上所示,您可以使用这些表单要求满足某些标准,同时提高用户友好性和直观性。

🚀Markdown 中的 LaTeX 数学渲染 (#20571)

Gitea 现在可以使用 LaTeX 语法在 Markdown 内容中的 `$…$`、`$$…$$`、`\[…\]` 和 `\(…\)` 中渲染数学公式。

math rendering screenshot 1

🚀显示本地化 README (#20508)

Gitea 现在尝试将用户的语言设置与特殊命名的 README 进行匹配,以确定显示哪个文件。

例如,如果用户使用 `zh-CN` 作为语言,则将按以下顺序考虑以下 README 文件

  1. README.zh-CN.md
  2. README.zh_CN.md
  3. README.zh.md
  4. README.md

🚀通过电子邮件添加团队成员邀请 (#20307)

您现在可以通过电子邮件向某人(尚未在您的实例中拥有帐户)发送加入团队的请求。
收到邀请后,他们可以通过链接注册并加入团队。

🚀不同的 Unicode 检测/转义机制 (#19990)

以前,Gitea 使用一个相当错误的系统来检测不可见/易混淆字符。
该算法现在已更新到类似于 Visual Studio Code 行为的版本,希望能够减少错误。

🚀用户/组织代码搜索 (#19977)

用户现在可以启用并在整个用户或组织中使用代码搜索。
告别猜测某些文本是否以及在何处位于特定仓库中。
要使用此功能,您需要配置索引器。

🚀站点地图支持 (#18407)

Gitea 现在可以自动提供站点地图,让搜索引擎知道哪些内容可用。

🚀系统设置表 (#18058)

以前,所有配置都在您的 `app.ini` 中完成。
现在情况不一定如此,因为 Gitea 现在还具有一个数据库表 `system_setting`,可用于存储设置。
此表有两个优点

  1. app.ini 不会像以前那样增长得那么快了
  2. 数据库中的设置也可以在实例运行时更新,甚至可以通过设置的 UI 更新

目前,只有两个设置(`picture.disable_gravatar` 和 `picture.enable_federated_avatar`)已迁移到数据库表。

🚀提交时同步推送镜像 (#19411)

Gitea 现在可以在推送新提交时同步推送镜像。
在“镜像设置”中查找新的复选框以启用它。

🚀清除用户 (#18064)

正如许多具有开放注册的实例的管理员已经注意到的那样
有时,垃圾邮件用户会注册。
以前,管理员很难删除此类用户。
现在这变得容易多了,您可以通过执行 `gitea admin user delete --purge $USER` 简单地清除用户的任何痕迹。
或者,您也可以在从管理员仪表板删除用户时,在 UI 中选中“清除用户”。

变更日志

1.18.0 - 2022-12-29

  • 安全
    • 从 API 中删除反向代理身份验证 (#22219) (#22251)
    • 支持 Go 漏洞管理 (#21139)
    • 禁止 HTML 字符串工具提示 (#20935)
  • 重大更改
    • 重构邮件发送器设置 (#18982)
    • 删除 U2F 支持 (#20141)
    • 将 `i18n` 重构为 `locale` (#20153)
    • 为动态资源启用文件名中的 contenthash (#20813)
  • 功能
    • 在 Markdown 中添加颜色预览 (#21474)
    • 允许包版本排序 (#21453)
    • 添加对 Chocolatey/NuGet v2 API 的支持 (#21393)
    • 添加获取 PR 的更改文件的 API 端点 (#21177)
    • 在 diff 视图左侧添加文件树 (#21012)
    • 支持工单表单和 PR 表单 (#20987)
    • 添加对 Vagrant 包的支持 (#20930)
    • 添加对 `npm unpublish` 的支持 (#20688)
    • 为用户添加徽章功能 (#20607)
    • 添加作者的工单筛选器 (#20578)
    • 将 KaTeX 渲染添加到 Markdown 中。(#20571)
    • 添加对 Pub 包的支持 (#20560)
    • 支持本地化 README (#20508)
    • 添加对 mCaptcha 作为验证码提供程序的支持 (#20458)
    • 通过电子邮件添加团队成员邀请 (#20307)
    • 添加接收所有自己的消息的电子邮件通知选项 (#20179)
    • 将 Unicode 转义切换到类似 VSCode 的系统 (#19990)
    • 添加用户/组织代码搜索 (#19977)
    • 仅在探索页面上显示相关仓库 (#19361)
    • 使用 go-ap 的 ActivityPub 联合的用户密钥对和 HTTP 签名 (#19133)
    • 添加站点地图支持 (#18407)
    • 允许为组织创建 OAuth2 应用程序 (#18084)
    • 添加具有缓存的系统设置表,并添加对用户设置的缓存支持 (#18058)
    • 添加页面以查看监视的仓库和订阅的工单/PR (#17156)
    • 支持代理协议 (#12527)
    • 实现提交时同步推送镜像 (#19411)
  • API
    • 允许在拉取请求编辑中使用空分配者 (#22150) (#22214)
    • 通过 API 使外部问题跟踪器正则表达式可配置 (#21338)
    • 为组织 API 添加名称字段 (#21270)
    • 如果用户是管理员,则显示没有成员的团队 (#21204)
    • 将最新提交的 SHA 添加到内容响应中 (#20398)
    • 将 allow_rebase_update、default_delete_branch_after_merge 添加到仓库 API 响应中 (#20079)
    • 添加用于推送镜像管理的新端点 (#19841)
  • 增强功能
    • 添加设置以在测试补丁中禁用 git apply 步骤 (#22130) (#22170)
    • 对评论编辑差异进行多项改进 (#21990) (#22007)
    • 修复分支列表中的按钮,避免在分支实际恢复完成之前出现意外页面跳转 (#21562) (#21928)
    • 修复仓库列表图标的 flex 布局 (#21896) (#21920)
    • 修复由电子邮件地址渲染的提交者头像的垂直对齐 (#21884) (#21918)
    • 修复写入后设置 HTTP 标头 (#21833) (#21877)
    • 颜色和样式增强 (#21784, #21799) (#21868)
    • 忽略以零开头的行锚链接 (#21728) (#21776)
    • 快速修复 monaco-editor 错误:“vs.editor.nullLanguage” (#21734) (#21738)
    • 使用 CSS color-scheme 而不是 invert (#21616) (#21623)
    • 在渲染仓库活动页面中的日期范围时,尊重用户的区域设置 (#21410)
    • 更改commits-table列宽(#21564
    • 重构git命令参数,并使所有参数都安全可用(#21535
    • CSS颜色增强(#21534
    • 仅当用户存在时,在markdown提及中添加指向用户个人资料的链接(#21533,#21554
    • 添加跳过索引目录的选项(#21501
    • 差异文件树调整(#21446
    • 本地化所有时间戳(#21440
    • 在问题标题中添加code高亮(#21432
    • 在LFS锁定中使用Name而不是DisplayName(#21415
    • 将更多CSS颜色合并到变量中(#21402
    • 重定向到新的仓库所有者(#21398
    • 在仓库活动页面中使用ISO日期格式而不是硬编码的英文日期格式表示日期范围(#21396
    • 在仓库中查找文件时使用加权算法进行字符串匹配(#21370
    • 在Feed中显示私有数据(#21369
    • 重构parseTreeEntries,加速树列表(#21368
    • 为Docker blob上传添加GET和DELETE端点(#21367
    • 在模板编译错误时添加更友好的错误处理(#21350
    • 为提高速度,在ToCommit函数中添加stat#21337
    • 支持实例范围的OAuth2应用程序(#21335
    • 在注册时记录OAuth客户端类型(#21316
    • 添加新的CSS变量--color-accent和--color-small-accent(#21305
    • 改进unauthorized_client的错误描述(#21292
    • 不区分大小写的“在仓库中查找文件”(#21269
    • 合并更多CSS规则,修复arc-green上的内联代码(#21260
    • 记录来自ssh请求的真实ip(#21216
    • 将文件以组可读的方式保存在本地存储中(#21198
    • 在中等尺寸的视口中启用流畅的页面布局(#21178
    • 文件头调整(#21175
    • 在用户包页面上添加缺少的标题(#21172
    • 显示容器包的镜像摘要(#21170
    • 跳过团队表单的脏检查(#21154
    • 创建新分支时保留路径(#21153
    • 移除fomantic图像模块(#21145
    • 使评论部分中的标签可点击。(#21137
    • 按日期降序排序分支和标签(#21136
    • 更好的仓库API单元测试(#21130
    • 改进提交状态图标(#21124
    • 限制仓库描述和仓库URL输入字段的长度(#21119
    • 在前端显示.editorconfig错误(#21088
    • 允许发布者选择审阅者(#21084
    • 移除黑色标签和CSS清理(#21003
    • 使电子邮件健全性检查更精确(#20991
    • 在空格下拉菜单中使用原生输入(#20980
    • 增强包日期显示(#20928
    • 显示包版本的总blob大小(#20927
    • 悬停显示语言名称(#20923
    • 显示所有通用包文件的说明(#20917
    • 重构AssertExistsAndLoadBean以使用泛型(#20797
    • 将官方网站链接移动到Gitea页脚(#20777
    • 在反向代理身份验证中添加对完整名称的支持(#20776
    • 删除相对时间工具提示的无用JS操作(#20756
    • 用SVG替换一些图标(#20741
    • 将提交状态图标更改为SVG(#20736
    • 改进问题和拉取请求的单个仓库操作(#20730
    • 允许通用包中包含多个文件(#20661
    • 添加从/issues页面创建新问题的选项(#20650
    • 更新私有列表项的背景颜色(#20630
    • 在问题过滤器中添加搜索输入字段(#20623
    • 将默认项目列表大小ISSUE_PAGING_NUM增加到20(#20547
    • 修改里程碑搜索关键词,使其再次不区分大小写(#20513
    • 在查看空仓库包列表时,显示将包链接到仓库的提示(#20504
    • 添加Tar ZSTD支持(#20493
    • 使代码审查复选框可点击(#20481
    • 为GET /raw/ & /media/ API添加"X-Gitea-Object-Type"头部(#20438
    • 在问题列表中显示项目(#20434
    • 在打开新的PR时,将提交消息添加到模板内容前面(#20429
    • 用tippy.js替换fomantic弹出窗口模块(#20428
    • 允许为标记中的文本指定颜色(#20363
    • 允许使用最低权限访问公共组织成员列表(#20330
    • 在提供的值为空时使用默认值(#20318
    • 垂直对齐导航栏头像到中间(#20302
    • 删除仓库创建页面中的取消按钮(#21381
    • 在adminCreateUser响应中包含login_name(#20283
    • 修复:user/settings/repos中的图标边距(#20281
    • 删除迁移页面上的蓝色文本(#20273
    • 修改里程碑搜索关键词,使其不区分大小写(#20266
    • 将一些文件移动到models的子包中(#20262
    • 在探索页面中为仓库图标添加工具提示(#20241
    • 删除已弃用的许可证(#20222
    • Wiki更改的Webhook(#20219
    • 共享HTML模板渲染器并创建监视器框架(#20218
    • 允许通过CLI启用LDAP源并禁用用户同步(#20206
    • 添加一个复选框以选择所有问题/PR(#20177
    • 将 `i18n` 重构为 `locale` (#20153)
    • 如果未找到,则在模板中禁用状态检查(#20088
    • 允许管理器日志记录设置SQL(#20064
    • 为指派人添加排序,解决排序问题(#20053
    • 尝试将现有组件移植到Vue3(#20044
    • 添加doctor命令以写入提交图(#20007
    • 添加基于反向代理电子邮件的身份验证支持(#19949
    • 为EasyMDE启用拼写检查,使用contenteditable模式(#19776
    • 允许指定SECRET_KEY_URI,类似于INTERNAL_TOKEN_URI(#19663
    • 重构邮件发送器设置 (#18982)
    • 添加清除用户的选项(#18064
    • 添加作者搜索输入框(#21246
    • 使rss/atom标识符全局唯一(#21550
  • 错误修复
    • 身份验证接口在验证失败时返回错误(#22119)(#22259)
    • 使用完整的SHA创建和查询提交状态(#22244)(#22257)

    • 更新 bleve 和 zapx 以修复未对齐的原子操作 (#22031) (#22218)
    • 在运行默认检查时防止 doctor 命令出现 panic (#21791) (#21807)
    • 在删除 issue 之前在 API 中加载 GitRepo (#21720) (#21796)
    • 忽略以零开头的行锚链接 (#21728) (#21776)
    • 激活账户时设置上次登录时间 (#21731) (#21755)
    • 修复 UI 语言切换错误 (#21597) (#21749)
    • 快速修复 monaco-editor 错误:“vs.editor.nullLanguage” (#21734) (#21738)
    • 允许 PyPI 包使用本地包标识符 (#21690) (#21727)
    • 处理没有元数据的 Markdown 模板 (#21639) (#21654)
    • 修复 mermaid 图表上的不透明背景 (#21642) (#21652)
    • 修复 Windows 上的仓库采用 (#21646) (#21650)
    • 当配置文件路径更改时同步 Git 钩子 (#21619) (#21626)
    • 修复 PR 文件 API 上的 500 错误 (#21602) (#21607)
    • 修复 Timestamp.IsZero (#21593) (#21603)
    • 修复查看用户订阅 (#21482)
    • 修复 mermaid 相关的错误 (#21431)
    • 修复页面加载时分支下拉菜单偏移 (#21428)
    • 修复未登录时默认主题自动选择器 (#21346)
    • 修复并改进不正确的错误消息 (#21342)
    • 修复发送到 Matrix 的 PR 审查通知的格式化链接 (#21319)
    • 将 WebAuthN 页面的内容居中对齐 (#21127)
    • 移除按文件查看提交的关注功能 (#20765)
    • 修复提交状态弹出窗口 (#20737)
    • 修复初始化邮件渲染逻辑 (#20704)
    • 使用正确的页面大小进行链接头分页 (#20546)
    • 保留 Unix 套接字文件 (#20499)
    • 使用 tippy.js 用于上下文弹出窗口 (#20393)
    • 为日志消息中的错误添加缺失的参数 (#20144)
    • 不允许组织所有者将自己添加为协作者 (#20043)
    • 重构文件高亮渲染并修复 yaml 复制粘贴 (#19967)
    • 改进代码差异高亮,修复渲染错误的差异结果 (#19958)
  • 测试
    • 改进 OAuth 集成测试 (#21390)
    • 添加 Playwright 测试 (#20123)
  • 构建
    • 切换到使用 Go 1.19 构建 (#20695)
    • 更新 JS 依赖项,调整 ESLint (#20659)
    • 添加更多 linter 以提高代码可读性 (#19989)
An icon showing wave propagation

加入我们的社区

Gitea 是开源的。为我们的 GitHub 仓库加星,并加入我们在 Discord 上的社区!

An icon showing a paper plane

订阅我们的新闻通讯

随时了解 Gitea 的所有动态