Gitea 1.18.0 发布
我们很自豪地宣布 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_ADDR
和mailer.SMTP_PORT
选项。 mailer.IS_TLS_ENABLED
选项已被弃用,取而代之的是使用新的mailer.PROTOCOL
选项,该选项明确接受smtp
、smtps
、smtp+startls
或smtp+unix
。如果您不知道您的提供商使用什么协议但提供了端口,则可以将其留空,它将根据给定的端口推断出来。有关新smtp+unix
协议的更多详细信息,请参阅非重大更改部分。mailer.DISABLE_HELO
(默认值为 false)选项已被mailer.ENABLE_HELO
(默认值为 true)替换。它仍然执行相同的操作,但该选项被取反以减少混淆。mailer.SKIP_VERIFY
选项已被mailer.FORCE_TRUST_SERVER_CERT
替换,以使其听起来更吓人,并阐明其作用。mailer.USE_CERTIFICATE
、mailer.CERT_FILE
和mailer.KEY_FILE
已被弃用并重命名为mailer.USE_CLIENT_CERT
、mailer.CLIENT_CERT_FILE
和mailer.CLIENT_KEY_FILE
。
❗某些配置从配置文件移动到数据库 (#18058)
两个配置 picture.DISABLE_GRAVATAR
和 picture.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 中的外观,前提是您将颜色包装在 ` `
中。
🚀包注册表:支持更多注册表 (#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)
现在比以往任何时候都更容易浏览拉取请求中的更改。
如左侧屏幕截图所示,此树表示更改的文件结构,可用于快速导航到您要查看的任何位置。
提示:树按字母顺序排序,因此如果您知道要查找的内容,您将能够快速找到它。
🚀工单表单和 PR 表单 (#20987)
Gitea 现在支持工单和 PR 表单作为自由格式 Markdown 的替代方案。
如上所示,您可以使用这些表单要求满足某些标准,同时提高用户友好性和直观性。
🚀Markdown 中的 LaTeX 数学渲染 (#20571)
Gitea 现在可以使用 LaTeX 语法在 Markdown 内容中的 `$…$`、`$$…$$`、`\[…\]` 和 `\(…\)` 中渲染数学公式。
🚀显示本地化 README (#20508)
Gitea 现在尝试将用户的语言设置与特殊命名的 README 进行匹配,以确定显示哪个文件。
例如,如果用户使用 `zh-CN` 作为语言,则将按以下顺序考虑以下 README 文件
README.zh-CN.md
README.zh_CN.md
README.zh.md
README.md
🚀通过电子邮件添加团队成员邀请 (#20307)
您现在可以通过电子邮件向某人(尚未在您的实例中拥有帐户)发送加入团队的请求。
收到邀请后,他们可以通过链接注册并加入团队。
🚀不同的 Unicode 检测/转义机制 (#19990)
以前,Gitea 使用一个相当错误的系统来检测不可见/易混淆字符。
该算法现在已更新到类似于 Visual Studio Code 行为的版本,希望能够减少错误。
🚀用户/组织代码搜索 (#19977)
用户现在可以启用并在整个用户或组织中使用代码搜索。
告别猜测某些文本是否以及在何处位于特定仓库中。
要使用此功能,您需要配置索引器。
🚀站点地图支持 (#18407)
Gitea 现在可以自动提供站点地图,让搜索引擎知道哪些内容可用。
🚀系统设置表 (#18058)
以前,所有配置都在您的 `app.ini` 中完成。
现在情况不一定如此,因为 Gitea 现在还具有一个数据库表 `system_setting`,可用于存储设置。
此表有两个优点
- app.ini 不会像以前那样增长得那么快了
- 数据库中的设置也可以在实例运行时更新,甚至可以通过设置的 UI 更新
目前,只有两个设置(`picture.disable_gravatar` 和 `picture.enable_federated_avatar`)已迁移到数据库表。
🚀提交时同步推送镜像 (#19411)
Gitea 现在可以在推送新提交时同步推送镜像。
在“镜像设置”中查找新的复选框以启用它。
🚀清除用户 (#18064)
正如许多具有开放注册的实例的管理员已经注意到的那样
有时,垃圾邮件用户会注册。
以前,管理员很难删除此类用户。
现在这变得容易多了,您可以通过执行 `gitea admin user delete --purge $USER` 简单地清除用户的任何痕迹。
或者,您也可以在从管理员仪表板删除用户时,在 UI 中选中“清除用户”。
变更日志
1.18.0 - 2022-12-29
- 安全
- 重大更改
- 功能
- 在 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
- 增强功能
- 添加设置以在测试补丁中禁用 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)
- 测试
- 构建