我们自豪地宣布 Gitea v1.17.0 发布了。本次发布带来了诸多新特性和累积的更新,我们强烈建议用户在更新到最新版本之前仔细阅读发行注记。
在 1.17.0 版本的开发中我们一共合并了 645 个请求。
您可以从下载页面下载预编译的二进制文件,请注意选择正确的操作系统。关于如何安装,请参考安装手册。
在此,我们感谢所有在 Open Collective 给予我们资金支持的贡献者。
- 💡你知道吗?我们现在已经开通了微信公众号和哔哩哔哩视频栏目,欢迎关注、点赞、一键三连! 🍵
- 点击链接加入群聊【Gitea 官方技术群】:328432459
以下为本次发布的更新内容!
主要特性
🚀 Package Registry (#16510)
感谢 @KN4CK3R,Gitea 现在包含一个通用的软件包管理器,支持 Composer、Conan、Generic、Helm、Maven、npm、NuGet、OCI Containers (Docker)、PyPI 和 RubyGems。
🚀 新增基于 Web UI 的 Git 功能 (#17902)
感谢 @zeripath,现已支持基于 Web UI 的常规 Git 功能,如 cherry-pick
, revert
, apply-patch
。
🚀 更好的移动端体验 (#19546)
感谢 @Gusted 致力于改善 Gitea 的移动体验:前端经过重构变得更灵敏,操作习惯保持不变。现有的移动端体验将更加流畅!
🚀 改进的文件导航 (#19007 & #15028)
改进了用户浏览大量文件时的体验:
- 当您审查合并请求时,您可以对审查过的文件进行标记,此后的文件更改也将被着重显示 (#19007)。
- @rogerluo410 和 @wxiaoguang 为仓库实现了“转到文件”功能,类似文件树,便于查找 (#15028)
🚀 更丰富的 RSS feeds (#17714 & #19055)
感谢 @6543,Gitea 现已支持输出组织和仓库的 RSS feeds。
🚀 自动合并请求 (#19648 & #9307)
感谢 @6543 和 @kolaente,Gitea 现在允许 PR 在通过所有代码检查后自动合并,这项功能同时支持 Web UI 和 API 操作。但请注意,此功能仅在当前分支启用“分支保护”时才会生效。
🚀 允许仓库维护者编辑PR (#18002)
感谢 @qwerty287,Gitea 现已允许上游仓库维护者直接编辑合并请求。这项功能简化开源开发的 PR 工作流程。
🚀 支持了工单删除和合并请求 (#19032)
感谢 @fnetX,为了打击垃圾邮件和机密信息泄露,现在可以永久删除 工单(以及附加的 PR)。仓库管理员或实例管理员可以在 工单 或 合并请求 页面底部找到删除按钮。
🚀 在“百科”页面中自动生成目录 (#19873)
感谢@zeripath,百科页面现已支持在侧边栏中自动生成目录。避免了手动维护目录结构。
🚀 自定义默认的合并消息 (#18177)
感谢@lunny,您现在可以设置用于合并请求的默认消息。自定义消息模板应放置于 .gitea/default_merge_message/<uppercase_merge_style>_TEMPLATE.md
。
更多信息,请参见文档。
🚀 支持导入仓库时保留工单的原始ID (#18446)
当您迁移包含工单的仓库时,它们的原始 ID 将被保留。现已支持从 Gitea、GitHub、GitLab 等实例迁移仓库、工单、PR,后续版本还会支持更多方案。
🚀 Federation 开发进度 (#19561 & #19462)
Gitea 1.17 为将来允许各 Gitea 实例相互通信奠定了基础:
- 新增一个 API 路径,允许实例之间进行基本的通信 。(#19561)
- 传递用户的基本信息,例如头像。 (#19462)
更多 Federation 功能正在开发中,敬请期待!
不兼容的变更
❗ 内部 Gitconfig (#19732)
旧版 gitconfig 引用系统级 /etc/gitconfig
和用户级 $HOME/.gitconfig
。
新版 gitconfig 引用系统级 /etc/gitconfig
和内部 {[git].HOME_PATH}/.gitconfig
。
如果您为 Gitea 自定义了 gitconfig,则应将这些自定义配置文件添加到 {[git].HOME_PATH}/.gitconfig
。
位于用户主目录中的其他相关配置文件,例如$HOME/.gnupg,也应该移动到 {[git].HOME_PATH}/
。
❗ 合法的 Email 地址格式 (#17688)
在此版本中,Gitea 限制了用于 Email 的地址格式:Email 地址支持的字符包括:
a-zA-Z0-9.!#$%&'*+-/=?^_`~
当然,Email 用户名的第一个字母和@前一个字母必须是 a-zA-Z0-9
❗ 用于证书签发的配置项 LETSENCRYPT 重命名为 ACME (#18340)
用于证书签发的设置中已将 LETSENCRYPT
重命名为 ACME
。注意!旧设置已弃用,将在 1.18 中删除,您应该立即迁移。
ENABLE_LETSENCRYPT → ENABLE_ACME
LETSENCRYPT_URL → ACME_URL
LETSENCRYPT_ACCEPTTOS → ACME_ACCEPTTOS
LETSENCRYPT_DIRECTORY → ACME_DIRECTORY
LETSENCRYPT_EMAIL → ACME_EMAIL
❗ 新的 logger 日志格式和配置 (#17308)
当前版本改变了 router logger 的日志格式。如果您正在监控此日志记录(例如,fail2ban),您将需要更新此日志设置以匹配新格式。有关新的配置选项,请参阅文档上的 router logger。
❗ 使用 main 作为默认分支 (#19354)
默分支已从 master 切换到 main。如果要继续用 master 作默认分支名称,请手动设置 repository.DEFAULT_BRANCH = main
。
❗ 将仓库的初始信任模型更改为 committer (#18335)
collaborator 信任模型:只有经过验证的协作者提交才能被信任,同时这是一个相当激进的信任模型。
committer 信任模型:兼容 GitHub,这意味着来自非合作者的仓库中经过验证的提交不会被标记为未验证。
如果您要使用旧的信任模型,则必须设置 DEFAULT_TRUST_MODEL = collaborator
❗ 要求 Git 版本 >= 2.0 (#19577)
Gitea 要求 Git 版本 >= 2.0。低于此版本的 Git 不受支持,并且会阻碍应用程序启动。一般而言,建议您的 Gitea 与 Git 程序版本保持同步升级,因为某些 Gitea 功能或优化只有在当前 Git 版本中可用时才能使用。
❗ 要求 docker 版本 >= 20.10.6 (#18050)
这是由于新的 base 映像 alpine 3.15 的 libc 存在问题。
❗ 要求 Go >= 1.18 才能编译 (#19918,#19099)
编译 Gitea 所需的最低 Go 版本已升级到 1.18。
❗ 更改了自定义 logo 的处理方式 (#18542)
现在用户不仅可以自定义 logo,还可以设置自定义 favicon。如果您当前正在使用自定义 logo,则需要重新参考文档进行配置。
❗ RequireHighlightJS 从模板中删除 (#19615)
当前版本已经弃用RequireHighlightJS,请检查您使用的自定义模板是否引用了它们。
❗ 保留的用户名 (#18438)
现在新增保留用户名:avatar、ssh_info 和 swagger_v1.json。
以下用户名不再保留:help、install、less、plugins、stars 和 template。
如果您想检查 Gitea 实例是否受此问题影响,请运行以下 Gitea doctor 命令:
gitea doctor --run check-user-name
请注意,此命令仅在升级到 1.17.0 后可用。
❗ 新版本默认弃用不安全的 SSH ciphers (#18697)
这项更新仅对使用内部 SSH 服务器的 Gitea 实例造成影响。旧版 Gitea 允许在 SSH 连接中使用不安全的算法,新版已弃用,因此老旧的 OpenSSH 客户端将无法连接到 Gitea。
❗ 如果 ROOT_URL 设置错误,将向用户显示 JavaScript 错误消息 (#18971)
当用户访问地址与 ROOT_URL 配置不相符时,可能会出现意外问题。因此,Gitea 前端会在这种情况下显示错误消息提醒管理员修正错误。请检查您的 ROOT_URL 设置是否正确,继续使用未配置的 URL 访问实例会出现错误消息。
❗ /api/v1/notifications 不再返回仓库权限信息 (#19761)
旧版 API /api/v1/notifications
会返回不正确的 repository.permissions
。
鉴于该 API 未能返回正确的权限信息,以及存在获取仓库权限的正式方法,现将该值弃用,并始终返回 null。
❗ HTTP 状态码更新:302 → 307 和 301 → 308 (#18063)
旧版重定向状态码 Found(302) 和 Moved Permanently(301)。
新版重定向状态码更改为 Temporary Redirect(307) 和 Permanent Redirect(308)。
❗ 默认不再向管理员发送成功执行 cron 任务的通知 (#19221)
默认情况下,成功执行的 cron 任务不再发出通知。如果您想在成功执行cron后获得通知,则必须设置 NOTICE_ON_SUCCESS = true
。